Energia da bateria para dispositivos MySensors

Essa música vai durar para sempre se eu trocar as pilhas (C)



Esta obra é dedicada à minha pesquisa sobre o poder de dispositivos sem fio autônomos que fazem parte do sistema doméstico inteligente MySensors.


Primeiro houve lítio ...


Em vez disso, baterias de íon de lítio e polímero de lítio.


Por um longo tempo, essas baterias de aparelhos antigos se acumularam em uma caixa. Eu pensei - aqui está, poder universal para todos os microcontroladores de tamanho pequeno. Além disso, a tensão de 3,3-4,2V é excelente para AVR, assim como para todos os tipos de ESP e STM. Para maior confiabilidade, você pode colocar um estabilizador LDO da energia necessária e obter um 3.3 estável para o MK e toda a periferia.



Mas, como se viu, nem tudo é tão bom.


  1. As baterias precisam ser carregadas. Para fazer isso, foi necessário torná-los removíveis ou adicionar um módulo de carregamento ao seu dispositivo, o que, por sua vez, forneceu custo adicional, dimensões e orifícios de carregamento no gabinete. E nem sempre é conveniente carregar dispositivos, por exemplo, um sensor climático fora da janela.
  2. As baterias de lítio (como a maioria das fontes de alimentação em geral) não são adequadas para uso em baixas temperaturas. Em um sensor climático acoplado à janela, no inverno, a bateria afundou imediatamente no gelo.
  3. Durante uma operação de longo prazo, se a tensão da bateria não for monitorada a tempo, você pode descarregá-la "para zero", ou seja, abaixo do valor permitido, que é garantido para matá-la. Então você precisa de proteção contra descarga excessiva.
  4. Uma variedade de tamanhos e capacidades de bateria limitou significativamente a repetibilidade de dispositivos em compartimentos idênticos. E as reservas de baterias velhas chegaram ao fim rapidamente - como resultado, foi necessário comprar um lugar novo. E, como se viu, o custo de tais fontes de energia acabou sendo bastante caro e adicionou pelo menos US $ 2 ao custo de cada dispositivo (levando em conta a placa de carregamento e muito mais). Além disso, não havia economia com a recarga, uma vez que a maioria dos controladores autônomos consumia muito pouca energia e podia trabalhar por muitos meses sem recarregar.

NiMH e outras pilhas AA / AAA foram ainda piores. Eles precisavam ser carregados em um carregador especial, tinham um “efeito de memória” e uma tensão inicialmente baixa (1,2-1,3V) e, quando conectados em série devido à diferença de resistência interna, uma das baterias podia ser descarregada mais do que outras, o que novamente levava ao seu deterioração.


E, novamente, lítio ...


Agora, existem baterias redondas de lítio de 3.0V de tamanho pequeno, em favor das quais decidi abandonar as baterias caprichosas e caras.


As baterias CR2032 são usadas em um grande número de computadores BIOS, medidores elétricos e outros dispositivos com RTC, relógios, calculadoras e vários brinquedos. Com pequenas dimensões e baixo preço, eles têm uma tensão de 3,0V, o que é suficiente para MK e uma capacidade decente de 200-250mA / h para suas dimensões.



Mas, novamente, problemas. O fato da questão. que a corrente direta dessa bateria é de apenas 0,4 mA. Se você carregá-lo com uma corrente mais alta, a voltagem da bateria cairá, embora possa recuperar parcial ou totalmente. Um modo típico de suspensão do Mysensor consome vários microamperes. Mas no modo de transferência - já cerca de 15-20mA. Ao mesmo tempo, novas versões da biblioteca MySensors obrigam os dispositivos a enviar muitos pacotes - ping, saudação, apresentações, procurando um gateway ou roteador, o que resulta em uma operação longa, às vezes vários segundos, do módulo de rádio. A uma voltagem de cerca de 2V, o NRF24L01 chinês barato começa a falhar e, às vezes, nem é possível levá-los a dormir () no MySensors.


Como resultado, tudo funciona de alguma forma com uma bateria nova, mas à medida que a bateria descarrega, os problemas de comunicação aumentam, o módulo de rádio começa a inundar mais o ar, aumentando a descarga da bateria. No final, a tensão cai a ponto de todo o dispositivo parar de dormir e, em seguida, ocorre uma reinicialização cíclica até a bateria acabar completamente.


Dependendo do fabricante e da "frescura" da bateria, o dispositivo pode funcionar de alguns dias a um mês. Se você compra baterias baratas no aliexpress, há uma loteria. A transição para os CR2450 e CR2477, mais espaçosos, economiza um pouco, mas eles não sabem como fornecer uma corrente de mais de 0,5 mA por um longo tempo.


Por um tempo, experimentei conversores de impulso que permitiam à bateria manter a tensão operacional normal do MK até as últimas migalhas de energia, mas eles tinham uma corrente quieta pequena, mas diferente de zero, o que reduzia a vida útil geral.


Dedinhos - dedinhos



É hora de se acalmar e adotar a experiência chinesa "avançada", para alimentar todos os seus dispositivos a partir de três AAA (as pilhas não estão incluídas). Mas ele decidiu procurar uma solução com pelo menos duas baterias de 1,5 volts.


Parei em um esquema com um estabilizador crescente NCP1400 :



Duas pilhas alcalinas AAA conectadas em série fornecem inicialmente 2,7-3,1V até o final do período de produção, reduzindo a tensão para 1-2V


Quando o NCP1400 está desligado (nível baixo na entrada de controle), a energia da bateria vai imediatamente para o MC através da bobina L1 e do diodo Schottky d1 com uma queda de tensão mínima de cerca de 0,1V. Se um nível alto for aplicado à entrada de controle, o estabilizador NCP1400 inicia e fornece tensão de 3,3V ao MK com uma tensão total da bateria de 0,8V a 3,1V.


O algoritmo de operação é o seguinte:


  1. O horário principal em que o controlador está no PowerDownMode, todos os periféricos, incluindo o NRF24, estão desativados ou também no modo de baixa energia.
  2. O MC sai do modo de suspensão por interrupção do temporizador ou por uma interrupção externa (por exemplo, em interruptores por interrupção do botão), a tensão de alimentação VCC (função incorporada dos controladores AVR) é medida.
  3. Se a tensão de alimentação for maior que 3V (ou outra tensão suficiente para operação periférica estável), o NCP1400 não será iniciado e todo o processamento será realizado nessa tensão de alimentação até o próximo ciclo de suspensão.
  4. Se a tensão for inferior a 3V, o estabilizador NCP1400 é iniciado, a tensão de alimentação é ajustada para 3,3V, todo o processamento regular do dispositivo é realizado, incluindo o envio de dados via NRF24
  5. Além disso, se a tensão estiver acima de 1,7V (tensão suficiente para sair do MC do modo de suspensão), o NCP1400 será desligado até o próximo ciclo de ativação.
  6. Se a tensão for menor que 1,7 (a tensão mínima do MK), o NCP1400 não será desligado até que o controlador reinicie ou até a tensão de alimentação cair abaixo de 0,8V (tensão do NCP1400)

Esboço deste algoritmo
#define MY_RF24_CE_PIN 9 #define MY_RF24_CS_PIN 10 #define MY_RF24_POWER_PIN 8 #define MY_RADIO_NRF24 #include <MySensors.h> #define PIN_NCP1400 2 #define CHILD_ID_VCC 0 MyMessage msgVcc(CHILD_ID_VCC, V_VOLTAGE); bool low_power = false; int readVcc(); // void before(){ pinMode(PIN_NCP1400,OUTPUT); digitalWrite(PIN_NCP1400,HIGH); } void presentation(){ sendSketchInfo("NCP1400 test", "1.0"); present(CHILD_ID_VCC, S_MULTIMETER,"mV"); } // void loop(){ int vcc = 1000; if( low_power == false ){ vcc = readVcc(); digitalWrite(PIN_NCP1400,HIGH); //  NRF1400 } if( vcc < 1700 )low_power = true; //      NRF1400 send(msgVcc.set(vcc)); //  VCC if( low_power == false )digitalWrite(PIN_NCP1400,LOW); //  NRF1400 sleep( 300000 ); //      5  } /** *     VCC  */ int readVcc() { long result; // Read 1.1V reference against AVcc ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); delay(2); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Convert while (bit_is_set(ADCSRA,ADSC)); result = ADCL; result |= ADCH<<8; result = (1100L * 1023)/result; return((int)result); } 

Teste


E como lidamos com o consumo atual na prática? Eu conecto meu circuito ao LBP e faço medições do consumo atual e da tensão de saída.



A corrente de marcha lenta sem carga com o NCP1400 desligada e uma tensão de entrada de 1-3 V foi de 0,3 μA. Ainda mais baixo do que o declarado pela folha de dados de 0,5 mkA (ou talvez nessa faixa, meus dispositivos dêem um grande erro). Porém, com o estabilizador ligado sem carga, a corrente acabou sendo inesperadamente grande - mais de 0,3 mA. Verificou-se que o resistor pull-up R1 causou um grande consumo. Substituindo a classificação R1 de 10K a 150K, obtive 30 μA a uma tensão de entrada de 3,0 V e 44 μA a 1,0 V.


Se você remover completamente o resistor R1, o estabilizador na ausência de conexão desta entrada ao MC estará consumindo constantemente com 2V de entrada de cerca de 11 μA.
Agora, conecto o microcontrolador com NRF24L01 e o sensor HUD21, funcionando de acordo com o algoritmo descrito acima:


  • Tensão de entrada 3.0V - modo ativo (NCP1400 está ativado) 32mA, modo de suspensão (NCP1400 está desativado) 9mkA
  • Tensão de entrada 2.0V - modo ativo (NCP1400 está ativado) 51mA, modo de suspensão (NCP1400 está desativado) 6mA
  • Tensão de entrada 1.7V - modo ativo (NCP1400 ativado) 63mA, modo de suspensão (NCP1400 desativado) 5.6mA
  • Tensão de entrada 1.0V - NCP1400 está constantemente ligado - modo de suspensão 197mkA
  • Tensão de entrada 0.5V - NCP1400 está constantemente ligado - modo de suspensão 397μA

O consumo ativo da bateria aumenta quando a energia é reduzida. A voltagem de 1,7V foi selecionada experimentalmente. Abaixo desse valor, o microcontrolador já pode não funcionar de maneira estável. Quando a tensão da bateria cai abaixo desse limite, o estabilizador NCP1400 não se apaga mais e o consumo no modo de suspensão é bastante alto. Nesse modo, as baterias não duram muito, mas haverá tempo suficiente para substituí-las.


Modalidade na glândula


Placas de alimentação universais projetadas para meus dispositivos domésticos inteligentes




E embora os dispositivos acabados não fossem tão compactos quanto as baterias de lítio, o resultado foi ótimo comigo. especialmente considerando o custo das pilhas alcalinas nas lojas Galomart, Kastorama, Leroyle, etc.



Atualmente, eu opero em casa mais de uma dúzia de dispositivos diferentes para monitorar temperatura, umidade do solo etc. no sistema MuSensors / MajorDoMo.


Leia mais no meu blog

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


All Articles