雲計算

使用AliOS Things快速構建RGB燈應用

使用AliOS Things快速構建RGB燈應用

本文將基於AliOS Things 3.1系統搭建應用,此應用通過支付寶小程序控制RGB燈的顏色。

背景信息

整體流程圖如下:
image.png

  • 支付寶小程序服務端主要功能是為支付寶小程序提供API SaaS服務,同時通過OpenAPI SDK對接阿里雲物聯網(IoT)平臺。
  • 支付寶小程序客戶端主要功能是顯示前端控制界面,通過https API發送指令控制設備屬性。
  • 設備端程序主要功能是基於AliOS Things 3.1系統適配D1 WiFi設備開發。
  • 阿里雲物聯網平臺主要功能是提供安全可靠的設備連接通信能力,支持設備數據採集上雲,規則引擎流轉數據和雲端數據下發設備端。此外,也提供方便快捷的設備管理能力,支持物模型定義,數據結構化存儲,和遠程調試、監控、運維。
  • 硬件設備主要功能是通過D1 WiFi設備連接網絡,接收支付寶小程序的指令控制RGB燈的顏色。D1 WiFi設備的芯片型號是ESP 8266。

步驟一:管理阿里雲物聯網平臺設備

支付寶小程序和設備端是通過阿里雲IoT平臺進行通信的,具體是通過設備四元組信息進行連接的。所以要先在阿里雲物聯網平臺創建產品,在產品下添加對應型號的設備,產生該設備四元組信息。要有阿里雲賬號並開通阿里雲物聯網平臺服務。
1.登錄阿里雲物聯網平臺
2.創建產品。

  • 單擊左側菜單欄的設備管理>產品,打開產品列表頁。
    image.png
  • 單擊創建產品進入創建產品頁面。
  • 參考說明配置產品信息,然後單擊保存
    image.png
  • 產品名稱:輸入產品名稱,例如:xw智能燈。
  • 所屬品類:此處選擇標準品類下的智能生活/電工照明/燈。

    • 單擊請選擇標準品類選擇框。
      image.png
    • 在搜索框裡輸入,然後單擊搜索圖標。
      image.png
    • 單擊下圖所示選擇,選擇品類。
      image.png
  • 聯網方式:此處選擇Wi-Fi。
  • 數據格式:此處選擇ICA 標準數據格式(Alink JSON)。

3.添加設備。

  • 單擊圖示中前往添加進入產品所屬設備列表頁面。
    image.png
  • 單擊添加設備。
    image.png
  • 參考說明配置設備信息,然後單擊確認
    image.png
  • DeviceName:輸入DeviceName,例如:xwRGBLamp。
  • 備註名稱:輸入備註名稱,例如:xw智能燈設備。

    • 單擊下圖所示前往查看
      image.png
    • 單擊DeviceSecret旁邊的查看
      image.png
    • 單擊一鍵複製複製設備三元組。
      image.png

設備三元組信息如下:

{
  "ProductKey": "a1****kJ",
  "DeviceName": "xwRGBLamp",
  "DeviceSecret": "be8f*********b45297fc"
}

4.添加功能。

  • 單擊左側菜單欄產品進入產品列表頁。然後單擊操作列的查看按鈕。
    image.png
  • 單擊功能定義,然後單擊編輯草稿
    image.png
  • 單擊添加標準功能
    image.png
  • 選擇RGB調色,然後單擊確定
    image.png
  • 單擊發佈上線
    image.png
  • 勾選確認已查看當前版本與線上版本的 比對結果,然後單擊確定
    image.png
  • 單擊ProductSecret旁邊的查看
    image.png
  • 單擊ProductSecret欄的複製
    image.png

ProductSecret和上面的三元組信息組成設備的四元組信息。
設備四元組信息用於後續支付寶客戶端,物聯網設備端開發,此處可以保存一下。
設備四元組信息如下:

{
  "ProductKey": "a1******EB",
  "ProductSecret": "Sj********YX",
  "DeviceName": "xwRGBLamp",
  "DeviceSecret": "c7*******************4c1c"
}

5.發佈產品。

  • 在產品詳情頁,單擊右上角的發佈,彈出確認發佈產品框。
    image.png
  • 依次單擊請確認後面的圖標,然後單擊發佈
    image.png

步驟二:開發支付寶小程序服務端應用

支付寶小程序服務端接收支付寶小程序客戶端的指令傳送到阿里雲IoT平臺。使用Visual Studio Code開發工具,Node.js腳本語言。如果需要部署到線上或者上線小程序,還需要準備:

  • ECS或者公網可訪問的服務器。
  • 有效域名(已備案)。
  • SSL證書。

申請加入阿里巴巴小程序繁星計劃,可以免費試用ECS和其他的小程序服務。
1.下載安裝Node.js
2.下載支付寶小程序服務端源碼
3.使用Visual Studio Code打開支付寶小程序服務端源碼。
image.png
4.修改配置信息。
修改app/service/aliyunIoT.js文件中的config屬性。

const config = {
  accessKey: '<access-key>',
  accessSecret: '<access-secret>',
  endPoint: 'https://iot.<regionId>.aliyuncs.com',
  apiVersion: '2018-01-20',
  regionId: '<regionId>',
};

access-keyaccess-secret是阿里雲頒發給用戶訪問服務所用的密鑰。

  • 登錄阿里雲控制檯
  • 鼠標移至右上角頭像,然後單擊AccessKey 管理
    image.png
  • 在AccessKey管理頁面獲取accessKeyaccessSecret
    image.png

5.依次單擊上面菜單欄的Terminal>New Terminal打開Terminal窗口。
image.png
6.在Terminal窗口執行以下命令。

$ npm i
$ npm run dev

7.使用瀏覽器訪問http://127.0.0.1:7001/
image.png
說明:支付寶小程序服務端源碼適用於AliOS Things 3.1版本。

步驟三:開發支付寶小程序客戶端應用

支付寶小程序客戶端向支付寶小程序服務端發送RGB燈顏色指令。使用小程序客戶端開發工具打開支付寶小程序客戶端程序,並修改配置信息進行運行。瞭解支付寶小程序開發流程:支付寶小程序快速開始
1.下載安裝支付寶小程序客戶端開發工具
2.下載支付寶小程序客戶端源碼
3.用小程序開發工具打開支付寶小程序客戶端源碼。

  • 打開小程序開發者工具客戶端。然後單擊客戶端右上角打開項目
    image.png
  • 選擇客戶端源碼文件,然後單擊選擇文件夾
    image.png
  • 單擊打開
    image.png
  • 首次打開源碼時提示安裝依賴,單擊確認安裝依賴。
    image.png

如果首次沒有安裝依賴,可以按下圖操作手動安裝所需依賴。
image.png

4.修改配置。
打開utils/device_api.js文件,修改以下三個屬性:

const defaultServerURL = '<your-domain>';
const defaultProductKey = '<product-key>';
const defaultDeviceName = '<device-name>';
  • your-domain為支付寶小程序服務端API地址,例如:http://localhost:7001/api/device
  • product-key為設備四元組信息中ProductKey值。
  • device-name為設備四元組信息中DeviceName值。

步驟四:開發設備端應用

要先安裝好設備對應的驅動,本例中D1 WiFi設備對應的驅動為CH340
1.修改AliOS Things3.1源碼。
由於設備端應用需要依賴pwm庫,所以要在AliOS Things系統中加入pwm庫。
打開platform/mcu/esp8266/aos.mk文件,在第54行下面加入以下代碼。

$(NAME)_PREBUILT_LIBRARY += bsp/lib/libpwm.a

image.png
2.下載設備端源碼
3.用開發工具Visual Studio Code打開設備端源碼。
image.png
4.修改設備端配置。

  • 打開app_entry.c文件,修改以下屬性。

設備認證信息:

#define PRODUCT_KEY "<ProductKey>"
#define PRODUCT_SECRET "<ProductSecret>"
#define DEVICE_NAME "<DeviceName>"
#define DEVICE_SECRET "<DeviceSecret>"
  • ProductKey為設備四元組信息ProductKey的值。
  • ProductSecret為設備四元組信息ProductSecret的值。
  • DeviceName為設備四元組信息DeviceName的值。
  • DeviceSecret為設備四元組信息DeviceSecret的值。

WiFi信息:

#define WIFI_SSID "<WIFI_SSID>"
#define WIFI_PASSWD "<WIFI_PASSWD>"
  • WIFI_SSID為手機熱點的設備名稱,例如:aiotesp8266。
  • WIFI_PASSWD為手機熱點的密碼,例如:12345678abc。

image.png

5.編譯。
單擊上面導航欄的Terminal>New Terminal,在下面的Terminal窗口輸入aos make進行編譯。
image.png
輸出類似下圖信息表示編譯成功。
image.png
6.燒錄。

  • 通過USB接口連接D1 WiFi設備。
    image.png
  • Terminal窗口輸入aos upload進行燒錄。
  • 輸入1,然後按enter鍵。
    image.png

輸出類似下圖信息表示燒錄成功。

image.png

步驟五:通過手機熱點進行設備配網

前面的開發工作已經完成,現在是最關鍵的一步。手機熱點信息已經通過步驟四燒錄到設備中,這裡打開手機熱點,設備會自動進行配網連接,通過串口監控可以查看配網日誌信息。配網成功支付寶小程序客戶端設備狀態變為在線,阿里雲IoT平臺設備狀態變為在線。
1.打開手機熱點進行網絡適配。
2.單擊設備端的image.png圖標進行串口監控,查看設備日誌。
3.選擇波特率為961200,然後單擊打開
image.png

  • Web Serial窗口輸出連接信息。

image.png

  • 支付寶小程序客戶端重新編譯後,設備狀態為在線。

image.png

  • 在阿里雲物聯網平臺查看設備狀態為在線。

image.png

步驟六:通過支付寶小程序控制RGB燈顏色

D1 WiFi設備連上RGB燈,就可以通過支付寶小程序控制RGB燈的顏色。
1.D1 WiFi設備連接RGB燈。
接線方式如下:

D1 WiFi引腳 RGB燈引腳
GPIO12 Blue(藍色燈引腳)
GPIO13 Red(紅色燈引腳)
GPIO15 Green(綠色燈引腳)
GND GND(負極)

2.在支付寶小程序客戶端選擇綠色,RGB燈顏色變為綠色。
image.png
image.png
3.在支付寶小程序客戶端選擇藍色,RGB燈顏色變為藍色。
image.png
image.png
4.在支付寶小程序客戶端選擇紅色,RGB燈顏色變為紅色。
image.png
image.png

Leave a Reply

Your email address will not be published. Required fields are marked *