Índice:
- Etapa 1: O que você precisa
- Etapa 2: Instalando o IDE
- Etapa 3: Criando o Telegram Bot
- Etapa 4: modificar, fazer upload e testar o esboço
- Etapa 5: Improvementes
Vídeo: [IoT] Telegram Bot com Arduino MKR WiFi 1010: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Este projeto demonstra como fazer a interface do Arduino com as APIs do Telegram Bot. O projeto é construído em torno da nova placa MKR WiFi 1010 equipada com um módulo ESP32 da U-BLOX.
Nesse estágio, o projeto não é mais do que uma prova de conceito, apenas para mostrar o que você pode fazer, então para isso você precisa apenas da placa Arduino.
Mas o que é um Telegram Bot? Bem, os Bots são simplesmente contas do Telegram operadas por software - não por pessoas - e muitas vezes têm recursos de IA. Eles podem fazer qualquer coisa - ensinar, reproduzir, pesquisar, transmitir, lembrar, conectar-se, integrar-se a outros serviços ou até mesmo passar comandos para a Internet das Coisas. (créditos por Telegram:
Em nosso caso, passaremos comandos para o Arduino construindo um dispositivo IoT simples. Ele responde a comandos simples e também liga / desliga o Led embutido. Vou deixar sua imaginação fazer mais… (imagine conectar um ou mais relés aos pinos de I / O e ligar / desligar um aquecedor ou sistema de ar condicionado com seu smartphone, por exemplo).
Etapa 1: O que você precisa
Para este projeto, você precisa de:
- Arduino MKR WiFi 1010 da loja Arduino:
- Arduino IDE 1.8.5 ou superior:
- Um cabo micro-usb para conectar o Arduino ao seu PC
- Uma conexão com a Internet requer o SSID e a senha. Melhor se você usar seu próprio roteador doméstico para ter certeza de que não está bloqueado.
- Aplicativo Telegram instalado em seu smartphone, não importa a marca. Verifique aqui as versões para PC e Web!
Etapa 2: Instalando o IDE
Sim, eu sei, eu sei … a maioria de vocês já tem o IDE Arduino instalado no PC, mas este Instructables é destinado também a iniciantes. Então, antes de tudo, baixe o IDE Arduino 1.8.5 de sua escolha (arquivo zip para 'não administradores' ou arquivo exe)
Recomenda-se a versão 1.8.5, não testei as versões antigas e a nova placa usada no projeto não tinha suporte para nada.
Agora você precisa instalar as novas placas com seus drivers:
- inicie o IDE
- No menu Ferramentas, escolha Placas e, no topo da lista de processadores, escolha Gerenciador de placas.
- Percorra a nova janela (veja a imagem) até encontrar as placas Arduino SAMD que incluem o novo MKR WiFi 1010.
- Clique nessa guia ou clique em Mais informações dentro da guia, escolha a versão mais recente e instale.
- Aguarde a conclusão da instalação. Cuidará também da instalação dos drivers
- Você também precisa de uma nova biblioteca WiFi para esta placa: escolha Sketch, Include Library e Manage Libraries. Search for Wifinina e instale como você fez com o processador acima.
Agora conecte sua nova placa Arduino e aguarde o Windows concluir a instalação do driver.
No menu Ferramentas-> Placa você encontrará as novas placas, escolha o MKR WiFi 1010.
Outra biblioteca especial é necessária para este projeto, é a biblioteca ESP8266TelegramBot de Giancarlo Bacchio. A biblioteca foi ligeiramente modificada para funcionar com esta placa, portanto, está incluída na pasta do esboço.
Escolha a porta de comunicação correta e teste a placa com o comando Get Board Info.
Parabéns, você concluiu o IDE!
Etapa 3: Criando o Telegram Bot
Criar um novo Bot do Telegram é bastante simples.
Abra o aplicativo Telegram e, na barra de pesquisa, digite @BotFather e inicie um bate-papo com ele (imagem1). BotFather é a… fábrica de bots. Isso o ajudará a criar um novo bot e alterar suas configurações.
Após o comando / start, você verá a lista de ajuda (imagem2).
- Digite / newbot (image3) Agora digite o nome do seu bot. O nome é exibido nos detalhes de contato e em outros lugares.
- BotFather irá pedir um nome de usuário. O nome de usuário é um nome curto, para ser usado em links de menções e telegram.me. Os nomes de usuário têm de 5 a 32 caracteres e não diferenciam maiúsculas de minúsculas, mas podem incluir apenas caracteres latinos, números e sublinhados. O nome de usuário do seu bot deve terminar com 'bot', por exemplo ‘Tetris_bot’ ou ‘TetrisBot’.
- Se o nome e o nome de usuário forem válidos, você receberá uma longa sequência de caracteres chamada TOKEN. Esta é a sua 'chave' pessoal usada para se comunicar com os servidores Telegram. Copie e cole em um arquivo de texto no seu PC por enquanto. Nós o usaremos mais tarde no código do Arduino. Se você perder, não se preocupe, apenas reabra o chat e digite / token para gerar um novo.
Todas as etapas são descritas aqui:
Avançado (opcional)
Reabra o chat e digite / help
Clique em (ou digite) / setuserpic para enviar uma imagem para o seu bot. Clique em (ou digite) / setabouttext para definir a seção Sobre do seu bot: as pessoas verão este texto na página de perfil do bot e ele será enviado junto com um link para o seu bot quando eles o compartilham com alguém.
Clique em (ou digite) / setdescription para definir uma seção de descrição para o seu bot. As pessoas verão essa descrição quando abrirem um bate-papo com seu bot, em um bloco intitulado 'O que esse bot pode fazer?'.
Etapa 4: modificar, fazer upload e testar o esboço
É hora de fazer o upload do software para a placa Arduino MKR WiFi 1010.
Baixe os arquivos anexados, por algum motivo não posso carregar um ZIP, então crie uma pasta chamada como o esboço e copie todos os 4 arquivos dentro dela, por favor, não mude os nomes a menos que você saiba o que está fazendo.
Modificar
Abra o sketch, precisamos preencher algumas informações (image1): preencha o arduino_secrets.h com sua credencial de wifi e telegrama.
- Localize as informações da rede WiFi e digite o nome da rede (SSID) e a senha.
- Localize as informações do telegrama do bot e digite o nome, nome de usuário e token fornecidos por @BotFather
Envio
Verifique se a placa está correta (imagem2) no ide e conectada e tente compilar o código. Se a compilação for bem, carregue-o no fórum, levará apenas alguns segundos.
Em caso de problemas, verifique se há um erro de digitação e tente novamente.
Teste
[IMPORTANTE!] O esboço envia logs para o IDE. O processador possui uma porta USB nativa (como as placas Leonardo). Uma vez ligado, o código irá aguardar até que o monitor serial esteja funcionando. Portanto, deixe-o conectado ao PC e abra o monitor serial. O Arduino primeiro se conectará à Internet e, em seguida, começará a pesquisar o servidor do Telegram em busca de novas mensagens (imagem3).
Agora abra o Telegram no seu dispositivo preferido e, na caixa de pesquisa, digite o nome do seu bot (não o nome de usuário que termina com 'bot'). Abra um bate-papo com ele.
O primeiro comando para iniciar um chat com um bot é / start, nosso Arduino responderá com uma mensagem de boas-vindas. Agora digite help (sem barra), ele responderá com uma lista de comandos suportados, você pode tentar todos eles (imagem4).
Você concluiu o teste, se algo não estiver funcionando, verifique as informações inseridas no esboço (nome, nome de usuário, token …)
Certificados Se você estiver tendo erros na conexão com o servidor de telegramas (log: Bot não conectado):
- Abrir Ferramentas-> atualizador Wifi101 / wifinina
- Certifique-se de que sua placa esteja conectada, verifique as portas à esquerda da ferramenta de atualização, a placa deve estar lá
- Clique em Abrir esboço do atualizador e carregue-o no quadro
- Após o upload, no atualizador, escolha o firmware mais recente para a sua placa e clique em atualizar firmware
- Após a atualização, no atualizador, seção Certificados SSL, clique em Adicionar domínio, na caixa de diálogo escreva telegram.org:443 e pressione OK.
- Clique em Carregar certificados para módulo wi-fi
- Envie este esboço para o quadro
Etapa 5: Improvementes
Olhando para o código é muito simples implementar novos comandos e responder ao usuário.
Novos comandos: você pode escrever um sub para cada novo comando. Cada sub-rotina se encarregará de completar o comando e (eventualmente) retornar uma informação de status para o usuário.
Limitando usuários: Claro que este projeto é apenas uma demonstração. Qualquer usuário do Telegram pode se conectar à sua casa e enviar comandos indesejados. Você não quer isso !.
Bem, olhe para a imagem1, ela mostra 2 usuários conectados. Como você pode ver, cada usuário possui seu próprio ID de usuário. Com um pouco de trabalho no lado do código, você pode filtrar (ou criar uma lista) apenas para usuários autorizados. Basta estudar o código e tentar interceptar o número de identificação do usuário. Em seguida, execute comandos apenas de usuários bem conhecidos.
Hardware: No lado do hardware, muitos sensores e relés podem ser conectados aos pinos de E / S do Arduino.
Cuidado: a placa usada neste projeto é tolerante a 3,3V !!! Use um shifter de nível de tensão quando necessário! Para mais informações e dicas sobre esta placa, leia aqui:
Isso é tudo, divirta-se!
Recomendado:
Bot do Telegram com NodeMCU (ESP8266): 3 etapas
Bot do Telegram com NodeMCU (ESP8266): Precisa de um bot para dar notificações de seu sistema? ou fazer algo apenas enviando uma mensagem? O Telegram Bot é a sua solução! Neste tutorial, usarei o Telegram Web e o BotFather para fazer o meu bot
Bot de alarme de chama do Telegram: 5 etapas
Telegram Flame Alarm Bot: Neste artigo irei apresentar o projeto IoT que permite detectar chama e enviar notificação ao telegrama do usuário
Controle o Arduino usando o Telegram Bot sem nenhum hardware extra: 5 etapas
Controle o Arduino usando o bot do Telegram sem nenhum hardware extra: há uma grande variedade de coisas que você pode fazer com o Arduino, mas você já pensou em controlar o seu Arduino usando um bot do Telegram? O QUE VOCÊ PRECISA: Arduino UNO Node.js instalado no seu PC Algum dispositivo controlável (usamos o LED on-board do Arduino em
Uso do sensor de movimento com RaspberryPi e Telegram Bot: 4 etapas
Uso do sensor de movimento com RaspberryPi e Telegram Bot: Olá, pessoal. Neste artigo, vamos usar o Raspberry Pi Telegram Bot com sensor PIR (movimento)
Telegram Bot Esp8266-001 (Arduino UNO ou NodeMCU): 6 etapas
Telegram Bot Esp8266-001 (Arduino UNO ou NodeMCU): Olá! Neste tutorial, mostrarei como controlar o Arduino com esp8266-001 e telegrama. Ele abre grandes oportunidades para a Internet das Coisas (IoT)