Python Language
Programmation IoT avec Python et Raspberry PI
Recherche…
Exemple - Capteur de température
Interfaçage de DS18B20 avec Raspberry Pi
Connexion de DS18B20 avec Raspberry Pi
Vous pouvez voir qu'il y a trois terminaux
- Vcc
- Gnd
- Données (protocole à un fil)
R1 est une résistance de 4,7k ohms pour augmenter le niveau de tension
- Vcc doit être connecté à l'une des broches 5v ou 3.3v de Raspberry pi (PIN: 01, 02, 04, 17).
- Gnd devrait être connecté à n’importe quelle punaise de Raspberry pi (PIN: 06, 09, 14, 20, 25).
- DATA doit être connecté à (PIN: 07)
Activer l'interface à un fil du côté RPi
Connectez-vous à Raspberry Pi en utilisant un mastic ou tout autre terminal Linux / Unix.
Après la connexion, ouvrez le fichier /boot/config.txt dans votre navigateur préféré.
nano /boot/config.txt
Ajoutez maintenant la ligne
dtoverlay=w1–gpio
à la fin du fichier.Maintenant, redémarrez le Raspberry Pi
sudo reboot
.Connectez-vous à Raspberry pi et exécutez
sudo modprobe g1-gpio
Ensuite, lancez
sudo modprobe w1-therm
Maintenant, allez dans le répertoire / sys / bus / w1 / devices
cd /sys/bus/w1/devices
Vous allez maintenant découvrir un répertoire virtuel créé à partir de votre capteur de température à partir du 28 - ********.
Allez dans ce répertoire
cd 28-********
Maintenant, il y a un nom de fichier w1-slave , Ce fichier contient la température et d'autres informations comme le CRC.
cat w1-slave
.
Maintenant, écrivez un module en python pour lire la température
import glob
import time
RATE = 30
sensor_dirs = glob.glob("/sys/bus/w1/devices/28*")
if len(sensor_dirs) != 0:
while True:
time.sleep(RATE)
for directories in sensor_dirs:
temperature_file = open(directories + "/w1_slave")
# Reading the files
text = temperature_file.read()
temperature_file.close()
# Split the text with new lines (\n) and select the second line.
second_line = text.split("\n")[1]
# Split the line into words, and select the 10th word
temperature_data = second_line.split(" ")[9]
# We will read after ignoring first two character.
temperature = float(temperature_data[2:])
# Now normalise the temperature by dividing 1000.
temperature = temperature / 1000
print 'Address : '+str(directories.split('/')[-1])+', Temperature : '+str(temperature)
Le module ci-dessus python imprimera la température en fonction de l'adresse pour une durée infinie. Le paramètre RATE est défini pour modifier ou ajuster la fréquence de la requête de température du capteur.
Diagramme de broche GPIO