En este tutorial se explica cómo dar el Raspberry PI sensor temperatura, humedad y brillo. Fácilmente podemos convertir en nuestra frambuesa en una estación meteorológica.
Requisitos de hardware:
- Sensor de temperatura y humedad SHT21 I2C. Como alternativa, puede utilizar un sensor de temperatura 1-wire
- Sensor de luminosidad I2C YL-40
- 4 cables
- ILI9341 de pantalla SPI (320x240px TFT Color)
- (Opcional) Sombrero de IRP-102 tablero. Esta tabla nos hace fácil el trabajo de conexión de todos los dispositivos para este proyecto y también nos permite tener un reloj RTC.
Como alternativa al dispositivo que SHT21 incorpora sensor de temperatura y humedad, se puede utilizar una sonda de temperatura 1-wire. Código fuente desarrollado en este look tutorial para un sondeo de 1-wire no debería detectar el SHT21.
La aplicación que hemos desarrollado es para Python por lo que es necesario instalar desde el repositorio. Este tutorial se ha realizado con el sistema operativo de Raspbian. Como con cualquier instalación para obtener las últimas versiones de los paquetes que desea instalar primero funcionará los siguientes pasos:
sudo apt-get update
Y si desea realizar una actualización de paquetes ya instalados te quedas:
sudo apt-get - y actualización
Si no lo tienes instalado aún debe ejecutar Python (Python 2 versión):
sudo apt-get install python-dev
1. activar I2C
Tenemos que comprobar que bus I2C está habilitado para ser utilizado por los sensores. Si no, debe para encender. Ejecute al Asistente para la configuración de esta manera.
sudo raspi-config
Imagen 1 de configuración RTC
Seleccione la opción 9: opciones avanzadas de. Luego seleccione la opción A7: I2C.
Imagen 2 de configuración RTC
Entonces se preguntará si queremos activar I2C. Elija sí.
Imagen 3 de configuración RTC
Salir de raspi-config. En el siguiente reinicio de los módulos del sistema i2c se cargará por defecto.
2. instalar herramientas de i2c
Se trata de un paquete de utilidad para el manejo de I2C.
sudo apt-get install i2c-herramientas
Cuando haya terminado el proceso de instalación, escriba:
i2cdetect -y 1
Este comando analiza todos los dispositivos conectados al bus I2C. Significa que el segundo parámetro el ID de BUS, tenemos que utilizar 1 para Raspberry PI B +, B (rev 2) y A +, para el viejo modelo B (rev 1) utilizamos 0 como bus ID. Vamos a llegar a algo como eso
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- 6f
70: -- -- -- -- -- -- -- --
Tienes que comprobar se muestra el dispositivo en posición 6F . Esto significa que se han detectado RTC.
3. módulo de carga en el arranque
Editar el archivo rc.local
sudo nano /etc/rc.local
y agregue las líneas siguientes justo antes de la exit 0
# Dispositivos I2C
modprobe i2c-dev
Si el proyecto que estamos llevando a cabo con una sonda 1-wire que más añadir las siguientes líneas de este archivo:
# Sensor de temperatura
modprobe w1-gpio subida = 1
modprobe w1-therm strong_pullup = 1
Salir del editor de guardar los cambios y reiniciar el sistema el uso
sudo reboot
Ahora instalamos el controlador para gestionar YL-40 (sensor del brillo) desde repositorios:
sudo apt-get install python-smbus
Si éxito, cuando intentamos otra vez
i2cdetect -y 1
nosotros debemos obtener:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- UU
70: -- -- -- -- -- -- -- --
UU caracteres significa que el dispositivo en esta posición está en uso.
4. SPI pantalla instalación para mostrar los datos de sensor
Para operar la pantalla por primera vez puedes seguir el tutorial con 2.2″ LCD SPI en Python con Raspberry Pi
5. descargar código fuente una vez que tengamos todo funcionando: Python para la aplicación, I2C para sensores y SPI para la exhibición, hemos simplemente descargar el código fuente utilizado para tener disponible en el siguiente enlace:http://ingeniapp.com/sources/weather_station/
o simplemente
wget http://ingeniapp.com/sources/weather_station/iRP102-weather-station.zip
descomprimir iRP102-tiempo-station.zip
CD iRP102-estación meteorológica
sudo python tiempo-station.py
de la cáscara.
6. Descripción de los módulos de aplicación
gy21.py: módulo para la lectura de los sensores I2C (temperatura y humedad). +
Función para obtener el valor de la humedad:
DEF read_humidity(self):
Función para obtener el valor de la temperatura:
DEF read_temperature(self):
Función para obtener el valor de brillo:
DEF read_ain()
weather_station.py: aplicación principal. Es importante recordar que usted puede utilizar la pantalla y sensores deben ser módulos importados:
importar Adafruit_ILI9341 como TFT
importación RPi.GPIO como RPGPIO
importación de Adafruit_GPIO. SPI como SPI
importación gy21
de smbus importar SMBus
Función a la que muestra valores de temperatura y humedad. También se muestran la fecha y hora actuales. Dependiendo de los sensores detectados durante el arranque de la aplicación, usted puede tomar el valor de la sonda 1-wiretemperature si SHT21 sensor no connencted.
DEF show_time_temp():
Definimos este módulo como el principal de la aplicación y sus contenidos contienen el hilo principal:
Si __name__ == "__main__":
Nota: hemos añadido un parámetro adicional denominado 'bgcolor' en el 'def draw_rotated_text' (escrito en la función de controlador de pantalla) para permitir cambiar el color de fondo del texto. Así lo indican el color en el que estamos escribiendo.
DEF draw_rotated_text (imagen, texto, posición, ángulo, font, fill=(255,255,255), bgtext=(255,255,255,255)):