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

Continuará La parte anterior .
Tabla de contenido:



Sensor fueraborda. Hierro


Debemos admitir de inmediato que la primera versión del sensor de ventana (remota) resultó no ser del todo exitosa en términos de suministro de energía y consumo de energía. Como ya escribí, tenía a mano solo el módulo Arduino Pro Mini a 5 V. Y usé baterías Ni-MH.


A pesar de que también conecté la batería solar, toda la estructura funcionó de forma autónoma durante unos 25 días. Muy negativamente, la capacidad de la batería se vio afectada por temperaturas bajas, a menudo negativas, en la calle al final del invierno.


Para que todo funcione por mucho más tiempo, realice los siguientes reemplazos:


  • Compre Arduino Pro Mini a 3.3V
  • Utilice una batería de iones de litio Panasonic NCR18650A 3.7V, 2 piezas. por alrededor de $ 14 a 3100mAh. Puede probar las baterías CR123, CR123A. Y recuerde que una batería de 9V (como una Krona) es una fuente de energía pobre.

Lo principal para recordar es que sus baterías funcionarán en la calle, es decir a temperaturas negativas, lo que ralentiza los procesos químicos que ocurren dentro de ellos y, por lo tanto, reduce en gran medida su capacidad.


El sensor DHT22 también puede funcionar desde 3.3 V, por lo que ese es el camino a seguir.


Las permutaciones anteriores no implicarán alteraciones o reemplazos de otros componentes.


Nutrición


Originalmente usé 4 piezas. La batería Ni-MH está conectada en serie con un toque de la tercera, por lo que obtenemos dos voltajes de alimentación: 4.8 V para el sensor DHT22 y 3.6 V para todo lo demás. No utilicé circuitos electrónicos reductores (más precisamente, que destruyen la energía) o elevadores, solo voltaje y corriente ecológicos.


Nutrición


El panel solar está conectado como se muestra. El panel solar 1.6W 5.5V 266mA fue comprado por $ 6.64.


Se utilizan un diodo Schottky tipo 1N914 y un condensador electrolítico de 50-100 μF en el circuito.



Pinout y conexión


Pasemos a la asamblea.


Sensor de temperatura y humedad DHT22


DHT22


Pinout para conectar un sensor de temperatura y humedad DHT22:


DHT22 frontal de izquierda a derechaArduino Pro MiniNota
Vcc3.3 - 5V5V recomendado, mejor potencia externa
SDAD2En el boceto es DHTPIN
NCNo conectado
GNDGND

Opcionalmente, puede conectar (apretar) el SDA a través de una resistencia de 10K a VCC.


Inicializacion:


 #define DHTPIN 2 //   D2 DHT dht(DHTPIN, DHTTYPE); 

Para proteger el sensor de la luz solar directa, hice una cubierta con una lata y lo pegué con cinta adhesiva metalizada reflectante.


nRF24L01 +


nRF24L01 +


El pinout del módulo de radio nRF24L01 + (mira en la parte superior de la placa donde está el chip, mientras que los pin pin estarán en la parte inferior):


(2) 3.3V(4) CSN(6) MOSI(8) IRQ
(1) GND(3) CE(5) SCK(7) MISO

NRF24L01 + conexión


Arduino Pro MininRF24L01 +Nota
3.3VVCC (2)Mejor potencia externa.
pin D8CE (3)chip habilitado en
Pin SS D10CSN (4)selección de chip en
SCK pin D13SCK (5)Reloj SPI en
MOSI pin D11SDI (6)Datos SPI en
Pin MISO D12SDO (7)Datos SPI fuera
IRQ 8Salida de interrupción no conectada
GNDGND (1)

Inicializacion:


 NRF24 nrf24(8, 10); 

Como se aconseja en los foros, se solda inmediatamente un condensador electrolítico de pequeña capacidad (10 μF) a los terminales de alimentación nRF24L01 +.


Tengo un módulo de radio con una antena externa adicional, que "atraviesa" dos paredes de manera confiable.


Voltímetro


El sensor externo tiene un voltímetro para medir el voltaje de alimentación de la batería. La tecnología de medición es descrita por Scott Daniels "Voltímetro Arduino secreto - Medir el voltaje de la batería", 2012.


Los datos se leen desde el pin analógico A1.



Tengo resistencias divisorias de voltaje de 100 kOhm y 10 kOhm (es posible que tenga clasificaciones ligeramente diferentes, necesita medirlas con precisión con un ohmímetro).


 const float r1 = 100400; // 100KOm const float r2 = 9960; // 10KOm 

La siguiente constante debe calibrarse individualmente como lo describe Scott Daniels. Usando un shemka y un boceto por separado.


Medimos dos valores de Vcc: Vcc real usando un voltímetro (en el pin AREF o 5V) y Vcc usando nuestra función. Luego reemplazamos la constante ( 1.1 * 1023.0 * 1000 ) con una nueva:


 scale_constant = internal1.1Ref * 1023 * 1000 

donde internal1.1Ref = 1.1 * Vcc1 ( ) / Vcc2 ( )


donde


  • Vcc1: valor de Vcc medido manualmente con un voltímetro
  • Vcc2: valor de Vcc determinado mediante nuestra función

Este valor de referencia será individual para un chip AVR específico y dependerá de las fluctuaciones de temperatura.


Como resultado, obtuve el siguiente valor:


 const float typVbg = 1.082; //    1.0 — 1.2  

Como nuestra batería recargable se descargará en la oscuridad y se cargará desde la batería solar, el gráfico de voltaje de suministro se verá como diente de sierra, "disminuyendo" en días nublados:


Graph


El gráfico es real, tomado de la cara web del proyecto.


Asamblea


Para ensamblar el bloque como un todo, nuevamente utilicé el tablero para soldar.
Solde, conectado por intuición sin cableado preliminar, por lo que no tengo circuito.


Esto es lo que pasó.


Asamblea

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


All Articles