Essayez d'utiliser un capteur de température bon marché et facile à connecter (LM75B) avec le raspberry pi (ci-après dénommé «raspberry pi») Téléchargez les données du capteur de température sur le backend mobile de Nifty Cloud
--Sonde de température NXP (LM75B) --Razpai
La connexion est la méthode I2C
Par conséquent, activez I2C à l'avance.
Exécutez la commande suivante. sudo apt-get update sudo apt-get upgrade sudo apt-get install -y i2c-tools
sudo raspi-config 「Advanced Options」->「A7」I2C」 Activer I2C dans
Éteignez l'alimentation et connectez VCC, SCL, SDA, GND à Raspeye,
LM75B --Razpie VCC <->3.3V(1) SCL<->SDA(3) SDA<->SCL(5) GND<->GND(6)
Redémarrez et vérifiez
Confirmer avec la commande ** i2cdetect **
Exemple d'exécution pi@raspberrypi:~$ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Il s'agit d'un nombre binaire organisé par deux chiffres et disposé par ordre croissant. Les 5 bits inférieurs ne sont pas valides et sont par incréments de 0,125 degré. Le nombre de chiffres effectifs est de 11 bits Negative Cset est un complément de 2 lorsque le bit le plus significatif est 1.
================================
get_temp.py
#!/usr/bin/python
#coding: utf-8
import smbus
import time
i2c = smbus.SMBus(1)
lm75b_address = 0x48
def get_Temperature():
block = i2c.read_i2c_block_data(lm75b_address, 0x00, 2)
val = block[0] << 8 #Décaler et régler le bit de poids fort
val = val | block[1] #Définir le bit inférieur avec OU
# val = 0xc920 #Test de température négative
#Calculez la température en faisant des jugements positifs et négatifs ci-dessous.
if(val >= 0x7fff):
val = val - 0xffff
result = ((val >>5) * 0.125)
return result
while True:
print("Temperature:%6.2f" % get_Temperature())
time.sleep(5)
===============================
Exemple d'exécution
pi@raspberrypi:~$ ./get_temp.py Temperature: 32.50 Temperature: 32.50 Temperature: 32.62
Installation du module python ncmb sudo pip install py_nifty_cloud
Définissez la clé d'application du fichier et la clé client dans nifty_cloud.yml nifty_cloud.yml APPLICATION_KEY: 'your application key' CLIENT_KEY: 'your client key'
===============================
ncmbsample.py
#!/usr/bin/python
#coding: utf-8
import smbus
import datetime
import locale
from py_nifty_cloud.nifty_cloud_request import NiftyCloudRequest
i2c = smbus.SMBus(1)
lm75b_address = 0x48
def get_Temperature():
block = i2c.read_i2c_block_data(lm75b_address, 0x00, 2)
val = block[0] << 8 #Décaler et régler le bit de poids fort
val = val | block[1] #Définir le bit inférieur avec OU
# val = 0xc920 #Test de température négative
#Calculez la température en faisant des jugements positifs et négatifs ci-dessous.
if(val >= 0x7fff):
val = val - 0xffff
result = ((val >>5) * 0.125)
return result
# instanciate with yaml file contains APPLICATION KEY and CLIENT KEY
ncr = NiftyCloudRequest('.nifty_cloud.yml')
path = '/classes/Temperature'
method = 'POST'
# today()Obtenez la variable des données de type datetime de la date / heure actuelle avec la méthode
d = datetime.datetime.today()
date_str = d.strftime("%Y-%m-%d %H:%M:%S")
value = "%6.2f" % get_Temperature()
# post a new recode
values = {'date':date_str,'temperature': value}
response = ncr.post(path=path, query=values)
print(response.status_code)
# show response as json format
print(response.json())
===============================
Recommended Posts