====== 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]]