當(dāng)前位置:首頁(yè) >  IDC >  云計(jì)算 >  正文

智匯華云:2019前端戰(zhàn)略規(guī)劃之物聯(lián)網(wǎng)IOT

 2019-04-04 11:00  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

物聯(lián)網(wǎng)通過(guò)智能感知、識(shí)別技術(shù)與普適計(jì)算等通信感知技術(shù),廣泛應(yīng)用于網(wǎng)絡(luò)的融合中,也因此被稱為繼計(jì)算機(jī)、互聯(lián)網(wǎng)之后世界信息產(chǎn)業(yè)發(fā)展的第三次浪潮。華云數(shù)據(jù)“智匯華云”專欄將為您奉上“2019前端戰(zhàn)略規(guī)劃”系列文章,本期將為您講解2019前端戰(zhàn)略規(guī)劃之物聯(lián)網(wǎng)IOT。

基礎(chǔ):物聯(lián)網(wǎng)的三個(gè)層級(jí)

開(kāi)始之前, 先讓我們簡(jiǎn)單地介紹點(diǎn)物聯(lián)網(wǎng)的基礎(chǔ)知識(shí)。如果你有點(diǎn)Web開(kāi)發(fā)經(jīng)驗(yàn)的話,都知道下圖是CS架構(gòu):

相比于一個(gè)物聯(lián)網(wǎng)系統(tǒng),無(wú)非就是多了一層硬件層以及可選的協(xié)調(diào)層。

這個(gè)硬件層決定了物聯(lián)網(wǎng)應(yīng)用比Web應(yīng)用更加復(fù)雜。對(duì)于大部分的Web應(yīng)用來(lái)說(shuō) ,客戶端都是手機(jī)、電腦、平板這些設(shè)備,都有著強(qiáng)大的處理能力,不需要考慮一些額外的因素。

對(duì)于物聯(lián)網(wǎng)應(yīng)用來(lái)說(shuō),我們需要考慮設(shè)備上的MCU的處理能力,根據(jù)其處理能力和使用環(huán)境使用不同的通信協(xié)議,如我們?cè)谝恍┰O(shè)備上需要使用CoAP協(xié)議。在一些設(shè)備上不具備網(wǎng)絡(luò)功能,需要考慮借助于可以聯(lián)網(wǎng)的協(xié)助層,并且還需要使用一些短距離的無(wú)線傳輸協(xié)議,如低功耗藍(lán)牙、紅外、Zigbee等等。

JavaScript在物聯(lián)網(wǎng)領(lǐng)域的發(fā)展

兩年前,NodeJS已經(jīng)有了實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用的可能性。當(dāng)時(shí),已經(jīng)有了物聯(lián)網(wǎng)協(xié)議MQTT和CoAP協(xié)議的庫(kù),由于當(dāng)時(shí)缺乏一些大型應(yīng)用的開(kāi)發(fā)經(jīng)典,所以做得并不是很好,但是已經(jīng)可以看到JavaScript在這方面的遠(yuǎn)景。

一年多以前,Ionic還沒(méi)推出正式版的時(shí)候,但是這個(gè)框架真的很棒——它自帶了一系列的UI,還用NgCordova集成了Cordova的一系列插件。使用這個(gè)框架進(jìn)行物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā),還需要一些原生的插件,如BLE、MQTT。

后來(lái)我們不再需要編譯Node.js,就可以在ARM處理器上運(yùn)行Node.js。并且我們已經(jīng)有Tessel、Espruino、Kinoma Create、Ruff這些可以直接運(yùn)行JavaScript的開(kāi)發(fā)板。三星還推出iot.js,可以讓更多的嵌入式設(shè)備可以使用JavaScript語(yǔ)言作為開(kāi)發(fā)語(yǔ)言。

人們開(kāi)始在硬件上使用JavaScript的原因有很多,如Web的開(kāi)發(fā)人員是最多的、JavaScript很容易上手。

現(xiàn)在,這次我們?cè)谶@三個(gè)層級(jí)上都可以使用JavaScript,只需要一種語(yǔ)言。

使用一種語(yǔ)言開(kāi)發(fā)物聯(lián)網(wǎng)應(yīng)用:JavaScript

使用Node.js + Node-CoAP + MQTT.js + MongoDB + Express搭建了一個(gè)支持多協(xié)議的物聯(lián)網(wǎng):

不過(guò),上圖是完善版的物聯(lián)網(wǎng),代碼自然是在GitHub上啦:Lan。作為服務(wù)端來(lái)說(shuō),Node.js的能力已經(jīng)是經(jīng)過(guò)驗(yàn)證的。而在混合應(yīng)用上,仍然也可以經(jīng)受住考驗(yàn),混合應(yīng)用在手機(jī)上做個(gè)圖表是輕輕松松的事(只需要獲取數(shù)據(jù),然后顯示)。

Demo

樹(shù)莓派上是通過(guò)串口接收pm2.5傳感器數(shù)據(jù),通過(guò)IO來(lái)控制蜂鳴器和電機(jī),通過(guò)MQTT與云服務(wù)器交互依賴。依賴wiring-pi、serialpor和MQTT這幾個(gè)庫(kù)。

const COM = require(‘serialport’);

const port = new COM(‘/dev/ttyAMAO’, { baudRate: 9600 });

port.on(‘data’, function(data) {

dataHandler(data);

}

這個(gè)代碼非常簡(jiǎn)單,只要把串口的庫(kù)拿進(jìn)來(lái)和串口綁定,波特率兩邊匹配一致就行。然后port會(huì)有一個(gè)事件,有數(shù)據(jù)進(jìn)來(lái)的時(shí)候進(jìn)行數(shù)據(jù)處理。并且要考慮數(shù)據(jù)丟失的問(wèn)題,現(xiàn)實(shí)中這個(gè)問(wèn)題時(shí)有發(fā)生,可能做硬件的人深有體會(huì)。

const wpi = require(‘wiring-pi’)

const BUZZER = 7;

wpi.setup(‘wpi’)

wpi.pinMode(BUZZER, wpi.OUTPUT);

wpi.digitalWrite(BUZZER, wpi.HIGH);

wpi.digitalWrite(BUZZER, wpi.LOW);

wpi.digitalRead(BUZZER);

上面的代碼通常是硬件開(kāi)發(fā)者寫(xiě)代碼的方式。先設(shè)置工作模式,然后進(jìn)行數(shù)字的寫(xiě)入和讀取。用js來(lái)寫(xiě)設(shè)備端的代碼還是需要懂一些硬件,否則效率不會(huì)高。

const mqtt = require(‘mqtt’)

const client = mqtt.connect(‘mqtt://’);

client.subscibe(‘/car’);

client.on(‘message’, function(topic, message){

if(topic === ’/car’) {

MessageHandler(message.toString());

}

});

MQTT的部分只要把包引進(jìn)來(lái),把MQTT的代理地址和ip port之后,要知道小車(chē)的控制指令,只需注冊(cè)一下所有和小車(chē)相關(guān)的事件,如果有人發(fā)了指令給代理,代理就會(huì)自動(dòng)轉(zhuǎn)發(fā)給你。

云服務(wù)器用的是ECS,多了一個(gè)公網(wǎng)IP更加方便。數(shù)據(jù)傳輸有MQTT。數(shù)據(jù)存儲(chǔ)可以根據(jù)數(shù)據(jù)的類(lèi)型選擇不同的數(shù)據(jù)庫(kù),比如mysql、mongoDB和redis。前端展現(xiàn)是express。主要依賴mosca、mysql、mongo、redis和express,根據(jù)不同類(lèi)型選擇不同的數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。

Tip

要做一個(gè)硬件產(chǎn)品,如果這是一個(gè)合格的產(chǎn)品,需要的周期很長(zhǎng)。首先要去市場(chǎng)上選型,之后的采購(gòu)周期要根據(jù)訂貨量大小決定。傳感器的供應(yīng)商并不多,要做比較的話需要采購(gòu)過(guò)來(lái)并花費(fèi)很多時(shí)間進(jìn)行驗(yàn)證測(cè)試,這個(gè)過(guò)程會(huì)很長(zhǎng)。產(chǎn)品完成后還要評(píng)測(cè)認(rèn)證檢測(cè),反反復(fù)復(fù)又需要很久。整個(gè)過(guò)程就導(dǎo)致硬件的開(kāi)發(fā)周期很長(zhǎng)。

MagicLight是一個(gè)在亞馬遜上銷(xiāo)量很好的,用wifi控制的燈。但是我覺(jué)得這個(gè)燈有一個(gè)缺點(diǎn),就是只能通過(guò)手機(jī)控制,無(wú)法使用墻面開(kāi)關(guān)控制,這是用戶體驗(yàn)的一個(gè)很大問(wèn)題。如果要做到開(kāi)關(guān)和手機(jī)都能控制,就要做一個(gè)聯(lián)動(dòng)。

于是有人做了一個(gè)開(kāi)關(guān),可以用手機(jī)控制同時(shí)也能保持物理結(jié)構(gòu)。但還要保持wifi部分工作的話,就需要有電流通過(guò),要有一個(gè)回路。就是在燈即使關(guān)閉的時(shí)候仍然有電流可通過(guò),wifi的控制電路才能通過(guò),這就是單火線開(kāi)關(guān)的問(wèn)題,目前還無(wú)法解決。

做物聯(lián)網(wǎng)應(yīng)用還有很重要的一點(diǎn)就是要滿足用戶的需求,無(wú)論是解決體驗(yàn)問(wèn)題還是帶來(lái)一些收益,解決行業(yè)內(nèi)的痛點(diǎn)才是有意義的。

關(guān)于華云數(shù)據(jù):

華云數(shù)據(jù)集團(tuán)專注于為客戶提供 “自主、安全、可控”的云計(jì)算服務(wù),以幫助用戶采用云計(jì)算提升IT能力,實(shí)現(xiàn)業(yè)務(wù)變革。華云數(shù)據(jù)主要面向企業(yè)級(jí)用戶提供定制化私有云、混合云解決方案,同時(shí)還可以提供大數(shù)據(jù)服務(wù)、超融合產(chǎn)品、公有云、IDC轉(zhuǎn)云等服務(wù)。自2010年成立以來(lái),華云數(shù)據(jù)不斷深入了解企業(yè)用戶需求和行業(yè)特性,是一家追求卓越的云計(jì)算服務(wù)提供商。

成立八年來(lái),華云數(shù)據(jù)堅(jiān)持自主研發(fā),獲得了512項(xiàng)知識(shí)產(chǎn)權(quán),在私有云、混合云、公有云和超融合領(lǐng)域均通過(guò)了相關(guān)可信云認(rèn)證,獲得了軟件能力成熟度模型集成CMMI5證書(shū),是國(guó)家課題承接單位、中國(guó)十大云計(jì)算解決方案提供商。2016年起,華云數(shù)據(jù)集團(tuán)連續(xù)三年被評(píng)為中國(guó)獨(dú)角獸企業(yè); 2018年5月,進(jìn)入 “中國(guó)大數(shù)據(jù)獨(dú)角獸企業(yè)TOP20榜”, 2018年7月,榮膺“2018中國(guó)互聯(lián)網(wǎng)百?gòu)?qiáng)企業(yè)”稱號(hào),2018年8月,入圍“中國(guó)大數(shù)據(jù)企業(yè)50強(qiáng)”。2018年11月,權(quán)威咨詢機(jī)構(gòu)發(fā)布《2018年私有云市場(chǎng)各品牌競(jìng)爭(zhēng)力分析》,華云數(shù)據(jù)躍入領(lǐng)導(dǎo)者象限,成為中國(guó)私有云廠商前三甲。2019年3月,華云數(shù)據(jù)宣布對(duì)國(guó)際領(lǐng)先超融合軟件廠商Maxta, Inc.全部資產(chǎn)完成了合法合規(guī)收購(gòu)。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門(mén)排行

信息推薦