Conversando com o Arduino usando Telegram e JavaScript
Como usar a API do Telegram e o Johnny-Five para interagir com seu Arduino.
Em meus experimentos com a tal “internet das coisas” sempre acabei limitado à rede wi-fi de onde eu estava, até que eu vi este belo módulo para lidar com bots do Telegram em Node.js e agora posso me comunicar de qualquer lugar que tenha internet usando o app.
Quando fiz uma palestra no Nodebots Day em Porto Alegre demonstrei como criar um servidor e associar rotas específicas a sensores/motores/leds. Isso permite que, ao digitar uma url num browser qualquer (não importa se é notebook, tablet, smartphone, etc), eu me comunique com o Arduino. Logo, algo como
http://192.168.0.3/servo/angle/90
seta o ângulo do servo para a posição de 90 graus. Ou
http://192.168.0.3/buzzer/300
toca a frequência de 300 hertz no buzzer por um tempo pré-determinado no código.
O código desse exemplo está aqui.
Isso é bem útil, mas eu ainda sentia a necessidade de saber o status de um sensor mesmo estando realmente longe dele. Existem alguns serviços e plataformas que resolvem esse problema, mas alguns precisam de hardware especial e eu não queria comprar nada. Eis que numa JavaScript Weekly eu vi o módulo citado acima e: *plim*. Temos uma interface muito simples!
Eu criei um repositório no Github chamado Johnny-Telegram (porque criatividade é mesmo meu forte) com alguns exemplos.
No primeiro caso vamos controlar um led. O código que deve ser rodado para controlar o Arduino é o seguinte:
E assim podemos enviar um comando pelo telegram
call led blink 500
chamando o método ‘blink’ com o parâmetro 500. A resposta deve ser
led.blink called with 500
E agora podemos chamar os métodos que a API do Johnny Five expõe!
No segundo exemplo, adicionaremos um sensor de proximidade:
Já que estamos chamando o método ‘setValue’ sempre que temos dados vindos do sensor, podemos acessar o valor atual com um comando no telegram:
value prox
E teremos a resposta:
18.522
Agora podemos enviar comandos e receber dados!
Mas talvez você queira receber uma mensagem se a distância estiver acima ou abaixo de um valor específico. Daí basta usar ‘majorthan’ ou ‘minorthan’:
majorthan prox 40cm 40 0.5
Esse comando adiciona um gatilho chamado “40cm” que checa se o valor do sensor é maior que 40 a cada 0.5 minutos. A resposta que confirma se foi bem-sucedido é:
added as 40cm
Caso o valor se encaixe nas condições, uma mensagem é enviada:
prox, 40cm = 42.348
Novamente, existem inúmeras outras formas de fazer essa comunicação, mas um módulo em Node para um app que eu uso todo dia me motivou a criar esse repositório! E por mais que pareça bizarro usar JavaScript para isso, lembre-se que até a IBM acha razoável!
Ten articles before and after
How to Create Telegram Bots Using Webhooks – Best Telegram
Mercor Finance Kicks Off Full Launch Month — Introducing Its Official Telegram Bot – Best Telegram
從入門到內行|Telegram 行銷這樣玩更到位!. 只看功能介紹文沒用,要搭配應用案例才有靈感啊~ – Telegram群組
Telegram bot to Track your Expenses in a Spreadsheet – Best Telegram
CURATE IEO, Binance Launchpad, 10k Members on Telegram, Solutions, Roadmap and About – Best Telegram
New Telegram Invite Program: Win Over 10,000 CENTUS ($ 100) – Best Telegram
Weekly Update #8: Voting Module Release, AVT Review, Facebook & Telegram – Best Telegram
data-rh=”true”>Important Notice! Change Of Telegram Group – Ravendex – Medium – Best Telegram
AMA recap from Apollo-X telegram group with REPRESENTDAO – Best Telegram