Particle for alexa smart home skill (4)

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


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值