[PYTHON] Enregistrement de la valeur d'Inkbird IBS-TH1 avec Raspberry Pi

introduction

Cet article a le même contenu que ** Article Omron Environmental Sensor (BAG Type) **. Cet article a été réalisé avec le ** Inkbird IBS-TH1 ** à bas prix. Le mini que j'ai utilisé la dernière fois avait une mauvaise autonomie de la batterie, j'ai donc cherché à améliorer la durabilité de ce produit avec des piles AAA.

Qu'est-ce que Inkbird?

Un fabricant à Shenzhen, en Chine, qui fabrique divers capteurs IoT à usage domestique. Il est intéressant de disposer de toutes les fonctions telles que l'acquisition de données avec application smartphone et API à bas prix (environ 3000 yens).

Cette fois, il est équipé d'un capteur température + humidité Inkbird IBS-TH1 Inkbird_IBS-TH1.jpg

Ensuite, la journalisation sera effectuée.

Les choses nécessaires

** ・ RaspberryPi ** (Pi3 Model B est utilisé cette fois) ** - Environnement d'exécution Python ** (Cette fois, pyenv utilise Python 3.7.6) ** ・ Inkbird IBS-TH1 ** (utilisé avec la sonde retirée)

procédure

** ① Vérifiez la connexion Bluetooth entre le Raspberry Pi et le capteur ** ** ② Obtenez la valeur mesurée du capteur avec Python ** ** ③ Accédez à l'API GAS de Python pour écrire des données dans la feuille de calcul ** ** ④ Exécution périodique du script **

J'en ai parlé. https://qiita.com/bon_dentetsu/items/87ed6c65640b5ba11e5c https://github.com/viyh/inkbird https://github.com/sputnikdev/eclipse-smarthome-bluetooth-binding/issues/60

① Vérifiez la connexion Bluetooth entre le Raspberry pi et le capteur

Confirmation de la reconnaissance du capteur

** - Configuration du capteur ** Insérez des piles AAA dans le capteur (veuillez noter que le couvercle est difficile à retirer)

** - Recherche d'appareils Bluetooth ** Exécutez la commande suivante sur Raspberry Pi

sudo hcitool lescan
LE Scan ...
AA:CC:EE:DD:55:77 sps

Si vous voyez le nom "sps", il s'agit de l'adresse MAC du capteur. S'il ne sort pas, vérifiez le contact de la batterie et l'activation Bluetooth du Raspberry Pi. Selon le modèle et les paramètres, le nom peut ne pas être "sps", donc Dans ce cas, vous pouvez vérifier l'adresse MAC sur Inkbird Official App.

** ② Obtenez la valeur mesurée du capteur avec Python **

Confirmation de reconnaissance avec bluepy

bluepy est une bibliothèque pour accéder à Bluetooth Low Energy (BLE) en Python (Définition de classe)

** ・ Installation des packages requis ** Installez ce qui suit

sudo install libglib2.0-dev

** ・ Installation de bluepy **

Installer avec pip avec la commande suivante

pip install bluepy

** ・ Autoriser bluepy ** Vous devez autoriser bluepy Sudo à scanner.

Allez dans le dossier où bluepy est installé et

cd ~.pyenv/versions/3.7.6/lib/python3.7/site-packages/bluepy

Accordez l'autorisation Sudo à bluepy-helper avec la commande suivante

sudo setcap 'cap_net_raw,cap_net_admin+eip' bluepy-helper

Création d'un script d'acquisition de valeur de capteur

Créez le script suivant pour obtenir la valeur du capteur

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

Dans Inkbird IBS-TH1 mini, le handle était "0x002d", mais cette fois c'est "0x28", donc soyez prudent. Les données sont acquises par communication avec la classe Peripheral de bluepy.

Les données caractéristiques acquises sont ** ・ 1er et 2ème octets: température (unité 0,01 ℃) ** ** ・ 3ème-4ème octets: Humidité (unité 0,01%) ** Cependant, je ne pouvais pas le savoir même si j'avais vérifié le contenu des 5e à 7e octets, donc Je l'enregistrerai comme unknown1 ~ 3 pour savoir ce que c'est. (Nous prévoyons d'obtenir le niveau de batterie restant)

Création du script principal

Créez un script principal pour appeler le script d'acquisition de la valeur du capteur

inkbird_toSpreadSheet.py


from bluepy import btle
import inkbird_ibsth1_connect

######Acquisition de valeurs pour capteur d'environnement OMRON (type BAG)######
PERIPHERAL_MAC_ADDRESS = 'Adresse MAC obtenue en ①'
sensorValue = inkbird_ibsth1_connect.get_ibsth1_data(PERIPHERAL_MAC_ADDRESS)

#Afficher la température à titre d'essai
print(sensorValue['Temperature'])

Essayez de courir à partir de la console

python inkbird_toSpreadSheet.py
25.49

Vous avez maintenant obtenu des mesures de capteurs en Python.

③ Accédez à l'API GAS de Python pour écrire des données dans la feuille de calcul

[Article sur le capteur environnemental d'Omron](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) Veuillez vous référer

④ Exécution périodique du script

[Article sur le capteur environnemental Omron](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) Veuillez consulter

Recommended Posts

Enregistrement de la valeur d'Inkbird IBS-TH1 avec Raspberry Pi
Enregistrement de la valeur d'Inkbird IBS-TH1 mini avec Raspberry Pi
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
Plantes Mutter avec Raspberry Pi
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Utilisez vl53l0x avec RaspberryPi (python)
Commande de servomoteur avec Raspberry Pi
Communication série avec Raspberry Pi + PySerial
Configuration du système d'exploitation avec Raspberry Pi Imager
Essayez L Chika avec raspberrypi
Construire un serveur VPN avec Raspberry Pie
Essayez de déplacer 3 servos avec Raspeye
Utiliser une webcam avec Raspberry Pi
Consigner périodiquement les valeurs des capteurs d'environnement Omron avec Raspberry Pi
Surveillance des animaux avec Rekognition et Raspberry pi
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Essayez de pêcher le Wakasagi avec Raspberry Pi
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Essayez la détection d'objets avec Raspberry Pi 4 + Coral
Exécuter le servomoteur SG-90 avec Raspberry Pi
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Faire une minuterie de lavage-séchage avec Raspberry Pi
Modèle Infer Custom Vision avec Raspeye
Faites fonctionner l'oscilloscope avec le Raspberry Pi
Créez un compteur de voiture avec Raspberry Pi
Travailler avec le GPS en Python pour Raspberry Pi 3
Acquérir la valeur du capteur de Grove Pi + avec Raspberry Pi et la stocker dans Kintone
Enregistrement des valeurs du capteur d'environnement Omron avec Raspberry Pi (type USB)
Discord bot raspberry pi zéro avec python [Note]
Programmation média avec Raspeye (préparation audio)
J'ai essayé L-Chika avec Razpai 4 (édition Python)
Profitez du travail électronique avec GPIO de Raspberry Pi
MQTT Radicon Car avec Arduino et Raspberry
Allumez / éteignez votre PC avec Raspberry Pi
Sortie CSV des données d'impulsion avec Raspberry Pi (sortie CSV)
Observez le groupe de météores Futago avec RaspberryPi4
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Obtenez la température et l'humidité avec DHT11 et Raspberry Pi
Application d'analyse des investissements boursiers avec tarte aux framboises
Connectez-vous à MySQL avec Python sur Raspberry Pi
Suivi GPS avec Raspeye 4B + BU-353S4 (Python)
Mesurer la température du processeur de Raspeye avec Python
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
IoT facile pour démarrer avec Raspeye et MESH
Utilisation de la voiture 4RM FT-MC-004 d'Akizuki Denshi avec Raspberry Pi
Visualisons la pièce avec tarte aux râpes, partie 1
Essayez de déboguer Python sur Raspberry Pi avec Visual Studio.
Détecter l'état de port du masque avec OpenCV et Raspberry Pi
Contrôlez les moteurs sans balais avec GPIO de Raspberry Pi Zero
Mesurez la température et l'humidité avec Raspberry Pi3 et visualisez avec Ambient