dimanche 22 janvier 2017

Surveiller la température et l'humidité extérieure avec une sonde Oregon Scientific THGR 810

Le but est de surveiller la température extérieure et d'utiliser une page web pour afficher les valeurs, mais aussi générer un graph de l'évolution de la température.


On utilisera la sonde Oregon Scientific THGR 810 Détecteur de Température/Humidité
  • Description du produit: Oregon Scientific - THGR 810
  • Type de produit: Détecteur de température/humidité
  • Relevé de température: -30°C à + 60 °C
  • Relevé hygrométrique (en %): 25% à 90%
  • Canaux sélectionnables: Jusqu'à 10
  • Portée: 100 mètres
  • Fréquence de transmission: 433 MHz
  • Gamme de l'humidité: 5% à 95%
  • Résolution de l'humidité: 1%
  • Fréquence de transmission radio: 433 MHz
  • Alimentation: 2x Piles AAA 1,5 V
  • Dimensions: 92 x 60 x 20 mm
  • Poids: 62 g
On la trouve sur Amazon au prix de 32 euros. C'est le prix le plus bas, sinon, utiliser le site camelcamelcamel pour surveiller le prix.

Voici à quoi elle ressemble:

Oregon Scientific THGR 810



Afin de récupérer les valeurs, nous utiliserons le RFXCOM 433 MHz:

http://www.planete-domotique.com/rfxcom/


On utilisera le script python RFXcmd suivant :
https://github.com/xenonserge/rfxcmd-restored-wiki

Pour commencer, vous devez avoir installé Python 2.7.

Vérifier que c'est le cas avec la commande suivante, et l'installer dans le cas échéant :

$ python -V

Installer Python-serial qui permettra de communiquer avec le RFXCom.

# yum install pyserial

Cloner le repo RFXCmd dans votre home directory ou dans /opt

# cd /opt
# git clone https://github.com/digiltd/rfxcmd.git

Trouver le device RFXCom sur le port USB auquel il est branché:

$ lsusb
Bus 002 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 002 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 002 Device 002: ID 8087:8002 Intel Corp.

Chercher sur le port USB exact:

$ dmesg |grep idVendor=0403
[    4.240141] usb 2-1.7: New USB device found, idVendor=0403, idProduct=6001

Trouver sur quel device est attaché le RFXCom:

$ dmesg | grep '2-1.7'
[    4.144360] usb 2-1.7: new full-speed USB device number 4 using ehci-pci
[    4.240141] usb 2-1.7: New USB device found, idVendor=0403, idProduct=6001
[    4.240145] usb 2-1.7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.240147] usb 2-1.7: Product: RFXtrx433
[    4.240149] usb 2-1.7: Manufacturer: RFXCOM
[    4.240150] usb 2-1.7: SerialNumber: A14GVIX
[   18.770258] ftdi_sio 2-1.7:1.0: FTDI USB Serial Device converter detected
[   18.770345] usb 2-1.7: Detected FT232RL
[   18.770848] usb 2-1.7: FTDI USB Serial Device converter now attached to ttyUSB0

Vérifier le status du RFXCom:

# cd /opt/rfxcmd/
# ./rfxcmd.py -d /dev/ttyUSB0 -f -v
RFXCMD Version 0.3 (739)
------------------------------------------------
Send                    = 0D 00 00 00 02 00 00 00 00 00 00 00 00 00
Date/Time               = 2017-08-27 09:50:42
Packet Length           = 0D
Packettype              = Interface Control


Vérifier que les valeurs des sondes arrivent bien sur le RFXCom:

# ./rfxcmd.py -d /dev/ttyUSB0 -l -v
RFXCMD Version 0.3 (739)
------------------------------------------------
Received                = 14 01 00 00 02 53 0D 00 00 27 00 01 03 1C 03 00 00 00 00 00 00
Date/Time               = 2017-08-27 09:52:46
Packet Length           = 14
Packettype              = Interface Message
------------------------------------------------
Received                = 0A 52 02 00 8C 01 00 C3 4A 03 69
Date/Time               = 2017-08-27 09:53:30
Packet Length           = 0A
Packettype              = Temperature and humidity sensors
Subtype                 = THGR810, THGN800
Seqnbr                  = 00
Id                      = 8C01
Temperature             = 19.5 C
Humidity                = 74%
Humidity Status         = Wet
Battery                 = 9
Signal level            = 6
------------------------------------------------
Received                = 0A 52 02 01 8C 01 00 C3 4A 03 69
Date/Time               = 2017-08-27 09:54:23
Packet Length           = 0A
Packettype              = Temperature and humidity sensors
Subtype                 = THGR810, THGN800
Seqnbr                  = 01
Id                      = 8C01
Temperature             = 19.5 C
Humidity                = 74%
Humidity Status         = Wet
Battery                 = 9
Signal level            = 6


Prochaine étape: config.xml et page web ...