131 1300 0010
其他電源
當(dāng)前位置: 首頁>> 電源技術(shù)>>其他電源>>
  • 導(dǎo)航欄目
  • 逆變電源
  • 開關(guān)電源
  • 電機(jī)伺服
  • 其他電源
  • 使用樹莓派Pico W搭建Slack機(jī)器人
    使用樹莓派Pico W搭建Slack機(jī)器人
  • 使用樹莓派Pico W搭建Slack機(jī)器人
  •   發(fā)布日期: 2023-12-26  瀏覽次數(shù): 692

    Slack是一款在線協(xié)作軟件,可以讓你與團(tuán)隊(duì)成員進(jìn)行聊天、文件傳送、語音/視頻通話等功能。Slack還可以整合多種工具和服務(wù),如電子郵件、Google Drives、Twitter、Trello等,以提高工作效率和自動(dòng)化任務(wù)。有App方便大家在手機(jī)或平板電腦上使用。

    這次要實(shí)現(xiàn)的樹莓派Pico W遠(yuǎn)程控制機(jī)器人,簡(jiǎn)單來說,就是我們?cè)谑謾C(jī)上用Slack發(fā)消息,指揮Pico W幫我們干活。

    wKgZomWJTWGAT1LAAAJMc0YRDEg001

    Slack 的 chat.postMessage API 可將消息從開發(fā)板發(fā)送到 Slack 頻道。Slack 為應(yīng)用和機(jī)器人提供了一個(gè)事件 API,用于響應(yīng) Slack 上的活動(dòng)。由于開發(fā)板不能從公共互聯(lián)網(wǎng)直接訪問,因此無法使用公共 HTTP webhook。

    我們必須使用Slack 的Socket Mode。 Socket Mode使應(yīng)用和機(jī)器人能夠使用動(dòng)態(tài)的WebSocket 接收事件。動(dòng)態(tài)套接字的URL可以通過Slack的apps.connections.open API獲取。

    wKgZomWJTWGAMH4LAAI95Zu2nb0930

    Pico W與Slack API 接收事件和發(fā)送消息的通信機(jī)制:

    wKgZomWJTWGAcs4ZAAJJet8hVio448

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

    配置 Slack

    在 Web 瀏覽器中訪問:

    并使用您的 Slack 憑據(jù)登錄,單擊“創(chuàng)建新應(yīng)用”按鈕。

    wKgZomWJTWGAFMr9AAJSajbwusc594

    單擊“From scratch”選項(xiàng)。

    wKgZomWJTWKAN450AAHnxVDyiCM072

    輸入應(yīng)用程序的名稱(例如“Pico W”),為應(yīng)用程序選擇一個(gè)工作區(qū),然后單擊“創(chuàng)建應(yīng)用程序”按鈕。

    wKgZomWJTWKAcNGGAAHwT_MqeDY955

    單擊左側(cè)的“Socket Mode”部分,然后單擊切換到“啟用Socket Mode”。

    wKgZomWJTWKASC1vAAKqfL-R5-Q078

    輸入應(yīng)用級(jí)令牌的“Token Name”,例如“Pico W app”,然后單擊“生成”按鈕。

    wKgZomWJTWKAGiUmAAIIUOMcqo8085

    生成并顯示應(yīng)用級(jí)令牌,復(fù)制該值并保存以備將來使用,然后單擊“完成”按鈕。

    wKgZomWJTWKAEW2qAAHiJ5ZNFUk480

    單擊左側(cè)的“OAuth 和權(quán)限”部分,向下滾動(dòng)到“Scopes”部分,然后單擊“添加 OAuth 范圍”按鈕。

    wKgZomWJTWOAJ6VOAAFGH0mHQdg114

    添加“app mention:read”權(quán)限。

    wKgZomWJTWOAJ392AAHIPl6O6u4635

    添加“chat:write”權(quán)限。

    wKgZomWJTWOAQ9OlAAGF3fTlNYU845

    單擊左側(cè)的“事件訂閱”部分,然后單擊“啟用事件”開關(guān)。

    wKgZomWJTWOABgiHAAGA5gfR_Z0417

    展開“訂閱bot事件”部分并單擊“添加bot用戶事件”按鈕。

    wKgZomWJTWOACOQ7AAI2YXzFjIs009

    選擇“app_mention”。

    wKgZomWJTWSAKWgVAAIH6w2U49A701

    點(diǎn)擊右下角的“保存更改”按鈕。

    wKgZomWJTWSAez0GAAIQDXPQnG8019

    點(diǎn)擊左側(cè)的“基本信息”部分,然后點(diǎn)擊“請(qǐng)求安裝”按鈕。

    wKgZomWJTWSAAGoxAAI6CNrF4as328

    填寫“簡(jiǎn)短描述”,選擇“背景顏色”,點(diǎn)擊“保存更改”按鈕

    wKgZomWJTWSAItcRAAF-k09Ft9U851

    工作區(qū)管理員可以批準(zhǔn)申請(qǐng)。然后轉(zhuǎn)到“基本信息”部分,單擊“安裝到工作區(qū)”按鈕。

    wKgZomWJTWSAP5ceAAJHcnLPqKE657

    安裝完成后,單擊左側(cè)的“OAuth & Permissions”部分,滾動(dòng)到“工作區(qū)的OAuth Token”部分,然后復(fù)制“Bot User OAuth Token”值并保存以供將來參考。

    wKgZomWJTWWAQWpkAAI75V8HcSA637

    現(xiàn)在你有了一個(gè)應(yīng)用程序級(jí)別的令牌值和一個(gè)Slack應(yīng)用程序的Bot用戶OAuth令牌值,可以在Raspberry Pi Pico W板上使用。

    基于 MicroPython?的 Slack 機(jī)器人

    MicroPython 為許多基于Arm?Cortex-M 的微控制器提供Python 3實(shí)現(xiàn),包括 Raspberry Pi Pico W上的RP2040。

    Thonny IDE 將用于安裝 MicroPython 并將代碼上傳到 Raspberry Pico W。

    從 Thonny 主頁下載適用于您的計(jì)算機(jī)的操作系統(tǒng)?(OS) 專用版本的 Thonny。在撰寫本指南時(shí),Thonny 4.1.2 是最新版本。

    wKgZomWJTWWAcPXAAAIMlFl2ryc454

    用Thonny刷好MicroPython以后,將 GitHub 中的代碼下載到計(jì)算機(jī)上的文件夾。

    相關(guān)代碼:

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

    wKgZomWJTWWAf2oyAAHlzO5Yc68751

    打開 Raspberry Pi Pico W 板上的 config.py 文件,填寫?Wi-Fi?網(wǎng)絡(luò)的 SSID 和密碼,以及之前配置的 Slack 應(yīng)用和機(jī)器人令牌。

    wKgZomWJTWWAKGMJAAFIWPXKsho357

    打開樹莓派Pi Pico W板上的 main.py 文件,然后按綠色的播放按鈕運(yùn)行應(yīng)用程序。如果一切配置正確,開發(fā)板現(xiàn)在將連接到您的 Wi-Fi 網(wǎng)絡(luò),然后連接到 Slack。

    wKgZomWJTWaARJ7nAALkC_6zi1Y777

    基于 C 語言的 Slack 機(jī)器人

    對(duì)于 C 版本,以下庫將與pico-sdk一起使用:

    FreeRTOS?內(nèi)核– 為網(wǎng)絡(luò)堆棧提供實(shí)時(shí)操作系統(tǒng)(RTOS

    lwIP– 用于 TCP/IP 通信

    MbedTLS – 用于 TLS 通信

    coreHTTP– 用于 HTTP 客戶端

    cJSON– 用于解析和序列化 JSON 數(shù)據(jù)

    使用 Raspberry Pi 的 Pico SDK 和所需的工具鏈設(shè)置您的計(jì)算機(jī)。

    有關(guān)更多信息,請(qǐng)參閱 Raspberry Pi Pico 入門指南。

    在終端窗口中,設(shè)置 PICO_SDK 環(huán)境變量:

    exportPICO_SDK_PATH=/path/to/pico-sdk

    將目錄更改為下載示例代碼的位置,然后將目錄更改為文件夾:pico-sdk

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

    cd pico-sdk

    創(chuàng)建一個(gè)構(gòu)建目錄,并將目錄更改為該目錄:

     

    mkdir build
    

     

    cd build

    使用你的 Wi-Fi SSID 和密碼以及 Slack 應(yīng)用和機(jī)器人令牌運(yùn)行,然后運(yùn)行以編譯應(yīng)用程序。

     

    ?

     

    cmake .. -DPICO_BOARD=pico_w -DWIFI_SSID=""</wifi?ssid>

    -DWIFI_PASSWORD=""

    -DSLACK_APP_TOKEN=""

    -DSLACK_BOT_TOKEN=""

    make

    按住Pico W上的BOOTSEL按鈕,同時(shí)將USB電纜插入計(jì)算機(jī)。

    將文件復(fù)制到掛載的Raspberry Pi Pico,

    啟動(dòng)ROM磁盤:picow_slack_bot.uf2

    cp -a picow_slack_bot.uf2

    /Volumes/RPI-RP2/.

    使用串行監(jiān)視器應(yīng)用程序(如屏幕)查看主板的 USB 串行輸出,

    將 /dev/cu.usbmodem00000000000001 替換為主板的路徑:

    screen /dev/cu.usbmodem0000000000001

    如果一切配置正確,開發(fā)板現(xiàn)在將連接到您的 Wi-Fi 網(wǎng)絡(luò),然后連接到 Slack。

    wKgZomWJTWaANbODAADBGgw0yr0707

    在計(jì)算機(jī)上打開 Slack,并創(chuàng)建一個(gè)新的測(cè)試頻道。在信息輸入窗口中輸入,然后點(diǎn)按綠色按鈕或按回車鍵發(fā)送。@?LED?on

    wKgZomWJTWaAX6oSAAG9TQ7g8nY914

    由于 Pico W 不在頻道中,系統(tǒng)將提示您添加它們。點(diǎn)擊“邀請(qǐng)他們”按鈕。

    wKgZomWJTWaAdOpeAAGkN04AC1o221

    被邀請(qǐng)后,開發(fā)板將點(diǎn)亮 LED, 然后回復(fù)消息告知狀態(tài)。您也可以嘗試發(fā)送消息以關(guān)閉 LED。@?LED off

    wKgZomWJTWaAKVMjAAFkcjvd64E125

    結(jié)論

    本指南介紹了通過Raspberry Pi Pico W上運(yùn)行MicroPython和C應(yīng)用程序,來與Slack API發(fā)送和接收消息。

    示例應(yīng)用程序代碼可以接收并處理消息文本,以控制板載 LED,然后將 LED 的當(dāng)前狀態(tài)告知用戶。

    你可以在自己的Raspberry Pi Pico W上嘗試一下,然后在示例代碼的基礎(chǔ)上構(gòu)建更多功能,從而將 Slack 擴(kuò)展到物理世界。

    作者:Sandeep Mistry 編譯:IoT前哨站


  • ·上一篇:
    ·下一篇:
  • 其他關(guān)聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機(jī):131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 xbquwah.cn 電話:13113000010 粵ICP備2021111333號(hào)