Para ser continuado. A parte anterior .
Sumário:
Sensor externo. Ferro
Devemos admitir imediatamente que a primeira versão do sensor de janela (remoto) acabou por não ser totalmente bem-sucedida em termos de fornecimento de energia e consumo de energia. Como já escrevi, só tinha o módulo Arduino Pro Mini de 5V em mãos e usei baterias Ni-MH.
Apesar de eu também conectar a bateria solar, toda a estrutura funcionou autonomamente por cerca de 25 dias. Muito negativamente, a capacidade da bateria foi afetada por temperaturas baixas, geralmente negativas, nas ruas no final do inverno.
Para que tudo funcione por muito mais tempo, faça as seguintes substituições:
- Compre o Arduino Pro Mini em 3.3V
- Use uma bateria de íon de lítio NCR18650A 3.7V da Panasonic, 2 peças. por cerca de US $ 14 a 3100mAh. Você pode experimentar as baterias CR123, CR123A. E lembre-se de que uma bateria de 9V (como uma Krona) é uma fonte de energia fraca.
O principal a lembrar é que suas baterias funcionam na rua, ou seja, a temperaturas negativas, que retardam os processos químicos que ocorrem dentro deles e, assim, reduzem muito sua capacidade.
O sensor DHT22 também pode funcionar a partir de 3,3 V, então esse é o caminho a percorrer.
As permutações acima não implicam alterações ou substituições de outros componentes.
Nutrição
Eu originalmente usei 4 peças. A bateria Ni-MH é conectada em série com uma torneira da 3ª, então temos duas tensões de alimentação: 4,8 V para o sensor DHT22 e 3,6 V para todo o resto. Não usei circuitos eletrônicos redutores (mais precisamente destruidores de energia) ou intensificadores, apenas tensão e corrente ambientalmente amigáveis.

O painel solar está conectado como mostrado. O painel solar 1.6W 5.5V 266mA foi comprado por US $ 6,64.
Um circuito Schottky tipo 1N914 e um capacitor eletrolítico de 50-100 μF são usados no circuito.

Pinagem e conexão
Vamos para a montagem.
Sensor de temperatura e umidade DHT22

Pinagem para conectar um sensor de temperatura e umidade DHT22:
Frente DHT22 esquerda para a direita | Arduino Pro Mini | Nota |
---|
Vcc | 3.3 - 5V | 5V recomendado, melhor potência externa |
SDA | D2 | No esboço é DHTPIN |
NC | Não conectado |
GND | GND |
Opcionalmente, você pode conectar (apertar) o SDA através de um resistor de 10K ao VCC.
Inicialização:
#define DHTPIN 2
Para proteger o sensor da luz solar direta, fiz um invólucro para ele em uma lata e colei com fita adesiva metalizada refletiva.
nRF24L01 +

A pinagem do módulo de rádio nRF24L01 + (observe a parte superior da placa onde está o chip, enquanto os pinos estarão na parte inferior):
| | | |
---|
(2) 3.3V | (4) CSN | (6) MOSI | (8) IRQ |
(1) GND | (3) CE | (5) SCK | (7) MISO |
Conexão NRF24L01 +
Arduino Pro Mini | nRF24L01 + | Nota |
---|
3.3V | VCC (2) | Melhor potência externa |
pino D8 | CE (3) | habilitação de chip em |
Pino SS D10 | CSN (4) | seleção de chip |
Pino SCK D13 | SCK (5) | Relógio SPI |
Pino MOSI D11 | SDI (6) | Dados SPI em |
Pino MISO D12 | SDO (7) | Saída de dados SPI |
IRQ 8 | Saída de interrupção não conectada |
GND | GND (1) |
Inicialização:
NRF24 nrf24(8, 10);
Conforme recomendado nos fóruns, um capacitor eletrolítico de pequena capacidade (10 μF) foi imediatamente soldado aos terminais de energia nRF24L01 +.
Eu tenho um módulo de rádio com uma antena externa adicional, ele "rompe" duas paredes de maneira confiável.
Voltímetro
O sensor externo possui um voltímetro para medir a tensão de alimentação da bateria. A tecnologia de medição é descrita por Scott Daniels "Voltímetro Arduino Secreto - Medição de Voltagem da Bateria", 2012.
Os dados são lidos do pino analógico A1.

Eu tenho resistores divisores de tensão de 100 kOhm e 10 kOhm (você pode ter classificações ligeiramente diferentes, é necessário medi-las com precisão com um ohmímetro).
const float r1 = 100400;
A constante a seguir deve ser calibrada individualmente, conforme descrito por Scott Daniels. Usando um shemka e um esboço separados.
Medimos dois valores de Vcc: Vcc real usando um voltímetro (no pino AREF ou 5V) e Vcc usando nossa função. Em seguida, substituímos a constante ( 1.1 * 1023.0 * 1000
) por uma nova:
scale_constant = internal1.1Ref * 1023 * 1000
onde internal1.1Ref = 1.1 * Vcc1 ( ) / Vcc2 ( )
onde
- Vcc1 - valor Vcc medido manualmente com um voltímetro
- Vcc2 - valor de Vcc determinado usando nossa função
Esse valor de referência será individual para um chip AVR específico e dependerá das flutuações de temperatura.
Como resultado, obtive o seguinte valor:
const float typVbg = 1.082;
Como nossa bateria recarregável será descarregada no escuro e carregada da bateria solar, o gráfico de tensão de alimentação parecerá serrote, "diminuindo" em dias nublados:

O gráfico é real, retirado da face da web do projeto.
Assembléia
Para montar o bloco como um todo, usei novamente a tábua de pão para soldar.
Eu soldado, conectado por intuição sem fiação preliminar, por isso não tenho circuito.
Aqui está o que aconteceu.
