30 行 Javascript 代碼搞定智能家居系統

智能家居可謂是今年物聯網的熱門領域,通過智能單品和智能音箱,人們已然把『智能』兩個字變成了生活的理所應當。搭建雲上之家除了買買買,還能 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 引擎和可視化搭建,開發者無需學習新的編程語言,即可無縫快速切入物聯網開發,也彰顯了阿里雲物聯網平臺的包容性和獨創性。

 

原文鏈接 本文爲雲棲社區原創內容,未經允許不得轉載。