Índice:

Lâmpada lunar IoT: 5 etapas
Lâmpada lunar IoT: 5 etapas

Vídeo: Lâmpada lunar IoT: 5 etapas

Vídeo: Lâmpada lunar IoT: 5 etapas
Vídeo: Expectativa x realidade. E você lindona, Opção 1 ou 2? 2024, Novembro
Anonim
IoT Moon Lamp
IoT Moon Lamp

Neste instrutível, mostro como converter uma lâmpada LED simples alimentada por bateria em um dispositivo IoT.

Este projeto inclui:

  • de solda;
  • programação ESP8266 com Arduino IDE;
  • fazendo aplicativo android com MIT App Inventor.

O objeto de interesse é esta lâmpada em forma de lua que comprei na gearbest. Mas realmente este tutorial pode ser adaptado a qualquer dispositivo de baixa tensão DC (dispositivos com alimentação AC requerem circuitos adicionais).

Suprimentos

  1. Smartphone Android (versões do Android 7-9 testadas).
  2. Ferramentas de solda.
  3. Prototipagem de PCB (protoboard).
  4. Placa ESP-12E (ou outro devboard com microcontrolador ESP8266).
  5. Conversor USB-serial para programação.
  6. Vários valores diferentes de componentes passivos (resistores e capacitores).

(Opcional. Consulte a seção "Diagrama de bloco")

  1. 3,3V@500mA LDO IC.
  2. Placa conversora de nível lógico 3,3V-5V.
  3. Fonte de alimentação 5V DC.

Etapa 1: ideia

Ideia
Ideia

A lâmpada lunar é alimentada por uma célula Li-ION 18650 e tem 3 modos de operação:

  • desligado;
  • manual;
  • auto.

No modo manual, a lâmpada é controlada com o botão, cada vez que pressiona o LED muda o estado da luz (azul aceso, laranja aceso, ambos aceso, apagado), a intensidade da luz muda enquanto mantém o botão pressionado. No modo automático, os estados da luz LED mudam batendo ou sacudindo a própria lâmpada.

Decidi adicionar ESP8266 para atuar como um servidor web que escuta solicitações e simula o pressionamento de botões. Eu não queria quebrar a funcionalidade da lâmpada original, apenas queria adicionar recursos de controle adicionais sobre o WiFi, então escolhi ESP para simular o pressionamento de botões em vez de controlar diretamente os LEDs. Além disso, isso me permitiu interagir minimamente com o circuito original.

Quando o protótipo foi feito, ele dirigiu ~ 80mA constantemente com a bateria desligada (~ 400mA com brilho total). A corrente de espera é alta porque o ESP8266 funciona como um servidor e sempre está conectado ao WiFi e escuta as solicitações. A bateria se esgotou depois de um dia e meio apenas no estado desligado, então mais tarde decidi usar a porta de carregamento USB das lâmpadas para alimentar todos os componentes eletrônicos da fonte de alimentação externa de 5V e a bateria descarregada todos juntos (mas isso é opcional).

Etapa 2: Diagrama de blocos

Diagrama de bloco
Diagrama de bloco

No diagrama de blocos, você pode ver quais circuitos serão adicionados e como os circuitos existentes serão modificados. No meu caso, removi a bateria completamente e coloquei um curto-circuito nos carregadores de bateria, entrada com saída (novamente, isso é opcional). Blocos transparentes no diagrama indicam componentes que são ignorados (embora o botão de pressão ainda funcione como originalmente planejado).

De acordo com a documentação, o ESP8266 tolera apenas 3,3 V, no entanto, existem muitos exemplos em que o ESP8266 funciona perfeitamente bem com 5 V, portanto, o conversor de nível lógico e o LDO de 3,3 V podem ser deixados de fora, no entanto, mantive a prática recomendada e adicionei esses componentes.

Usei 3 pinos de E / S ESP8266 e pino ADC. Um pino de saída digital é para simular o pressionamento de botão, duas entradas digitais para detectar quais LEDs de cor estão acesos (a partir disso, podemos descobrir em qual estado o MCU está e qual é o próximo após o pressionamento do botão). O pino ADC mede a tensão de entrada (por meio de um divisor de tensão), é assim que podemos monitorar o nível de carga restante da bateria.

Como fonte de alimentação externa eu uso carregador de telefone antigo 5V @ 1A (não use carregadores rápidos).

Etapa 3: Programação

Programação
Programação
Programação
Programação

Em poucas palavras, o programa funciona assim (para obter mais informações, consulte o próprio código):

ESP8266 se conecta ao seu ponto de acesso WiFi cujas credenciais você deve inserir no início da programação anterior do código, ele obtém o endereço IP do servidor DHCP do seu roteador, para descobrir o IP que você precisará mais tarde, você pode verificar as configurações de DHCP da interface da web do roteador ou definir debugging flag in code to 1 e você verá o que IP ESP obteve no monitor serial (você deve reservar esse IP nas configurações de seus roteadores para que o ESP sempre obtenha o mesmo IP na inicialização).

Quando o MCU inicializado sempre executa a mesma rotina para sempre:

  1. Verifique se ainda está conectado ao AP, senão tente reconectar até obter sucesso.
  2. Aguarde o cliente fazer uma solicitação HTTP. Quando a solicitação acontece:

    1. Verifique a tensão de entrada.
    2. Verifique em que estado estão os LEDs.
    3. Corresponda a solicitação de HTTP com os estados de LED conhecidos (azul aceso, laranja aceso, ambos aceso e apagado).
    4. Simule tantos pressionamentos de botão conforme necessário para atingir o estado solicitado.

Descreverei brevemente as instruções de programação, se for sua primeira vez programando ESP8266 MCU, procure instruções mais detalhadas.

Você precisará do Arduino IDE e do conversor de interface serial USB (por exemplo, FT232RL). Para preparar o IDE, siga estas instruções.

Siga o diagrama do circuito para conectar o módulo ESP-12E para programação. Algumas dicas:

  • use fonte de alimentação externa de 3.3V@500mA (na maioria dos casos, a fonte de alimentação serial USB não é suficiente);
  • verifique se o conversor USB-serial é compatível com o nível lógico de 3,3 V;
  • verifique se os drivers do conversor USB-serial foram instalados com sucesso (a partir do gerenciador de dispositivos do Windows) também você pode verificar se funciona corretamente no IDE, apenas com os pinos RX e TX curtos, do que no IDE selecione a porta COM, abra o monitor serial e escreva algo, se tudo funcionar você deve ver o texto que está enviando aparecendo no console;
  • por algum motivo, só consegui programar o ESP quando conectei o conversor serial USB ao PC e, em seguida, liguei o ESP de uma fonte externa de 3,3 V;
  • depois de programar com sucesso, não se esqueça de puxar GPIO0 alto na próxima inicialização.

Etapa 4: esquemático e solda

Esquemático e Soldagem
Esquemático e Soldagem
Esquemático e Soldagem
Esquemático e Soldagem
Esquemático e Soldagem
Esquemático e Soldagem

Siga o esquema para soldar todos os componentes ao protoboard. Conforme mencionado antes, alguns componentes são opcionais. Eu usei KA78M33 3.3V LDO IC e esta placa conversora de nível lógico da sparkfun, alternativamente, você pode fazer o conversor como mostrado no esquema (você pode usar qualquer mosfet de canal N em vez de BSS138). No caso de você continuar usando a bateria Li-ION, a rede de alimentação de + 5V será o terminal positivo da bateria. A voltagem de referência do ADC ESP8266 é de 1V, meus valores de divisor de resistor escolhidos permitem medir a voltagem de entrada de até 5,7V.

Deve haver 5 conexões para a lâmpada PCB original: + 5V (ou + bateria), GND, botão de pressão, sinais PWM das lâmpadas MCU para controlar LEDs azuis e laranja. Se você está alimentando a lâmpada a partir de uma fonte de 5 V, como eu fiz, você vai querer dar um curto no pino IC VCC dos carregadores de bateria com o pino OUTPUT, dessa forma todos os componentes eletrônicos serão alimentados diretamente de + 5V e não do carregador de bateria OUTPUT.

Siga a segunda imagem para todos os pontos de solda que você precisa fazer nas lâmpadas PCB.

NOTAS:

  1. Se você decidiu fazer um curto + 5V com saída IC do carregador de bateria, remova a bateria completamente antes de fazer isso, você não deseja conectar + 5V diretamente a uma bateria.
  2. Preste atenção em qual pino do botão você solda a saída do ESP, porque 2 pinos de um botão são conectados ao aterramento e você não quer entrar em curto-circuito quando a saída do ESP ficar ALTA, é melhor verificar com o multímetro.

Etapa 5: aplicativo Android

App Android
App Android
App Android
App Android
App Android
App Android

O aplicativo Android foi feito com o MIT app inventor, para baixar um aplicativo e / ou clone o projeto para você mesmo, acesse este link (você precisará de uma conta do Google para acessá-lo).

Na primeira inicialização, você precisará abrir as configurações e inserir o endereço IP do ESP8266. Este IP será salvo, portanto, não há necessidade de inseri-lo novamente após a reinicialização do programa.

App testado com vários dispositivos Android 9 e Android 7.

Recomendado: