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

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

    這次要實現(xiàn)的樹莓派Pico W遠(yuǎn)程控制機器人,簡單來說,就是我們在手機上用Slack發(fā)消息,指揮Pico W幫我們干活。

    wKgZomWJTWGAT1LAAAJMc0YRDEg001

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

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

    wKgZomWJTWGAMH4LAAI95Zu2nb0930

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

    wKgZomWJTWGAcs4ZAAJJet8hVio448

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

    配置 Slack

    在 Web 瀏覽器中訪問:

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

    wKgZomWJTWGAFMr9AAJSajbwusc594

    單擊“From scratch”選項。

    wKgZomWJTWKAN450AAHnxVDyiCM072

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

    wKgZomWJTWKAcNGGAAHwT_MqeDY955

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

    wKgZomWJTWKASC1vAAKqfL-R5-Q078

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

    wKgZomWJTWKAGiUmAAIIUOMcqo8085

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

    wKgZomWJTWKAEW2qAAHiJ5ZNFUk480

    單擊左側(cè)的“OAuth 和權(quán)限”部分,向下滾動到“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

    點擊右下角的“保存更改”按鈕。

    wKgZomWJTWSAez0GAAIQDXPQnG8019

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

    wKgZomWJTWSAAGoxAAI6CNrF4as328

    填寫“簡短描述”,選擇“背景顏色”,點擊“保存更改”按鈕

    wKgZomWJTWSAItcRAAF-k09Ft9U851

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

    wKgZomWJTWSAP5ceAAJHcnLPqKE657

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

    wKgZomWJTWWAQWpkAAI75V8HcSA637

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

    基于 MicroPython?的 Slack 機器人

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

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

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

    wKgZomWJTWWAcPXAAAIMlFl2ryc454

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

    相關(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)用和機器人令牌。

    wKgZomWJTWWAKGMJAAFIWPXKsho357

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

    wKgZomWJTWaARJ7nAALkC_6zi1Y777

    基于 C 語言的 Slack 機器人

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

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

    lwIP– 用于 TCP/IP 通信

    MbedTLS – 用于 TLS 通信

    coreHTTP– 用于 HTTP 客戶端

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

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

    有關(guān)更多信息,請參閱 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òu)建目錄,并將目錄更改為該目錄:

     

    mkdir build
    

     

    cd build

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

     

    ?

     

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

    -DWIFI_PASSWORD=""

    -DSLACK_APP_TOKEN=""

    -DSLACK_BOT_TOKEN=""

    make

    按住Pico W上的BOOTSEL按鈕,同時將USB電纜插入計算機。

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

    啟動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

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

    wKgZomWJTWaAX6oSAAG9TQ7g8nY914

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

    wKgZomWJTWaAdOpeAAGkN04AC1o221

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

    wKgZomWJTWaAKVMjAAFkcjvd64E125

    結(jié)論

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

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

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

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


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

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