Câmera Wi-Fi com colheita solar
Um módulo ESP32-CAM é um dispositivo de baixo custo baseado no módulo ESP32-S, em um sensor de imagem OV2640 e em um slot de Micro SD. O módulo não foi projetado para baixo consumo de energia, no entanto, após algumas alterações, o consumo de energia pode ser reduzido a um nível que seja viável por períodos curtos, alimentado por energia solar. O projeto apresentado aqui é uma plataforma de experimentação robusta, resistente a poeira e à água, usando componentes comerciais de prateleira. Ideal para uso externo.
Componente chave: ESP 32 CAM
Redução do consumo de energia
O ESP32-CAM não foi projetado para ser um dispositivo de baixo consumo de energia. Sem modificações, a corrente de sono profundo medida foi de 2,8 mA, deixando muito a desejar.
Algumas pessoas já se aventuraram nas seguintes modificações na Internet:
- Remover o regulador de tensão de 5 V para 3 V, a câmera será alimentada diretamente por uma bateria de 3,2 V LiFePO4.
- Quebrar a trilha que alimenta a câmera a partir de 3,3 V e ligá-la ao MOSFET Q2, que liga os reguladores de tensão de 2,8 V e 1,2 V.
- Remover o led embarcado e ligar o GPIO33 ao pino de 5 V (este pino já está isolado após a remoção do regulador) para usá-lo externamente.
Essas modificações reduziram a corrente em modo de sono profundo para 0,8 mA, o que é escandaloso para um dispositivo de baixo consumo, no entanto, é uma melhoria substancial em relação aos 2,8 mA sem modificações.
Lista de materiais
Caixa à prova d’água para câmera esportiva SJ4000, módulo de colheita de energia BQ25504, painel solar, cartão Micro SD.
Placas de circuito impressas (PCB) | Ligação do compra | Arquivos de origem |
---|---|---|
Placa PCB protótipo para caixa à prova d’água para câmera esportiva | Compre aqui | esp32cam-proto-sportcam |
Software | repositório |
---|---|
Firmware de exemplo que tira fotos e as envia para um servidor usando HTTP POST. | download |
Exemplo de servidor em Golang para upload de imagens via HTTP POST. | download |
Componentes opcionais | Ligação do compra | Arquivos de origem |
---|---|---|
Conversor USB a TTL 3.3 V 5 V | Compre aqui | usb-ttl-converter-3-3v-5v.pdf |
Medidor Lux digital LCD | Compre aqui | digital-lcd-lux-meter.pdf |
Montagem
A plataforma básica consiste de uma caixa estanque para câmera de esporte e uma placa de circuito impresso com o tamanho apropriado para caber no interio
A caixa proposta é bastante comum, fácil de encontrar e barata. Abre e fecha sem parafusos e possui um ponto de montagem onde diferentes acessórios de montagem podem ser instalados.
A placa de circuito impresso foi projetada para colocar o ESP32-CAM perto da janela onde a lente da câmera seria localizada. O módulo pode ser posicionado em duas orientações diferentes para maximizar a área, dependendo dos componentes selecionados.
Foi adicionado um clipe de bateria AAA, conectores fêmea para conectar/desconectar facilmente o módulo e barra de pinos para programação, porque a placa não possui tal circuito. Além disso, foi adicionado um LED vermelho para fins de depuração.
Colhedor de energia
A câmera obtém energia de painéis solares instalados dentro da caixa, o que significa que a área disponível é pequena, por isso é necessário um meio de maximizar a eficiência. Foi usado um módulo coletor baseado no chip BQ25504. Este dispositivo aumenta a tensão do painel solar e é capaz de fazer isso com tensões de até 130 mV! Assim, é capaz de fornecer corrente para armazenamento na bateria, mesmo sem a luz direta atingir o painel.
O módulo também funciona como um carregador de bateria com proteção contra sobretensão e subtensão. Para definir os valores de tensão, alguns resistores devem ser modificados. O fabricante do módulo fornece uma planilha para facilitar o processo.
Como o caixa é transparente, é possível colocar alguns painéis solares em vários locais dentro dele e conectá-los em paralelo ou em série. Talvez alguns diodos sejam necessários para não perder muita eficiência quando alguns painéis estiverem sombreados.
Outra função importante do módulo de colheita de energia é a capacidade de fornecer um SINAL DE OK DE TENSÃO, para que o MCU possa ser mantido no estado de reset quando a tensão da bateria estiver muito baixa para operar.
Orçamento de energia
Aviso: Alguns dados e procedimentos serão simplificados para obter resultados mais simples e rápidos!
O ESP32 consome cerca de 200 mA a 3,3 V para enviar dados via Wi-Fi, o que é equivalente a 0,66 W. Um painel solar de 40x40 mm que cabe dentro do invólucro mencionado acima gera cerca de 65 mA a 2 V em pleno sol, o que equivale a 0,13 W.
Com esses dados, fica claro que não é possível usar o ESP32 enviando dados via Wi-Fi continuamente com esse painel, mesmo sob plena luz do sol.
Para lidar com esse problema, duas coisas são necessárias: um elemento de armazenamento e o uso do módulo ESP32 em modo não contínuo (ciclo de trabalho).
O módulo no modo de sono profundo consome cerca de 0,88 mA a 3,3 V, o que equivale a 0,003 W. Supondo 12 horas de luz solar, serão necessários em média 0,006 W por dia apenas para manter o módulo energizado em modo de sono. Se o par painel/coletor puder fornecer em média 4,6% da potência máxima do painel solar em pleno sol, será suficiente para manter o ESP32 energizado em modo de sono profundo por muito tempo (até a degradação da bateria!).
Assumindo 100.000 lux como sol pleno e 100% da potência do painel solar de 40x40 mm como 0,13 W, estima-se que a irradiância média necessária por dia para manter o ESP32 energizado em modo de sono profundo é de cerca de 4600 lux.
Quanta energia é necessária para tirar uma foto e enviá-la pela internet?
Depois de acordar de um deep sleep, leva cerca de 4 segundos para o ESP32 tirar uma foto, armazená-la no cartão SD e disponibilizá-la na internet. O consumo médio de energia desses 4 segundos é de 200 mA em 3,3 V. A corrente a ser acumulada por 12 horas é:
Ciclo ESP32: 200 mA x 4 s
É necessário: ? mA x 12 h ? mA x 12 (3600) s ? mA x 43200 s (Aproximando para 40000 para facilitar os cálculos)
fator = 4 S / 40000 S = 0,0001 200 mA * 0,0001 = 10 uA
É necessário uma média de 10 uA por 12 horas para tirar uma foto e enviá-la para um servidor, o que é perfeitamente viável ao ar livre, mesmo em dias nublados.
Encontrando a relação entre Lux e a saída de energia do painel solar de 40x40 mm e 0,13 W.
100.000 Lux => 0,13 W 0,77 Lux => 1 uW
10uA * 3,3V = 33 uW
(0,77 Lux / uW) 33 uW = 25,4 Lux (Aproximando para 26 Lux)
Será necessário uma média diária de 26 Lux para tirar uma foto e enviá-la por Wi-Fi.
Em resumo, para tirar pelo menos uma foto por dia e enviá-la por Wi-Fi, será necessário uma média diária de 4600 Lux + 26 Lux = 4626 Lux. Para duas fotos por dia, será necessário uma média diária de 4652 Lux, e assim por diante.
Se for usado um painel menor, como o de 30x25 mm na frente da câmera, cuja potência é cerca de um quarto do instalado na parte de trás, a irradiância deve ser 4 vezes mais forte.
Para usar a câmera com um painel tão pequeno, é necessário muita luz, especialmente luz direta.
Firmware e Software
O firmware disponibilizado aqui faz as seguintes coisas: tira uma foto e armazena no cartão Micro SD, depois envia-a via Wi-Fi para um servidor usando um pedido HTTP POST multipart e, em seguida, entra em modo de hibernação profunda por X segundos antes de iniciar o ciclo novamente. O código pode servir como ponto de partida na criação de um aplicativo mais robusto adaptado às necessidades individuais.
No lado do servidor, há um pequeno aplicativo escrito em Golang, que escuta pedidos HTTP POST e recebe as imagens enviadas pelo ESP32-CAM e as armazena em uma pasta local. Este aplicativo deve ser executado em um PC ou em um Raspberry Pi na mesma LAN do ESP32-CAM. Por ser um exemplo básico de partida, não há um método de autenticação desenvolvido, portanto, não é recomendado para implantação em um servidor público na Internet.
Para programar o módulo, é necessário um conversor USB para serial TTL, pois o módulo não tem um chip onboard para essa tarefa. Além disso, o GPIO0 deve ser conectado ao GND durante a programação.
O GPIO33 foi liberado do LED onboard e conectado externamente. O firmware fornecido o usa para debug, mas ele pode ser usado para outros propósitos, como:
- ADC para medição da tensão da bateria
- Configurado como pino RTC para acordar o MCU do modo deep sleep, ou seja, sensor PIR
- Conectado a um botão para fazer configuração local sem um computador ou conectividade Wi-Fi
Resultados
A qualidade da imagem não é ótima, o que era esperado devido ao custo do módulo. A qualidade poderia ser melhorada modificando vários parâmetros do chip, dependendo das condições específicas de iluminação. A imagem mostrada abaixo foi carregada automaticamente pelo módulo por Wi-Fi para um Raspberry Pi onde o servidor de upload em Golang estava sendo executado.
Possíveis melhorias
Dado que o firmware e o servidor de upload são exemplos muito básicos, existem algumas tarefas propostas ao leitor, tais como:
- Gerenciador de Wi-Fi para configurar credenciais sem reprogramação.
- Implementação de algum tipo de autenticação ao se comunicar com o servidor.
- Um mecanismo para alterar o tempo de sono profundo, as configurações de imagem, etc. do servidor em cada troca de imagem.
- Desenvolver um agendador baseado em RTC para tirar fotos em datas específicas.
- Uso de uma antena Wi-Fi melhor (externa ao módulo, mas colocada dentro do caixa) e colocá-la em um lugar com menos obstruções. Algumas mudanças são necessárias nos componentes próximos ao conector U.FL.