Uma lâmpada inteligente que mostra o clima em sua cidade



Todo mundo conhece esse sentimento quando existe um desejo obsessivo de fazer algo: comprar algo, criar algo, escrever algo, ligar para alguém ... Então, eu queria fazer algo com minhas próprias mãos. Em busca de um projeto adequado no instructables.com, me deparei com isso e percebi - é isso que você precisa!

Antes de tudo, adaptei esse design da lâmpada para mim:

  • em vez do clima do mundo inteiro, decidi aproveitar o clima da minha cidade
  • em vez de raspberry pi, decidi usar o arduino (já que ele já estava em estoque)
  • design da caixa de acrílico também mudei um pouco a meu critério
  • a capacidade de configurar a lâmpada sem piscar, via cartão SD.

O primeiro passo, decidi escrever um programa no arduino. O problema era que o arduino não tinha wifi, mas a solução foi encontrada rapidamente - esp8266. O ESP8266 é um microcontrolador com interface Wi-Fi. Além do Wi-Fi, o microcontrolador se destaca pela capacidade de executar programas de uma memória flash externa com uma interface SPI. A programação do ESP8266 é feita através de um adaptador serial, que pode ser usado como um arduino. Além disso, programas de gravação e flash também podem ser feitos através do IDE do arduino.



Ao trabalhar com a placa ESP-01, percebi rapidamente que o uso do pacote arduino uno + ESP-01 não é a melhor solução. O fato é que, para programar a placa, foi necessário montar um pequeno circuito programador. Isso, é claro, não é difícil, mas é muito inconveniente: para o firmware do módulo, você precisa conectar o ESP-01 através do programador ao arduino uno, que funciona no modo de adaptador serial, e para verificar a operação do programa, você deve reconectar o ESP-01 diretamente ao arduino uno no modo calças para que as duas placas possam trocar informações pela porta serial.



Portanto, decidi usar a placa NodeMCU como um microcontrolador, algo como esp8266 e arduino mini em uma placa. Além disso, ela possui uma entrada micro usb, que simplifica bastante o procedimento para trabalhar com ela.



O programa em si acabou sendo bastante simples. Primeiro, ele se conecta a uma rede wifi, cujo login e senha são armazenados no cartão SD. Depois disso, o json é baixado de ip-api.com/json para determinar a localização da lâmpada (apenas o nome da cidade e as coordenadas geográficas são retirados do pacote). Quando a localização da lâmpada se torna conhecida, o programa começa a gerar solicitações para o twitter, usando palavras-chave que descrevem cada "humor" programado. Após o processamento das solicitações, o programa calcula o número total de tweets e determina a porcentagem de cada humor no ciclo atual. Para tornar o cálculo do humor atual mais “animado” - o programa compara o humor atual com o anterior e calcula a alteração percentual. Por exemplo, se no primeiro ciclo de trabalho a distribuição de humor foi de 0,4 para a felicidade e 0,05 para o romance, e no segundo ciclo de 0,5 e 0,1, respectivamente, o programa escolherá "romance" como o humor atual (já que o aumento da felicidade foi de 25% e o romance foi de 100). %) Essa abordagem permite que você responda rapidamente a mudanças repentinas de humor na cidade, bem como rastreie modos variados (se a fração de massa dos dois modos for aproximadamente a mesma, o programa alternará entre eles).

O segundo estágio foi a montagem do compartimento da lâmpada. Eu determinei imediatamente o material - plexiglás opaco (44% de transmissão de luz) com 2 mm de espessura. Ao mesmo tempo, de acordo com a idéia, a prateleira inferior - na qual todos os eletrônicos estão localizados - era feita de plexiglás transparente. Nesse caso, há a sensação de que, quando a lâmpada está funcionando, a luz parece sair de baixo e cria a ilusão de levitação da própria lâmpada.

Eu queria colar as paredes cortadas de acrílico usando uma cola quente. Mas esse projeto acabou sendo instável (possivelmente devido à pequena largura das paredes) e desmoronava constantemente. Decidi então fixar as paredes com a ajuda de cantos e parafusos. Essa opção acabou sendo mais confiável (embora não tão bonita), então eu parei nela.

Depois de montar o gabinete, passei para o terceiro e último estágio - instalando os eletrônicos na prateleira inferior. Tudo era bem simples aqui, exceto que, em vez dos 4 LEDs planejados, usei 8 - outros 4 são direcionados para baixo para criar um efeito de levitação. O fato é que perdi o tamanho da lâmpada e 30% da prateleira comeu um compartimento para 4 pilhas AA, bloqueando a luz dos LEDs.



E também foi descoberto que os LEDs que comprei fazem um trabalho ruim na exibição de cores complexas. Portanto, tive que me restringir a 7 simples: vermelho, verde, azul, rosa (vermelho + azul), amarelo (vermelho + verde), turquesa (verde + azul) e branco.

O resultado final do trabalho pode ser visto no vídeo .

Neste vídeo, a lâmpada está no modo de demonstração - alterna rapidamente todas as combinações de cores com fio em ordem aleatória. No modo de operação "normal", a lâmpada consulta o twitter a cada dez minutos para calcular o humor atual e muda de cor de acordo com os resultados do cálculo.

O orçamento do projeto chegou a pouco mais de 2 mil rublos. Além disso, as peças mais caras: 4x pilhas AA 700r, uma folha de plexiglass fosco 600r, nodemcu chinês 500r.

O que pode ser melhorado:

  • Ao montar o estojo, você pode usar cantos transparentes para que eles não se destaquem muito.
  • O custo de uma caixa de acrílico pode ser significativamente reduzido se você comprar uma folha grande de acrílico e cortá-la você mesmo.
  • Você pode usar LEDs mais caros, que normalmente exibem cores intermediárias, como laranja, roxo, etc.
  • Você pode usar outra fonte de energia, como uma coroa. Isso se deve principalmente ao fato de o compartimento de bateria de 4 pilhas AA ser muito grande e bloquear uma grande quantidade de luz na parte inferior da lâmpada. É verdade que não se sabe quanto tempo a lâmpada pode funcionar a partir de uma coroa.
  • Você pode criar uma interface web simples para definir a lâmpada. Como a biblioteca para trabalhar com cartões SD não suporta o idioma russo, é impossível definir palavras-chave para pesquisa dessa maneira.

O código do programa pode ser encontrado no github . Se for interessante - posso contar mais sobre o programa em outro artigo.

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


All Articles