Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:40
Para un proyecto escolar, tuvimos que hacer un dispositivo IoT con un sitio web para visualizar la información recopilada de una manera agradable. Elegí hacer una estación meteorológica con una Raspberry Pi 3 con Flask para el sitio web receptivo, MySQL (MariaDB) para mi base de datos. y una secuencia de comandos de Python para recopilar información con todos mis sensores. Me tomó alrededor de 2 semanas de principio a fin para completar.
Nos animaron a hacer un instructivo para compartir nuestro progreso con el resto de la comunidad de bricolaje, ¡así que aquí está!
Paso 1: Selección de piezas, herramientas y materiales
Primero necesitaba averiguar qué tipo de sensores eran esenciales para una estación meteorológica y decidí que quería medir todos los siguientes datos:
- Temperatura
- Presión del aire
- Humedad
- Velocidad del viento
- Índice UV
Aquí están todas las herramientas, materiales y piezas que utilicé
Partes:
- DHT22 / AM2302 para lecturas de temperatura y humedad. (15 euros)
- Adafruit BMP280 para presión barométrica y temperatura. (12 euros)
- Adafruit SI1145 para medir el índice UV. (10 euros)
- Anemómetro analógico Adafruit para medir la velocidad del viento (50 EUR)
- Un MCP3008 para convertir señales analógicas a digitales.
- Resistencia de 10kOhmios como pull-up para mi AM2302.
- Un adaptador de 9 V para 'alimentar' el anemómetro
- Un adaptador de 5 V para Raspberry Pi
- Raspberry Pi 3 (cualquier Pi debería ser suficiente)
Materiales:
Un recipiente de plástico para guardar todo y hacerlo a prueba de lluvia
Instrumentos:
- Soldador y estaño
- Multimetro
- Silicona
- Algo de cinta
Entonces, en total, todos los sensores me costaron alrededor de 85 euros, lo cual es bastante elevado, pero realmente quería incluir un medidor de velocidad del viento adecuado, así que creo que vale la pena.
Puede encontrar una lista más detallada con las tiendas en las que puede comprar todo, en el pdf a continuación:)
Paso 2: Conexión de nuestro hardware
Por supuesto que vamos a necesitar conectar nuestros sensores a nuestra Raspberry Pi, arriba puedes ver el esquema de fritzing que puedes seguir para conectar todo correctamente.
En el esquema, puede ver que se usa una batería de 9 V como fuente de alimentación para nuestro anemómetro, es mejor usarla correctamente solo para pruebas, ya que no durará demasiado, puede reemplazar la batería de 9 V por cualquier fuente de alimentación de 7-12 V que desee. escoger.
Nuestros sensores SI1145 y BMP280 se controlarán mediante el protocolo I2C, ya que es el más fácil de trabajar y necesita menos cables.
El anemómetro en el esquema se muestra aquí como un LDR, ya que tiene un cableado prácticamente idéntico al anemómetro y no pude encontrar un anemómetro real para poner mi esquemático fritzing:)
Paso 3: Conectando todo: Configurando el Pi
En primer lugar, debemos asegurarnos de estar conectados a Internet.
Para hacer esto en la terminal, puede ir a su archivo wpa_supplicant ejecutando el siguiente comando: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
En el archivo puede agregar esto:
network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
También puede optar por establecer su dirección IP en estática para facilitar el acceso en el futuro. Para hacer esto, debe ir al archivo dhcpcd.conf ejecutando este comando: sudo nano /etc/dhcpcd.conf
Agregue esto en el archivo:
interfaz wlan0static ip_address = 192.168.0.100 / 24
Luego nos aseguraremos de que los paquetes que ya están instalados en nuestra Pi estén completamente actualizados:
sudo apt-get update && sudo apt-get upgrade
Esto puede llevar un tiempo, así que no te preocupes.
Deberá habilitar el protocolo I2C y SPI dentro de la configuración de raspi. Puede hacerlo ejecutando este comando:
sudo raspi-config
Luego vaya a las opciones de interfaz y habilite tanto I2C como SPI
Primero necesitas crear un directorio en el que quieras poner tu proyecto (lo llamaremos 'estación meteorológica'):
estación meteorológica cd ~ mkdir estación meteorológica cd
Luego configuramos nuestro entorno virtual python3:
python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env / bin / activepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector -python-rf
Luego, necesitaremos instalar algunos otros paquetes que son necesarios para que todo funcione correctamente:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Ahora vamos a hacer nuestra base de datos:
Sin embargo, todavía necesitamos configurar nuestra base de datos. Puede hacerlo ejecutando el archivo code / sql ubicado en la carpeta 'sql' de esta manera:
sudo mariadb <sql / db_init.sql
La consulta sql creará las tablas que necesitamos y también creará algunos usuarios para hacer que nuestra base de datos sea un poco más segura.
Esto también incluirá algunos datos del historial de muestra en nuestra base de datos para asegurarnos de que nuestro sitio web muestre todo correctamente cuando aún no se hayan recopilado datos reales.
Para instalar Adafruit_GPIO y MyPyDHT necesitará hacer algunas cosas más. Primero regrese a su carpeta de uso y luego:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install
cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install
Paso 4: Software / Código
Necesitamos configurar el back-end para la estación meteorológica, que incluye:
- Una base de datos mariadb para almacenar las lecturas de mis sensores y algunas otras cosas menores - Un servicio de matraz para ejecutar el sitio web - Otro servicio que ejecuta el archivo Python que lee todos los sensores. Arriba puede ver mi configuración de base de datos muy simple. La tabla de usuarios es innecesario, pero como quería un sistema de inicio de sesión porque yo (aunque todos los datos son iguales para todos los usuarios) decidí incluirlo en mi base de datos.
Puedes seguir adelante y clonar el código de mi proyecto desde Github en la carpeta de tu proyecto. Ve a tu carpeta de usuario y ejecuta: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp / * weatherstation /
Luego navegue hasta la carpeta conf en la estación meteorológica y todos los archivos en la carpeta.
Cambie todas las apariciones de "NOMBRE DE USUARIO" a su nombre de usuario
También necesitará copiar ambos archivos.service a systemd y probarlos así:
sudo cp conf / weatherstation - *. service / etc / systemd / system / sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service
sudo systemctl estado meteorológico- *
Luego necesitamos editar la configuración de nginx.
sudo cp conf / nginx / etc / nginx / sites-available / weatherstationsudo rm / etc / nginx / sites-enabled / defaultsudo ln -s / etc / nginx / sites-available / weatherstation / etc / nginx / sites-enabled / weatherstationsudo systemctl reiniciar nginx.servicesudo systemctl status nginx.service
Si todo salió bien, debería poder ejecutar esto e imprimir un poco de html en la terminal:
wget -qO - localhost
Todo debería estar funcionando bien ahora. Puede navegar hasta la dirección IP de su Raspberry Pi que configuramos al principio y recibir una pantalla de inicio de sesión.
Paso 5: el recinto
Ahora que todo funciona, debemos poner todo en algo.
Elegí una caja de plástico simple con una tapa transparente, con el anemómetro montado encima y un pequeño recipiente secundario que contiene los sensores DHT22 y BMP280.
Estos sensores están montados dentro de un contenedor separado porque deben estar al aire libre (sin que llueva), pero el raspberry pi no necesita estarlo.
Como puede ver, agregué un poco de silicona alrededor de los bordes para hacerlo impermeable y también hice algunos agujeros en el recipiente superior para que entre aire fresco.
Espero que haya disfrutado de mi guía sobre cómo construir una estación meteorológica, puede ser un poco difícil ya que es la primera vez que escribo una guía como esta, pero espero que les haya gustado de todos modos:)
Recomendado:
Estación meteorológica NaTaLia: estación meteorológica con energía solar Arduino hecha de la manera correcta: 8 pasos (con imágenes)
Estación meteorológica NaTaLia: estación meteorológica con energía solar Arduino hecha de la manera correcta: después de 1 año de operación exitosa en 2 ubicaciones diferentes, estoy compartiendo los planes del proyecto de mi estación meteorológica con energía solar y explicando cómo evolucionó a un sistema que realmente puede sobrevivir durante mucho tiempo períodos de energía solar. Si tu sigues
Estación meteorológica de bricolaje y estación de sensor WiFi: 7 pasos (con imágenes)
Estación meteorológica de bricolaje y estación de sensor WiFi: en este proyecto, le mostraré cómo crear una estación meteorológica junto con una estación de sensor WiFi. La estación de sensores mide los datos de temperatura y humedad locales y los envía, a través de WiFi, a la estación meteorológica. La estación meteorológica muestra t
Estación meteorológica IoT con RPi y ESP8266: 10 pasos
Estación meteorológica de IoT con RPi y ESP8266: en tutoriales anteriores, hemos estado jugando con NodeMCU, sensores y aprendiendo cómo capturar y registrar datos en ThingSpeak (una plataforma de Internet de las cosas (IoT) que le permite recopilar y almacenar datos de sensores en la nube y desarrollar aplicaciones de IoT): IOT
Estación meteorológica ESP8266 que muestra datos en un sitio web: 7 pasos
Estación meteorológica ESP8266 que muestra datos en un sitio web: Nota: Partes de este tutorial pueden estar disponibles en formato de video en mi canal de YouTube - Tech Tribe En este instructivo, mostraré cómo hacer una estación meteorológica que envíe datos directamente a su sitio web . Por lo tanto, necesitará su propio dominio (Ej .:
Estación meteorológica RPi y reloj digital: 4 pasos (con imágenes)
Estación meteorológica RPi y reloj digital: este es un proyecto rápido y fácil de hacer, y una buena pantalla para presumir. Muestra la hora, las condiciones meteorológicas y la temperatura. Y si te gusta lo que ves, sígueme en Instagram y Twitter (@ Anders644PI) para estar al día con lo que gano. C