Բովանդակություն:

Telegram Flame Alarm Bot- ը ՝ 5 քայլ
Telegram Flame Alarm Bot- ը ՝ 5 քայլ

Video: Telegram Flame Alarm Bot- ը ՝ 5 քայլ

Video: Telegram Flame Alarm Bot- ը ՝ 5 քայլ
Video: Xiaomi Smart Speaker - խելացի բարձրախոսի գլոբալ տարբերակ, Ok Google: Ձայնային դերասան տնային օգնական 2024, Հուլիսի
Anonim
Telegram Flame Alarm Bot
Telegram Flame Alarm Bot

Այս հոդվածում ես կներկայացնեմ IoT նախագիծը, որը թույլ է տալիս զգալ բոցը և ծանուցում ուղարկել օգտվողի Telegram- ին:

Այն, ինչ ձեզ հարկավոր կլինի.

  • Ֆլեյմի տվիչի մոդուլ
  • Միկրոկոնտրոլեր NodeMCU ESP8266
  • Սնուցման աղբյուր
  • WiFi
  • Ելքային սարք հեռագրով

Քայլ 1: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Ֆլեյմի սենսորային մոդուլ Այս մոդուլը պարունակում է ֆոտոտրանսիստոր և ազդանշանային օդորակման էլեկտրոնիկա: Լույսի ազդեցության տակ ֆոտոտրանսիստորը ավելի շատ էլեկտրական հոսանք է անցկացնում: Ֆիզիկան մեզ սովորեցրեց, որ (տեսանելի) լույսը բաղկացած է բոլոր գույներից ՝ կարմիրից մինչև մանուշակագույն: Ֆոտոտրանսիստորը սև էպոքսիդով ծածկելով ՝ այն ավելի զգայուն է դառնում կարմիրի նկատմամբ կամ նույնիսկ անտեսանելի կարմիրից կամ ինֆրակարմիրից ցածր: Հետաքրքիր է, որ բոցը ինֆրակարմիր ճառագայթում է արձակում: Այսպիսով, երբ սենսորը տեսնում է բոց, այն ավելի շատ հոսանք է հաղորդում: NodeMCU- ն Arduino- ի հետ համատեղելի տախտակ է, որն իր հիմքում ունի ESP8266- ը: Այն հանրաճանաչ դարձավ, քանի որ այն ինքնին WiFi- ի համար պատրաստ միկրոկոնտրոլեր է `Arduino- ի կարիք չկա: Այս հոդվածի նպատակն է ցույց տալ NodeMCU- ի բոլոր pinout և տախտակները, որոնք այժմ հասանելի են: Նկատի ունեցեք, որ Arduino IDE- ում ESP միջուկը օգտագործելով այս տախտակները ծրագրավորելիս GPIO- ի համարները օգտագործվում են տախտակի վրա եղածի փոխարեն:

Քայլ 2: Միացում

Միացում
Միացում

Ընդհատումների համար GPIO0- ին միացված տվիչ:

Ընդհատումները օգտակար են միկրոկառավարիչների ծրագրերում ամեն ինչ ինքնաբերաբար կատարելու համար և կարող են օգնել լուծել ժամանակային խնդիրները: Ընդհատումներով ձեզ հարկավոր չէ անընդհատ ստուգել ընթացիկ քորոցի արժեքը: Երբ որևէ փոփոխություն է հայտնաբերվում, իրադարձություն է սկսվում ՝ կոչվում է գործառույթ: Այս գործառույթը կոչվում է ընդհատման ծառայության ռեժիմ (ISR): Երբ ընդհատում է տեղի ունենում, պրոցեսորը դադարում է առաջադրանքը կատարելու համար հիմնական ծրագրի կատարումը, այնուհետև վերադառնում է հիմնական ծրագրին

Քայլ 3: Telegram Bot

Telegram Bot
Telegram Bot

Բոտերը երրորդ կողմի ծրագրեր են, որոնք գործում են Telegram- ի ներսում: Օգտվողները կարող են փոխազդել բոտերի հետ ՝ ուղարկելով հաղորդագրություններ, հրամաններ և ներկառուցված հարցումներ: Մենք կարող ենք վերահսկել մեր բոտերին Telegram- ի տրամադրած HTTP API- ների միջոցով:

Telegram bot- ը սերվերում տեղակայված ծրագիր է (այստեղ այն ESP8266 է), որն օգտագործում է Telegram բոտի API ՝ Telegram Messenger- ի հաճախորդներին միանալու համար: Telegram բոտերի մեծ առավելությունն այն է, որ նրանք ունեն զրոյական տեղադրման պահանջներ և անխափան աշխատում են բոլոր համակարգչային կամ բջջային հարթակներում, որտեղ աշխատում է Telegram Messenger- ը: Կարգավորել Telegram Bot- ը Տեղադրեք Telegram ձեր նոութբուքի կամ հեռախոսի վրա և որոնեք BotFather- ը: BotFather- ի միջոցով մենք կարող ենք ստեղծել նոր բոտ: Նոր բոտ ստեղծելուց հետո մենք պետք է նշենք այն նշանը, որը սարքի և Telegram bot API- ի միջև փոխգործակցության բանալին է:

Քայլ 4: Softwareրագրակազմ

Ներբեռնեք Telegram Bot գրադարանը

Բացեք Arduino IDE- ն, անցեք «Էսքիզ», ընտրեք «Ներառել գրադարանը» և կտտացրեք «Ավելացնել. ZIP գրադարան»:

#ներառում

#include #include // Initialize Wifi կապը երթուղիչին char ssid = "wifi"; // SSID (անուն) char գաղտնաբառ = "12345678"; // ձեր ցանցի բանալին int կարգավիճակը = 0; // Նախաստորագրեք Telegram BOT #սահմանեք BOTtoken "1234567890: AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" // նշան @BotFather #define BOTname "ESP8266 FireBot" // բոտի անուն #debine BOTusername "BOTUSername, BOTusername" Bootusname, BOTusname "BOTname, BOTusname" BOTUSername, BOTusname "botname, BOTusname" bootusname, BOTname Bootus, int Bot_mtbs = 1000; // երկար թարմացման ժամանակ Bot_lasttime; bool Սկիզբ = կեղծ; bool isfire = կեղծ; bool haveid = կեղծ; int var = 0; Լարի ID; անվավեր Bot_EchoMessages () {for (int i = 1; i Bot_lasttime + Bot_mtbs) {bot.getUpdates (bot.message [0] [1]); Bot_EchoMessages (); // պատասխանել հաղորդագրությանը Echo Bot_lasttime = millis (); } alarm_if_fire (); } void handleInterrupt () {Serial.println («Ընդհատումը հայտնաբերվել է»); isfire = ճշմարիտ; }

Խորհուրդ ենք տալիս: