Estação meteorológica no Arduino de A a Z. Parte 4

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.


Nutrição


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


DHT22


Pinagem para conectar um sensor de temperatura e umidade DHT22:


Frente DHT22 esquerda para a direitaArduino Pro MiniNota
Vcc3.3 - 5V5V recomendado, melhor potência externa
SDAD2No esboço é DHTPIN
NCNão conectado
GNDGND

Opcionalmente, você pode conectar (apertar) o SDA através de um resistor de 10K ao VCC.


Inicialização:


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

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 +


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 MininRF24L01 +Nota
3.3VVCC (2)Melhor potência externa
pino D8CE (3)habilitação de chip em
Pino SS D10CSN (4)seleção de chip
Pino SCK D13SCK (5)Relógio SPI
Pino MOSI D11SDI (6)Dados SPI em
Pino MISO D12SDO (7)Saída de dados SPI
IRQ 8Saída de interrupção não conectada
GNDGND (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; // 100KOm const float r2 = 9960; // 10KOm 

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; //    1.0 — 1.2  

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:


Graph


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.


Assembléia

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


All Articles