30 行 Javascript 程式碼搞定智慧家居系統
本文首發於『阿里雲 IoT 開發者社群』,更多精彩物聯網內容歡迎前往瀏覽。
智慧家居可謂是今年物聯網的熱門領域,通過智慧單品和智慧音箱,人們已然把『智慧』兩個字變成了生活的理所應當。搭建雲上之家除了買買買,還能 DIY。依託阿里雲物聯網平臺,我們用 30 行程式碼來搞定一套智慧家居解決方案。
常見的智慧家居解決方案包括了裝置端、上雲、應用端三大部分,更廣的還涉及大資料及人工智慧。傳統的物聯網開發非常強調流程性,即裝置端、雲、應用端三個步驟需要依次進行。而今天,依託於阿里雲物聯網平臺的『物模型』基礎,物聯網開發的兩端可以齊頭並進,節省大量的人力物力成本。
齊頭並進顯然很誘人,但是能否再更進一步,一人 Handle 全部開發呢?答案是 YES!
目前,有大量網際網路開發者由於缺乏嵌入式開發能力,如C/C++語言基礎,止步於物聯網藍海的大門。通過阿里雲 IoT 提供的 TinyEngine 引擎,可以快速使用 Javascript 進行裝置端開發,完美解決這部分開發者的心頭大患。而針對不熟悉前後端開發的嵌入式開發者,阿里雲物聯網平臺一樣提供了『視覺化搭建應用』等快速上手的功能,零程式碼實現應用開發,大大減輕學習負擔。
下面我們就使用阿里雲物聯網開發平臺的 TinyEngine
引擎和視覺化搭建功能,30 行程式碼快速開發一個由燈和溫溼度計組成的智慧家居系統。
一、開通服務
首先,申請阿里雲賬號,並開通登陸 Link Develop 一站式開發平臺:https://linkdevelop.aliyun.com。
之後,新建專案(專案名任意)—— 裝置開發 —— 新增產品 —— 所屬分類按需選擇『燈』或『溫溼度計』,通訊方式選擇 WiFi ,資料格式選擇Alink —— 完成。
完成後選擇『裝置開發』標籤頁 —— 新增除錯裝置,記錄下裝置三元組。
二、裝置開發
開啟嵌入式 Javascript 線上工作臺(沒錯,開發環境都不用搭建),建立新專案。替換 index.js
程式碼:
1. 燈
var deviceShadow = require('deviceShadow'); var ledHandle = GPIO.open("led1"); deviceShadow.bindDevID({ productKey: "", deviceName: "", deviceSecret: "" }); function main(err){ if(err){ console.log("連線平臺失敗"); }else{ console.log("主程式開始"); deviceShadow.addDevSetPropertyNotify("LightSwitch", function (lightStatus) { GPIO.write(ledHandle, 1-lightStatus); }); var mainLoop = setInterval(function () { var ledStatus = GPIO.read(ledHandle); deviceShadow.postProperty("LightSwitch", 1-ledStatus); }, 2000); } } deviceShadow.start(main);
2. 溫溼度計
var deviceShadow = require('deviceShadow');
var shtc1 = require('shtc1');
var handle = new shtc1('shtc1');
var ledHandle = GPIO.open("led");
deviceShadow.bindDevID({
productKey: "a17vi82MmxP",
deviceName: "0001",
deviceSecret: "tYUngSMqYeDxODgtX3DNKkQ7920I3t4T"
});
function main(err) {
if (err) {
console.log("連線平臺失敗");
} else {
console.log("主程式開始");
var mainLoop = setInterval(function () {
var val = handle.getTempHumi();
console.log('shtc1:temp=' + val[0] + ' humi:' + val[1]);
deviceShadow.postProperty("CurrentTemperature", val[0]);
deviceShadow.postProperty("RelativeHumidity", val[1]);
}, 2000);
}
}
deviceShadow.start(main);
將裝置連線至電腦,點選『連線』並『執行』,裝置啟動後會自動載入並執行index.js
這個檔案,同時上報資料至阿里雲物聯網平臺。
三、應用開發
既然是系統,沒有應用可不行,我們利用視覺化搭建功能 0 程式碼快速完成一個應用,只需依次拖入儀表盤和開關元件,替換圖片,繫結裝置即可完成全部操作。
齊活,短短 30 行程式碼搭建出的端到端智慧家居系統就完成了,儲存釋出後就可以分享給他人訪問了。
配合的 TinyEngine 引擎和視覺化搭建,開發者無需學習新的程式語言,即可無縫快速切入物聯網開發,也彰顯了阿里雲物聯網平臺的包容性和獨創性。各位開發者,趕緊丟掉猶豫,上手試試吧!https://linkdevelop.aliyun.com