Hi BDX-ian!
Dalam tutorial sebelum ini, kita telah belajar macam mana cara nak menggunakan Kawal LED menggunakan Telegram Bot dan NodeMCU ESP8266. Jadi untuk blog tutorial kali ini kita akan belajar macam mana nak membuat pengesan halangan menggunakan buzzer dan ultrasonic sensor dengan Telegram Bot dan NodeMCU ESP8266. User akan mendapat notifikasi amaran halangan daripada Telegram Bot dan buzzer akan berbunyi apabila ada halangan dihadapan ultrasonic sensor.
Sebelum memulakan projek menggunakan Telegram Bot, anda hendaklah mengikut semua langkah yang terdapat di Kawal LED menggunakan Telegram Bot dan NodeMCU ESP8266.
Dapatkan Chat ID
Langkah ini adalah untuk mendapatkan chat id akaun telegram anda.
Buat carian "IDBot” dan klik seperti yang ditunjukkan di bawah.
Tekan /getid
Kemudian, copy dan paste id anda ke dalam code CHAT_ID
Komponen yang diperlukan
- Ultrasonic Sensor
- Piezo Buzzer
- 220 Ohm resistor
- NodeMCU ESP8266 dan USB
- Breadboard
- Jumper wire
Litar
Ultrasonic sensor
- VCC → pin Vin ESP8266
- TRIG → pin D7 ESP8266
- ECHO → pin D8 ESP8266
- GND → GND ESP8266
Piezo buzzer
- Signal pin → pin D5 ESP8266
- GND → GND ESP8266
Code
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h>
#define triggerPin D7 #define echoPin D8
#define WIFI_SSID "Nama wifi anda" #define WIFI_PASSWORD "Password wifi anda" #define BOT_TOKEN "Bot Token (Dapat melalui BotFather" #define CHAT_ID "Chat ID (Dapat melalui IDBot)" const unsigned long BOT_MTBS = 1000;
X509List cert(TELEGRAM_CERTIFICATE_ROOT); WiFiClientSecure secured_client; UniversalTelegramBot bot(BOT_TOKEN, secured_client); unsigned long bot_lasttime;
int distance; long duration; String distance_1;
void setup() { Serial.begin(115200); configTime(0, 0, "pool.ntp.org"); secured_client.setTrustAnchors(&cert); Serial.println();
pinMode(triggerPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(D5, OUTPUT);
Serial.print("Connecting to Wifi SSID "); Serial.print(WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.print("\nWiFi connected. IP address: "); Serial.println(WiFi.localIP());
bot.sendMessage(CHAT_ID, "Bot started up", ""); }
void loop(){
digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2)/29.1; distance_1 = String (distance);
if(distance >=0 && distance <=15){
Serial.print(distance); Serial.println(" cm HALANGAN DIHADAPAN"); tone(D5,250); delay(50);
String text = "AMARAN " + distance_1 + "cm\n"; bot.sendMessage(CHAT_ID, text, "Markdown"); }
else { Serial.print(distance); Serial.println(" cm"); noTone(D5); delay(100); bot.sendMessage(CHAT_ID, "");
}
if (millis() - bot_lasttime > BOT_MTBS) { bot_lasttime = millis(); } }
|
Peringatan
Masukkan wifi, password wifi, bot token dan chat id ke dalam code.
#define WIFI_SSID "Nama wifi anda" #define WIFI_PASSWORD "Password wifi anda" #define BOT_TOKEN "Bot Token (Dapat melalui BotFather" #define CHAT_ID "Chat ID (Dapat melalui IDBot)" |
Output
Setelah upload code, Bot akan menghantar Bot started up.
Apabila terdapat halangan antara 0 hingga 15cm daripada sensor
- Buzzer akan berbunyi
- Notifikasi daripada Telegram Bot
- Output pada Serial Monitor
Apabila halangan berada melebihi 15 cm.
- Output pada Serial Monitor
Jika anda suka dengan perkongsian tutorial dalam blog kami ni, jangan lupa untuk follow Facebook dan Instagram kami, kat situ ada bermacam info dan update terkini yang akan kami kongsikan kepada anda. Itu sahaja untuk tutorial kami. Stay update dan selamat mencuba!