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.

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

Pinout para conectar un sensor de temperatura y humedad DHT22:
DHT22 frontal de izquierda a derecha | Arduino Pro Mini | Nota |
---|
Vcc | 3.3 - 5V | 5V recomendado, mejor potencia externa |
SDA | D2 | En el boceto es DHTPIN |
NC | No conectado |
GND | GND |
Opcionalmente, puede conectar (apretar) el SDA a través de una resistencia de 10K a VCC.
Inicializacion:
#define DHTPIN 2
Para proteger el sensor de la luz solar directa, hice una cubierta con una lata y lo pegué con cinta adhesiva metalizada reflectante.
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 Mini | nRF24L01 + | Nota |
---|
3.3V | VCC (2) | Mejor potencia externa. |
pin D8 | CE (3) | chip habilitado en |
Pin SS D10 | CSN (4) | selección de chip en |
SCK pin D13 | SCK (5) | Reloj SPI en |
MOSI pin D11 | SDI (6) | Datos SPI en |
Pin MISO D12 | SDO (7) | Datos SPI fuera |
IRQ 8 | Salida de interrupción no conectada |
GND | GND (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;
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;
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:

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ó.
