Boa tarde a todos, estou desenvolvendo um projeto de comunicação sem fio entre dois pontos.

- Comunicação sem fio feita através de módulos nRF24L01+.

Receptor: Arduino Uno  recebendo dados através de um módulo nRF24l01+, a alimentação do circuito é feita diretamente com uma fonte, desta forma, não há preocupação quanto a duração de fornecimento de energia elétrica. 

Transmissor: nRF24L01+ controlado através de um Attiny85, possui um botão, que quando é pressionado, envia um valor lógico ao receptor. Problema: a alimentação do circuito está sendo realizada com uma bateria de 3V, CR2032, a princípio não há problemas a cerca da transmissão dos dados, só que o consumo de energia está bastante alto e a bateria só consegue fornecer energia por no máximo um dia.

Consumo médio:

Attiny85: 1mA, em standby consome 100nA.

nRF24L01+: em modo de transmissão,consome 11,3mA se a potência de transmissão for 0dBm. Em standby consome 900nA.

Tensão de operação:

Attiny85: 1.8V - 5.5V

nRF24L01+: 1.9V - 3.6V

A forma da bateria do transmissor durar bastante tempo (até onde eu sei) é colocar o Attiny85 e o nRF24L01+ em standby, ou interromper o fornecimento de energia e só energizar o circuito quando for necessário.

Tentei fazer com que o circuito seja energizado apenas quando eu apertar o botão, ou seja, em vez de colocar o attiny85 para ler uma entrada digital, o botão seria o on/off de todo circuito, de forma que quando fosse apertado, o circuito era energizado e o dado era enviado. Problema: eu estava tendo que manter o botão pressionado por aproximadamente uns 1.5s para o dado ser enviado, acredito eu que era o tempo necessário até que tudo fosse inicializado, bibliotecas, definições ..., também coloquei um capacitor de filtro em paralelo com o botão, para atenuar os ruídos devido a trepidações mecânicas da chave.

A forma mais inteligente de realizar a economia seria colocar o MCU em standby e o nRF24L01+ em powerDown. Problema: colocar o Attiny85 em standBy e programar interrupção não é tão simples como no Arduino Uno (fiz o teste com ele e deu certo, colocava o arduino para dormir e quando apertava o botão, acionava uma ISR de interrupção externa que enviava o dado). Devido a quantidade reduzida de pinos do Attiny85, o pino MOSI e o pino de interrupção externa INT0 (em minhas pesquisas, encontrei referências apenas a este pino como sendo possível realizar uma interrupção externa), essencial para acordá-lo do standby é o mesmo. Segue em anexo o mapa de pinos do Attiny85 e o esquemático de ligação com o nRF24L01.

Dado isso, não sei o que fazer para a bateria durar mais, posso, optar também por comprar baterias melhores, com maior capacidade de fornecer energia elétrica, mas o projeto só vai ficando mais caro, o que não é o intuito.

Obrigado.

Exibições: 540

Anexos

Responder esta

Respostas a este tópico

Boa noite Eduardo, 

Já fez teste com o nRF24L01?

Local onde tem muito roteador WIFI (2,4GHz) , esse módulo funciona precariamente. 

Aqui em casa, foi decepcionante. 

Boa tarde José Abreu, fiz testes em locais cuja a concentração de sinais de wifi é grande e o resultado realmente é péssimo, nem se compara com locais onde há pouco sinal de wifi, entretanto, para meus propósitos, isso não é uma grande barreira como o consumo energético. 

O estudo que vc está fazendo segue o melhor caminho, estudando os consumos.

A possibilidade estaria em manter o sistema desligado, trabalhando por watchdog ou outro mecanismo de disparo que faça funcionar uma minima quantidade de tempo se comparado ao tempo desligado.

Mas adianto, esses componentes não são para isso. Eles não são de consumo tão baixo assim. Vc pode fazer cair o consumo a ponto de funcionar alguns dias, mas não mais.

Recomendo rever a necessidade de uma bateria tão pequena. Ao menos colocar uma bateria de celular. 

Embora de baixa tecnologia entendo que o sistema que melhor te atenderia seria o controle remoto de portão.

Os mais antigos ainda tem umas chavinhas de configuração do codigo. Se vc usar as chavinhas para configurar o byte a ser enviado e disparar de tempos em tempos quem sabe.

Mas a bateira tipo moeda realmente não é para esse tipo e uso.

Obrigado pela resposta.

Bem, acho que não seria uma boa colocar o transmissor em watchdog, já que ele usa interrupções internas para acordar, disparadas por um temporizador, também interno, certo? Como a transmissão é feita quando um botão é pressionado, não vejo como poderia funcionar. 

Sobre a bateria, estou vendo que realmente precisarei de uma com a capacidade maior de fornecimento de energia, mas de qualquer forma, o consumo está bastante alto, mesmo se eu colocar uma "bateria boa", sua vida útil seria extremamente pequena. 

Cheguei a considerar a utilização do controle remoto de portão para desenvolvimento do sistema, inclusive estudei um excelente artigo escrito pelo José Gustavo, disponível aqui no forum:

http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf...

mas devido a dificuldade de encontrar tais transmissores de portão no mercado e com uma "facilidade" não tão baixa de se trabalhar, além da menor possibilidade de customização do projeto, acabei optando pelos módulos nRF24L01+.

Estou apostando que energizar o circuito apenas quando o botão for pressionado é uma boa, só que não vem a cabeça como posso tratar o delay de tempo entre o botão ser pressionado e o dado ser enviado, já que ficar segurando o botão para enviar a informação não é funcional.

Ah, sim, tem o botão, não rola whatchdog.

Enfim, que dado e´ esse que vc precisa transmitir ? só um codigo do botão ? Ou tem mais coisa ?

Não entendi a falta do transmissor no mercado.. é o que mais tem..

https://www.google.com/search?q=chaveiro+transmissor+433

Esses tem 2 botoes. Podem transmitir botão 1, botão 2 ou os 2 ao mesmo tempo.

Tem uma versão do integrado que permite mais botoes.

Para fazer seu circuito funcionar por ex por 2s a cada toque no botão vc precisa adicionar um oscilador monoestável (fica parado em um estado).

Com 555 vc faz isso.

https://www.google.com/search?q=monoest%C3%A1vel+555

Mas que dado e´ esse q vc precisa transmitir ? quantos bits ?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço