0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用树莓派Pico W搭建Slack机器人

jf_L7xG2ijs 来源:IoT前哨站 2023-12-25 17:33 次阅读

Slack是一款在线协作软件,可以让你与团队成员进行聊天、文件传送、语音/视频通话等功能。Slack还可以整合多种工具和服务,如电子邮件、Google Drives、Twitter、Trello等,以提高工作效率和自动化任务。有App方便大家在手机或平板电脑上使用。

这次要实现的树莓派Pico W远程控制机器人,简单来说,就是我们在手机上用Slack发消息,指挥Pico W帮我们干活。

c156bf92-a0be-11ee-8b88-92fbcf53809c.png

Slack 的 chat.postMessage API 可将消息从开发板发送到 Slack 频道。Slack 为应用和机器人提供了一个事件 API,用于响应 Slack 上的活动。由于开发板不能从公共互联网直接访问,因此无法使用公共 HTTP webhook。

我们必须使用Slack 的Socket Mode。 Socket Mode使应用和机器人能够使用动态的WebSocket 接收事件。动态套接字的URL可以通过Slack的apps.connections.open API获取。

c175e03e-a0be-11ee-8b88-92fbcf53809c.gif

Pico W与Slack API 接收事件和发送消息的通信机制:

c197dc02-a0be-11ee-8b88-92fbcf53809c.png

要完成上述操作,你必须先有Slack令牌。

配置 Slack

在 Web 浏览器中访问:

并使用您的 Slack 凭据登录,单击“创建新应用”按钮。

c1b0f660-a0be-11ee-8b88-92fbcf53809c.png

单击“From scratch”选项。

c1cce7d0-a0be-11ee-8b88-92fbcf53809c.png

输入应用程序的名称(例如“Pico W”),为应用程序选择一个工作区,然后单击“创建应用程序”按钮。

c1e7c168-a0be-11ee-8b88-92fbcf53809c.png

单击左侧的“Socket Mode”部分,然后单击切换到“启用Socket Mode”。

c20276d4-a0be-11ee-8b88-92fbcf53809c.png


输入应用级令牌的“Token Name”,例如“Pico W app”,然后单击“生成”按钮。

c21f6348-a0be-11ee-8b88-92fbcf53809c.png

生成并显示应用级令牌,复制该值并保存以备将来使用,然后单击“完成”按钮。

c23b1bce-a0be-11ee-8b88-92fbcf53809c.png

单击左侧的“OAuth 和权限”部分,向下滚动到“Scopes”部分,然后单击“添加 OAuth 范围”按钮。

c259e25c-a0be-11ee-8b88-92fbcf53809c.png

添加“app mention:read”权限。

c27203aa-a0be-11ee-8b88-92fbcf53809c.png

添加“chat:write”权限。

c2906ff2-a0be-11ee-8b88-92fbcf53809c.png

单击左侧的“事件订阅”部分,然后单击“启用事件”开关。

c2bcd042-a0be-11ee-8b88-92fbcf53809c.png

展开“订阅bot事件”部分并单击“添加bot用户事件”按钮。

c2e18766-a0be-11ee-8b88-92fbcf53809c.png

选择“app_mention”。

c2f9bfe8-a0be-11ee-8b88-92fbcf53809c.png

点击右下角的“保存更改”按钮。

c314bb36-a0be-11ee-8b88-92fbcf53809c.png

点击左侧的“基本信息”部分,然后点击“请求安装”按钮。

c331d09a-a0be-11ee-8b88-92fbcf53809c.png

填写“简短描述”,选择“背景颜色”,点击“保存更改”按钮

c3485c02-a0be-11ee-8b88-92fbcf53809c.png

工作区管理员可以批准申请。然后转到“基本信息”部分,单击“安装到工作区”按钮。

c360bbda-a0be-11ee-8b88-92fbcf53809c.png

安装完成后,单击左侧的“OAuth & Permissions”部分,滚动到“工作区的OAuth Token”部分,然后复制“Bot User OAuth Token”值并保存以供将来参考。

c37f4eba-a0be-11ee-8b88-92fbcf53809c.png

现在你有了一个应用程序级别的令牌值和一个Slack应用程序的Bot用户OAuth令牌值,可以在Raspberry Pi Pico W板上使用。

基于 MicroPython 的 Slack 机器人

MicroPython 为许多基于Arm Cortex-M 的微控制器提供Python 3实现,包括 Raspberry Pi Pico W上的RP2040。

Thonny IDE 将用于安装 MicroPython 并将代码上传到 Raspberry Pico W。

从 Thonny 主页下载适用于您的计算机的操作系统 (OS) 专用版本的 Thonny。在撰写本指南时,Thonny 4.1.2 是最新版本。

c398e906-a0be-11ee-8b88-92fbcf53809c.png

用Thonny刷好MicroPython以后,将 GitHub 中的代码下载到计算机上的文件夹。

相关代码:

https://github.com/IoToutpost/example-of-a-slackbot-for-pico-w

c3b08070-a0be-11ee-8b88-92fbcf53809c.png

打开 Raspberry Pi Pico W 板上的 config.py 文件,填写 Wi-Fi 网络的 SSID 和密码,以及之前配置的 Slack 应用和机器人令牌。

c3caed34-a0be-11ee-8b88-92fbcf53809c.png

打开树莓派Pi Pico W板上的 main.py 文件,然后按绿色的播放按钮运行应用程序。如果一切配置正确,开发板现在将连接到您的 Wi-Fi 网络,然后连接到 Slack。

c3e03cde-a0be-11ee-8b88-92fbcf53809c.png

基于 C 语言的 Slack 机器人

对于 C 版本,以下库将与pico-sdk一起使用:

FreeRTOS 内核– 为网络堆栈提供实时操作系统(RTOS

lwIP– 用于 TCP/IP 通信

MbedTLS – 用于 TLS 通信

coreHTTP– 用于 HTTP 客户端

cJSON– 用于解析和序列化 JSON 数据

使用 Raspberry Pi 的 Pico SDK 和所需的工具链设置您的计算机。

有关更多信息,请参阅 Raspberry Pi Pico 入门指南。

在终端窗口中,设置 PICO_SDK 环境变量:

exportPICO_SDK_PATH=/path/to/pico-sdk

将目录更改为下载示例代码的位置,然后将目录更改为文件夹:pico-sdk

cd path/to/example-of-a-slackbot-for-pico-w

cd pico-sdk

创建一个构建目录,并将目录更改为该目录:

mkdir build

cd build

使用你的 Wi-Fi SSID 和密码以及 Slack 应用和机器人令牌运行,然后运行以编译应用程序。


cmake .. -DPICO_BOARD=pico_w -DWIFI_SSID=""

-DWIFI_PASSWORD=""

-DSLACK_APP_TOKEN=""

-DSLACK_BOT_TOKEN=""

make

按住Pico W上的BOOTSEL按钮,同时将USB电缆插入计算机。

将文件复制到挂载的Raspberry Pi Pico,

启动ROM磁盘:picow_slack_bot.uf2

cp -a picow_slack_bot.uf2

/Volumes/RPI-RP2/.

使用串行监视器应用程序(如屏幕)查看主板的 USB 串行输出,

将 /dev/cu.usbmodem00000000000001 替换为主板的路径:

screen /dev/cu.usbmodem0000000000001

如果一切配置正确,开发板现在将连接到您的 Wi-Fi 网络,然后连接到 Slack。

c401ef28-a0be-11ee-8b88-92fbcf53809c.png

在计算机上打开 Slack,并创建一个新的测试频道。在信息输入窗口中输入,然后点按绿色按钮或按回车键发送。@ LED on

c41a20de-a0be-11ee-8b88-92fbcf53809c.png

由于 Pico W 不在频道中,系统将提示您添加它们。点击“邀请他们”按钮。

c43585d6-a0be-11ee-8b88-92fbcf53809c.png

被邀请后,开发板将点亮 LED, 然后回复消息告知状态。您也可以尝试发送消息以关闭 LED。@ LED off

c44f952a-a0be-11ee-8b88-92fbcf53809c.png

结论

本指南介绍了通过Raspberry Pi Pico W上运行MicroPython和C应用程序,来与Slack API发送和接收消息。

示例应用程序代码可以接收并处理消息文本,以控制板载 LED,然后将 LED 的当前状态告知用户。

你可以在自己的Raspberry Pi Pico W上尝试一下,然后在示例代码的基础上构建更多功能,从而将 Slack 扩展到物理世界。

作者:Sandeep Mistry 编译:IoT前哨站

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    210

    文章

    28098

    浏览量

    205807
  • 远程控制
    +关注

    关注

    4

    文章

    617

    浏览量

    34883
  • 开发板
    +关注

    关注

    25

    文章

    4895

    浏览量

    97032
  • 树莓派
    +关注

    关注

    116

    文章

    1688

    浏览量

    105454
  • slack
    +关注

    关注

    0

    文章

    18

    浏览量

    11062

原文标题:用树莓派Pico W创建自己的Slack机器人

文章出处:【微信号:IoT前哨站,微信公众号:IoT前哨站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    变形乐高玩具变形和树莓一起玩出乐高机器人

    玩法。1.乐高做树莓底盘嗯,基本没啥技术含量,5岁小孩子所拥有的动手能力就够了。2.树莓做乐高核心这个就很可怕了!乐高加上树莓
    发表于 09-02 14:26

    树莓打造视频监控机器人Verybot

    `在网上有看到一个基于树莓 ( raspberry pi ) 的视频监控机器人平台 Verybot ,顺带把这个机器人的一些图片、视频、设计思路进行公开,让大家都参与到
    发表于 09-18 15:33

    有关树莓制作机器人平台的探索

    2.树莓派性能高,可以功能更强大的机器人毕竟单片机的处理器能力有限本人的打算 是 树莓主机加7寸显示屏 做机器人主板 然后接电机控制模块
    发表于 11-10 10:19

    请教利用树莓制作六足机器人的问题

    本人新手,最近在准备制作一个六足机器人,如果利用舵机控制器+遥控手柄套件的话,可以很容易就实现简单的功能。为了能让六足机器人实现更加复杂的功能,我想利用arduino+树莓+舵机控制
    发表于 11-10 15:33

    树莓语音识别机器人(上)

    ` 本帖最后由 348081236 于 2016-1-20 11:00 编辑 分享一下外网看到的牛人用树莓做的语音识别机器人第一步:零部件部件是用2mm的铝做的。工序:附件为本教程双足
    发表于 01-19 18:01

    树莓语音识别机器人(下)

    `树莓语音识别机器人(上)第四步:声卡尽管有音频输出口可以连接音箱或耳机,但为了获得更好的音质,我们将外置声卡材料:1. 树莓2. US
    发表于 01-20 10:59

    【Raspberry Pi 3申请】基于树莓3的多项服务搭建与使用

    申请理由:本人是大四学生,现在已成功保研,导师是嵌入式/工业机器人方向,目前学习时间较多,在东南大学校企合作公司做毕业设计。我对嵌入式linux比较有兴趣,也觉得这是很好的发展方向。树莓一直以来
    发表于 04-14 14:35

    10分钟,DIY一台树莓版TH Robot WiFi视频小车机器人

    树莓核心的TH Robot WiFi视频小车机器人!首先是器件说明,由于树莓已经集成了WiFi功能,所以无需外接WiFi模块,所有的部件
    发表于 04-08 22:11

    树莓pico如何入门?

    树莓pico如何入门?
    发表于 10-13 08:11

    如何使用树莓开发智能机器人控制系统

    树莓和其他机器人的控制器有何不同?如何使用树莓开发智能机器人控制系统?
    发表于 12-23 06:55

    如何利用树莓搭建一个完整的机器人系统?

    如何利用树莓搭建一个完整的机器人系统?
    发表于 01-18 06:37

    树莓pico入门学习笔记(一)

    树莓pico入门学习笔记选择自己熟悉的编程语言树莓pico提供C/C++和micropyth
    发表于 12-17 18:42 21次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入门学习笔记(一)

    如何使用树莓制作一个巡线机器人

    众所周知,树莓是一个基于ARM微处理器的开发平台。凭借其强大的计算能力,它在广大电子爱好者中经常会创造出奇迹。为了更好地了解树莓及其工作原理,让我们尝试使用
    的头像 发表于 04-08 16:38 5797次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>制作一个巡线<b class='flag-5'>机器人</b>

    基于树莓的移动机器人实现

    电子发烧友网站提供《基于树莓的移动机器人实现.zip》资料免费下载
    发表于 10-27 11:48 16次下载
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的移动<b class='flag-5'>机器人</b>实现

    树莓机器人船构建

    电子发烧友网站提供《树莓机器人船构建.zip》资料免费下载
    发表于 07-10 11:33 0次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>机器人</b>船构建