Table des matières
Sonde de température
DS18B20
Brochage
Branchement
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
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
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
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 |
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 --





