A primeira versão |
Inspiração
A ideia original veio de um projeto que Luis Leão levou ao Garoa Hacker Clube. Ele comprou no Mercado Livre um dispensador ativado por movimento (veja na Amazon) e colocou um Raspbery Pi para comandar a liberação dos doces a partir de likes no Facebook (se a memória não falha). Eu tentei comprar um igual, mas estava esgotado.
Versão 1: Intel Edison
Passado um bom tempo, me inscrevi para participar do Intel IoT Roadshow de 2015. Neste evento a Intel forneceu aos participantes um Intel Edison com o desafio de fazer algum projeto relacionado à "internet dos trecos".Revivendo a ideia do dispensador, parti de uma garrafa plástica de suco. Uma portinha de papelão presa a um servomotor controla a saída do doce. Para ter uma telemetria, coloquei LEDs IR de um lado e fototransistores do outro. Para sofisticar um pouco mais, coloquei um leitor de RFID.
Detalhe do servo |
Com isto eu usei uma boa quantidade de recursos do Edison: PWM (para controlar o servomotor), entradas e saídas digitais (LEDs e fototransistores), serial (para comunicação com o leitor RFID) e WiFi (para enviar a leitura dos sensores para a "nuvem"). Por simplificação, a minha "nuvem" era um programa no PC que recebia conexões TCP e atualizava uma imagem simples indicando o nível do doce.
Demonstração no Intel IoT Roadshow
O software do Edison foi feito em C++ usando a biblioteca MRAA. O programa no PC foi feito em Python.
Versão 2: Arduino
Algumas semanas depois, ao participar da bancada do Garoa na Roadsec, resolvi simplificar um pouco e usar um Arduino. A montagem original já usava uma placa protótipo de shield (o Edison estava em uma placa com conectores padrão Arduino), portanto do ponto de vista elétrico e mecânico foi trivial.Demonstração na RoadSec |
Mantive o leitor de RFID mas não usei a informação dos sensores IR. O funcionamento ficou todo local: lendo um tag o doce era liberado.
Versão 3: ESP8266
Na versão mais recente (até o momento), eu tirei o Arduino, o leitor RFID e os sensores IR. O servo foi ligado a um ESP8266 e acrescentei um display I2C. O software verifica periodicamente o recebimento de mensagens de email. O assunto do email deve estar em um formato específico, que indica uma pergunta e uma resposta. Ao receber a primeira resposta correta a uma pergunta, o doce é liberado. Eu previ 26 perguntas e 26 respostas (uma para cada letra).
No HacKids |
Esta versão foi apresentada no "HacKids Dia das Crianças". Alguns aprendizados:
- Não é trivial usar comunicação segura com o ESP. Acabei usando POP3 aberto.
- Exemplos retirados da internet podem ter bugs sutis. O exemplo de uso de display I2C que eu usei como ponto de partida acabava bagunçando tudo na minha configuração.
- As minhas temporizações precisam ser ajustadas quando muda o tamanho do doce. Desta vez eu usei um doce menor e as porções ficaram muito generosas.
- Preciso imprimir uma peça para prender no servo. A peça de papelão presa com cola quente se soltou.
Nos arquivos do blog, em Baleiro.zip, tem os softwares que eu usei. Estão em estado bruto, com poucos comentários.
3 comentários:
Me ocorreu a seguinte ideia: para não ter que alterar a temporização do servo, talvez adaptar algo como uma bola de isopor cavada em um dos lados de forma a criar um "buraco" onde cabe uma certa quantidade de doces. Com isso o servo só precisaria dar uma volta inteira para descarregar o conteúdo e reposicionar o "buraco" para encher novamente, mais ou menos como aquelas máquinas que se coloca uma moeda e se gira uma borboleta para retirar o prêmio. Pode ser que funcione...
Muito legal DQ! Gostei do projeto.
Ricardo, sua ideia é interessante. Já tinham me sugerido algo equivalente, mas mais complicado. Neste caso em particular não sei se adiantaria tanto, pois a diferença de tamanho entre os doces era grande e cabe bem mais do pequeno no mesmo volume.
Postar um comentário