Inhoudsopgave:

Telegram Vlamalarm Bot - Ajarnpa
Telegram Vlamalarm Bot - Ajarnpa

Video: Telegram Vlamalarm Bot - Ajarnpa

Video: Telegram Vlamalarm Bot - Ajarnpa
Video: Telegram – самая опасная программа в телефоне! Мнение программиста 2024, November
Anonim
Telegram Vlamalarm Bot
Telegram Vlamalarm Bot

In dit artikel zal ik een IoT-project presenteren dat het mogelijk maakt om vlam te voelen en een melding naar het Telegram van de gebruiker te sturen.

Wat je nodig hebt:

  • Vlamsensormodule
  • Microcontroller NodeMCU ESP8266
  • Krachtbron
  • Wifi
  • Uitvoerapparaat met telegram

Stap 1: Hardware

Hardware
Hardware
Hardware
Hardware

VlamsensormoduleDeze module bevat een fototransistor en signaalconditioneringselektronica. Een fototransistor geleidt meer elektrische stroom bij blootstelling aan licht. De natuurkunde leerde ons dat (zichtbaar) licht uit alle kleuren bestaat, van rood tot violet. Door de fototransistor te coaten met zwarte epoxy, wordt deze gevoeliger voor rood of zelfs onzichtbaar onder rood of infrarood. Interessant is dat vlam infraroodstraling uitzendt. Dus wanneer deze sensor een vlam ziet, geleidt deze meer stroom. De NodeMCU is een Arduino-compatibel bord met de ESP8266 als kern. Het werd populair omdat het op zichzelf een WiFi-ready microcontroller is - geen Arduino nodig. Het doel van dit artikel is om alle NodeMCU-pinout en -kaarten te tonen die momenteel beschikbaar zijn. Merk op dat bij het programmeren van deze borden met behulp van de ESP-kern in Arduino IDE, de GPIO-nummers worden gebruikt in plaats van wat er op het bord staat.

Stap 2: Verbinding

Verbinding
Verbinding

Sensor verbonden met GPIO0 voor onderbrekingen.

Interrupts zijn handig om dingen automatisch te laten gebeuren in microcontrollerprogramma's en kunnen timingproblemen helpen oplossen. Met interrupts hoeft u niet constant de huidige pinwaarde te controleren. Wanneer een wijziging wordt gedetecteerd, wordt een gebeurtenis geactiveerd - een functie wordt aangeroepen. Deze functie wordt interrupt service routine (ISR) genoemd. Wanneer een interrupt plaatsvindt, stopt de processor de uitvoering van het hoofdprogramma om een taak uit te voeren en keert vervolgens terug naar het hoofdprogramma

Stap 3: Telegram Bot

Telegram Bot
Telegram Bot

Bots zijn applicaties van derden die binnen Telegram worden uitgevoerd. Gebruikers kunnen communiceren met bots door berichten, opdrachten en inline-verzoeken te verzenden. We kunnen onze bots besturen via HTTP-API's die door Telegram worden geleverd.

Een Telegram-bot is een applicatie die wordt gehost op een server (hier is het ESP8266) die de Telegram-bot-API gebruikt om verbinding te maken met Telegram Messenger-clients. Een groot voordeel van Telegram-bots is dat ze geen installatievereisten hebben en naadloos werken op alle computer- of mobiele platforms waarop Telegram Messenger wordt uitgevoerd. Configureer Telegram Bot Installeer Telegram op uw laptop of telefoon en zoek naar BotFather. Via BotFather kunnen we een nieuwe bot maken. Nadat we een nieuwe bot hebben gemaakt, moeten we het token noteren dat de interactiesleutel is tussen het apparaat en de Telegram-bot-API.

Stap 4: Software

Download de Telegram Bot-bibliotheek

Open Arduino IDE, ga naar "Sketch", selecteer "Include Library" en klik op "Add. ZIP Library".

#erbij betrekken

#include #include // Initialiseer de wifi-verbinding met de router char ssid = "wifi"; // SSID (naam) char wachtwoord = "12345678"; // uw netwerksleutel int status = 0; // Initialiseer Telegram BOT #define BOTtoken "1234567890:AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" //token van @BotFather #define BOTname "ESP8266 FireBot" // botnaam #define BOTusername "esp8266gebruikersnaam "esp8266gebruikersnaam "esp8266fire_bot" //botfire_bot" // int Bot_mtbs = 1000; // ververs tijd lang Bot_lasttime; bool Start = false; bool isfire = false; bool haveid = false; int var = 0; Tekenreeks-ID; void Bot_EchoMessages() { for (int i = 1; i Bot_lasttime + Bot_mtbs) { bot.getUpdates(bot.message[0][1]); Bot_EchoMessages(); // antwoord op bericht met Echo Bot_lasttime = millis(); } alarm_if_fire(); } void handleInterrupt() { Serial.println("Interrupt gedetecteerd"); isfire=waar; }

Aanbevolen: