====== Sonde de température ====== ---- ===== DS18B20 ===== Ce capteur peut se présenter sous sa forme de simple composant ou bien de câble étanche. {{ :all:bibles:raspberry:sonde_ds18b20.jpg?600 |}} ==== Brochage ==== {{ :all:bibles:raspberry:ds18b20.png?400 |}} ==== Branchement ==== {{ :all:bibles:raspberry:schema.jpg?600 |}} Raccordement entre la masse (PIN 6 ou bien PIN 9) et le +3,3V (PIN 1) du raspberry. Dans notre cas utilisation du port GPIO 4 sur la PIN 7. Une résistance de 4,7 kΩ est à insérer entre le +3,3V (PIN 1) et le GPIO utilisé (PIN 7 dans notre cas). ==== Prise en compte de la sonde ==== === Installation des drivers 1-wire === modprobe w1-gpio modprobe w1-therm === Vérification === Pour vérifier que la sonde est bien reconnue : cd /sys/bus/w1/devices/ ls cd 28-00000b471676 cat w1_slave ==== Utilisation GPIO autre que GPIO 4 ==== === Allocation dynamique === sudo dtoverlay w1-gpio gpiopin=4 pullup=0 # GPIO4 pin 7 sudo dtoverlay w1-gpio gpiopin=17 pullup=0 # GPIO17 pin 11 sudo dtoverlay w1-gpio gpiopin=27 pullup=0 # GPIO27 pin 13 === Au démarrage === Editer le fichier /boot/config.txt sur Raspberry PI OS ou /boot/firmware/config.txt sur Ubuntu et ajouter la ligne suivante à la fin du fichier : dtoverlay=w1-gpio,gpiopin=x [[https://pinout.xyz/pinout/1_wire|Source]] ==== Dépannage ==== Si la sonde n'est pas reconnue éditer le fichier /etc/modules pour y ajouter les 2 lignes suivantes : w1-therm w1-gpio pullup=1 Editer le fichier /boot/config.txt sur Raspberry PI OS ou /boot/firmware/config.txt sur Ubuntu et ajouter la ligne suivante à la fin du fichier : [all] dtoverlay=w1-gpio Redémarrer le raspberry pi et recommencer la vérification. ==== SNMP ==== === Installation packages === sudo apt-get install snmp snmpd snmp-mibs-downloader Editer le fichier /etc/default/snmpd pour ajouter « extend » après le -I après avoir enlevé le commentaire en début de ligne. # snmpd options (use syslog, close stdin/out/err). SNMPDOPTS=’-Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I extend -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid’ === Installation scripts === cd /opt/ sudo git clone -b 1-0-release https://github.com/NorwegianCreations/snmpmoni.git cd snmpmoni/ sudo cp config/snmpd.conf.example /etc/snmp/snmpd.conf === Configuration === Editer le fichier /etc/snmp/snmpd.conf pour autoriser la boucle locale ainsi que le range IP de destination du RaspBerry Pi : rocommunity public 127.0.0.1 rocommunity public 10.0.0.0/8 === Mapping === Il faut maintenant créer le mapping entre l’ID de la sonde DS18B20 et SNMP. Lister la/les sondes(s) de température reconnues par le système : ls -l /sys/bus/w1/devices/28-* lrwxrwxrwx 1 root root 0 oct. 15 09:44 /sys/bus/w1/devices/28-03119779959b -> ../../../devices/w1_bus_master1/28-03119779959b Noter l'ID unique de la sonde : 28-03119779959b dans notre cas de figure. Editer le fichier /opt/snmpmoni/mapping/iso.3.6.1.4.1.50083.100.4.1.1.1.7.1 et remplacer le contenu par l'ID de la sonde DS18B20 : 28-03119779959b La configuration permet de récupérer jusqu’à 8 sondes de température référencées sous les OID suivants : iso.3.6.1.4.1.50083.100.4.1.1.1.7.1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.2 iso.3.6.1.4.1.50083.100.4.1.1.1.7.3 iso.3.6.1.4.1.50083.100.4.1.1.1.7.4 iso.3.6.1.4.1.50083.100.4.1.1.1.7.5 iso.3.6.1.4.1.50083.100.4.1.1.1.7.6 iso.3.6.1.4.1.50083.100.4.1.1.1.7.7 iso.3.6.1.4.1.50083.100.4.1.1.1.7.8 L'utilisation de ces OID permet de ne pas rencontrer de conflit d’OID sur le système. Redémarrer le service SNMP : /etc/init.d/snmpd restart === Interrogation === L'interrogation peut se faire par la commande snmpwalk (package snmp) : snmpwalk -v 1 -c public 127.0.0.1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1 On obtient le résultat : iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.1.0 = INTEGER: 1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.2.5.116.104.101.114.109 = STRING: "/bin/bash" iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.3.5.116.104.101.114.109 = STRING: "/opt/snmpmoni/bin/ds18b20.sh -g iso.3.6.1.4.1.50083.100.4.1.1.1.7.1" iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.4.5.116.104.101.114.109 = "" iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.5.5.116.104.101.114.109 = INTEGER: 5 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.6.5.116.104.101.114.109 = INTEGER: 1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.7.5.116.104.101.114.109 = INTEGER: 1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.20.5.116.104.101.114.109 = INTEGER: 4 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.2.1.21.5.116.104.101.114.109 = INTEGER: 1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.3.1.1.5.116.104.101.114.109 = STRING: "22.375" iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.3.1.2.5.116.104.101.114.109 = STRING: "22.375" iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.3.1.3.5.116.104.101.114.109 = INTEGER: 1 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.3.1.4.5.116.104.101.114.109 = INTEGER: 0 iso.3.6.1.4.1.50083.100.4.1.1.1.7.1.4.1.2.5.116.104.101.114.109.1 = STRING: "22.375" où l'on trouve la température de 22,375 °C ---- [[all:bibles:materiel:raspberry:sonde_temperature|Haut de page]] ===== BME280 ===== Le BME280 est un capteur plus complet qui permet d'obtenir la température, la pression et l'humidité via l'interface I2C. ==== Brochage ==== {{ :all:bibles:materiel:raspberry:bme280.jpg?200 |}} ==== Branchement ==== ^ BME280 ^ Raspberry PI ^ Description ^ | VCC | Pin 1 | 3,3 V | | GND | Pin 6 ou 9 | Masse | | SCL | Pin 5 | I2C SCL | | SDA | Pin 3 | I2C SDA | {{ :all:bibles:materiel:raspberry:bme280.png?400 |}} ==== Prise en compte ==== === Activer interface I2C === Activer l'interface I2C à l'aide de l'outil de configuration. sudo raspi-config === Récupérer l'adresse du capteur === Lancer la commande suivante : sudo apt install i2c-tools sudo i2cdetect -y 1 Par défaut on doit trouver la sonde bme280 à l'adresse 76 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 -- ==== Dépannage ==== === ImportError: No module named smbus === sudo apt-get install python-pip sudo apt install python-smbus ---- [[all:bibles:materiel:raspberry:sonde_temperature|Haut de page]] ===== Sources ===== * [[https://www.framboise314.fr/mesure-de-temperature-1-wire-ds18b20-avec-le-raspberry-pi/|Mesure de température 1-wire DS18B20 avec le Raspberry Pi]] * [[https://www.framboise314.fr/poller-des-sondes-de-temperature-ds18b20-en-snmp/|Poller des sondes de température DS18B20 en SNMP]] * [[https://www.raspberrypi-spy.co.uk/2016/07/using-bme280-i2c-temperature-pressure-sensor-in-python/|BME280 en Python]] ---- [[all:bibles:materiel:raspberry:sonde_temperature|Haut de page]]