Mundarija:

Telegram olov signalizatsiyasi: 5 qadam
Telegram olov signalizatsiyasi: 5 qadam

Video: Telegram olov signalizatsiyasi: 5 qadam

Video: Telegram olov signalizatsiyasi: 5 qadam
Video: MAHLUQ CHIQDI XATIRCHIDAN TEZDA KURING XUSHYOR BULING TIK TOK VIDEOS🤣😅 2024, Noyabr
Anonim
Telegram olov signalizatsiyasi
Telegram olov signalizatsiyasi

Ushbu maqolada men olovni sezish va foydalanuvchining Telegram -ga xabar yuborish imkonini beradigan IoT loyihasini taqdim etaman.

Sizga nima kerak:

  • Olov sensori moduli
  • NodeMCU ESP8266 mikrokontroller
  • Quvvat manbai
  • Wifi
  • Telegram bilan chiqish qurilmasi

1 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna

Olov sensori moduli Ushbu modulda fototransistor va signalni konditsionerlovchi elektronika mavjud. Fototransistor yorug'lik ta'sirida ko'proq elektr tokini o'tkazadi. Fizika bizga (ko'rinadigan) yorug'lik qizildan binafsha ranggacha bo'lgan barcha ranglardan iboratligini o'rgatdi. Fototransistorni qora epoksi bilan qoplagan holda, u qizil rangga sezgir bo'lib qoladi, hatto qizil yoki infraqizil ostida sezilmaydi. Qizig'i shundaki, olov infraqizil nurlanishni chiqaradi. Shunday qilib, bu sensor olovni ko'rganda, ko'proq tok o'tkazadi. NodeMCU-bu Arduino-ga mos keladigan taxta, uning markazida ESP8266 mavjud. U mashhur bo'lib ketdi, chunki u Wi -Fi -ga tayyor mikrokontrolerdir - Arduino kerak emas. Ushbu maqolaning maqsadi - hozirda mavjud bo'lgan barcha NodeMCU pinout va platalarini ko'rsatish. E'tibor bering, bu taxtalarni Arduino IDE -dagi ESP yadrosi yordamida dasturlashda, bortdagi narsalar o'rniga GPIO raqamlari ishlatiladi.

2 -qadam: ulanish

Ulanish
Ulanish

Sensor uzilishlar uchun GPIO0 ga ulangan.

Tanaffuslar mikrokontroller dasturlarida avtomatik tarzda sodir bo'lishi uchun foydalidir va vaqt masalalarini hal qilishga yordam beradi. Uzilishlar bilan siz joriy pin qiymatini doimiy tekshirib turishingiz shart emas. O'zgarish aniqlanganda, hodisa ishga tushadi - funksiya chaqiriladi. Bu funksiya interrupt service routine (ISR) deyiladi. Agar uzilish sodir bo'lsa, protsessor vazifani bajarish uchun asosiy dasturning bajarilishini to'xtatadi va keyin asosiy dasturga qaytadi.

3 -qadam: Telegram bot

Telegram bot
Telegram bot

Botlar-bu Telegramda ishlaydigan uchinchi tomon dasturlari. Foydalanuvchilar xabarlar, buyruqlar va inline so'rovlarni yuborish orqali botlar bilan muloqot qilishlari mumkin. Biz botlarni Telegram tomonidan taqdim etilgan HTTP API -lari orqali boshqarishimiz mumkin.

Telegram bot - bu serverda joylashtirilgan dastur (bu erda ESP8266), Telegram messenjeri mijozlariga ulanish uchun Telegram bot API -dan foydalaniladi. Telegram botlarining katta afzalligi shundaki, ular nol o'rnatish talablariga ega emas va Telegram messenjeri ishlaydigan barcha kompyuter yoki mobil platformalarda muammosiz ishlaydi. Telegram Bot -ni sozlang Telegramni noutbuk yoki telefoningizga o'rnating va BotFather -ni qidiring. BotFather orqali biz yangi bot yaratishimiz mumkin. Yangi bot yaratgandan so'ng, biz qurilma va Telegram bot API o'rtasidagi o'zaro ta'sir kaliti bo'lgan belgini qayd etishimiz kerak.

4 -qadam: dasturiy ta'minot

Telegram Bot kutubxonasini yuklab oling

Arduino IDE -ni oching, "Sketch" ga o'ting, "Kutubxonani qo'shish" -ni tanlang va ". ZIP kutubxonasini qo'shish" -ni bosing.

#qo'shing

#include #include // routerga Wi -Fi ulanishini boshlang char ssid = "wifi"; // SSID (ism) char parol = "12345678"; // tarmoq kalitingiz int status = 0; // Telegram BOTni #define BOTtoken "1234567890: AAEsdxDfSL57kpfZz1bduD9j4fddsiyfg" // belgisini @BotFather #define BOTname "ESP8266 FireBot" dan // tokenini #define BOTusifer nomi "BOTBootBootBootBootBootname int Bot_mtbs = 1000; // yangilanish vaqti uzoq Bot_lasttime; bool Boshlanish = noto'g'ri; bool isfire = noto'g'ri; bool hasid = noto'g'ri; int var = 0; String identifikatori; bekor Bot_EchoMessages () {for (int i = 1; i Bot_lasttime + Bot_mtbs) {bot.getUpdates (bot.message [0] [1]); Bot_EchoMessages (); // xabarga Echo Bot_lasttime = millis () bilan javob berish; } signal_if_fire (); } void handleInterrupt () {Serial.println ("Uzilish aniqlandi"); isfire = rost; }

Tavsiya: