Python Language
Programación IoT con Python y Raspberry PI
Buscar..
Ejemplo - sensor de temperatura
Interfaz de DS18B20 con Raspberry pi
Conexión de DS18B20 con Raspberry pi
Se puede ver que hay tres terminales.
- Vcc
- Gnd
- Datos (protocolo de un cable)
R1 es una resistencia de 4.7k ohmios para elevar el nivel de voltaje
- Vcc debe conectarse a cualquiera de los pines 5v o 3.3v de la Raspberry pi (PIN: 01, 02, 04, 17).
- Gnd debe estar conectado a cualquiera de los pines Gnd de Raspberry pi (PIN: 06, 09, 14, 20, 25).
- Los datos deben estar conectados a (PIN: 07)
Habilitando la interfaz de un cable desde el lado RPi
Inicie sesión en Raspberry pi utilizando putty o cualquier otro terminal linux / unix.
Después de iniciar sesión, abra el archivo /boot/config.txt en su navegador favorito.
nano /boot/config.txt
Ahora agregue esta línea
dtoverlay=w1–gpio
al final del archivo.Ahora reinicie el Raspberry pi
sudo reboot
.Inicia sesión en Raspberry pi y ejecuta
sudo modprobe g1-gpio
Luego ejecute
sudo modprobe w1-therm
Ahora vaya al directorio / sys / bus / w1 / devices
cd /sys/bus/w1/devices
Ahora descubrirá un directorio virtual creado con su sensor de temperatura a partir de 28 - ********.
Ir a este directorio
cd 28-********
Ahora hay un nombre de archivo w1-slave , este archivo contiene la temperatura y otra información como CRC.
cat w1-slave
.
Ahora escribe un módulo en python para leer la temperatura
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)
Sobre el módulo de python se imprimirá la temperatura frente a la dirección durante un tiempo infinito. El parámetro RATE se define para cambiar o ajustar la frecuencia de la consulta de temperatura del sensor.
Diagrama de pin GPIO