電報控制家庭自動化使用NodeMCU ESP8266
家庭自動化現(xiàn)在成為物聯(lián)網(wǎng)應(yīng)用的重要組成部分,人們使用智能手機(jī)通過互聯(lián)網(wǎng)從任何地方控制家用電器。用智能手機(jī)控制交流電器有多種方法,其中一些我們已經(jīng)在之前的物聯(lián)網(wǎng)家庭自動化教程中介紹過,今天我們將學(xué)習(xí)另一種通過智能手機(jī)控制電器的方法。在這個物聯(lián)網(wǎng)項目中,我們將使用NodeMCU通過Telegram應(yīng)用程序的文本消息控制一個交流燈。
ESP8266 NodeMCU
ESP8266 NodeMCU是一個開源的物聯(lián)網(wǎng)平臺。它包括運(yùn)行在expressif Systems低成本支持Wi-Fi的ESP8266 Wi-Fi SoC上的固件,以及基于ESP-12模塊的硬件。它具有GPIO, SPI, I2C, ADC, PWM和UART引腳,用于通信和控制附加到它的其他外設(shè)。板載NodeMCU具有提供USB到TTL功能的CP2102 IC。在這個項目中,我們將使用D0 GPIO引腳來改變繼電器的狀態(tài)。
組件的要求
?ESP8266 NodeMCU
?燈
?跳線
?電報應(yīng)用程序
線路圖
電報控制的家庭自動化電路圖如下:
為家庭自動化設(shè)置電報
Telegram是一個消息傳遞應(yīng)用程序,用于免費(fèi)發(fā)送文本,圖像或視頻消息。它還允許使用其他API創(chuàng)建程序,將Telegram集成到他們的應(yīng)用程序中。有一些特殊的機(jī)器人不需要電話號碼來設(shè)置,可以與任何嵌入式或軟件應(yīng)用程序接口,使用電報短信觸發(fā)一些事件。
在你的智能手機(jī)上安裝“電報”應(yīng)用程序,從你的游戲商店或蘋果商店。如果您是第一次使用,請使用您的國家代碼和手機(jī)號碼進(jìn)行注冊。它將要求OTP代碼進(jìn)行驗證。
成功注冊后,搜索BotFather并打開它。打開BotFather并單擊RESTART創(chuàng)建您的bot,如下面的截圖所示。它將顯示一組代碼,可用于創(chuàng)建和編輯機(jī)器人。在文本部分輸入“ /newbot ”以創(chuàng)建新機(jī)器人。
現(xiàn)在您必須為您的機(jī)器人選擇一個名稱。輸入你的機(jī)器人的名字,然后點擊發(fā)送。在這里,我給我的機(jī)器人起了“家庭自動化”的名字?,F(xiàn)在是時候為您的機(jī)器人選擇一個唯一的用戶名了。在這里,我給了“Circuit_digest_2208_bot”用戶名給我的bot。這個用戶名應(yīng)該是唯一的。輸入用戶名后,您將收到BotFather關(guān)于您的新機(jī)器人的文本,并將獲得新機(jī)器人的令牌。這個令牌將在NodeMCU的代碼中使用。單擊消息中給出的鏈接,進(jìn)入機(jī)器人的新聊天框,然后單擊Start。你現(xiàn)在可以通過發(fā)送短信從電報應(yīng)用程序發(fā)送命令。
在Arduino IDE中安裝Telegram Library
要將telegram集成到Arduino代碼中,有一個庫,要安裝它,請打開Arduino IDE并進(jìn)入Sketch -> Include library -> Manage Libraries。
搜索“Telegram”并安裝Stefano Ledda的最新版本的CTBot。這個庫很容易使用,非常直接的接口電報與ESP8266芯片。
由Stefano Ledda編寫的CTBot庫帶有內(nèi)置示例。我們將在這個項目中使用它的一個例子。
打開lightBot示例:File -> example -> CTBot -> lightBot。這個例子幫助我們改變了ESP8266的一個GPIO引腳上的LED的狀態(tài)。
編輯示例中給出的代碼,以便在NodeMCU中運(yùn)行它。首先將代碼中給出的SSID和密碼替換為您的Wi-Fi連接的SSID和密碼。然后粘貼創(chuàng)建電報機(jī)器人后獲得的令牌號。在本教程的末尾給出了完整的編輯代碼。
代碼的解釋
在本教程的末尾給出了這個物聯(lián)網(wǎng)控制的家庭自動化的完整代碼和工作視頻,在這里我們解釋了完整的程序,以了解項目的工作原理。
將SSID和密碼替換為Wi-Fi憑據(jù)。字符串令牌存儲創(chuàng)建bot后獲得的唯一令牌號。D0是改變繼電器狀態(tài)的數(shù)字輸出引腳。
myBot.wifiConnect()函數(shù)獲取ESP8266連接Wi-Fi的SSID和密碼,myBot.setTelegramToken()函數(shù)獲取唯一令牌號,進(jìn)一步建立telegram bot與NodeMCU之間的連接。在成功連接上,您將在串行監(jiān)視器上獲得“testConnection OK”。
TBMessage存儲從電報機(jī)器人接收到的消息。msg.text.equalsIgnoreCase()檢查接收到的文本是否與字符串“ light on ”或“ light off ”匹配。如果接收到的信息是“燈亮”,則將繼電器狀態(tài)更改為打開燈,如果接收到的信息是“燈滅”,則將繼電器狀態(tài)更改為關(guān)閉燈。如果收到的文本不同于“打開燈”和“關(guān)閉燈”,則它會向電報發(fā)送歡迎信息。
現(xiàn)在,在完成代碼之后,是時候測試系統(tǒng)了。
測試電報控制的家用電器
如電路圖所示,將交流燈與NodeMCU連接,使用Arduino IDE將代碼上傳到NodeMCU。上傳代碼成功后,打開串行監(jiān)視器,等待幾秒鐘,直到NodeMCU連接到Wi-Fi和Telegram bot。現(xiàn)在打開電報應(yīng)用程序在您的智能手機(jī)和打開聊天框的機(jī)器人。然后發(fā)送“Light on”的信息,它就會打開燈。
同樣,發(fā)送“Light off”消息來關(guān)閉燈。這就是你如何在家里實現(xiàn)空調(diào)自動化的方法。
本文編譯自iotdesignpro