名詞解釋
AliOS Things: 阿裡雲智能IoT團隊自研的物聯網作業系統
HaaS:全稱是Hardware as a Service,阿裡雲智能IoT團隊基于AliOS Things系統推出的硬體即服務
HaaS UI:全稱是Hardware as a Service User Interface,是源自AliOS Things作業系統上的一套應用&圖形解決方案,支援C/C++和 JS兩種開發語言
1、阿裡雲智能物聯網平台簡介
阿裡雲智能物聯網平台為裝置提供安全可靠的連接配接通信能力,向下連接配接海量裝置,支撐裝置資料采集上雲;向上提供雲端API,服務端通過調用雲端API将指令下發至裝置端,實作遠端控制。
2、HaaS UI IoT平台接口簡介
阿裡雲智能物聯網平台支援海量裝置連接配接上雲,裝置與雲端可以通過js形式的IoT接口進行穩定可靠的雙向通信,這些接口簡稱jsapi_iot。
jsapi_iot提供了裝置上報屬性、裝置上報事件、雲端設定屬性、雲端下發服務、mqtt連接配接狀态監聽等接口,可友善開發者使用阿裡雲物聯網平台的相關功能。
示例代碼
- /* iot - 阿裡雲IoT連接配接平台連接配接元件示例,産品功能定義:
- * [功能類型] ------ [功能名稱] ------ [标志符] ------ [資料類型]
- * 屬性 主燈開關 LightSwitch bool (0-關閉 1-開啟)
- * 服務 開關翻轉 ToggleLightSwitch -
- * 事件 故障上報 Error 參數标志符:ErrorCode
- * */
- import * as iot from 'iot';
- this.device = iot.device();
- /* 網絡連接配接事件 */
- device.on('connect', function () {
- console.log('(re)connected');
- });
- /* 網絡斷開事件 */
- device.on('disconnect', function () {
- console.log('disconnect ');
- /* 雲端設定屬性事件 */
- device.on('props', function (payload) {
- console.log('cloud req data is ', payload);
- console.log('LightSwitch ', payload.LightSwitch ? 'ON' : 'OFF');
- /* 雲端下發服務事件 */
- device.on('service', function (id, payload) {
- console.log('received cloud serviceid is ' + id);
- console.log('received cloud req_data is ' + payload);
2.1、device(Object option)
建立
iot執行個體,同時會開始嘗試連接配接阿裡雲IoT平台。iot執行個體預設開啟TLS加密。
入參
屬性 | 類型 | 必填 | 描述 |
region | String | 否 | 阿裡雲region,預設值:cn-shanghai。阿裡雲region詳細說明見 阿裡雲物聯網平台 - 地域和可用區 |
傳回
2.2、iot 執行個體
事件
當iot client 連接配接到iot平台時,觸發connect事件。斷開重連時也會觸發該事件。
當連接配接斷開時,觸發'disconnect'事件。
當iot雲端下發屬性設定時,觸發props事件。
當iot雲端調用裝置service時,觸發service事件。
方法
上報屬性。
上報事件。
注冊iot事件回調函數。
當iot client 連接配接到iot平台時,觸發'connect'事件。斷開重連時也會觸發該事件。
當連接配接斷開時,觸發'disconnect'事件。三元組錯誤、三元組重複上線、服務端斷開連接配接、主動斷開連接配接、網絡發生異常等都會觸發該事件。該事件觸發時,會自動嘗試重連。
當iot雲端下發屬性設定時,觸發'props'事件。
回調函數參數有:
payload | Object | 服務端設定裝置屬性的内容 |
當iot雲端調用裝置service時,觸發'service'事件。
id | 服務标志符,詳細請參考 什麼是物的模型 | |
方法:iot.postProps(Object options)
上報裝置屬性。
Object類型,其屬性有:
方法:iot.postEvent(Object options)
上報裝置的事件。
success回調函數參數:
res | 服務端reply的消息内容 |
方法:iot.on(String event, Function callback)
監聽事件。
event | 注冊的事件名稱 | ||
callback | 監聽事件的回調函數 |
3、裝置建立與三元組擷取
登入阿裡雲IoT官網,iot.aliyun.com,點選企業物聯網平台:

進入控制台:
點選公共執行個體:
點選建立産品:
根據需要配置産品相關屬性并點選确認:
然後添加裝置:
點選前往添加:
選擇産品為上一步添加的産品,DeviceName自己命名:
裝置添加完成後,點選“檢視”即可檢視裝置三元組資訊:
裝置三元組資訊如下所示:
拿到裝置三元組之後,就可以注冊裝置到阿裡雲物聯網平台了:
- this.iot_device = iot.device({
- productKey: "xxx",
- deviceName: "xxx",
- deviceSecret: "xxx",
- region: "" // 預設是cn-shanghai
4、裝置上報屬性示例
首先需要在産品中建立相應屬性,在産品頁面點選檢視:
選擇功能定義:
點選編輯草稿:
點選添加自定義功能:
配置屬性相關資訊,點選确認:
屬性配置完成後,點選釋出上線,至此,屬性就配置完成了:
屬性建立完成後,裝置就可以将對應的屬性上報到物聯網平台了,裝置屬性上報示例代碼如下:
- // 先注冊裝置到阿裡雲物聯網平台
- // 裝置屬性上報
- postProps() {
- this.LightSwitch = this.LightSwitch == 0 ? 1 : 0;
- this.iot_device.postProps({
- payload: {
- LightSwitch: this.LightSwitch
- },
- success: function () {
- console.log('postProps success');
- fail: function () {
- console.log('postProps failed');
- }
下面将模拟開關燈,以示例阿裡雲物聯網平台收到的裝置屬性上報資料。當燈打開時,向平台上報“開”,當燈關閉時,向平台上報“關”,物聯網平台将實時顯示裝置上報的資料:
開發者技術支援
如需更多技術支援,可加入釘釘開發者群,或者關注微信公衆号
更多技術與解決方案介紹,請通路阿裡雲AIoT首頁
https://iot.aliyun.com/