Estación meteorológica en Arduino de la A a la Z. Parte 1

Tabla de contenido:



Estación meteorológica Arduino, ESP8266, nRF24L01, DHT22


“Entonces, aceptemos de inmediato: no vas a hacer una película para Hollywood. Incluso en el País de las Maravillas, no se aprueba más del cinco por ciento de todos los escenarios, y solo el uno por ciento luego entra en producción ... Entonces, en lugar de todo esto, vas a crear tu propio Hollywood ".
Ed Gaskell "Haciendo cine digital o Hollywood en casa"


Prólogo


¿Qué otra estación meteorológica en el Arduino? Sí, una cosa más, y algo me dice, no la última en Internet de las cosas.


Así como se requiere que cada programador escriba el programa "¡Hola Mundo!", Cada arduino debe tener la experiencia de construir una estación meteorológica simple o no muy meteorológica.
Se describe un número considerable de proyectos de estaciones meteorológicas ya creados en Internet, el lector puede elegir cualquiera de ellos para su implementación. No me esconderé, estudié cuidadosamente una docena de proyectos y un montón de proyectos relacionados. Por lo tanto, no se puede decir que creé todo desde cero, por supuesto, "me puse en los hombros de los gigantes".


Debo decir de inmediato que mis planes no incluían el uso de servicios de terceros para almacenar y mostrar datos. Quería sentir y comprender personalmente cómo funciona todo esto desde el principio hasta el final, de la A a la Z.


Entonces, para aquellos que desean remachar rápidamente algo de la nada, esta serie de artículos probablemente no sea adecuada. Es más fácil comprar un diseñador listo para usar con instrucciones de montaje. Los profesionales de la microelectrónica no tienen nada que hacer aquí, tal vez relincharse y recordarse al comienzo del viaje.
Pero para aquellos que realmente quieran resolverlo, creo que les gustará. Quizás el material sea útil como herramienta de capacitación.


El autor lo guiará a través de los intrincados laberintos de la tecnología moderna de Internet de las cosas. Además, los ojos de un principiante, como él mismo lo es.


Este proyecto se implementó en 2016, pero espero que siga siendo relevante.


Conjunto de tecnología


Aprenderemos y trabajaremos con cosas simples y complejas:


  • sensores de temperatura y humedad tipo DHT22, DHT11
  • sensor de presión barométrica tipo BMP180
  • Módulo WiFi ESP8266
  • Módulo de radio nRF24 de 2.4 GHz
  • Familia Arduino Pro Mini, Arduino Mega
  • batería solar y baterías
  • Lenguaje de programación C / C ++
  • Lenguaje de programación PHP
  • Sistema de gestión de bases de datos MySQL
  • Lenguaje de programación Java y el marco de Android (creación de una aplicación para Adnroid para mostrar datos meteorológicos en un teléfono inteligente).

Algunos de los temas enumerados y los huevos no valen la pena, y algunos pueden estudiarse durante años. Por lo tanto, tocaremos cosas complejas solo en la parte directamente relacionada con este proyecto, para que comprenda cómo funciona todo.


Pero comenzaremos desde el principio . Es decir, a partir de la descripción y el diseño del futuro dispositivo "en papel" , de modo que al final cada ladrillo quede en su lugar.


Prototipos


Como Wikipedia nos dice correctamente, la creación de prototipos es una implementación rápida y aproximada de un sistema de trabajo. Lo cual, sí, no funcionará de manera completamente ineficiente y con algunos errores, pero dará una idea de si la nave debe desarrollarse para un diseño industrial. El proceso del prototipo no tiene que ser largo. La etapa de creación de prototipos es seguida por un análisis del sistema y su refinamiento.


Pero esto es en una industria donde los trabajadores están empleados a tiempo completo.


Todo el que remache sus artesanías de proyectos de mascotas para el "internet de las cosas" por las noches debe ser consciente de que crea un prototipo, un producto semiacabado. Está muy lejos del nivel de un producto industrial normal. Por lo tanto, no debemos confiar a nuestras embarcaciones de aficionados ninguna trama responsable de soporte vital y esperar que no nos defrauden.


Un producto industrial se construye sobre una base de elementos industriales y luego pasa por muchas más etapas, incluyendo depuración, prueba y mantenimiento, antes de convertirse en un éxito de ventas.


Entonces, en lugar de toda esta gravedad, crearemos nuestro propio juguete, pero no uno simple. Con elementos de creatividad técnica, el comienzo de la programación y el conocimiento (en el proceso de creación) de muchas otras cosas relacionadas.


Por supuesto, los ingenieros electrónicos tendrán dificultades en la etapa de programación, y los programadores tendrán que preocuparse por los circuitos, pero el autor intentará explicar todo lo más accesible posible y describir claramente por qué se usaron ciertas soluciones.


Requisitos


Por lo general, este paso se omite. Decidir hacer algo así en este momento, y luego se descubren pequeños detalles que ponen todo el proyecto en un callejón sin salida o incluso lo hacen insoportable. Toda nuestra lista de deseos debe registrarse, utilizo un disco de Google para esto, está disponible desde una PC y desde un dispositivo móvil.


Entonces, nuestra estación meteorológica debería:


  • medir temperatura y humedad afuera
  • medir la temperatura y la humedad en la casa
  • medir la presión atmosférica
  • mostrar los valores indicados en la pantalla
  • transferir datos a un servidor en Internet, donde los datos se almacenarán en una base de datos y se mostrarán en una página web, o se usarán en una aplicación móvil.

Los sensores utilizados son los más simples y baratos. Por ejemplo, mirando hacia el futuro, diré que DHT22 mide la temperatura con bastante precisión, pero con la humedad es un poco impreciso. Pero, repito, no importa, porque tenemos un prototipo y una extensión de 5% de humedad no afectará nada importante en nuestras vidas.


La arquitectura del sistema, el hardware y el software deberían proporcionar una mayor extensibilidad del sistema para agregar nuevos sensores y nuevas características.


Hierro Selección de componentes


Esta es la parte más crucial, y no soldar ni programar en absoluto. Después de determinar los requisitos para el sistema, es necesario decidir con la ayuda de qué se implementarán exactamente.


Aquí es donde hay un matiz. Para elegir los componentes que necesita para conocer bien sus capacidades, necesita conocer la tecnología en sí. Es decir, en otras palabras, requiere estar lejos de ser un ingeniero electrónico y programador principiante. Entonces, ¿qué pasará ahora un par de años estudiando todo el espectro de posibles dispositivos?


Círculo vicioso? Pero existen círculos viciosos para romperlos.


Hay una salida Puedes simplemente tomar y repetir el proyecto de otra persona. Estudié los proyectos existentes de estaciones meteorológicas y espero dar un paso adelante.


Entonces La arquitectura de la estación meteorológica se basa en Arduino. Porque Arduino tiene un umbral de entrada pequeño, y ya lo solucioné. Es más fácil elegir más.


Inmediatamente se hizo evidente que la estación meteorológica incluiría un sensor remoto, por aire y un módulo central.


La unidad principal central se ubicará en el interior. Es importante determinar esto en la etapa inicial, a partir de esto, características tan importantes como el régimen de funcionamiento de la temperatura y la "danza" de potencia.


El sensor remoto (o sensores) estará sin "cerebro", su tarea es medir periódicamente y transmitir datos a la unidad central del hogar. La unidad central recibe datos de todos los sensores, los muestra en la pantalla y los envía a la base de datos en Internet. Bueno, ya es mucho más fácil allí, tan pronto como los datos estén en la base de datos, puede hacer lo que quiera con ellos, incluso dibujar gráficos.


Para las relaciones con el mundo exterior, Internet fue definitivamente elegido por el módulo WiFi ESP8266 con casi ninguna alternativa (aproximadamente. Tal vez ahora han aparecido tales alternativas). Las tarjetas de expansión Arduino Ethernet están disponibles, pero no quería conectarme al cable en absoluto.


ESP8266


Una pregunta interesante era cómo proporcionar una conexión entre un sensor montado en la ventana (o sensores, ¿recuerda el requisito de extensibilidad del sistema?) Y el centro. Las balizas de 433 MHz definitivamente no son adecuadas (no lo son para nada).


¿Aprovechar el ESP8266 nuevamente?


Contras de esta decisión:


  • Se requiere WiFi sostenible fuera del hogar


  • el rango de comunicación no será largo


  • la fiabilidad sufrirá, si Internet se cae, no veremos nuestros sensores remotos


  • Mayor consumo de energía.


  • Consumo de energía ESP8266:


  • cuando transmite 120-170 mA


  • cuando toma 50-56 mA


  • en sueño profundo 10 μA (μA)


  • apagado 5 µA (µA).



Al final, se eligió el chip nRF24L01 + con un transmisor y receptor de 2.4 GHz en una botella, con una antena externa adicional, para conectar sensores remotos con la unidad principal de la casa, de modo que ciertamente "atravesara" las paredes.


nRF24L01 +


Consumo de energía nRF24L01 + 2.4 GHz:


  • cuando recibe 11 mA
  • cuando se transmite a 2 Mbps - 13 mA
  • en modo de espera I - 26 μA (μA)
  • fuera del estado 900 nA (nA).

En cuanto al ESP8266, que para el nRF24L01 +, el rango de temperatura de funcionamiento es adecuado: de -40 ℃ a + 80 ℃.


Puede comprar nRF24L01 + por aproximadamente $ 1, o inmediatamente con una antena externa por $ 3. Puede comprar el ESP8266-01 por alrededor de $ 4. ¡Lea la descripción del producto cuidadosamente! De lo contrario, compre una antena.


El núcleo del sistema se alzaba. Nos dirigimos a los sensores mismos.


En la calle, como saben, la temperatura puede alcanzar valores negativos, por lo que el sensor DHT11 no es adecuado, pero DHT22 es el correcto.


DHT22


Características de DHT22 / AM2302:


  • fuente de alimentación de 3.3 V a 5 V, se recomiendan 5 V
  • consumo máximo 2.5mA, en el momento de la medición y transferencia de datos
  • rango de medición de humedad 0-100% con una precisión de 2-5%
  • rango de medición de temperatura de -40 a + 125 ° C con una precisión de ± 0.5 ° C
  • una solicitud de medición de no más de 0,5 Hz, una vez cada 2 segundos.

Dentro de la casa, espero que no haya temperaturas negativas, por lo que puede usar DHT11, especialmente porque ya lo tenía.


Características DHT11:


  • fuente de alimentación de 3.3 V a 5 V
  • consumo máximo 2.5 mA, en el momento de la medición y transferencia de datos
  • rango de medición de humedad 20-80% con una precisión de 5%
  • rango de medición de temperatura de 0 a + 50 ° C con una precisión de ± 2 ° C
  • solicitud de medición no más de 1 Hz, una vez por segundo.

Puede comprar DHT22 por alrededor de $ 3. DHT11 es más barato: $ 1, pero es menos preciso.


Ahora de vuelta a Arduino. ¿Qué tablero elegir?


Probé partes individuales del sistema en un Arduino UNO. Es decir Conecté el módulo ESP a Uno y lo estudié, lo desconecté, luego conecté nRF24, etc. Para la implementación final del sensor en el extranjero, eligió el Arduino Pro Mini como el más cercano a Uno de los miniatura.


Arduino Pro Mini


En términos de consumo de energía, el Arduino Pro Mini también se ve bien:


  • no hay convertidor USB-TTL, que en sí mismo "come" mucho,
  • El LED está conectado a través de una resistencia de 10k.

Para la conservación avanzada de energía se planificó:


  • retire el LED: el indicador de encendido del Arduino Pro Mini (lo lamenté, no estropeó la placa)
  • use el conjunto desnudo en el microprocesador Atmel ATmega328 (no utilizado)
  • Use la Biblioteca de baja potencia o JeeLib .

Elegí Low Power Library de las bibliotecas, es simple y contiene solo lo que necesita.


Para la unidad central, dado que se planeó conectarle numerosos periféricos, se eligió la placa Arduino Mega. Además, es totalmente compatible con UNO y tiene más memoria. Mirando hacia el futuro, diré que esta elección estaba completamente justificada.


Puedes comprar un Arduino Mega por alrededor de $ 8.


Energía y consumo de energía


Ahora sobre el poder y el consumo de energía.


Arduino Pro Mini viene en dos formas:


  • Fuente de alimentación de 5V y frecuencia de 16MHz
  • Voltaje de suministro de 3.3V y frecuencia de 8MHz.

Dado que el módulo de radio nRF24L01 + requiere 3,3 V de potencia, y el rendimiento no es importante aquí, compre el Arduino Pro Mini a 8MHz y 3,3V.


Al mismo tiempo, el rango de voltaje del Arduino Pro Mini es:


  • 3.35-12 V para el modelo 3.3 V
  • 5-12 V para 5 V.

Ya tenía un Arduino Pro Mini en 5V, por eso lo usé. Puedes comprar un Arduino Pro Mini por alrededor de $ 4.


La unidad central se alimentará de la red de 220 V a través de una pequeña unidad de fuente de alimentación que proporciona una salida de 12V, 450mA, 5W. Me gusta esto por $ 5. Todavía hay una salida separada a 5V.


Módulo de fuente de alimentación AC / DC


Y si esto no es suficiente, entonces puede ser más poderoso. En otras palabras, ahorrar energía para la unidad central no tiene mucho sentido. Pero para un sensor inalámbrico remoto, el ahorro de energía es la parte más importante. Pero tampoco me gustaría perder la funcionalidad.


Por lo tanto, el Arduino Pro Mini y el módulo de radio nRF24 estarán alimentados por un montón de 4 baterías Ni-Mh.


Y recuerde, la capacidad máxima de una batería moderna es de aproximadamente 2500-2700 mAh, todo lo que es más es trucos de marketing (Ansmann 2850) o trampa (UltraFire 3500).


No uso baterías de iones de litio por varias razones:


  • muy caro
  • Cuando la temperatura ambiente cae por debajo de 0 ° C, la potencia de la batería de iones de litio disminuye a 40-50%
  • los que son baratos se fabrican sin protección y no son seguros (durante un cortocircuito o descarga pueden explotar y quemarse, vea un montón de videos en YouTube)
  • envejecer, incluso si no se usan (aunque esto puede decirse de todos los elementos químicos), después de 2 años, la batería de iones de litio pierde aproximadamente el 20% de su capacidad.

Para el prototipo, es bastante posible sobrevivir con baterías Ni-MH AA o AAA de alta calidad. Además, no necesitamos grandes corrientes. El único inconveniente de las baterías Ni-MH es su larga carga.


El esquema general de la estación meteorológica.


Para resumir. Aquí hay un resumen general de cómo funciona todo.


Estación meteorológica El esquema general.


Continuará

Source: https://habr.com/ru/post/es425901/


All Articles