slack是一款在线协作软件,可以让你与团队成员进行聊天、文件传送、语音/视频通话等功能。slack还可以整合多种工具和服务,如电子邮件、google drives、twitter、trello等,以提高工作效率和自动化任务。有app方便大家在手机或平板电脑上使用。
这次要实现的树莓派pico w远程控制机器人,简单来说,就是我们在手机上用slack发消息,指挥pico w帮我们干活。
slack 的 chat.postmessage api 可将消息从开发板发送到 slack 频道。slack 为应用和机器人提供了一个事件 api,用于响应 slack 上的活动。由于开发板不能从公共互联网直接访问,因此无法使用公共 http webhook。
我们必须使用slack 的socket mode。 socket mode使应用和机器人能够使用动态的websocket 接收事件。动态套接字的url可以通过slack的apps.connections.open api获取。
pico w与slack api 接收事件和发送消息的通信机制:
要完成上述操作,你必须先有slack令牌。
配置 slack
在 web 浏览器中访问:
并使用您的 slack 凭据登录,单击“创建新应用”按钮。
单击“from scratch”选项。
输入应用程序的名称(例如“pico w”),为应用程序选择一个工作区,然后单击“创建应用程序”按钮。
单击左侧的“socket mode”部分,然后单击切换到“启用socket mode”。
输入应用级令牌的“token name”,例如“pico w app”,然后单击“生成”按钮。
生成并显示应用级令牌,复制该值并保存以备将来使用,然后单击“完成”按钮。
单击左侧的“oauth 和权限”部分,向下滚动到“scopes”部分,然后单击“添加 oauth 范围”按钮。
添加“app mention:read”权限。
添加“chat:write”权限。
单击左侧的“事件订阅”部分,然后单击“启用事件”开关。
展开“订阅bot事件”部分并单击“添加bot用户事件”按钮。
选择“app_mention”。
点击右下角的“保存更改”按钮。
点击左侧的“基本信息”部分,然后点击“请求安装”按钮。
填写“简短描述”,选择“背景颜色”,点击“保存更改”按钮
工作区管理员可以批准申请。然后转到“基本信息”部分,单击“安装到工作区”按钮。
安装完成后,单击左侧的“oauth & permissions”部分,滚动到“工作区的oauth token”部分,然后复制“bot user oauth token”值并保存以供将来参考。
现在你有了一个应用程序级别的令牌值和一个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 是最新版本。
用thonny刷好micropython以后,将 github 中的代码下载到计算机上的文件夹。
相关代码:
https://github.com/iotoutpost/example-of-a-slackbot-for-pico-w
打开 raspberry pi pico w 板上的 config.py 文件,填写 wi-fi 网络的 ssid 和密码,以及之前配置的 slack 应用和机器人令牌。
打开树莓派pi pico w板上的 main.py 文件,然后按绿色的播放按钮运行应用程序。如果一切配置正确,开发板现在将连接到您的 wi-fi 网络,然后连接到 slack。
基于 c 语言的 slack 机器人
对于 c 版本,以下库将与pico-sdk一起使用:
freertos 内核 – 为网络堆栈提供实时操作系统(rtos)
lwip – 用于 tcp/ip 通信
mbed tls – 用于 tls 通信
corehttp – 用于 http 客户端
cjson – 用于解析和序列化 json 数据
使用 raspberry pi 的 pico sdk 和所需的工具链设置您的计算机。
有关更多信息,请参阅 raspberry pi pico 入门指南。
在终端窗口中,设置 pico_sdk 环境变量:
export pico_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。
在计算机上打开 slack,并创建一个新的测试频道。在信息输入窗口中输入,然后点按绿色按钮或按回车键发送。@ led on
由于 pico w 不在频道中,系统将提示您添加它们。点击“邀请他们”按钮。
被邀请后,开发板将点亮 led, 然后回复消息告知状态。您也可以尝试发送消息以关闭 led。@ led off
结论
本指南介绍了通过raspberry pi pico w上运行micropython和c应用程序,来与slack api发送和接收消息。
示例应用程序代码可以接收并处理消息文本,以控制板载 led,然后将 led 的当前状态告知用户。
你可以在自己的raspberry pi pico w上尝试一下,然后在示例代码的基础上构建更多功能,从而将 slack 扩展到物理世界。
作者:sandeep mistry 编译:iot前哨站
东风风光580智尚版火爆来袭,将于本月上市
充电宝出口日本PSE认证需要多少钱?
Microchip继续生产100%兼容NXP停产MCU的8051/80C51单片机
高通宣布推出全新的旗舰5G芯片骁龙888
TL494, NCV494应用电路
使用树莓派Pico W搭建Slack机器人
联想来酷5G物联产业融合 持续升级守护健康
德赛西威与德州仪器签署合作备忘录
华为智能体脂秤Wi-Fi版高清图赏
中国移动反超中国电信拿下宽带市场第一把交椅
利用频谱仪测量数字信号的几种方法分析
藏在家里的音乐厅,普乐之声TSIII真环绕声回音壁
模拟矩阵在人工智能疾病诊断中的应用
视在功率_视在功率单位_电流乘以电压等于什么
电容器的串联补偿装置接线图分享
虹膜识别引爆手机市场为时尚早
2018年面板产业业绩增速将较过去一年放缓
UL认证怎么做,标签的UL认证怎么做
华为Nova2发布会,你的盛世美颜,需要ta来相配
物联网给人力资源带来了什么挑战