[PYTHON] Protokollieren des Werts von Inkbird IBS-TH1 mit Raspberry Pi

Einführung

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.

Was ist Inkbird?

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 Inkbird_IBS-TH1.jpg

Anschließend wird die Protokollierung durchgeführt.

Dinge notwendig

** ・ 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)

Verfahren

** ① Ü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

① Überprüfen Sie die Bluetooth-Verbindung zwischen Raspberry pi und dem Sensor

Bestätigung der Sensorerkennung

** - 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.

** ② Ermitteln Sie den Messwert des Sensors mit Python **

Anerkennungsbestätigung mit bluepy

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 eines Skripts zur Erfassung von Sensorwerten

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)

Hauptskript erstellen

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.

③ Drücken Sie die GAS-API von Python, um Daten in die Tabelle zu schreiben

[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

④ Regelmäßige Ausführung des Skripts

[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

Protokollieren des Werts von Inkbird IBS-TH1 mit Raspberry Pi
Protokollieren des Werts von Inkbird IBS-TH1 mini mit Raspberry Pi
GPGPU mit Raspberry Pi
DigitalSignage mit Raspberry Pi
Mutter pflanzt mit Raspberry Pi
Nehmen Sie den Wert des SwitchBot-Thermo-Hygrometers mit Raspberry Pi
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi
[Raspberry Pi] Schrittmotorsteuerung mit Raspberry Pi
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Servomotorsteuerung mit Raspberry Pi
Serielle Kommunikation mit Raspberry Pi + PySerial
Betriebssystem-Setup mit Raspberry Pi Imager
Probieren Sie L Chika mit Himbeerpi
Aufbau eines VPN-Servers mit Raspberry Pie
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Verwenden einer Webkamera mit Raspberry Pi
Protokollieren Sie die Omron-Umgebungssensorwerte regelmäßig mit Raspberry Pi
Haustierüberwachung mit Rekognition und Raspberry pi
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Versuchen Sie, mit Raspberry Pi nach Wakasagi zu fischen
Normal programmieren mit Node-RED-Programmierung mit Raspberry Pi 3
Versuchen Sie die Objekterkennung mit Raspberry Pi 4 + Coral
Den Servomotor SG-90 mit Himbeer-Pi betreiben
Arbeiten mit Sensoren in Mathematica auf Raspberry Pi
Verwenden Sie einen PIR-Bewegungssensor mit Himbeer-Pi
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Infer Custom Vision Modell mit Raspeye
Bedienen Sie das Oszilloskop mit dem Raspberry Pi
Erstellen Sie eine Auto-Anzeige mit Himbeer-Pi
Arbeiten mit GPS in Python für Raspberry Pi 3
Erfassen Sie den Sensorwert von Grove Pi + mit Raspberry Pi und speichern Sie ihn in Kintone
Protokollierung der Omron-Umgebungssensorwerte mit Raspberry Pi (USB-Typ)
Discord Bot Himbeere Pi Null mit Python [Hinweis]
Medienprogrammierung mit Raspeye (Vorbereitung für Audio)
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
Genießen Sie die elektronische Arbeit mit GPIO von Raspberry Pi
MQTT Radicon Car mit Arduino und Himbeere
Schalten Sie Ihren PC mit Himbeer-Pi ein / aus
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Beobachten Sie die Futago-Meteorgruppe mit Raspberry Pi4
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Holen Sie sich Temperatur und Luftfeuchtigkeit mit DHT11 und Raspberry Pi
Aktieninvestitionsanalyse-App mit Himbeerkuchen gemacht
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
GPS-Tracking mit Raspeye 4B + BU-353S4 (Python)
Messen Sie die CPU-Temperatur von Raspeye mit Python
Notieren Sie Temperatur und Luftfeuchtigkeit mit systemd auf Raspberry Pi
Maschinelles Lernen mit Raspberry Pi 4 und Coral USB Accelerator
Verwendung des digitalen Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Mit Akizuki Denshis 4WD Auto FT-MC-004 mit Raspberry Pi
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Versuchen Sie, Python auf Raspberry Pi mit Visual Studio zu debuggen.
Ermitteln Sie den Tragezustand der Maske mit OpenCV und Raspberry Pi
Steuern Sie bürstenlose Motoren mit GPIO von Raspberry Pi Zero
Messen Sie Temperatur und Luftfeuchtigkeit mit Raspberry Pi3 und visualisieren Sie mit Ambient