Particle for alexa smart home skill (4)

来源:互联网 发布:阿里通信卡的网络2g 编辑:程序博客网 时间:2024/05/01 11:25

上一章介紹了 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 64int 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


 

0 0