当前位置:首页 > 物联网 > IoT设计分享
[导读]Telegram是自由和开源的,它在2015年宣布了新的Telegram bot API,允许第三方为ESP32创建利用消息应用程序作为主要通信接口的Telegram bot。这意味着我们可以用它控制我们的智能家居应用程序和其他智能设备。因此,在本文中,我们将讨论一种控制智能设备并了解其状态的新方法。你说得对,我们会用社交媒体应用“电报”控制他们。

Telegram是自由和开源的,它在2015年宣布了新的Telegram bot API,允许第三方为ESP32创建利用消息应用程序作为主要通信接口的Telegram bot。这意味着我们可以用它控制我们的智能家居应用程序和其他智能设备。因此,在本文中,我们将讨论一种控制智能设备并了解其状态的新方法。你说得对,我们会用社交媒体应用“电报”控制他们。

之前我们做过这样的项目,

•使用Telegram Bot与树莓派:共享文本和文件

•树莓派GPIO控制使用电报应用程序

所以,如果你感兴趣的话,一定要去看看。

什么是Telegram?

Telegram是一个跨平台的基于云的即时消息、视频电话和VoIP服务,端到端加密聊天仅用于秘密聊天,而服务器-客户端/客户端-服务器加密用于云聊天。

但它与其他此类消息平台的不同之处在于创建机器人的能力。

Telegram bots是基于人工智能的应用程序,可以配置为提供许多不同的功能,例如,发送有关天气或有用的新闻文章的相关信息,有些是预先配置为发送提醒,还有一些可以播放音乐或创建待办事项列表,等等。

今天我们还将创建一个这样的机器人,它将与我们的ESP32通信。

项目概述

在本教程中,我们将使用Telegram bot控制LED, LED连接到ESP32板。而不是LED,你可以控制任何引脚连接到任何其他设备或组件。

构建基于ESP32的电报机器人的要求

由于这个项目是一个软件繁重的项目,它不需要那么多的硬件,但是在软件方面有相当多的步骤需要遵循,我们将在本文中讨论这些步骤。

硬件需求:

ESP32开发板

软件要求:

Arduino IDE

特定的Arduino库

电报应用

制作一个电报机器人

正如我们前面所讨论的,Telegram允许我们创建几个具有不同功能的机器人。对于我们的项目,我们将使用Telegram创建一个简单的bot。其余的命令声明和回复将在ESP板本身编码,它将使用聊天ID与我们的bot通信。我们将在本文中进一步讨论这些问题。解决了这个问题后,我们可以将注意力转向在Telegram中构建bot。

•从Play Store安装Telegram。

•安装之后,如果你还没有一个帐户,请创建一个帐户,然后按照下面的步骤让你的TG机器人工作。

•首先,搜索“botfather”并单击botfather,如下所示。或者在你的智能手机上打开这个链接t.me/botfather。

•Botfather是一个预先构建的电报机器人,可以让您创建,管理和删除您的机器人。

•单击开始按钮并选择/newbot

•给你的机器人一个名字和用户名。

•如果成功创建了bot,您将收到一条消息,其中包含访问新创建的bot和bot令牌的链接。Bot令牌是一个唯一的id,稍后我们将使用它与Bot进行通信。

获取你的Telegram聊天id

telegram用户id是每个聊天、组和用户的唯一号码,可以帮助telegram识别用户和聊天。在我们的这个项目中,任何拥有bot链接的人都可以与bot进行交互。为了防止任何未经授权的访问,我们可以使用唯一的用户id对其进行加密。

通过这样做,每次ESP从bot接收消息时,它都会检查id是否与存储在其中的id相对应,然后只执行命令。

获取Telegram用户ID的步骤:

•在你的Telegram账户中,搜索“IDBot”或在你的智能手机上打开这个链接t.me/myidbot。

•与该机器人开始对话并输入/getid。您将得到一个带有您的用户ID的回复。

•注意用户id,因为我们稍后会用到它。

安装Telegram Bot库

我们将使用Arduino IDE对ESP32板进行编程。因此,请确保您的PC上安装了IDE和电路板包。我们需要在Arduino IDE中安装两个库,使用这些库将使编码过程更加简单和方便。

为了与Telegram bot建立通信,我们将使用Brian Lough创建的通用Telegram bot库,该库为Telegram bot API提供了一个简单的接口。

按照下面的步骤安装库的最新版本。

1. 点击此链接下载通用Arduino Telegram Bot库。

2. 去素描>包括库> Add.ZIP库…

3. 添加刚刚下载的库。就是这样。完成库的安装。

有关库的详细信息,您可以查看Universal Arduino Telegram Bot library GitHub页面。

ArduinoJson库:

你还必须安装ArduinoJson库。按照下面的步骤安装库。

1. 进入草图>包括库>管理库。

2. 搜索“ArduinoJson”。

3. 选择可用的最新版本。

4. 安装库。

我们已经安装了所有必需的库。

基于ESP32的电报机器人编程

我们必须以这样一种方式闪烁ESP32,即它接收从bot发送的任何消息,比较用户id,并根据收到的消息打开或关闭LED。

在代码的第一部分,我们从导入所需的库开始。

之后,我们初始化变量来存储您的Wi-Fi的SSID和密码。

类似地,我们定义了保存bot令牌和聊天id的变量。您需要将您的凭据放入这些变量中。

之后,我们用wiificlientsecure创建一个新的WiFi客户端。

使用令牌和客户端创建bot,我们在前面已经保存了这些内容。

两个变量botRequestDelay和lastTimeBotRan用于每隔x秒检查新的电报消息。在我们的示例中,我们将每隔1000毫秒检查一次新消息。我们可以通过更改botRequestDelay变量将延迟时间更改为我们的特定需求。

handleNewMessages()函数保存新消息到达时发生的情况的选项卡。

我们需要获取该消息的聊天ID并将其存储在chat_id变量中。这个ID允许我们识别是谁发送了这条消息。

如果chat_id与您的聊天ID (chat_id)不同,则意味着其他人已向您的bot发送了消息。如果是这种情况,我们需要忽略所有消息并等待新的消息。

否则,这意味着消息是从一个有效的用户发送的,因此我们将把它保存在text变量中并检查其内容。

from_name变量保存发送者的名称。

如果我们收到/start消息,我们将向ESP32发送一个有效的命令。如果您忘记了控制电路板的特定命令,则此功能非常有用。

我们可以非常简单地通过在聊天机器人对象上使用sendMessage()方法并将接收方的聊天ID、消息和解析模式作为参数传递给聊天机器人,从而向聊天机器人发送消息。

在我们的特定示例中,我们将把消息发送到存储在chat_id上的ID,并发送保存在welcome变量上的消息。

如果它收到/led_on消息,打开LED并发送消息确认我们已经收到消息。另外,用新状态更新ledState变量。

对/led_off消息执行类似的操作。

最后,使用/状态检查接收到的消息,检查当前GPIO状态,并相应地发送消息。

初始化Wi-Fi,并将ESP连接到我们之前定义的网络SSID和密码。

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

当新消息到达时,调用handleNewMessages()函数。

这就结束了我们代码的工作。现在,您只需要通过从Arduino IDE中选择适当的板和端口来上传它,然后就可以了。

基于ESP32的电报机器人测试

现在我们已经完成了所有的设置。通过Arduino IDE将上述代码上传到ESP32板上。上传草图时不要忘记选择正确的板和端口。

上传草图后,按下单板上的EN/Reset按钮,单板开始执行代码。打开串行监视器,等待电路板与Wi-Fi路由器连接。现在,打开Telegram,进入Botfather提供的链接,输入/start,开始与bot对话。

现在您可以通过输入相应的命令来控制LED或了解状态。

本文编译自iotdesignpro

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭