亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

[IoT] Telegram Bot with Arduino MKR WiFi 1010

组件和用品

Arduino MKR WIFI 1010
× 1

关于这个项目

该项目演示了如何将 Arduino 与 Telegram Bot API 连接起来。该项目围绕配备 U-BLOX ESP32 模块的新型 MKR WiFi 1010 板构建。

在这个阶段,该项目只是一个概念验证,只是为了向您展示您可以做什么,因此为此您只需要 Arduino 板。

但什么是 Telegram 机器人?

好吧,机器人只是由软件而不是人操作的 Telegram 帐户,它们通常具有 AI 功能。他们可以做任何事情——教、玩、搜索、广播、提醒、连接、与其他服务集成,甚至向物联网传递命令。 (电报来源:https://telegram.org/blog/bot-revolution)

在我们的例子中,我们将命令传递给 Arduino,以构建一个简单的 IoT 设备。它将回答简单的命令并打开/关闭内置 LED。我会让你的想象力发挥更多作用......(想象一下,将一个或多个继电器连接到 I/O 引脚,并使用智能手机打开/关闭加热器或空调系统,例如)。

第 1 步:您需要什么

对于这个项目,你需要:

  • Arduino 商店的 Arduino MKR WiFi 1010:https://store.arduino.cc/arduino-mkr-wifi-1010
  • Arduino IDE 1.8.5 或更高版本:https://www.arduino.cc/en/Main/Software
  • 用于将 Arduino 连接到您的 PC 的微型 USB 电缆
  • 互联网连接,需要 SSID 和密码。如果您使用自己的家用路由器以确保它没有被阻止,那就更好了。
  • 您的智能手机上安装了 Telegram 应用,无论是什么品牌。也请查看这里的 PC 和 Web 版本!

第二步:安装IDE

是的,我知道,我知道……你们中的大多数人已经在 PC 中安装了 Arduino IDE,但本教程也适用于初学者。

因此,首先,下载您选择的 Arduino IDE 1.8.5(“非管理员”或 exe 文件的 zip 文件)

推荐使用1.8.5版本,老版本没测试,项目中使用的新板完全不支持。

现在您需要安装带有驱动程序的新板:

  • 启动IDE
  • 来自工具 菜单选择 然后,在处理器列表的顶部,选择 Boards manager .
  • 滚动新窗口(见图),直到找到包含新 MKR WiFi 1010 的 Arduino SAMD 板。
  • 点击该标签或点击标签内的更多信息,选择最新版本并安装。
  • 等待安装完成。它还会负责驱动程序的安装
  • 您还需要一个新的用于该开发板的 WiFi 库:选择 Sketch、Include Library 管理图书馆。 搜索 Wifinina 并按照使用上述处理器的方式进行安装。

现在连接您的新 Arduino 板并等待 Windows 完成驱动程序安装。

工具->板 菜单中您会找到新板,选择 MKR WiFi 1010。

这个项目需要另一个特殊的库,它是 Giancarlo Bacchio 的 ESP8266TelegramBot 库。该库已稍作修改以与该板配合使用,因此它包含在草图的文件夹中。

选择正确的 com 端口并使用 Get Board Info 测试电路板 命令。

恭喜,您已经完成了 IDE!

第 3 步:创建 Telegram Bot

创建一个新的 Telegram 机器人非常简单。

打开 Telegram 应用程序,然后在搜索栏中输入 @BotFather 并开始与他聊天(图 1)。BotFather 是... Bot 工厂。它将帮助您创建一个新机器人并更改其设置。

/start 之后 命令你会看到帮助列表(图片2)。

  • 输入 /newbot (image3) 现在输入您的机器人的名称。该姓名显示在联系方式和其他地方。
  • BotFather 会要求您提供用户名。用户名是一个短名称,用于提及和 telegram.me 链接。用户名长度为 5-32 个字符,不区分大小写,但只能包含拉丁字符、数字和下划线。 您的机器人用户名必须以“bot”结尾,例如‘tetris_bot’ 或 ‘TetrisBot’ .
  • 如果名称和用户名都有效,您将收到一长串称为 TOKEN 的字符。这是您用于与 Telegram 服务器通信的个人“密钥”。暂时将其复制并粘贴到 PC 上的文本文件中。我们稍后会在 Arduino 代码中使用它。如果你弄丢了别担心,只需重新打开聊天并输入 /token 生成一个新的。

这里描述了所有步骤:https://core.telegram.org/bots#6-botfather

高级 (可选)

重新打开聊天并输入 /help

点击(或输入)/setuserpic 为您的机器人上传图片。点击(或输入)/setabouttext 为您的机器人设置“关于”部分:人们将在机器人的个人资料页面上看到此文本,并且当他们与某人共享时,它将连同指向您的机器人的链接一起发送。

点击(或输入)/setdescription 为您的机器人设置描述部分。人们在与您的机器人打开聊天时会看到此说明,位于标题为“此机器人能做什么?”的区块中。

第 4 步:修改、上传和测试草图

是时候将软件上传到 Arduino MKR WiFi 1010 板了。

下载随附的草图并解压,除非您知道自己在做什么,否则请不要更改名称和文件夹。

修改

打开草图,我们需要填写一些信息(图1),

转到 arduino_secrets.h 选项卡:

  • 找到 WiFi 网络信息并输入您的网络名称 (SSID) 和密码。
  • 找到电报机器人信息并输入@BotFather提供的名称、用户名和令牌

上传

确保 ide 中的电路板是正确的 (image2) 并已连接,然后尝试编译代码。如果编译顺利,上传到板子上,只需几秒钟。

如果出现问题,请检查拼写错误并重试。

测试

[重要!] 草图将日志发送到 IDE。处理器有一个本地 USB 端口(如 Leonardo 板)。一旦通电,代码将等待串行监视器运行。因此,让它连接到PC并打开串行监视器。 Arduino 将首先连接到互联网,然后它将开始轮询 Telegram 服务器以获取新消息(图 3)。

现在在您的首选设备上打开 Telegram,然后在搜索框中输入您的机器人的名称(而不是以“bot”结尾的用户名)。与它开启聊天。

开始与机器人聊天的第一个命令是 /start , 我们的 Arduino 将回复一条欢迎信息。现在输入 help (不带斜线),它会回答一个支持的命令列表,你可以全部尝试(图4)。

你已经完成了测试,如果有什么不工作,请检查草图中输入的信息(姓名、用户名、令牌...)

证书 如果您在连接到电报服务器时遇到错误(日志:Bot 未连接):

  • 打开工具->Wifi101/wifinina 更新程序
  • 确保您的电路板已连接,检查更新工具左侧的端口,电路板必须在那里
  • 点击打开更新程序草图并将其上传到开发板
  • 上传后,在更新程序中为您的主板选择最新的固件,然后点击更新固件
  • 更新后,在更新程序的 SSL 证书部分,单击添加域,在对话框中写入 telegram.org:443,然后按 OK。
  • 点击将证书上传到 wifi 模块
  • 将此草图上传到板上

第 5 步:改进

查看代码,实现新命令并回答用户非常简单。

新命令

您可以为每个新命令编写一个子命令。每个 sub 将负责完成命令并(最终)向用户返回状态信息。

限制用户

当然这个项目只是一个演示。任何 Telegram 用户都可以连接到您的家并发送不需要的命令。你不想要这个!

好吧,看看 image1,它显示了 2 个连接的用户。如您所见,每个用户都有自己的用户 ID。通过在代码方面做一些工作,您可以只为授权用户过滤(或建立一个列表)。只需研究代码并尝试拦截用户ID号。然后只执行来自知名用户的命令。

硬件

在硬件方面,很多传感器和继电器可以连接到Arduino的I/O引脚。

注意:这个项目中使用的板子是 3.3V 耐受的!!!必要时使用电压电平转换器!有关此板的更多信息和提示,请阅读此处:https://www.arduino.cc/en/Guide/MKRWiFi1010

就这样,尽情享受吧!

代码

  • MKR1010Bot_V1_02.zip
MKR1010Bot_V1_02.zipC/C++
Telegram Bot 草图
无预览(仅限下载)。

制造工艺

  1. GoPiGo v2 与 Windows IoT
  2. 使用 Arduino 控制硬币接收器
  3. 音频检测器
  4. Arduino 带蓝牙控制 LED!
  5. Tech-TicTacToe
  6. DIY 电压表与 Arduino 和诺基亚 5110 显示器
  7. Arduino 倒数计时器
  8. 带有 OK Google 的蓝牙语音控制设备
  9. 使用 Nextion Display 构建 Fridgeye 应用程序
  10. 遥控保时捷汽车(Arduino 项目)
  11. 使用 Arduino 测量太阳辐射
  12. 如何用 Arduino 制作音乐