Da ein 1-Draht-Sensor verwendet wird, fügen Sie / etc / modules von Raspberry Pi Folgendes hinzu.
w1-gpio
w1-therm
Fügen Sie Folgendes zu /boot/config.txt hinzu
dtoverlay=w1-gpio-pullup
Sensoranschluss
Zu Der 2. und 3. Pin des Sensors sind durch einen Pull-up-Widerstand verbunden. Referenz: http://blog.livedoor.jp/victory7com/archives/33399310.html
Verwenden Sie den Befehl lsmod, um die Verbindung zu überprüfen. Wenn die Verbindung erfolgreich ist, ist dies wie folgt.
cmd
pi@raspberrypi:~/Documents/work$ lsmod | grep w1
w1_therm 6401 0
w1_gpio 4818 0
wire 32619 2 w1_gpio,w1_therm
Die erfasste Temperatur wird in "/ sys / bus / w1 / device / 28-XXXXXXXX / w1_slave" geschrieben. (XXXX von 28-XXXXXXXX ändert sich je nach Terminal)
cmd
pi@raspberrypi:~/Documents/work$ cat /sys/bus/w1/devices/28-00000723fabd/w1_slave
b1 01 4b 46 7f ff 0f 10 8d : crc=8d YES
b1 01 4b 46 7f ff 0f 10 8d t=27062
Die aktuelle Temperatur ist der Wert von "t =" geteilt durch 1000.
Gehen Sie zu IFTTT und erstellen Sie ein Rezept aus Mein Applet.
Setzen Sie "this" auf "Webhooks" und "that" auf "line".
Gehen Sie nach dem Festlegen zu https://ifttt.com/services/maker_webhooks/settings und rufen Sie die angegebene URL auf, um den Schlüssel zu aktivieren.
--event ist der Ereignisname, der beim Festlegen von Webhooks festgelegt wird --value ist der Wert, den Sie an LINE senden möchten
Durch Ausführen des Befehls curl nach "Sie können ihn auch mit curl über eine Befehlszeile versuchen." Wird er an das festgelegte LINE-Ziel gesendet.
Mit RaspberryPi können Sie die Temperatur mit Python ermitteln, die URL der mit IFTTT festgelegten Webhooks anfordern und die Raumtemperatur an LINE senden.
Installieren Sie die Bibliothek, um die Temperatur zu ermitteln
cmd
pip install w1thermsensor
Erhalten und senden Sie mit dem folgenden Code
python
from w1thermsensor import W1ThermSensor
import urllib.request, json
sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, "(Name des Sensorgeräts)")
temperature_in_celsius = sensor.get_temperature()
url = "https://maker.ifttt.com/trigger/(Name des Webhooks-Ereignisses)/with/key/(Webhooks-Schlüssel)"
method = "POST"
headers = {"Content-Type" : "application/json"}
obj = {"value1" : temperature_in_celsius}
json_data = json.dumps(obj).encode("utf-8")
request = urllib.request.Request(url, data=json_data, method=method, headers=headers)
with urllib.request.urlopen(request) as response:
response_body = response.read().decode("utf-8")
Ordnen Sie THERM_SENSOR_DS18B20 der Modellnummer des von Ihnen verwendeten Sensors zu. Der Gerätename des Sensors ist der XXXX-Teil von 28-XXXXXXXX. Wenn Sie danach Coulomb usw. einstellen, können Sie die Raumtemperatur regelmäßig messen.
Recommended Posts