Particle for alexa smart home skill (4)

    xiaoxiao2025-09-08  591

    上一章介紹了 particle photon 初始化與手機 app 調試的方法,要實現 alexa 控制 particle photon 上的 led 燈,

    需要在 particle 云上添加設備,并做相應設置,以提供對應的 api 給 alexa skill 調用。

    第4章、在 particle 云上配置 Photon

    particle 提供了很強大的文檔功能 docs.particle.io

    1) 打開 particle.io 網站并登入 CONSOLE

      

    2) 進入 Products 菜單項,點擊右側的 +NEW PRODUCT 按鈕

      

    3) 輸入 Product Name 為 photon0815, 選擇設備類別為 Photon(PO), 點擊 CREATE 按鈕

      

     建立成功

      

    4) 進入左下方的配置菜單界面

      

    5) 配置產品詳細信息,以下是配置后的截圖. (配置前有詳細的幫助信息,內容太多,所以省略)

      Product ID 為 1029, 這個值在 particle 云代碼中會用到

      

      Working with Particle 配置項

      

      Customers 配置項

      

      Firmware 配置項

      

    6) 配置完成后, 點擊 IMPORT DEVICE 按鈕 (也可以在 Product 頁面中點擊 +Add Devices 按鈕來添加)

      在添加前, 要觸除手機與 photon 的綁定 (在手機 app 中操作), 否則會添加失敗

      

    7) 點擊 +Add One Device 按鈕

      

    8) 輸入 Device ID,這個ID在手機 app 中查看,要把大字 (在上一章中有提到), 由24個16進制字符組成, 輸入時要把大寫改為小寫

      

     添加成功的畫面

      

    9) 點擊"指紋"圖標, 進入到認證頁面 (如果沒有找到這個圖標, 需要先在產品清單中點擊產品才會顯示)

      

    10) 點擊右側的 + NEW CLIENT 按鈕

      

    11) 選擇 Client Type, 輸入名稱 webapp (這個名稱在建立 alexa skill 時會用到)

      Redirect URI 輸入https://pitangui.amazon.com/api/skill/link/M1DXJTXVOEUAS0

      (這個網址在建立 alexa skill 的頁面中可以得到, 所以理論上要先建立 alexa skill, 再來設置 particle 云, 但先設置 particle 云再建 alexa skill 更容易理解)

      

    12)將以下畫面中的 Client ID 和 Client Secret 記錄下來, 在建立 alexa skill 時要用到.

      

      增加 Client 后的畫面

      

      

    13) 點擊左下方的 Build 菜單項

      

    14) 在 Build 頁面中點擊 CREATE NEW APP 按鈕, 在 Current APP 下方輸入 app 的名稱 photontest

      

      

    15) 編寫代碼, 第一行的 PRODUCT_ID(1029) 是我們在前面建立 PRODUCT 時看到的 ID, 如果這個ID不匹配, 就不能更新程序到 photon 芯片.

      代碼提供 photon A4 和 A5 兩個LED燈的開關和亮度調節。

    PRODUCT_ID(1029); PRODUCT_VERSION(1); #define MAX_ARGS 64 int lightPins[] = { A5,A4 }; int lightValues[] = { 255,255 }; int onoffLight(String args){ int index = args.toInt(); int value; char szArgs[MAX_ARGS]; int count = sizeof(lightPins) / sizeof(int); args.toCharArray(szArgs, MAX_ARGS); sscanf(szArgs, "%d=%d", &index, &value); Serial.println(); Serial.print("On/Off"); Serial.println(); Serial.print("Arguments: "); Serial.print(args); Serial.println(); Serial.print("Index: "); Serial.print(index); Serial.println(); Serial.print("Value: "); Serial.print(value); Serial.println(); if(index >= 0 && index<count){ analogWrite(lightPins[index], value == 1 ? lightValues[index] : 0); } return lightValues[index]; } int setPercentage(String args){ int index; int value; char szArgs[MAX_ARGS]; int count = sizeof(lightPins) / sizeof(int); args.toCharArray(szArgs, MAX_ARGS); sscanf(szArgs, "%d=%d", &index, &value); float brightness = ((float)value * 255.0) / 100.0; if(index >= 0 && index<count){ lightValues[index] = (int)brightness; analogWrite(lightPins[index], lightValues[index]); } Serial.println(); Serial.print("Percentage"); Serial.println(); Serial.print("Arguments: "); Serial.print(args); Serial.println(); Serial.print("Index: "); Serial.print(index); Serial.println(); Serial.print("Value: "); Serial.print(value); Serial.println(); Serial.print("Brightness: "); Serial.print(brightness); Serial.println(); return (int)brightness; } void setup() { Serial.begin(115200); int count = sizeof(lightPins) / sizeof(int); for(int index=0; index<count; ++index){ pinMode(lightPins[index], OUTPUT); } Particle.function("setvalue", setPercentage); Particle.function("onoff", onoffLight); } void loop() { }

    16) 依次點擊左側的 Save、Verify、Flash按鈕 (Flash的作用是將代碼編譯并寫入到 Photon 芯片)

      

      第一次點擊 Flash 按鈕會要求增加新的設備, (即代碼至少要綁定到一個設備才能進行Flash)

      

      在 DEVICE ID框中輸入 photon 的 ID (前提提到的24位16進制字符),點擊 CLAIM A DEVICE

      

      輸入 Device 名稱 (photon0815)后點擊 SAVE 按鈕

      

    到此,particle 云的設置已經完成。

    除了可以在 Partcle 云上面將代碼 Flash 到芯片外,也可以下載 Particle for Windows 程序在本地進行 Flash,

    Particle 云提供了一些 Sample Code 供入門學習,更多的功能可以參考官方文檔 docs.particle.io

     

    转载请注明原文地址: https://ju.6miu.com/read-1302451.html
    最新回复(0)