使用AliOS Things快速構建RGB燈應用
本文將基於AliOS Things 3.1系統搭建應用,此應用通過支付寶小程序控制RGB燈的顏色。
背景信息
整體流程圖如下:
- 支付寶小程序服務端主要功能是為支付寶小程序提供API SaaS服務,同時通過OpenAPI SDK對接阿里雲物聯網(IoT)平臺。
- 支付寶小程序客戶端主要功能是顯示前端控制界面,通過https API發送指令控制設備屬性。
- 設備端程序主要功能是基於AliOS Things 3.1系統適配D1 WiFi設備開發。
- 阿里雲物聯網平臺主要功能是提供安全可靠的設備連接通信能力,支持設備數據採集上雲,規則引擎流轉數據和雲端數據下發設備端。此外,也提供方便快捷的設備管理能力,支持物模型定義,數據結構化存儲,和遠程調試、監控、運維。
- 硬件設備主要功能是通過D1 WiFi設備連接網絡,接收支付寶小程序的指令控制RGB燈的顏色。D1 WiFi設備的芯片型號是ESP 8266。
步驟一:管理阿里雲物聯網平臺設備
支付寶小程序和設備端是通過阿里雲IoT平臺進行通信的,具體是通過設備四元組信息進行連接的。所以要先在阿里雲物聯網平臺創建產品,在產品下添加對應型號的設備,產生該設備四元組信息。要有阿里雲賬號並開通阿里雲物聯網平臺服務。
1.登錄阿里雲物聯網平臺。
2.創建產品。
- 單擊左側菜單欄的設備管理>產品,打開產品列表頁。
- 單擊創建產品進入創建產品頁面。
- 參考說明配置產品信息,然後單擊保存。
- 產品名稱:輸入產品名稱,例如:xw智能燈。
-
所屬品類:此處選擇標準品類下的智能生活/電工照明/燈。
- 單擊請選擇標準品類選擇框。
- 在搜索框裡輸入
燈
,然後單擊搜索圖標。 - 單擊下圖所示選擇,選擇品類。
- 單擊請選擇標準品類選擇框。
- 聯網方式:此處選擇Wi-Fi。
- 數據格式:此處選擇ICA 標準數據格式(Alink JSON)。
3.添加設備。
- 單擊圖示中前往添加進入產品所屬設備列表頁面。
- 單擊添加設備。
- 參考說明配置設備信息,然後單擊確認。
- DeviceName:輸入DeviceName,例如:xwRGBLamp。
-
備註名稱:輸入備註名稱,例如:xw智能燈設備。
- 單擊下圖所示前往查看。
- 單擊
DeviceSecret
旁邊的查看。 - 單擊一鍵複製複製設備三元組。
- 單擊下圖所示前往查看。
設備三元組信息如下:
{
"ProductKey": "a1****kJ",
"DeviceName": "xwRGBLamp",
"DeviceSecret": "be8f*********b45297fc"
}
4.添加功能。
- 單擊左側菜單欄產品進入產品列表頁。然後單擊操作列的查看按鈕。
- 單擊功能定義,然後單擊編輯草稿。
- 單擊添加標準功能。
- 選擇RGB調色,然後單擊確定。
- 單擊發佈上線。
- 勾選確認已查看當前版本與線上版本的 比對結果,然後單擊確定。
- 單擊
ProductSecret
旁邊的查看。 - 單擊
ProductSecret
欄的複製。
ProductSecret和上面的三元組信息組成設備的四元組信息。
設備四元組信息用於後續支付寶客戶端,物聯網設備端開發,此處可以保存一下。
設備四元組信息如下:
{
"ProductKey": "a1******EB",
"ProductSecret": "Sj********YX",
"DeviceName": "xwRGBLamp",
"DeviceSecret": "c7*******************4c1c"
}
5.發佈產品。
- 在產品詳情頁,單擊右上角的發佈,彈出確認發佈產品框。
- 依次單擊請確認後面的圖標,然後單擊發佈。
步驟二:開發支付寶小程序服務端應用
支付寶小程序服務端接收支付寶小程序客戶端的指令傳送到阿里雲IoT平臺。使用Visual Studio Code開發工具,Node.js腳本語言。如果需要部署到線上或者上線小程序,還需要準備:
- ECS或者公網可訪問的服務器。
- 有效域名(已備案)。
- SSL證書。
申請加入阿里巴巴小程序繁星計劃,可以免費試用ECS和其他的小程序服務。
1.下載安裝Node.js。
2.下載支付寶小程序服務端源碼。
3.使用Visual Studio Code打開支付寶小程序服務端源碼。
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-key
和access-secret
是阿里雲頒發給用戶訪問服務所用的密鑰。
- 登錄阿里雲控制檯。
- 鼠標移至右上角頭像,然後單擊AccessKey 管理。
- 在AccessKey管理頁面獲取
accessKey
和accessSecret
。
-
-
regionId
是阿里雲物聯網平臺所屬地域,查看地域詳情,例如:cn-shanghai。 -
endPoint
是地域所屬的數據中心。阿里雲物聯網平臺有多個地域,不同地域有不同的數據中心,例如:https://iot.cn-shanghai.aliyuncs.com。
-
5.依次單擊上面菜單欄的Terminal>New Terminal打開Terminal窗口。
6.在Terminal窗口執行以下命令。
$ npm i
$ npm run dev
7.使用瀏覽器訪問http://127.0.0.1:7001/。
說明:支付寶小程序服務端源碼適用於AliOS Things 3.1版本。
步驟三:開發支付寶小程序客戶端應用
支付寶小程序客戶端向支付寶小程序服務端發送RGB燈顏色指令。使用小程序客戶端開發工具打開支付寶小程序客戶端程序,並修改配置信息進行運行。瞭解支付寶小程序開發流程:支付寶小程序快速開始。
1.下載安裝支付寶小程序客戶端開發工具。
2.下載支付寶小程序客戶端源碼。
3.用小程序開發工具打開支付寶小程序客戶端源碼。
- 打開小程序開發者工具客戶端。然後單擊客戶端右上角打開項目。
- 選擇客戶端源碼文件,然後單擊選擇文件夾。
- 單擊打開。
- 首次打開源碼時提示安裝依賴,單擊確認安裝依賴。
如果首次沒有安裝依賴,可以按下圖操作手動安裝所需依賴。
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
2.下載設備端源碼。
3.用開發工具Visual Studio Code打開設備端源碼。
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。
5.編譯。
單擊上面導航欄的Terminal>New Terminal,在下面的Terminal窗口輸入aos make
進行編譯。
輸出類似下圖信息表示編譯成功。
6.燒錄。
- 通過USB接口連接D1 WiFi設備。
- 在Terminal窗口輸入
aos upload
進行燒錄。 - 輸入
1
,然後按enter鍵。
輸出類似下圖信息表示燒錄成功。
步驟五:通過手機熱點進行設備配網
前面的開發工作已經完成,現在是最關鍵的一步。手機熱點信息已經通過步驟四燒錄到設備中,這裡打開手機熱點,設備會自動進行配網連接,通過串口監控可以查看配網日誌信息。配網成功支付寶小程序客戶端設備狀態變為在線,阿里雲IoT平臺設備狀態變為在線。
1.打開手機熱點進行網絡適配。
2.單擊設備端的圖標進行串口監控,查看設備日誌。
3.選擇波特率為961200,然後單擊打開。
- Web Serial窗口輸出連接信息。
- 支付寶小程序客戶端重新編譯後,設備狀態為在線。
- 在阿里雲物聯網平臺查看設備狀態為在線。
步驟六:通過支付寶小程序控制RGB燈顏色
D1 WiFi設備連上RGB燈,就可以通過支付寶小程序控制RGB燈的顏色。
1.D1 WiFi設備連接RGB燈。
接線方式如下:
D1 WiFi引腳 | RGB燈引腳 |
---|---|
GPIO12 | Blue(藍色燈引腳) |
GPIO13 | Red(紅色燈引腳) |
GPIO15 | Green(綠色燈引腳) |
GND | GND(負極) |
2.在支付寶小程序客戶端選擇綠色,RGB燈顏色變為綠色。
3.在支付寶小程序客戶端選擇藍色,RGB燈顏色變為藍色。
4.在支付寶小程序客戶端選擇紅色,RGB燈顏色變為紅色。