通過web網(wǎng)頁遠(yuǎn)程控制智能硬件LED燈(自己搭建服務(wù)器)盘榨,IOT物聯(lián)網(wǎng)開發(fā)實(shí)例(2)

啰嗦一下

上一篇中提到硬件通過http——GET的方法不停地訪問服務(wù)器,來實(shí)現(xiàn)實(shí)時(shí)控制蟆融,但是這種辦法會造成浪費(fèi)服務(wù)器資源草巡,如果并發(fā)多的話那就服務(wù)器就會廢掉了。

為了實(shí)現(xiàn)不用多次訪問服務(wù)器型酥,浪費(fèi)資源山憨,所以自己也找了不同方法,結(jié)果發(fā)現(xiàn)可以使用兩種方式(這兩種方式在nodemcu的固件里面都有相關(guān)的API弥喉,開發(fā)起來簡單):一種是websocket郁竟,另外是一種MQTT。自己也試過了兩種方式由境,結(jié)果發(fā)現(xiàn)還是MQTT比較好用棚亩,感覺也比較簡單。

使用MQTT協(xié)議對于新手的我來說是一個(gè)iot物聯(lián)網(wǎng)實(shí)踐中的一個(gè)重要里程碑虏杰,就好像又一次發(fā)現(xiàn)了新大陸

MQTT是比較適合硬件的控制讥蟆,邏輯也很簡單。在做實(shí)踐的時(shí)候自己覺得里面有幾個(gè)關(guān)鍵字纺阔,訂閱主題瘸彤、發(fā)布主題,消息代理州弟;(如果是更詳細(xì)了解可以google一下就好了)

硬件可以訂閱主題和發(fā)布主題:訂閱主題——用于接收服務(wù)器發(fā)來的數(shù)據(jù)钧栖;發(fā)布主題——用于傳輸數(shù)據(jù)到服務(wù)器低零。同樣的服務(wù)器也一樣婆翔。

消息代理就是一個(gè)消息轉(zhuǎn)發(fā)的中介,其實(shí)是一個(gè)軟件掏婶,可以安裝在服務(wù)器中——我用的是mosquitto啃奴;它里面的怎樣實(shí)現(xiàn)消息轉(zhuǎn)發(fā)的細(xì)節(jié)自己沒有了解,只會使用(自己不是什么牛人雄妥,不懂研究個(gè)中的邏輯最蕾,只會拿來主義)依溯。

安裝mosquitto(消息代理)

安裝mosquitto,部署環(huán)境總是比較麻煩瘟则,過程中總會遇到各種大小問題黎炉,幸好有g(shù)oogle,自己搜索一大堆不同的資料醋拧,一點(diǎn)一點(diǎn)的嘗試慷嗜,最終還是搞定。

自己的環(huán)境是:window系統(tǒng)+wamp服務(wù)器丹壕,簡單的mosquitto安裝步驟(根據(jù)自己的情況總結(jié)出來的)

1)先安裝cywin庆械,openssl-light,mosquitto

2)下載動態(tài)庫文件cygcrypto-1.0.0.dll菌赖、cyggcc_s-1.dll缭乘、cygssl-1.0.0.dll、cygwin1.dll琉用、cygz.dll堕绩、libssl-1_1-x64.dll、libssl32.dll邑时、msvcr100.dll并復(fù)制到 mosquitto安裝文件夾中

3)配置好并可以在服務(wù)器中測試可以連接逛尚,需要配置mosquitto.conf文件

需要添加內(nèi)容:

listener 1883(mosquitto 端口)

listener 9001(websocket 端口)

protocol websockets (支持websocket協(xié)議)

http_dir? C:\wamp64\www(web網(wǎng)站更目錄路徑)

-----------------------------------------------------

安裝部署完成后,需要啟動mosquitto

打開cmd

進(jìn)入mosquitto目錄

輸入命令 mosquitto -c mosquitto.conf? 即可

以上mosquitto消息代理已經(jīng)安裝完成

實(shí)現(xiàn)遠(yuǎn)程控制led燈

硬件方面刁愿,使用esplorer軟件重新編寫代碼绰寞,上傳到硬件中;用mqtt方法铣口,代替之前的http-get方法滤钱。里面邏輯是:定義一個(gè)客戶端標(biāo)識,連接上mosquitto脑题,訂閱一個(gè)主題件缸,發(fā)布一個(gè)主題,接收消息叔遂,發(fā)布消息(這樣就可以和服務(wù)器進(jìn)行雙向的溝通)

服務(wù)器方面他炊,建立一個(gè)html頁面(主要使用jquery來get數(shù)據(jù)和post數(shù)據(jù)),其中首先要與mosquitto代理建立連接,其中需要引入mqttws31.js(用于與mosquitto溝通已艰,這個(gè)文件可以自行下載)痊末。你可以利用mqttws31.js來定義一個(gè)客戶端標(biāo)識,連接上mosquitto哩掺,訂閱一個(gè)主題凿叠,發(fā)布一個(gè)主題,接收消息,發(fā)布消息(與MQTT連接邏輯其實(shí)和硬件的一樣)盒件。但是注意的一點(diǎn)蹬碧,服務(wù)器端訂閱的主題其實(shí)是硬件端中發(fā)布的主題(這樣服務(wù)器就可以獲取硬件傳來的數(shù)據(jù));服務(wù)端發(fā)布的主題其實(shí)是硬件端訂閱的主題(這樣服務(wù)器就可以發(fā)布數(shù)據(jù)到硬件中)炒刁。兩個(gè)終端的主題是對應(yīng)的改览,這樣兩個(gè)終端之間數(shù)據(jù)才能互傳院刁。

待html頁面與mosquitto建立連接后蒜哀,對led控制的邏輯設(shè)計(jì)(用JavaScript即可)具體如下:用戶訪問html頁面渤涌,用戶開啟led燈,調(diào)用mqttws31.js其中的發(fā)送數(shù)據(jù)方法绽昏,將json數(shù)據(jù)發(fā)送到led燈中协屡,然后led燈解釋json數(shù)據(jù),最后修改led燈的狀態(tài)(其實(shí)html頁面的led狀態(tài)數(shù)據(jù)先發(fā)送到mosquitto全谤,然后mosquitto根據(jù)關(guān)聯(lián)的主題肤晓,最后將數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)主題的led燈中);

同時(shí)led燈也將自己的狀態(tài)發(fā)送到html頁面當(dāng)中认然,html頁面再進(jìn)行邏輯操作补憾,這樣就可以實(shí)現(xiàn)led的狀態(tài)同步和實(shí)時(shí)控制。

實(shí)現(xiàn)思路圖如下:


==================================================================

yeah卷员!簡單的遠(yuǎn)程控制led燈已經(jīng)結(jié)束盈匾,但下邊需要如何呢?既然自己都開了個(gè)頭毕骡,來削饵,做一個(gè)可以控制n個(gè)智能硬件的平臺吧~~。初步的設(shè)想:用戶可以自定義添加多個(gè)硬件(我想用掃碼添加的方式)未巫,添加用戶進(jìn)入不同的智能硬件控制頁面單獨(dú)控制硬件窿撬;智能管理后臺的搭建,框架的選定叙凡,數(shù)據(jù)庫的建立劈伴,邏輯的設(shè)計(jì)開發(fā)。握爷。跛璧。。新啼。感覺路還有很長~~追城,下一篇更精彩

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市师抄,隨后出現(xiàn)的幾起案子漓柑,更是在濱河造成了極大的恐慌,老刑警劉巖叨吮,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辆布,死亡現(xiàn)場離奇詭異,居然都是意外死亡茶鉴,警方通過查閱死者的電腦和手機(jī)锋玲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涵叮,“玉大人惭蹂,你說我怎么就攤上這事「盍福” “怎么了盾碗?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舀瓢。 經(jīng)常有香客問我廷雅,道長,這世上最難降的妖魔是什么京髓? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任航缀,我火速辦了婚禮,結(jié)果婚禮上堰怨,老公的妹妹穿的比我還像新娘芥玉。我一直安慰自己,他們只是感情好备图,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布灿巧。 她就那樣靜靜地躺著,像睡著了一般揽涮。 火紅的嫁衣襯著肌膚如雪砸烦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天绞吁,我揣著相機(jī)與錄音幢痘,去河邊找鬼。 笑死家破,一個(gè)胖子當(dāng)著我的面吹牛颜说,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汰聋,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼门粪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烹困?” 一聲冷哼從身側(cè)響起玄妈,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拟蜻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绎签,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年酝锅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诡必。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搔扁,死狀恐怖爸舒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稿蹲,我是刑警寧澤扭勉,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站苛聘,受9級特大地震影響涂炎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜焰盗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一璧尸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熬拒,春花似錦爷光、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至活烙,卻和暖如春徐裸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啸盏。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工重贺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人回懦。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓气笙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怯晕。 傳聞我的和親對象是個(gè)殘疾皇子潜圃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容