En passant plus de temps à la maison, vous voudrez peut-être rendre votre maison plus confortable. Dans cet article, en utilisant Raspberry Pi, du thermo-hygromètre de SwitchBot, qui est un thermomètre Bluetooth bon marché. Je voudrais décrire comment obtenir la température et l'humidité.
Vous pouvez acheter le thermo-hygromètre switchBot sur Amazon. Depuis septembre 2020, il est disponible à un prix inférieur à 2000 yens.
Assurez-vous que le raspberry Pi reconnaît le thermo-hygromètre switchBot avec Bluetooth. Vous pouvez ignorer cette procédure.
Vérifiez l'adresse MAC de Bluetooth depuis l'application switchBot.
Dans l'exemple de l'image, F2: 4C: 0A: 14: 24: 13 </ b> est l'adresse Mac de bluetooth.
sudo hcitool lescan
L'adresse mac Bluetooth est sortie comme indiqué ci-dessous. Ce n'est pas grave si l'adresse MAC Bluetooth du thermo-hygromètre Switchbot dont vous souhaitez obtenir la température est indiquée ci-dessous.
LE Scan ...
1C:C2:8E:27:DE:CF (unknown)
40:58:BF:7E:B1:22 (unknown)
40:58:BF:7E:B1:22 (unknown)
5E:3D:12:6C:E7:E6 (unknown)
5E:3D:12:6C:E7:E6 (unknown)
73:69:9F:B9:C6:8C (unknown)
73:69:9F:B9:C6:8C (unknown)
18:81:0E:EA:B6:7B (unknown)
18:81:0E:EA:B6:7B (unknown)
21:BF:DD:3B:CD:A5 (unknown)
53:15:4D:6C:AE:5C (unknown)
53:15:4D:6C:AE:5C (unknown)
5E:FC:F6:B4:7D:02 (unknown)
Lorsque la numérisation est terminée, arrêtez la numérisation avec ctl + c </ b>.
Un script qui peut obtenir la température du thermo-hygromètre switchbot est distribué sur github. Obtenons le code source avec git clone.
#Créez un dossier appelé iot
mkdir iot
cd iot
#Téléchargez la source depuis github
git clone https://github.com/OpenWonderLabs/python-host.git
Si vous avez un dossier appelé python-host, c'est ok
Installez les modules nécessaires pour exécuter la source téléchargée.
sudo apt-get -y install libglib2.0-dev
sudo pip install pexpect
sudo pip install bluepy
Exécutez la commande suivante pour vérifier l'opération.
cd python-host
sudo python switchbot_meter.py
Si le résultat de l'analyse s'affiche comme indiqué ci-dessous, tout va bien
Usage: "sudo python switchbot.py [mac_addr cmd]" or "sudo python switchbot.py"
Start scanning...
22 16b Service Data 000d540064089a37 16
22 16b Service Data 000d540064039a39 16
scan timeout
(0, [u'f2:4c:0a:14:24:13', "Humiture:26.8'C 55%"])
(1, [u'f8:26:b7:72:bf:51', "Humiture:26.3'C 57%"])
Appuyez sur ctl + c </ b> pour terminer l'exécution de la commande.
Modifiez une partie du fichier switchbot_meter.py téléchargé afin que le résultat de l'acquisition de température soit sorti dans un fichier texte. Tout d'abord, créez le fichier de destination de sortie avec une commande tactile.
touch ondo.txt
Ouvrez switchbot_meter.py dans vi.
sudo vi switchbot_meter.py
Modifiez les lignes 210 à 222 comme suit.
Changer avant
if not dev_list:
print("No SwitchBot nearby, exit")
sys.exit()
for idx, val in enumerate(dev_list):
print(idx, val)
dev_number = int(input("Input the device number to control:"))
if dev_number >= len(dev_list) :
print("Input error, exit")
bluetooth_adr = dev_list[dev_number]
#Trigger the device to work
#If the SwitchBot address is known you can run this command directly without scanning
trigger_device(bluetooth_adr)
Après le changement (commentez les lignes 210 et suivantes et réécrivez pour lire et écrire le fichier)
if not dev_list:
print("No SwitchBot nearby, exit")
sys.exit()
with open("/home/pi/iot/python-host/ondo.txt","w") as f:
f.write("")
with open("/home/pi/iot/python-host/ondo.txt","a") as f:
for idx, val in enumerate(dev_list):
f.write(str(val[0])+","+str(val[1])+","+str(val[2])+"\n")
#for idx, val in enumerate(dev_list):
# print(idx, val)
# dev_number = int(input("Input the device number to control:"))
# if dev_number >= len(dev_list) :
# print("Input error, exit")
# bluetooth_adr = dev_list[dev_number]
#Trigger the device to work
#If the SwitchBot address is known you can run this command directly without scanning
# trigger_device(bluetooth_adr)
Réécrire la ligne 114 Changer avant
elif dev_type == 'T':
meter_list.append([mac,"Humiture:%.1f'C %d%%"%(meterTemp, meterHumi)])
if ord(dev_type) == ord('L') + 128:
Après le changement
elif dev_type == 'T':
meter_list.append([mac,meterTemp, meterHumi])
if ord(dev_type) == ord('L') + 128:
Après avoir changé le code, vérifiez le fonctionnement.
sudo python switchbot_meter.py
Assurez-vous qu'il fonctionne sans erreurs.
Confirmez que le résultat est affiché dans ondo.txt.
cat ondo.txt
Ce n'est pas grave si l'adresse MAC, la température et l'humidité sont affichées dans cet ordre comme indiqué ci-dessous.
f2:4c:0a:14:24:13,27.5,47
Ce qui précède signifie que le thermomètre à f2: 4c: 0a: 14: 24: 13 a enregistré 27,5 degrés et 47% d'humidité.
Par exemple, vous pouvez obtenir la température et l'humidité en l'exécutant régulièrement avec cron. Cette fois, je le sortie dans un fichier texte, mais il peut être bon de le sortir dans sqlite3 etc. et d'accumuler les données de température.
Maison Iot Température et humidité thermomètre Switchbot humidimètre switchbot Iot débutant Tarte Razz Accueil Iot Piratage de la maison
Recommended Posts