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.
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
Ensuite, la journalisation sera effectuée.
** ・ 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)
** ① 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
** - 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.
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é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é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.
[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
[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