Índice:
- Suprimentos
- Etapa 1: ideia
- Etapa 2: Diagrama de blocos
- Etapa 3: Programação
- Etapa 4: esquemático e solda
- Etapa 5: aplicativo Android
Vídeo: Lâmpada lunar IoT: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
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
- Smartphone Android (versões do Android 7-9 testadas).
- Ferramentas de solda.
- Prototipagem de PCB (protoboard).
- Placa ESP-12E (ou outro devboard com microcontrolador ESP8266).
- Conversor USB-serial para programação.
- Vários valores diferentes de componentes passivos (resistores e capacitores).
(Opcional. Consulte a seção "Diagrama de bloco")
- 3,3V@500mA LDO IC.
- Placa conversora de nível lógico 3,3V-5V.
- Fonte de alimentação 5V DC.
Etapa 1: 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
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
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:
- Verifique se ainda está conectado ao AP, senão tente reconectar até obter sucesso.
-
Aguarde o cliente fazer uma solicitação HTTP. Quando a solicitação acontece:
- Verifique a tensão de entrada.
- Verifique em que estado estão os LEDs.
- Corresponda a solicitação de HTTP com os estados de LED conhecidos (azul aceso, laranja aceso, ambos aceso e apagado).
- 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
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:
- 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.
- 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
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:
Lâmpada Stencil - Uma Lâmpada Muitos tons: 5 etapas
Lâmpada Stencil - One Lamp Many Shades: Este instrutível irá mostrar como fazer uma lâmpada simples com cortinas selecionáveis (é um abajur)
Lâmpada de fase lunar reciclada: 15 etapas
Lâmpada de fase lunar reciclada: Esta lâmpada é feita de um frasco de plástico e acende quando você fecha a tampa. Você pode alterar a silhueta para mostrar diferentes fases da lua
Lâmpada Zwift Ambilight e lâmpada inteligente de zona de frequência cardíaca: 4 etapas
Zwift Ambilight e lâmpada Smartbulb de zona de frequência cardíaca: aqui criamos uma GRANDE melhoria para Zwift. Você tem no final uma ambilight para mais diversão no escuro. E você tem uma lâmpada (Yeelight) para suas zonas de frequência cardíaca. Eu uso aqui 2 PI de framboesa, se você quer apenas o Yeelight você precisa de apenas 1 PI se
IOT Lunar Rover Raspberrypi + Arduino: 5 etapas (com imagens)
IOT Lunar Rover Raspberrypi + Arduino: este projeto é inspirado na missão lunar indiana Chandryaan-2, que acontecerá em setembro de 2019. Esta é uma missão especial porque eles vão pousar em um local onde ninguém pousou antes. para mostrar meu apoio, decidi comprar
A lâmpada em espiral (também conhecida como a lâmpada de mesa Loxodrome): 12 etapas (com fotos)
A lâmpada em espiral (também conhecida como a lâmpada de mesa Loxodrome): A lâmpada em espiral (também conhecida como a lâmpada de mesa loxodrome) é um projeto que comecei em 2015. Foi inspirado no candeeiro de loxódromo de Paul Nylander. Minha ideia original era uma luminária de mesa motorizada que projetaria redemoinhos de luz na parede. Eu projetei e