Tabla de contenido:

Fanair: una estación meteorológica para tu habitación: 6 pasos (con imágenes)
Fanair: una estación meteorológica para tu habitación: 6 pasos (con imágenes)

Video: Fanair: una estación meteorológica para tu habitación: 6 pasos (con imágenes)

Video: Fanair: una estación meteorológica para tu habitación: 6 pasos (con imágenes)
Video: Escapar de los piratas informáticos Volver a la rutina de tareas.. Dead pmc's inc 2024, Noviembre
Anonim
Fanair: una estación meteorológica para tu habitación
Fanair: una estación meteorológica para tu habitación

Hay innumerables formas de averiguar el clima actual, pero solo conoce el clima afuera. ¿Qué pasa si quieres saber el clima dentro de tu casa, dentro de una habitación específica? Eso es lo que intento resolver con este proyecto.

Fanair utiliza múltiples sensores para detectar:

  • temperatura
  • humedad
  • luz
  • ciertos gases
  • presión del aire

Es muy compacto y hace uso de la Raspberry Pi 3 B, para obtener los valores, guardarlos en una base de datos MySQL y luego hacerlos fácilmente disponibles en un sitio web. En el código y el sitio web se incluye la capacidad de obtener datos meteorológicos reales para su ubicación, de modo que el sitio web también se pueda usar para verificar el clima exterior.

Paso 1: obtenga todos los elementos necesarios

Obtenga todos los elementos necesarios
Obtenga todos los elementos necesarios

En primer lugar, necesitará dispositivos electrónicos básicos como cables / cables de puente. Si planea soldar todo junto como un proyecto permanente, obviamente también necesitará un soldador, soldadura y, para su propia comodidad, una PCB para soldar todo.

Para artículos más específicos, hice esta Lista de materiales.

  • Frambuesa Pi 3 B
  • MPC3008 - ADC de 8 canales y 10 bits
  • Sensor de temperatura y humedad del termómetro AM2301
  • Placa de circuito impreso WR Rademacher WR-tyoe 930-1
  • Estuche ABS para prototipos (negro)
  • LDR
  • Sensor de gases MQ135
  • 2x BC517 Transistor Darlington
  • LED RGB
  • Paquete de resistencias
  • Zumbador
  • Alambres
  • Barómetro BMP280
  • Ventilador USB silencioso (5 V)

En conjunto, esto debería costar unos 110 €. Tenga en cuenta que el precio total es una aproximación. Además, mi proyecto tiene una pantalla LCD en la foto pero no está conectada porque no había suficiente espacio en mi caso, por lo que no está incluido en el instructivo.

Paso 2: Prepare su Raspberry Pi

Obtenga su sistema operativo Raspian Jessie con Pixel del sitio oficial de Raspberry Pi y una vez descargado, descomprímalo. Obtendrá un archivo de imagen. Para obtenerlo en el Pi, tendrá que escribirlo en la tarjeta SD usando Win32 Disk Imager. Una vez que esté instalado, seleccione el archivo de imagen y la unidad en la que reside su tarjeta SD. Luego presione escribir y espere hasta que termine.

Cuando haya terminado, haga clic en su tarjeta SD en el Explorador de archivos y abra el archivo llamado 'cmdline.txt', vaya al final del archivo de texto justo antes de rootwait y escriba 'ip = 254.169.10.2' con espacios alrededor, por supuesto. Después de guardarlo, debe hacer clic derecho en algún lugar dentro de la ventana y crear un nuevo archivo llamado 'ssh'. Tenga en cuenta que este archivo no tiene una extensión de archivo. Para asegurarse de que no tenga una extensión, haga clic en 'ver' en el explorador de archivos y marque 'archivos ocultos'. Si lo hace, cámbiele el nombre y elimine la extensión para que diga 'ssh'.

Una vez hecho esto, finalmente puede colocar su tarjeta SD en la Raspberry Pi. Descarga un cliente ssh (recomiendo MobaXterm). Y conéctese usando ssh con la IP que configuró anteriormente '254.169.10.2'. El nombre de usuario es 'pi', la contraseña 'raspberry'. Si lo desea, puede cambiar la contraseña escribiendo el comando 'sudo passwd' en la terminal y siguiendo las instrucciones. Como vamos a utilizar una buena parte de la tarjeta SD para Fanair, debes ampliar el almacenamiento disponible escribiendo 'sudo rapi-config', seleccionando 'Opciones avanzadas' y luego 'Expandir sistema de archivos'. Si se le solicita, reinicie.

Utilizaremos la interfaz de 1 cable, SPI e I2C. ¡Para poder usarlos, primero debe configurarlos!

Paso 3: conecta todo junto

Conecte todo junto
Conecte todo junto
Conecte todo junto
Conecte todo junto

¡Es hora de hacer un circuito! La primera vez probablemente debería probarlo en una placa de pruebas, pero si no tiene tiempo para eso, puede intentar soldarlo.

El circuito que necesitará se parece al anterior, por conveniencia también se incluye una versión de tablero.

Paso 4: crea tu base de datos

Para guardar de manera eficiente todos los datos que recibirá, haremos uso de una base de datos TSQL MySQL. Antes de instalar MySQL, asegurémonos de que todo esté actualizado escribiendo algunos comandos en la terminal:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Acepte todos los mensajes escribiendo 'y' e ingrese.

Para instalar el tipo MySQL:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Cuando se le solicite, cree una contraseña de root de su elección.

Una vez que haya terminado de instalar el inicio de sesión mediante:

'mysql -uroot -p'

Y escribiendo tu contraseña.

¡Obtén el código de Fanair de My Github! Haga clic en 'Clonar o descargar' y luego en 'Descargar ZIP'. Descomprima el código en una carpeta de su elección. La consulta para crear la base de datos completamente operativa está en la carpeta de la base de datos. Abra el archivo, copie el código y péguelo en la terminal con MySQL abierto. ¡Luego haga clic en Enter y la base de datos está lista!

Paso 5: ¡Hora del Código

Para hacer uso de todos los sensores, obviamente necesita ejecutar un programa. Afortunadamente, el código ya está hecho (en su mayor parte) y ya lo descargamos cuando recibimos la consulta SQL de la base de datos.

Como dije, hay algunas cosas que aún deben cambiarse / agregarse para que el programa funcione correctamente. En primer lugar, el programa utiliza la API de Darksky para obtener los datos meteorológicos en función de la longitud y la latitud. Para utilizarlo es necesario registrarse. Las primeras 1000 llamadas son gratuitas y luego cuesta $ 0,0001 por llamada. Escuché que si no paga, su cuenta se bloquea. Para ser justos, $ 0.0001 por llamada es bastante barato. Fanair llama a los datos más recientes cada hora, lo que significa que en un año, si se ejecuta a tiempo completo, solo le costará $ 0,876. También obtienes 41 días gratis si Fanair funciona a tiempo completo.

Una vez registrado, busque su clave API. Busque la longitud y latitud de su ubicación en los mapas de Google o intente buscar en Google. Crea un nuevo archivo de texto en el directorio raíz de Fanair (con clases, main.py…). Nombra el archivo 'key_location.txt'. Abra el archivo de texto y en la primera línea pegue su clave de API Darksky. En la segunda línea pegue su longitud y en la tercera línea pegue su latitud (ambas en formato decimal). Cuando haya terminado, guarde el archivo.

En el mismo directorio, cree otro archivo de texto llamado 'database_dsn.txt'. La primera línea debería decir 'localhost'. La segunda línea es 'raíz'. En la tercera línea, debe escribir la contraseña que creó para la base de datos anteriormente, y en la cuarta y última línea, debe escribir 'fanair'.

Haga clic derecho en el archivo main.py y seleccione editar. Es necesario cambiar 'fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")'. Si siguió la imagen, los primeros 5 valores deben cambiarse de '5, 26, 17, 27, 22, 4' a '20, 21, 26, 19, 13 '. '/ home / muhsin / Applications / Fanair' también debería cambiarse a la ruta raíz de Fanair (donde está main.py). Asegúrate de poner una barra delante de "casa" pero no después de "Fanair".

Ahora bien, todo esto es genial, pero el código debe entrar en el Pi. Afortunadamente para nosotros existe el protocolo sftp. Para poner los archivos en el Pi, use un cliente sftp como FileZilla o, si decidió usar MobaXterm, puede cargar los archivos fácilmente en la interfaz sftp a la izquierda del terminal.

En mi experiencia, no siempre obtengo la fecha y hora correctas en la Raspberry Pi. Para asegurarse de que recibirá la fecha y hora correcta, le sugiero que siga esta guía: Fecha y hora de sincronización de Raspberry Pi.

Y por último, pero no menos importante, es necesario instalar algunas bibliotecas y activar algunas interfaces:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 instalar adafruit_python_dht'

1 cable:

  1. 'sudo raspi-config'
  2. 'Opciones de interfaz'
  3. '1 cable'
  4. Habilitar
  5. 'sudo nano /boot/config.txt'
  6. Agregue esta línea en el archivo: 'dtoverlay = w1-gpio'
  7. 'sudo reiniciar'

SPI:

  1. 'sudo raspi-config'
  2. 'Opciones de interfaz'
  3. 'SPI'
  4. Habilitar
  5. 'sudo reiniciar'
  6. 'sudo nano /boot/config.txt'
  7. Busque 'dtparam = spi = on' y descomente quitando el hashtag.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. 'Opciones de interfaz'
  3. 'I2C'
  4. Habilitar
  5. 'sudo reiniciar'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Busque dtparam = i2c_arm = on y descomente quitando el hashtag.

matraz

pip3 instalar Frasco

conector mysql

'pip3 install -Iv mysql-connector == 2.1.4'

spidev

'pip3 instalar py-spidev'

cielo oscuro

'pip3 instalar darkskylib'

Paso 6: ¡Pruébelo

Si has logrado llegar tan lejos, tómate la espalda. Ahora todo está hecho para que Fanair funcione correctamente. Entonces, para probarlo, escriba 'cd ""'. La ubicación del archivo es "/ home / pi", por ejemplo, si acaba de pegarlo en su directorio de inicio. Luego escriba 'python3 main.py' y déjelo reposar durante 15 minutos para que tenga datos en la base de datos cuando termine. Después de eso, presione 'ctrl + c' para detener el programa y escriba 'python3 Flask.py'. Para ver si su sitio web funciona, debe navegar a la dirección IP de su Pi que creó con ': 5000' después (así: 169.254.10.1:5000 ').

Para que se ejecute automáticamente después del arranque:

'sudo nano /etc/rc.local'

Al final del archivo PERO ANTES de salir 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

¡Felicitaciones, ahora su script debe ejecutarse desde el inicio y HAS TERMINADO! Si planea mantener el proyecto en ejecución y aún no lo ha hecho, le sugiero que suelde todo, solo para asegurarse de que todo se mantenga en su lugar. Aunque si no juegas a moverlo mucho, una placa de pruebas también funciona, por supuesto.

Recomendado: