Versuchen Sie es mit einem kostengünstigen und einfach zu verbindenden Temperatursensor (LM75B) mit einem Himbeer-Pi (im Folgenden als "Himbeer-Pi" bezeichnet). Laden Sie die Temperatursensordaten in das Nifty Cloud Mobile Backemobile Backend hoch
Die Verbindung erfolgt über die I2C-Methode
Aktivieren Sie daher I2C im Voraus.
Führen Sie den folgenden Befehl aus. sudo apt-get update sudo apt-get upgrade sudo apt-get install -y i2c-tools
sudo raspi-config 「Advanced Options」->「A7」I2C」 Aktivieren Sie I2C in
Schalten Sie die Stromversorgung aus und verbinden Sie VCC, SCL, SDA, GND mit Raspeye.
LM75B - Rasiermesser VCC <->3.3V(1) SCL<->SDA(3) SDA<->SCL(5) GND<->GND(6)
Neustart und Überprüfung
Bestätigen Sie mit dem Befehl ** i2cdetect **
Ausführungsbeispiel 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: -- -- -- -- -- -- -- --
Es ist eine Binärzahl, die zweistellig organisiert und in aufsteigender Reihenfolge angeordnet ist. Die unteren 5 Bits sind ungültig und befinden sich in Schritten von 0,125 Grad. Die Anzahl der effektiven Ziffern beträgt 11 Bit Negative Grad Celsius sind ein Komplement von 2, wenn das höchstwertige Bit 1 ist.
================================
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 #Verschieben und setzen Sie das höherwertige Bit
val = val | block[1] #Setzen Sie das untere Bit mit ODER
# val = 0xc920 #Negativtemperaturtest
#Berechnen Sie die Temperatur, indem Sie unten positive und negative Beurteilungen vornehmen.
if(val >= 0x7fff):
val = val - 0xffff
result = ((val >>5) * 0.125)
return result
while True:
print("Temperature:%6.2f" % get_Temperature())
time.sleep(5)
===============================
Ausführungsbeispiel
pi@raspberrypi:~$ ./get_temp.py Temperature: 32.50 Temperature: 32.50 Temperature: 32.62
Installation des ncmb Python-Moduls sudo pip install py_nifty_cloud
Legen Sie den Dateianwendungsschlüssel und den Clientschlüssel in nifty_cloud.yml fest 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 #Verschieben und setzen Sie das höherwertige Bit
val = val | block[1] #Setzen Sie das untere Bit mit ODER
# val = 0xc920 #Negativtemperaturtest
#Berechnen Sie die Temperatur, indem Sie unten positive und negative Beurteilungen vornehmen.
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()Mit der Methode die Variable der Daten vom Typ Datum / Uhrzeit des aktuellen Datums / der aktuellen Uhrzeit abrufen
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