使用Wemos D1 Mini使用Telegram應(yīng)用程序進(jìn)行智能家居控制
資料介紹
描述
Telegram bot 是應(yīng)用程序編程接口或也稱為“API” ,它允許程序員在本教程案例中同時(shí)集成兩個(gè)不同的應(yīng)用程序,稱為帶有 ESP8266 的聊天應(yīng)用程序 Telagram。
由于 TelegramBOT API 令牌的存在,它可以連接在電報(bào)聊天和硬件系統(tǒng)之間,例如,它將集成在使用 Arduino IDE 編程的迷你 Wemos D1 與此應(yīng)用程序之間。
該項(xiàng)目使用了電報(bào)機(jī)器人 API 和 Wemos,將用于制作智能家居來控制燈和門。
1. 安裝 Telegram 機(jī)器人庫(kù)
2.源代碼
#include
#include
#include
#include
Servo myservo;
char ssid[] = "KAMAR KOS 7"; // your network SSID (name)
char password[] = "dasarlemahkaunak"; // your network key
#define BOTtoken "883873080:AAGkP-oNlzMgOS44X1jhE43C0_9JwwMCBPw" // your Bot Token (Get from Botfather)
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int Bot_mtbs = 1000; //mean time between scan messages
long Bot_lasttime; //last time messages’ scan has been done
bool Start = false;
const int ledPin1 = 0;
const int ledPin2 = 2;
int ledStatus = 0;
void handleNewMessages(int numNewMessages) {
Serial.print("status pesan = ");
Serial.print(String(numNewMessages));
Serial.println(",pesan berhasil diterima\n");
for (int i=0; i String chat_id = String(bot.messages[i].chat_id);
String text = bot.messages[i].text;
String from_name = bot.messages[i].from_name;
if (from_name == "") from_name = "Guest";
if (text == "/led1on") {
digitalWrite(ledPin1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(ledPin2, LOW);
ledStatus = 1;
bot.sendMessage(chat_id, "Led 1 is ON", "");
}
if (text == "/led1off") {
ledStatus = 0;
digitalWrite(ledPin1, LOW); // turn the LED off (LOW is the voltage level)
bot.sendMessage(chat_id, "Led 1 is OFF", "");
}
if (text == "/led2on") {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin1, LOW);// turn the LED on (HIGH is the voltage level)
ledStatus = 1;
bot.sendMessage(chat_id, "Led 2 is ON", "");
}
if (text == "/led2off") {
ledStatus = 0;
digitalWrite(ledPin2, LOW); // turn the LED off (LOW is the voltage level)
bot.sendMessage(chat_id, "Led 2 is OFF", "");
}
if (text == "/alloff") {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW); // turn the LED off (LOW is the voltage level)
bot.sendMessage(chat_id, "All led is OFF", "");
}
if (text == "/allon") {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH); // turn the LED off (LOW is the voltage level)
bot.sendMessage(chat_id, "All led is ON", "");
}
if (text == "/rules") {
bot.sendMessage(chat_id, "Perintah yang dapat diproses adalah perintah yang tertera dalam menu /help, Akep_bot juga tidak mentolerir adanya kesalahan pengetikan.","");
}
if (text == "Akep") {
bot.sendMessage(chat_id, "Hai " + from_name + " aku disini, ketikan /start untuk memulai bot");
}
if (text == "/status1") {
if(ledStatus){
bot.sendMessage(chat_id, "Led is ON", "");
} else {
bot.sendMessage(chat_id, "Led is OFF", "");
}
}
if (text == "/status2") {
if(ledStatus){
bot.sendMessage(chat_id, "Led is ON", "");
} else {
bot.sendMessage(chat_id, "Led is OFF", "");
}
}
if (text == "/start") {
bot.sendMessage(chat_id,"Selamat datang di Aplikasi Bot Telegram\n hai "+ from_name +", ketikkan /help untuk melihat perintah apa saja yang tersedia pada bot");
}
if (text == "/help") {
String welcome = "Hai " + from_name + " :) \n";
welcome += "berikut perintah yang tersedia pada bot\n";
welcome += "/rules : aturan memakai bot\n";
welcome += "/led1on : menyalakan led 1\n";
welcome += "/led1off : mematikan led 1\n";
welcome += "/led2on : menyalakan led 2\n";
welcome += "/led2off : mematikan led 2\n";
welcome += "/status1 : cek status led 1\n";
welcome += "/status2 : cek status led 2\n";
welcome += "/allon : menyalakan kedua led\n";
welcome += "/alloff : mematikan kedua led\n";
bot.sendMessage(chat_id, welcome, "Markdown");
}
}
}
void setup() {
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was Previously
// connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
// attempt to connect to Wifi network:
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
Serial.println("ketikan nama bot anda pada telegram");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi terhubung");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("ketikan nama bot anda pada telegram ");
Serial.println("");
pinMode(pir, INPUT);
pinMode(ledPin1, OUTPUT); // initialize digital ledPin as an output.
pinMode(ledPin2, OUTPUT);
delay(10);
digitalWrite(ledPin1, LOW); // initialize pin as off
digitalWrite(ledPin2, LOW);
myservo.attach(12);
myservo.write(180);
}
void loop() {
if (millis() > Bot_lasttime + Bot_mtbs) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages) {
Serial.println("Pesan Diterima");
Serial.println("sedang diproses.....");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
Bot_lasttime = millis();
}
}
;>
3.配置電報(bào)機(jī)器人
4. 設(shè)置設(shè)備
?

5. 測(cè)試
?
?
?
- 將WEMOS D1 Mini ESP8266與Ubidots連接
- 使用DHT11和濕度傳感器并連接到WeMos D1 Mini
- 使用Wemos D1 mini進(jìn)行汽車跟蹤
- 基于ESP32 Wemos D1 R1的自制警報(bào)器
- 基于Wemos D1 mini的傳感器記錄系統(tǒng) 0次下載
- 使用Wemos D1 Mini和WLED為led rgb ws2812b構(gòu)建控制器
- 使用Wemos D1 Mini的3D打印機(jī)監(jiān)視器
- Wemos D1 Mini的交流電源罩
- LED控制器板Wemos D1 Mini開源
- 制作自己的Wemos D1板
- PCB上的6個(gè)wemos d1模塊開源
- Wemos D1 mini上的ESP8266氣候控制
- Wemos D1 mini P10控制器
- Wemos D1 mini開發(fā)板初用
- 如何利用物聯(lián)網(wǎng)解決智能家居現(xiàn)狀存在的問題?
- MPS MP279xx系列數(shù)字隔離器在智能家居設(shè)備中的應(yīng)用 898次閱讀
- 繼電器在智能家居中的應(yīng)用 2.4k次閱讀
- Python智能家居系統(tǒng)代碼介紹 2.5k次閱讀
- 智能家居控制系統(tǒng)原理與應(yīng)用 5.2k次閱讀
- 利用Android應(yīng)用程序進(jìn)行智能燈泡的無線控制方案 5.2k次閱讀
- 如何保護(hù)智能家居電路 1.3k次閱讀
- 一文帶你了解智能家居控制系統(tǒng) 4.2k次閱讀
- 智能控制系統(tǒng)有哪些(家居) 1.4w次閱讀
- 智能家居控制系統(tǒng)詳解_智能家居控制系統(tǒng)工作原理_智能家居控制系統(tǒng)有哪些 4.6w次閱讀
- 智能家居與普通家居區(qū)別對(duì)比 8.3k次閱讀
- 基于Android的智能家居終端控制系統(tǒng) 1.1w次閱讀
- 科普丨智能家居控制系統(tǒng)是啥 2.6k次閱讀
- 詳解智能家居的控制系統(tǒng)工作原理 1.2w次閱讀
- 智能家居控制系統(tǒng)工作原理 5.4k次閱讀
- 基于Linux的智能家居管理方案 5.8k次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
- 1.21 MB | 1次下載 | 免費(fèi)
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
- 0.87 MB | 次下載 | 免費(fèi)
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費(fèi)
- 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費(fèi)
- 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費(fèi)
- 7WD6208A產(chǎn)品規(guī)格書
- 631.24 KB | 次下載 | 免費(fèi)
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設(shè)計(jì)總結(jié)
- 0.33 MB | 12次下載 | 免費(fèi)
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費(fèi)
- 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
- 0.10 MB | 3次下載 | 免費(fèi)
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
- 0.88 MB | 3次下載 | 免費(fèi)
- 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費(fèi)
- 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費(fèi)
- 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
- 0.94 MB | 2次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191469次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論