當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > IoT設(shè)計(jì)分享
[導(dǎo)讀]Telegram是自由和開(kāi)源的,它在2015年宣布了新的Telegram bot API,允許第三方為ESP32創(chuàng)建利用消息應(yīng)用程序作為主要通信接口的Telegram bot。這意味著我們可以用它控制我們的智能家居應(yīng)用程序和其他智能設(shè)備。因此,在本文中,我們將討論一種控制智能設(shè)備并了解其狀態(tài)的新方法。你說(shuō)得對(duì),我們會(huì)用社交媒體應(yīng)用“電報(bào)”控制他們。

Telegram是自由和開(kāi)源的,它在2015年宣布了新的Telegram bot API,允許第三方為ESP32創(chuàng)建利用消息應(yīng)用程序作為主要通信接口的Telegram bot。這意味著我們可以用它控制我們的智能家居應(yīng)用程序和其他智能設(shè)備。因此,在本文中,我們將討論一種控制智能設(shè)備并了解其狀態(tài)的新方法。你說(shuō)得對(duì),我們會(huì)用社交媒體應(yīng)用“電報(bào)”控制他們。

之前我們做過(guò)這樣的項(xiàng)目,

?使用Telegram Bot與樹(shù)莓派:共享文本和文件

?樹(shù)莓派GPIO控制使用電報(bào)應(yīng)用程序

所以,如果你感興趣的話,一定要去看看。

什么是Telegram?

Telegram是一個(gè)跨平臺(tái)的基于云的即時(shí)消息、視頻電話和VoIP服務(wù),端到端加密聊天僅用于秘密聊天,而服務(wù)器-客戶端/客戶端-服務(wù)器加密用于云聊天。

但它與其他此類消息平臺(tái)的不同之處在于創(chuàng)建機(jī)器人的能力。

Telegram bots是基于人工智能的應(yīng)用程序,可以配置為提供許多不同的功能,例如,發(fā)送有關(guān)天氣或有用的新聞文章的相關(guān)信息,有些是預(yù)先配置為發(fā)送提醒,還有一些可以播放音樂(lè)或創(chuàng)建待辦事項(xiàng)列表,等等。

今天我們還將創(chuàng)建一個(gè)這樣的機(jī)器人,它將與我們的ESP32通信。

項(xiàng)目概述

在本教程中,我們將使用Telegram bot控制LED, LED連接到ESP32板。而不是LED,你可以控制任何引腳連接到任何其他設(shè)備或組件。

構(gòu)建基于ESP32的電報(bào)機(jī)器人的要求

由于這個(gè)項(xiàng)目是一個(gè)軟件繁重的項(xiàng)目,它不需要那么多的硬件,但是在軟件方面有相當(dāng)多的步驟需要遵循,我們將在本文中討論這些步驟。

硬件需求:

ESP32開(kāi)發(fā)板

軟件要求:

Arduino IDE

特定的Arduino庫(kù)

電報(bào)應(yīng)用

制作一個(gè)電報(bào)機(jī)器人

正如我們前面所討論的,Telegram允許我們創(chuàng)建幾個(gè)具有不同功能的機(jī)器人。對(duì)于我們的項(xiàng)目,我們將使用Telegram創(chuàng)建一個(gè)簡(jiǎn)單的bot。其余的命令聲明和回復(fù)將在ESP板本身編碼,它將使用聊天ID與我們的bot通信。我們將在本文中進(jìn)一步討論這些問(wèn)題。解決了這個(gè)問(wèn)題后,我們可以將注意力轉(zhuǎn)向在Telegram中構(gòu)建bot。

?從Play Store安裝Telegram。

?安裝之后,如果你還沒(méi)有一個(gè)帳戶,請(qǐng)創(chuàng)建一個(gè)帳戶,然后按照下面的步驟讓你的TG機(jī)器人工作。

?首先,搜索“botfather”并單擊botfather,如下所示?;蛘咴谀愕闹悄苁謾C(jī)上打開(kāi)這個(gè)鏈接t.me/botfather。

?Botfather是一個(gè)預(yù)先構(gòu)建的電報(bào)機(jī)器人,可以讓您創(chuàng)建,管理和刪除您的機(jī)器人。

?單擊開(kāi)始按鈕并選擇/newbot

?給你的機(jī)器人一個(gè)名字和用戶名。

?如果成功創(chuàng)建了bot,您將收到一條消息,其中包含訪問(wèn)新創(chuàng)建的bot和bot令牌的鏈接。Bot令牌是一個(gè)唯一的id,稍后我們將使用它與Bot進(jìn)行通信。

獲取你的Telegram聊天id

telegram用戶id是每個(gè)聊天、組和用戶的唯一號(hào)碼,可以幫助telegram識(shí)別用戶和聊天。在我們的這個(gè)項(xiàng)目中,任何擁有bot鏈接的人都可以與bot進(jìn)行交互。為了防止任何未經(jīng)授權(quán)的訪問(wèn),我們可以使用唯一的用戶id對(duì)其進(jìn)行加密。

通過(guò)這樣做,每次ESP從bot接收消息時(shí),它都會(huì)檢查id是否與存儲(chǔ)在其中的id相對(duì)應(yīng),然后只執(zhí)行命令。

獲取Telegram用戶ID的步驟:

?在你的Telegram賬戶中,搜索“IDBot”或在你的智能手機(jī)上打開(kāi)這個(gè)鏈接t.me/myidbot。

?與該機(jī)器人開(kāi)始對(duì)話并輸入/getid。您將得到一個(gè)帶有您的用戶ID的回復(fù)。

?注意用戶id,因?yàn)槲覀兩院髸?huì)用到它。

安裝Telegram Bot庫(kù)

我們將使用Arduino IDE對(duì)ESP32板進(jìn)行編程。因此,請(qǐng)確保您的PC上安裝了IDE和電路板包。我們需要在Arduino IDE中安裝兩個(gè)庫(kù),使用這些庫(kù)將使編碼過(guò)程更加簡(jiǎn)單和方便。

為了與Telegram bot建立通信,我們將使用Brian Lough創(chuàng)建的通用Telegram bot庫(kù),該庫(kù)為T(mén)elegram bot API提供了一個(gè)簡(jiǎn)單的接口。

按照下面的步驟安裝庫(kù)的最新版本。

1. 點(diǎn)擊此鏈接下載通用Arduino Telegram Bot庫(kù)。

2. 去素描>包括庫(kù)> Add.ZIP庫(kù)…

3. 添加剛剛下載的庫(kù)。就是這樣。完成庫(kù)的安裝。

有關(guān)庫(kù)的詳細(xì)信息,您可以查看Universal Arduino Telegram Bot library GitHub頁(yè)面。

ArduinoJson庫(kù):

你還必須安裝ArduinoJson庫(kù)。按照下面的步驟安裝庫(kù)。

1. 進(jìn)入草圖>包括庫(kù)>管理庫(kù)。

2. 搜索“ArduinoJson”。

3. 選擇可用的最新版本。

4. 安裝庫(kù)。

我們已經(jīng)安裝了所有必需的庫(kù)。

基于ESP32的電報(bào)機(jī)器人編程

我們必須以這樣一種方式閃爍ESP32,即它接收從bot發(fā)送的任何消息,比較用戶id,并根據(jù)收到的消息打開(kāi)或關(guān)閉LED。

在代碼的第一部分,我們從導(dǎo)入所需的庫(kù)開(kāi)始。

之后,我們初始化變量來(lái)存儲(chǔ)您的Wi-Fi的SSID和密碼。

類似地,我們定義了保存bot令牌和聊天id的變量。您需要將您的憑據(jù)放入這些變量中。

之后,我們用wiificlientsecure創(chuàng)建一個(gè)新的WiFi客戶端。

使用令牌和客戶端創(chuàng)建bot,我們?cè)谇懊嬉呀?jīng)保存了這些內(nèi)容。

兩個(gè)變量botRequestDelay和lastTimeBotRan用于每隔x秒檢查新的電報(bào)消息。在我們的示例中,我們將每隔1000毫秒檢查一次新消息。我們可以通過(guò)更改botRequestDelay變量將延遲時(shí)間更改為我們的特定需求。

handleNewMessages()函數(shù)保存新消息到達(dá)時(shí)發(fā)生的情況的選項(xiàng)卡。

我們需要獲取該消息的聊天ID并將其存儲(chǔ)在chat_id變量中。這個(gè)ID允許我們識(shí)別是誰(shuí)發(fā)送了這條消息。

如果chat_id與您的聊天ID (chat_id)不同,則意味著其他人已向您的bot發(fā)送了消息。如果是這種情況,我們需要忽略所有消息并等待新的消息。

否則,這意味著消息是從一個(gè)有效的用戶發(fā)送的,因此我們將把它保存在text變量中并檢查其內(nèi)容。

from_name變量保存發(fā)送者的名稱。

如果我們收到/start消息,我們將向ESP32發(fā)送一個(gè)有效的命令。如果您忘記了控制電路板的特定命令,則此功能非常有用。

我們可以非常簡(jiǎn)單地通過(guò)在聊天機(jī)器人對(duì)象上使用sendMessage()方法并將接收方的聊天ID、消息和解析模式作為參數(shù)傳遞給聊天機(jī)器人,從而向聊天機(jī)器人發(fā)送消息。

在我們的特定示例中,我們將把消息發(fā)送到存儲(chǔ)在chat_id上的ID,并發(fā)送保存在welcome變量上的消息。

如果它收到/led_on消息,打開(kāi)LED并發(fā)送消息確認(rèn)我們已經(jīng)收到消息。另外,用新?tīng)顟B(tài)更新ledState變量。

對(duì)/led_off消息執(zhí)行類似的操作。

最后,使用/狀態(tài)檢查接收到的消息,檢查當(dāng)前GPIO狀態(tài),并相應(yīng)地發(fā)送消息。

初始化Wi-Fi,并將ESP連接到我們之前定義的網(wǎng)絡(luò)SSID和密碼。

在loop()中,我們每1000毫秒檢查一次新消息,即1秒。

當(dāng)新消息到達(dá)時(shí),調(diào)用handleNewMessages()函數(shù)。

這就結(jié)束了我們代碼的工作。現(xiàn)在,您只需要通過(guò)從Arduino IDE中選擇適當(dāng)?shù)陌搴投丝趤?lái)上傳它,然后就可以了。

基于ESP32的電報(bào)機(jī)器人測(cè)試

現(xiàn)在我們已經(jīng)完成了所有的設(shè)置。通過(guò)Arduino IDE將上述代碼上傳到ESP32板上。上傳草圖時(shí)不要忘記選擇正確的板和端口。

上傳草圖后,按下單板上的EN/Reset按鈕,單板開(kāi)始執(zhí)行代碼。打開(kāi)串行監(jiān)視器,等待電路板與Wi-Fi路由器連接?,F(xiàn)在,打開(kāi)Telegram,進(jìn)入Botfather提供的鏈接,輸入/start,開(kāi)始與bot對(duì)話。

現(xiàn)在您可以通過(guò)輸入相應(yīng)的命令來(lái)控制LED或了解狀態(tài)。

本文編譯自iotdesignpro

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉