1. 程式人生 > >30 行 Javascript 程式碼搞定智慧家居系統

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