Dieser Artikel hat den gleichen Inhalt wie ** Artikel zum Omron-Umweltsensor (BAG-Typ) **. Dieser Artikel wurde mit dem preisgünstigen ** Inkbird IBS-TH1 ** durchgeführt. Der Mini, den ich das letzte Mal verwendet habe, hatte eine schlechte Akkulaufzeit, daher wollte ich die Haltbarkeit dieses Produkts mit AAA-Batterien verbessern.
Es ist ein Hersteller in Shenzhen, China, der verschiedene IoT-Sensoren für den Heimgebrauch herstellt. Es ist attraktiv, dass es alle Funktionen wie Datenerfassung mit Smartphone-Anwendung und API zu einem niedrigen Preis (ca. 3000 Yen) bietet.
Dieses Mal ist es mit einem Temperatur- und Feuchtigkeitssensor ausgestattet Inkbird IBS-TH1
Anschließend wird die Protokollierung durchgeführt.
** ・ RaspberryPi ** (diesmal wird Pi3 Modell B verwendet) ** ・ Python-Ausführungsumgebung ** (Dieses Mal verwendet pyenv Python 3.7.6) ** ・ Inkbird IBS-TH1 ** (wird bei entfernter Sonde verwendet)
** ① Überprüfen Sie die Bluetooth-Verbindung zwischen dem Raspberry Pi und dem Sensor ** ** ② Ermitteln Sie den Messwert des Sensors mit Python ** ** ③ Drücken Sie die GAS-API von Python, um Daten in die Tabelle zu schreiben ** ** ④ Regelmäßige Ausführung des Skripts **
Ich habe darauf hingewiesen. https://qiita.com/bon_dentetsu/items/87ed6c65640b5ba11e5c https://github.com/viyh/inkbird https://github.com/sputnikdev/eclipse-smarthome-bluetooth-binding/issues/60
** - Sensoreinrichtung ** Legen Sie AAA-Batterien in den Sensor ein (bitte beachten Sie, dass der Deckel schwer zu entfernen ist).
** - Nach Bluetooth-Geräten suchen ** Führen Sie den folgenden Befehl auf Raspberry Pi aus
sudo hcitool lescan
LE Scan ...
AA:CC:EE:DD:55:77 sps
Wenn Sie den Namen "sps" sehen, ist dies die MAC-Adresse des Sensors. Wenn es nicht herauskommt, überprüfen Sie den Batteriekontakt und die Bluetooth-Aktivierung von Raspberry Pi. Abhängig vom Modell und den Einstellungen lautet der Name möglicherweise nicht "sps" In diesem Fall können Sie die MAC-Adresse unter Inkbird Official App überprüfen.
bluepy ist eine Bibliothek für den Zugriff auf Bluetooth Low Energy (BLE) in Python (Klassendefinition).
** - Installation der erforderlichen Pakete ** Installieren Sie Folgendes
sudo install libglib2.0-dev
** ・ Installation von Bluepy **
Installieren Sie mit pip mit dem folgenden Befehl
pip install bluepy
** ・ Bluepy Autorität erteilen ** Sie müssen bluepy Sudo die Berechtigung zum Scannen erteilen.
Gehen Sie zu dem Ordner, in dem bluepy installiert ist, und
cd ~.pyenv/versions/3.7.6/lib/python3.7/site-packages/bluepy
Erteilen Sie Sudo die Erlaubnis, mit dem folgenden Befehl zu helfen
sudo setcap 'cap_net_raw,cap_net_admin+eip' bluepy-helper
Erstellen Sie das folgende Skript, um den Sensorwert abzurufen
inkbird_ibsth1_connect.py
from bluepy import btle
import struct
def get_ibsth1_data(macaddr):
peripheral = btle.Peripheral(macaddr)
characteristic = peripheral.readCharacteristic(0x28)
(temp, humid, unknown1, unknown2, unknown3) = struct.unpack('<hhBBB', characteristic)
sensorValue = {
'Temperature': temp / 100,
'Humidity': humid / 100,
'unknown1': unknown1,
'unknown2': unknown2,
'unknown3': unknown3,
}
return sensorValue
Bitte beachten Sie, dass der Griff beim Inkbird IBS-TH1 mini "0x002d" war, diesmal jedoch "0x28". Daten werden durch Kommunikation mit der Peripherieklasse von Bluepy erfasst.
Die erfassten Kenndaten sind ** ・ 1. und 2. Byte: Temperatur (0,01 ℃ Einheit) ** ** ・ 3.-4. Byte: Luftfeuchtigkeit (0,01% Einheit) ** Ich konnte es jedoch nicht herausfinden, selbst wenn ich den Inhalt des 5. bis 7. Bytes überprüfte Ich werde es als unbekannt1 ~ 3 protokollieren, um herauszufinden, was es ist. (Wir planen, den verbleibenden Batteriestand zu erhalten)
Erstellen Sie ein Hauptskript, um das Skript zur Erfassung des Sensorwerts aufzurufen
inkbird_toSpreadSheet.py
from bluepy import btle
import inkbird_ibsth1_connect
######Erfassung von Werten für den OMRON-Umgebungssensor (BAG-Typ)######
PERIPHERAL_MAC_ADDRESS = 'MAC-Adresse erhalten in ①'
sensorValue = inkbird_ibsth1_connect.get_ibsth1_data(PERIPHERAL_MAC_ADDRESS)
#Zeigen Sie die Temperatur als Test an
print(sensorValue['Temperature'])
Versuchen Sie, von der Konsole aus zu laufen
python inkbird_toSpreadSheet.py
25.49
Sie haben jetzt Sensormessungen in Python erhalten.
[Artikel zum Omron-Umweltsensor](https://qiita.com/c60evaporator/items/ed2ffde4c87001111c12#python%E3%81%8B%E3%82%89gas%E3%81%AEapi%E3%82%92%E5% 8F% A9% E3% 81% 84% E3% 81% A6% E3% 82% B9% E3% 83% 97% E3% 83% AC% E3% 83% 83% E3% 83% 89% E3% 82% B7% E3% 83% BC% E3% 83% 88% E3% 81% AB% E3% 83% 87% E3% 83% BC% E3% 82% BF% E6% 9B% B8% E3% 81% 8D% E8% BE% BC% E3% 81% BF) Bitte beziehen Sie sich
[Artikel zum Omron-Umweltsensor](https://qiita.com/c60evaporator/items/ed2ffde4c87001111c12#%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83 % 88% E3% 81% AE% E5% AE% 9A% E6% 9C% 9F% E5% AE% 9F% E8% A1% 8C) Bitte beziehen Sie sich
Recommended Posts