Turinys:

Telegramos liepsnos aliarmo robotas: 5 žingsniai
Telegramos liepsnos aliarmo robotas: 5 žingsniai

Video: Telegramos liepsnos aliarmo robotas: 5 žingsniai

Video: Telegramos liepsnos aliarmo robotas: 5 žingsniai
Video: Dienoraštis, kuriame yra baisių paslapčių. Perėjimas. Geraldas Durrellas. Mistikas. Siaubas 2024, Lapkritis
Anonim
Telegramos liepsnos aliarmo robotas
Telegramos liepsnos aliarmo robotas

Šiame straipsnyje aš pristatysiu IoT projektą, kuris leidžia pajusti liepsną ir išsiųsti pranešimą vartotojo telegrama.

Ko jums reikės:

  • Liepsnos jutiklio modulis
  • Mikrovaldiklio mazgasMCU ESP8266
  • Maitinimo šaltinis
  • Bevielis internetas
  • Išvesties įrenginys su telegrama

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Liepsnos jutiklio modulis Šiame modulyje yra fototransistorius ir signalų kondicionavimo elektronika. Fototransistorius, veikiamas šviesos, praleidžia daugiau elektros srovės. Fizika mus išmokė, kad (matomą) šviesą sudaro visos spalvos - nuo raudonos iki violetinės. Padengęs fototransistorių juoda epoksidine medžiaga, jis tampa jautresnis raudonai arba net nematomas žemiau raudonos ar infraraudonosios spinduliuotės. Įdomu tai, kad liepsna skleidžia infraraudonąją spinduliuotę. Taigi, kai šis jutiklis mato liepsną, jis praleidžia daugiau srovės. „NodeMCU“yra su „Arduino“suderinama plokštė, kurios esmė yra ESP8266. Jis tapo populiarus, nes pats yra „WiFi“paruoštas mikrovaldiklis - nereikia „Arduino“. Šio straipsnio tikslas yra parodyti visus šiuo metu galimus „NodeMCU“kontaktus ir plokštes. Atminkite, kad programuojant šias plokštes naudojant „Arduino IDE“ESP branduolį, vietoj to, kas yra lentoje, naudojami GPIO numeriai.

2 žingsnis: prijungimas

Ryšys
Ryšys

Jutiklis prijungtas prie GPIO0 pertraukimams.

Pertraukos yra naudingos norint, kad mikrovaldiklių programose viskas vyktų automatiškai, ir gali padėti išspręsti laiko problemas. Su pertraukomis nereikia nuolat tikrinti esamos kaiščio vertės. Aptikus pakeitimą, įvyksta įvykis - iškviečiama funkcija. Ši funkcija vadinama pertraukimo paslauga (ISR). Įvykus pertraukai, procesorius sustabdo pagrindinės programos vykdymą, kad įvykdytų užduotį, ir tada grįžta prie pagrindinės programos

3 žingsnis: telegramos robotas

Telegramos robotas
Telegramos robotas

Robotai yra trečiųjų šalių programos, veikiančios „Telegram“viduje. Vartotojai gali bendrauti su robotais siųsdami pranešimus, komandas ir tiesiogines užklausas. Mes galime valdyti savo robotus per HTTP API, kurias teikia „Telegram“.

„Telegram“robotas yra programa, priglobta serveryje (čia yra ESP8266), kuri naudoja „Telegram bot“API prisijungti prie „Telegram Messenger“klientų. Didelis „Telegram“robotų privalumas yra tas, kad jie neturi jokių diegimo reikalavimų ir sklandžiai veikia visose kompiuterinėse ar mobiliosiose platformose, kuriose veikia „Telegram Messenger“. „Telegram Bot“konfigūravimas Įdiekite „Telegram“savo nešiojamame kompiuteryje ar telefone ir ieškokite „BotFather“. Per „BotFather“galime sukurti naują robotą. Sukūrę naują robotą, turime pažymėti prieigos raktą, kuris yra sąveikos raktas tarp įrenginio ir „Telegram“roboto API.

4 žingsnis: programinė įranga

Atsisiųskite „Telegram Bot“biblioteką

Atidarykite „Arduino IDE“, eikite į „Sketch“, pasirinkite „Include Library“ir spustelėkite „Add. ZIP Library“.

#įtraukti

#include #include // Inicijuoti Wifi ryšį su maršrutizatoriumi char ssid = "wifi"; // SSID (vardas) char slaptažodis = "12345678"; // jūsų tinklo raktas int status = 0; // Inicijuoti telegramos BOT #define BOTtoken "1234567890: AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" // prieigos raktas iš @BotFather #define BOTname "ESP8266 FireBot" // roboto pavadinimas #define BOTusername "esp82botote int Bot_mtbs = 1000; // atnaujinimo laikas ilgas Bot_lasttime; bool Start = klaidinga; bool isfire = klaidinga; bool hadid = klaidinga; int var = 0; Eilutės ID; void Bot_EchoMessages () {for (int i = 1; i Bot_lasttime + Bot_mtbs) {bot.getUpdates (bot.message [0] [1]); Bot_EchoMessages (); // atsakyti į pranešimą naudojant Echo Bot_lasttime = millis (); } alarm_if_fire (); } void handleInterrupt () {Serial.println („Aptiktas pertraukimas“); isfire = tiesa; }

Rekomenduojamas: