Taula de continguts:

Bot d'alarma de flama de Telegram: 5 passos
Bot d'alarma de flama de Telegram: 5 passos

Vídeo: Bot d'alarma de flama de Telegram: 5 passos

Vídeo: Bot d'alarma de flama de Telegram: 5 passos
Vídeo: Java Tech Talk: Telegram бот на java за 1 час 2024, Desembre
Anonim
Bot d'alarma de flama de Telegram
Bot d'alarma de flama de Telegram

En aquest article presentaré el projecte IoT que permet detectar flames i enviar notificacions al Telegram de l’usuari.

Què necessiteu:

  • Mòdul de sensor de flama
  • Microcontrolador NodeMCU ESP8266
  • Font d'alimentació
  • WiFi
  • Dispositiu de sortida amb telegrama

Pas 1: maquinari

Maquinari
Maquinari
Maquinari
Maquinari

Mòdul del sensor de flama Aquest mòdul conté un fototransistor i sistemes electrònics de condicionament del senyal. Un fototransistor condueix més corrent elèctric quan està exposat a la llum. La física ens va ensenyar que la llum (visible) comprèn tots els colors, des del vermell fins al violeta. En recobrir el fototransistor amb epoxi negre, es torna més sensible al vermell o fins i tot invisible sota el vermell o l’infraroig. Curiosament, la flama emet radiació infraroja. Així, quan aquest sensor veu flama, condueix més corrent. El NodeMCU és una placa compatible amb Arduino que compta amb l’ESP8266 al centre. Es va popularitzar perquè és un microcontrolador preparat per WiFi per si mateix, sense necessitat d’un Arduino. L’objectiu d’aquest article és mostrar tots els pinout i taulers NodeMCU disponibles actualment. Tingueu en compte que en programar aquestes plaques mitjançant el nucli ESP a Arduino IDE, s’utilitzen els números GPIO en lloc del que hi ha a la placa.

Pas 2: connexió

Connexió
Connexió

Sensor connectat a GPIO0 per a interrupcions.

Les interrupcions són útils per fer que les coses passin automàticament en programes de microcontroladors i poden ajudar a resoldre problemes de temps. Amb les interrupcions, no cal que comproveu constantment el valor actual del pin. Quan es detecta un canvi, s’activa un esdeveniment: es crida una funció. Aquesta funció s’anomena rutina de servei d’interrupció (ISR). Quan es produeix una interrupció, el processador atura l'execució del programa principal per executar una tasca i torna al programa principal

Pas 3: Telegram Bot

Telegram Bot
Telegram Bot

Els robots són aplicacions de tercers que s’executen dins de Telegram. Els usuaris poden interactuar amb els robots enviant missatges, ordres i sol·licituds en línia. Podem controlar els nostres robots mitjançant les API HTTP proporcionades per Telegram.

Un bot de Telegram és una aplicació allotjada en un servidor (aquí és ESP8266) que utilitza l'API de bot de Telegram per connectar-se als clients de Telegram Messenger. Un gran avantatge dels robots de Telegram és que no tenen requisits d’instal·lació i funcionen sense problemes a totes les plataformes d’ordinador o mòbils on s’executa Telegram Messenger. Configureu Telegram Bot Instal·leu Telegram al vostre ordinador portàtil o telèfon i cerqueu BotFather. A través de BotFather podem crear un bot nou. Després de crear un bot nou, hem d’anotar el testimoni que és la clau d’interacció entre el dispositiu i l’API del bot de Telegram.

Pas 4: programari

Descarregueu la biblioteca Telegram Bot

Obriu Arduino IDE, aneu a "Sketch", seleccioneu "Inclou biblioteca" i feu clic a "Afegeix biblioteca. ZIP".

#incloure

#include #include // Inicialitza la connexió Wifi al router char ssid = "wifi"; // SSID (nom) char password = "12345678"; // estat de la vostra clau de xarxa = 0; // Inicialitzar Telegram BOT #define BOTtoken "1234567890: AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" // token from @BotFather #define BOTname "ESP8266 FireBot" // bot name #define BOTusername "esp8266 bot_bot", bot_bot int Bot_mtbs = 1000; // actualitzar molt de temps Bot_lasttime; bool Inici = fals; bool isfire = fals; bool haveid = fals; int var = 0; Identificador de cadena; void Bot_EchoMessages () {for (int i = 1; i Bot_lasttime + Bot_mtbs) {bot.getUpdates (bot.message [0] [1]); Bot_EchoMessages (); // respondre al missatge amb Echo Bot_lasttime = millis (); } alarm_if_fire (); } void handleInterrupt () {Serial.println ("Interrupció detectada"); isfire = cert; }

Recomanat: