Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Estación meteorológica inalámbrica Arduino

Componentes y suministros

Arduino Due
o Arduino Mega.
× 1
3.2 "TFT HX8357C
× 1
Módulo DS3231 Real Time Clock
× 1
Sensor de temperatura DHT22
× 1
Desglose del transceptor SparkFun - nRF24L01 +
× 1
Breadboard (genérico)
× 1
Male-Header 36 Position 1 Row - Long (0.1 ")
7 pines
× 1
Cables de puente (genéricos)
varios
× 1
Arduino Nano R3
× 1
Xiaomi Powerbank
× 1

Acerca de este proyecto

La construcción de una estación meteorológica inalámbrica es una gran experiencia de aprendizaje. Cuando termine de construir este proyecto, comprenderá mejor cómo funcionan las comunicaciones inalámbricas, cómo funcionan los sensores y cuán poderosa puede ser la plataforma Arduino. Con este proyecto como base y la experiencia adquirida, podrá construir fácilmente proyectos más complejos en el futuro.

Una estación meteorológica es un dispositivo que recopila datos relacionados con el clima y el medio ambiente utilizando muchos sensores diferentes. Podemos medir muchas cosas como:

  • Temperatura
  • Humedad
  • Viento
  • Presión barométrica
  • índice UV
  • Lluvia

En la Estación Meteorológica que vamos a construir, vamos a medir la Temperatura y la Humedad en dos ubicaciones y mostrar la fecha y hora actual. Construir una estación meteorológica es extremadamente fácil. Pero, ¿puede un fabricante construir una unidad con una pantalla TFT a color y características que coincidan con las de una unidad comercial? ¡La respuesta es sí! ¡Con el poder del software y hardware de código abierto, se puede construir fácilmente esta impresionante estación meteorológica!

El proyecto consta de dos partes:el transmisor y el receptor.

El transmisor mide la temperatura y la humedad, y envía los datos de forma inalámbrica al receptor. El receptor mide la temperatura y la humedad, recibe los datos del sensor remoto y muestra todo en una gran pantalla TFT a color.

¡Construyamos este proyecto!

Paso 1:obtenga todas las piezas

Las partes necesarias para construir este proyecto son las siguientes:

  • Arduino Due ▶ http://educ8s.tv/part/ArduinoDue
  • Arduino Mega ▶ http://educ8s.tv/part/ArduinoMega
  • Arduino Nano ▶ http://educ8s.tv/part/ArduinoNano
  • Pantalla TFT de 3,2 "▶ http://educ8s.tv/part/32TFT
  • DHT22 ▶ http://educ8s.tv/part/DHT22
  • NRF24L01 ▶ http://educ8s.tv/part/NRF24L01
  • DS3231 RTC ▶ http://educ8s.tv/part/DS3231
  • Protoboard ▶ http://educ8s.tv/part/SmallBreadboard
  • Cables ▶ http://educ8s.tv/part/Wires
  • Pines de encabezado ▶ http://educ8s.tv/part/HeaderPins
  • Xiaomi Powerbank ▶ http://educ8s.tv/part/Powerbank

El costo del proyecto ronda los 40 $. Puede reducir el costo del proyecto en 5 $ si usa el Arduino Mega en lugar del Arduino Due. Elegí usar Arduino Due para el receptor porque es muy rápido y tiene mucha memoria. Esto será muy útil en el futuro a medida que agreguemos más funciones al proyecto.

Paso 2:Sensor de temperatura y humedad - DHT22

El DHT22 es un sensor de temperatura y humedad muy popular. Es económico, fácil de usar y la especificación afirma una buena precisión y exactitud.

Los sensores DHT se componen de dos partes:un sensor de humedad capacitivo y un termistor. También hay un chip en el interior que realiza una conversión analógica a digital y emite una señal digital con la temperatura y la humedad. La señal digital es bastante fácil de leer con cualquier microcontrolador.

Características del DHT22

  • Bajo costo
  • Alimentación y E / S de 3 a 5 V
  • Uso de corriente máxima de 2,5 mA durante la conversión
  • lecturas de humedad del 0 al 100% con una precisión del 2 al 5%
  • Lecturas de temperatura de -40 a 125 ° C ± 0.5 ° C de precisión
  • Lento

La conexión con Arduino es extremadamente fácil. Conectamos el pin del sensor con el signo + a la salida de 5V o 3.3V del Arduino. Conectamos el pin del sensor con el signo - a TIERRA. Por último, conectamos el pin OUT a cualquier pin digital del Arduino.

Para usar el sensor DHT22 con Arduino, tenemos que usar la biblioteca DHT.

https://github.com/adafruit/DHT-sensor-library

Paso 3:Módulo de reloj en tiempo real DS3231

El módulo DS3231 Real-Time Clock es, como sugiere su nombre, un reloj en tiempo real. Con su batería, puede mantener el tiempo durante años, ya que tiene un consumo de energía mínimo.

El costo del módulo es extremadamente bajo; ¡Cuesta alrededor de 2 $ incluida la batería! Lo usaremos para mantener el tiempo en nuestro Proyecto de Estación Meteorológica.

Paso 4:NRF24L01 +:Módulos inalámbricos

El módulo NRF24L01 es un módulo transceptor bidireccional de bajo costo. ¡El costo es de menos de 3 $! ¡Funciona en la banda de 2,4 GHz y puede alcanzar una velocidad de datos de 2 Mbits! Impresionante, ¿no? Utiliza la interfaz SPI para comunicarse con Arduino, por lo que es muy fácil de usar con él. Tenemos que conectar 7 de los 8 pines del módulo para que funcione con Arduino.

Desafortunadamente, no podemos enchufar el módulo en la placa de prueba, por lo que usaremos cables macho a hembra para conectar el módulo a Arduino. El pin número 1 del módulo es GND. Tienes que conectarlo a Arduino Ground. El siguiente pin es Vcc. Tienes que conectarlo a la salida de 3.3V del Arduino Uno. ¡Ten cuidado! ¡No lo conecte a 5V o destruirá su módulo! El tercer pin se llama CE y puede conectarlo a cualquier pin digital que desee. En este ejemplo, lo voy a conectar al pin digital 7. El pin 4 es CS y también puede conectarse a cualquier pin digital. Me voy a conectar al pin digital 8. El siguiente pin es SCK que va al pin digital 13 del Arduino Uno. El siguiente pin es MOSI, que va al pin digital 11, y el último pin de MISO, que va al pin digital 12. ¡Eso es todo!

Para que sea fácil de usar, el módulo con Arduino tenemos que usar la siguiente biblioteca:https://github.com/TMRh20/RF24

Si no ha usado los módulos NRF24L01 + hasta ahora, consulte el video adjunto para ver cómo usarlo construyendo un proyecto simple. Le ayudará a comprender cómo funciona.

Paso 5:compilación del transmisor

Primero construyamos el transmisor. Es muy simple.

Para el transmisor usamos:

  • Un Arduino Nano
  • Un sensor DHT22
  • Un módulo inalámbrico NRF24L01 +
  • Una placa de pruebas
  • Algunos cables

Conectamos el pin de salida del sensor al pin digital 4 del Arduino Nano. Conectamos el Ground y Vcc y estamos listos. Todo lo que tenemos que hacer ahora es conectar el módulo inalámbrico NRF24L01.

Adjúntelo utilizando los pines que se muestran en la tercera imagen. Para obtener más detalles, mire el video detallado que he adjuntado en el paso anterior.

Eso es todo, su transmisor está listo. Pasemos ahora al receptor.

Paso 6:construcción del receptor

Para construir el receptor, necesitamos las siguientes partes:

  • Un Arduino Due o un Mega
  • Un módulo de reloj en tiempo real DS3231
  • Un sensor de temperatura y humedad DHT22
  • Un módulo inalámbrico NRF24L01 +
  • Una pantalla TFT a color de 3,2 "
  • Una placa de pruebas
  • 7 pines de encabezado
  • Algunos cables

Al principio, doblamos 7 pines de encabezado y los colocamos en algunos de los pines de Arduino Due. Necesitamos uno a tierra y otro a 3.3V. Necesitamos dos en los pines I2C. Necesitamos los 3 restantes a los pines digitales de 6 a 8. También tenemos que soldar tres cables a los pines SPI de hardware de los pines Arduino Due. Necesitamos MOSI, MISO y SCK. Revise el diagrama con atención. Conectamos los cables a los pines del cabezal y estamos listos para conectar la pantalla.

Conexión del DS3231

  • Pin VCC en la salida de 3.3V de Arduino
  • Pin GND al GND de Arduino y
  • Pin SDA (Serial Data Line) al pin SDA de Arduino y
  • Pin SCL (Serial Clock Line) al pin SCL de Arduino

Conexión del sensor DHT22

  • Pin VCC en la salida de 3.3V de Arduino
  • Pin GND al GND de Arduino y
  • pin de salida al pin digital 8 de Arduino

Conexión del módulo NRF24L01

  • Pin GND a GND de Arduino
  • Pin VCC a Arduino 3.3V
  • 3er pin al pin digital 6 de Arduino
  • 4to pin al pin digital 7 de Arduino
  • Quinto pin al pin SCK que hemos soldado
  • Sexto pin a pin MOSI que hemos soldado
  • 7mo pin a pin MISO que hemos soldado

Paso 7:el código del transmisor

En primer lugar, tenemos que descargar la biblioteca RF24 para hacernos la vida más fácil cuando trabajamos con los módulos inalámbricos NRF24L01. También necesitamos la biblioteca DHT para el sensor DHT22.

  • Biblioteca DHT22: https://github.com/adafruit/DHT-sensor-library

Primero veamos el código del transmisor. Envía una estructura de datos simple que contiene dos flotadores, la temperatura y la humedad.

Para establecer un enlace de comunicación, tenemos que crear una "tubería" entre los dos módulos. Esa tubería necesita tener una dirección. Ambos módulos deben escribir y leer desde la misma tubería para poder comunicarse. Eso es lo primero que definimos en nuestro código. Establecemos la dirección de la tubería en "0". A continuación definimos el canal en el que queremos comunicarnos con el otro módulo. El chip NRF24L01 admite 126 canales diferentes. Ambos módulos deben utilizar el mismo canal para comunicarse entre sí. En este ejemplo estoy usando el canal 115. A continuación, defino que quiero usar la máxima potencia de transmisión que ofrece el módulo. Utiliza más energía pero amplía el alcance de la comunicación. A continuación, definimos la velocidad de transmisión de datos. Lo configuré en 250 Kbs, que es la velocidad de datos más baja posible para lograr un mejor rango. El siguiente paso es abrir la tubería para poder escribir en ella más tarde.

En la función de bucle, leemos los valores de temperatura y humedad del sensor, guardamos esos datos en la estructura de datos y luego enviamos la estructura de datos escribiendo la estructura de datos en la tubería. Eso es. Puede encontrar el código adjunto en este tutorial.

FU361QHIQFCEYSE.ino

Paso 8:el código del receptor

Veamos ahora el código del receptor. Necesitamos 4 bibliotecas. Primero tenemos que descargar la biblioteca para la visualización desde este enlace:

DISPLAY Biblioteca: https://github.com/Bodmer/TFT_HX8357_Due

Después de descargar la biblioteca, debe abrir el archivo User_Setup.h. Comente la línea 13 y elimine el comentario de la línea 14, porque la pantalla que tenemos utiliza el controlador HX8357C. Ahora podemos continuar con las otras 3 bibliotecas. Necesitamos una biblioteca para el reloj en tiempo real, una para el sensor DHT22 y, por último, una para el módulo inalámbrico.

  • NRF24L01:https://github.com/TMRh20/RF24
  • DHT22:https://github.com/adafruit/DHT-sensor-library
  • DS3231:https://github.com/SodaqMoja/Sodaq_DS3231

Echemos un vistazo al código. Lo primero que tenemos que hacer es configurar la hora en el módulo de reloj de tiempo real si aún no lo está. Para hacerlo, ingrese la fecha y hora actual en el setRTCTime función, descomente el setRTCTime Llame a la función en la línea 54 y cargue el programa en Arduino. Ahora el tiempo está fijado. Pero luego tenemos que comentar setRTCTime vuelva a llamar a la función y cargue el programa en Arduino una vez más.

El código del receptor funciona de la siguiente manera. En la función de configuración, inicializamos todos los sensores y los módulos e imprimimos la Interfaz de Usuario. Luego, en la función de bucle, verificamos continuamente si hay nuevos datos inalámbricos. Si hay nuevos datos, los guardamos en variables y los imprimimos en la pantalla. Leemos la temperatura y la humedad una vez por minuto y solo actualizamos la pantalla si hay un cambio en los valores. ¡De esta manera reducimos aún más el parpadeo de la pantalla! También he preparado una versión del código con la temperatura mostrada en grados Fahrenheit. Puede encontrar ambas versiones del código adjunto en este tutorial.

F053BTXIQFCEZ09.ino FNV3X4LIQFCEZ0C.ino

Paso 9:prueba del proyecto

El último paso para encender todo y ver si todo funciona como se esperaba. Si es así, en la parte superior de la pantalla se muestra la fecha y hora actuales. En la parte inferior de la pantalla, puede ver la temperatura y la humedad tanto del sensor remoto como del local.

Si no se muestran datos para el sensor remoto , acerque el transmisor; puede que esté fuera de alcance. Si el problema persiste, verifique todas las conexiones una vez más; debe haber algo mal allí.

Como puede ver, este proyecto es una gran demostración de lo que es capaz de hacer el hardware y software de código abierto. ¡En unas pocas horas se puede construir un proyecto tan impresionante! Por supuesto, esto es solo el comienzo. Podemos agregar muchas más funciones al proyecto. Pronto agregaré un botón, para que podamos mostrar gráficos y tener diferentes modos. También podemos agregar más sensores, registro de datos, conexión a Internet, etc. Estamos usando Arduino Due, por lo que tenemos mucha memoria para implementar muchas más cosas. Me encantaría conocer tu opinión sobre este proyecto. ¿Cómo quieres que evolucione? ¡Publique sus comentarios o ideas en la sección de comentarios a continuación!

Si desea obtener más detalles, mire el video de YouTube en la introducción o visite mi sitio web. ¡Gracias por echar un vistazo!

Código

Github
https://github.com/adafruit/DHT-sensor-libraryhttps://github.com/adafruit/DHT-sensor-library
Github
https://github.com/TMRh20/RF24https://github.com/TMRh20/RF24
Github
http:// PANTALLA:% 20https://github.com/Bodmer/TFT_HX8357_Duehttp:// PANTALLA:% 20https://github.com/Bodmer/TFT_HX8357_Due
Github
https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231

Proceso de manufactura

  1. Estación meteorológica Raspberry Pi 2
  2. Estación meteorológica Raspberry Pi
  3. Weather Station V 2.0
  4. Dados digitales Arduino
  5. Iron Man
  6. Encuéntrame
  7. Brazo robótico Arduino impreso en 3D
  8. Control del humidificador Arduino
  9. $ 10 Estación meteorológica portátil Arduino (AWS)
  10. eDOT - Reloj de precisión y estación meteorológica basados ​​en Arduino
  11. NeoMatrix Arduino Pong