聚豐項目 > 基于微信公眾平臺的智能型環境監測系統
利用物聯網技術和微信公眾平臺進行環境監測,能夠實時獲取監測地點的溫度和濕度,實現遠程數據采集與顯示的功能。該系統不受時間和地域限制,用戶可以在任何具備網絡覆蓋的地方從關注的微信公眾號中獲取并瀏覽采集到的信息,且具有支持多手機用戶客戶端可以共享一臺服務器的優勢,用戶可以完全掌握檢測地點溫濕度的變化情況并做出恰當的反應。同時該系統將微信公眾平臺與圖靈機器人進行結合,在聯網的情況下可做到和人自如的對話。
wangerniu
分享wangerniu
團隊成員
劉成濤 助理工程師
王震 學生
本系統主要分為感知與控制層、網絡層和用戶應用層三部分。感知與控制層的主要功能是通過STM32 ARM控制板和DHT11溫濕度傳感器節點等感知設備,獲取環境監測的相應參數信息,如溫度、濕度、光照度等。然后通過無線WIFI傳感器網絡技術組成一個自治網絡,采用協同工作的方式,提取有用的信息,并通過接入設備與互聯網中的其他設備實現資源共享和交流互通。
網絡層的主要功能是將來自感知與控制層的信息傳送到互聯網中,通過學習以IPV6/IPV4為核心建立的互聯網平臺,將網絡內的信息資源整合成一個可互聯互通的大型智能網絡,為上層服務管理和大規模環境監測應用建立一個高效、可靠、可信的基礎設施平臺。通過大型的中心計算機平臺,對網絡內獲取的大量環境檢測信息進行實時的管理和控制,并為上層應用提供一個良好的用戶接口,本系統采用阿里云服務器和MYSQL數據庫作為智能網絡平臺。該平臺能夠將WIFI模塊發送來的數據利用PHP語言不斷存儲在數據庫中,以便供微信公眾平臺進行數據的調用。
用戶應用層的主要功能是集成系統底層的功能,構建起面向環境監測行業的實際應用,這里利用手機微信公眾平臺 。用戶在微信公眾平臺發送采集數據的請求指令后,服務器迅速將數據庫中當前數據發送給微信公眾號,從而保證用戶獲取最新的溫濕度數據,更好的實現了遠程實時監測、預警等功能。整個系統的具體構架圖如圖所示。
1 數據采集與控制模塊
控制模塊(MCU)采用一款常用的ARM芯片-STM32F103,它擁有豐富的外設資源且易擴展,與其他芯片相比,該款芯片性價比極高。該模塊主要實現對采集的溫濕度信息進行控制,并將數據一路通過WIFI模塊傳送到服務器,另一路通過串口在LCD屏上進行顯示。
本系統通過溫濕度傳感器DHT11采集環境參數,包括溫度和濕度。DHT11是一款復合傳感器,廠家在生產過程中已對數字信號輸出進行校準;同時為了提高該款傳感器的可靠性以及穩定性,采用特定的數字模塊采集技術和溫濕度傳感技術進行加工。該傳感器的核心器件是電阻式感濕元件以及NTC測溫元件。所有的DHT11傳感器都通過特定的濕度環境進行校準,然后以程序的形式將獲取的校準系數儲存在OTP內存中,傳感器在進行檢測信號的過程中需要對這些校準系數進行調用[10]。接口采用單線制串行進行通信,在集成系統過程中方便且快捷。此外DHT11具有體積小、功耗低、信息傳輸距離能夠大于20米等優點,使其獲得廣泛的應用。該DHT11與MCU的具體連接如圖2所示
圖2 溫濕度DHT11模塊與MCU的典型連接
2 WIFI模塊
WIFI模塊采用的是有人物聯網科技公司的USR--WIFI232-D2模塊,用于實現WIFI與串口的轉換,將不具備網絡連接功能的單片機接入互聯網,使其配置為STA模式連接到路由器上,組成一個無線網絡,從而能向服務器發送數據。其原理圖如圖3所示。WIFI模塊的TXD,RXD分別接到ARM的PA10(U1_RXD)與PA10(U1_TXD)上,完成ARM端與WIFI模塊的串口。
圖3 WIFI模塊原理圖
3 液晶顯示模塊
液晶顯示模塊原理圖如圖4所示,在硬件設計上同時支持LCD彩屏與OLED。16萬色的LCD彩屏作為顯示元件,其相對普通的數碼管顯示元件具有更豐富的顯示色彩,且可觸屏操作,嵌入方便,以實現強大的用戶交互系統的設計;同時,OLED具有功耗小、成本低等優勢。該系統采用兩種顯示方式,以適應不同用戶與不同場合。
圖4 液晶顯示模塊原理圖
1 控制部分算法
用戶MCU發送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發送響應信號,送出40bit的數據,并觸發一次信號采集,用戶可選擇讀取部分數據。從模式下,DHT11接收到開始信號觸發一次溫濕度采集,如果沒有接收到主機發送開始信號,DHT11不會主動進行溫濕度采集。
為了能夠準確獲取所關注地點的溫濕度值,本系統采用兩個溫濕度傳感器DHT11,采集的溫濕度值分別記為W1、S1以及W2、S2 ,設定溫度閾值Wth,濕度閾值為Sth,當|W1-W2|<Wth時,則通過WIFI模塊傳送到服務器的溫度數據為兩者的平均值即(W1+W2)/2 ;當|W1-W2|>Wth時,再次采集數據進行比較,若經過三次比較后,依然是上述結果,則向服務器傳送“溫度數據有誤”這一消息,提示用戶進行檢查本裝置。同理進行濕度數據的采集。
2 服務器與數據庫
本系統采集的溫濕度數據通過服務器儲存在數據庫中,因此服務器與數據庫的穩定性、方便性和廣泛實用性顯得尤為重要。通過多方論證,本系統選用MySQL數據庫和阿里云服務器進行數據傳送存儲和管理的系統。硬件WIFI模塊發送的數據以GET方法發送到阿里云服務器中,阿里云服務器通過PHP腳本語言與SQL語句進行連接來實現數據的存儲與管理,如圖5所示。
圖5 Navicat與阿里云服務器的數據庫連接
為了提高該系統的可操作性,用戶可以通過手動設置通信地址、端口以及添加信息到數據庫中,且一次設置永久保存。在每次通信時系統會自動搜索數據庫,取出溫濕度數據和遠程服務器進行通信;若服務器地址發生變化,只需修改客戶端通信數據庫中的通信參數即可。數據存取模塊實現對遠程服務器傳送來的溫濕度數據進行數據存儲、更新以及實時的查詢記錄功能。
服務器與數據庫是通過HTTP協議的GET請求方式將傳感器發送來的數據進行傳輸,采用目前較為常用的php腳本語言進行編寫代碼,部分核心代碼如圖6所示。
圖6 PHP實現數據存儲的代碼
3 服務器與微信公眾平臺
基于微信公眾平臺的智能型環境監測系統的終端是手機客戶端中的微信軟件。要使得手機微信公眾號發送的請求命令能夠被響應,需要將手機微信公眾號與服務器綁定。
將微信公眾號與服務器綁定之后,微信公眾號發送請求指令到服務器,服務器讀取數據庫中的數據發送回微信公眾號。該指令和返回消息的具體文字信息是由服務器端用PHP語言作為交互的腳本語言,對客戶端發送的指令進行解析與判斷,預先建立一個知識庫系統,用于實現對特定語句的回應,比如本系統中公眾微信號發送請求指令“溫度”,會得到回復信息當前時間的硬件設備所在地的溫度數據;公眾微信號發送請求指令“濕度”,會得到回復信息當前時間的硬件設備所在地的濕度數據。具體的阿里云服務器、微信服務器和客戶端的消息收發原理如圖7所示。
圖7 阿里服務器、微信服務器和客戶端的消息收發原理
4 微信與圖靈機器人
圖靈機器人是中文語境下智能度較高的中文語義與認知計算平臺。其以人工神經網絡為基礎,運用機器學習、知識圖譜、模式識別等技術,其擁有強大的中文語義分析及上下文解讀能力,可加速實現嵌入式系統的智能化,提高及交互體驗。
本系統通過圖靈機器人公司提供的API接口,將客戶發送的非指令性語句以HTTP協議發送的其平臺,再對其回復的信息加以篩選與處理回發給用戶端,實現語言交互功能。
1 基本信息收發
微信公眾號管理員在系統中綁定好通信接口后,才能進行基本的信息收發功能。用戶可以向應用服務發送消息或者事件,同時應用服務也可以響應該事件并返回信息給用戶。本測試模塊設計了溫度和濕度兩個指標進行測試,如圖8所示。圖9和圖10分別表示了當前時間的數據庫和LCD顯示屏所對應的溫濕度指標。
圖8 溫濕度遠程檢測結果圖
圖9 數據庫內對應的溫濕度數據
圖10 LCD顯示屏顯示的溫濕度信息
2高級消息推送
高級信息推送是指公眾號管理員通過公眾號和圖靈機器人結合管理后臺,實現多樣化的功能,比如查詢某個城市天氣、查詢飛機票、查詢快遞等功能。圖11為高級消息的推送測試結果。
圖11 高級消息推送測試結果
經以上測試結果可知,系統運行正常,能完成公眾號的基本信息收發和高級消息推送的功能。由于WIFI無線網絡傳送數據時會有延遲,從而在微信端請求指令的過程中,檢測的數據為數據庫前8-9s的數據,使得獲取的的當前信息可能與LCD顯示屏的信息會出現不同步的現象。
肉夾饃456: 能開放源碼嗎,很感興趣
回復
wangerniu: 可以,發我郵箱1341046884@qq.com
回復
ZLYdzfsy: 做的很好,特別想學一下,能開源與我嗎,可以的話給我發一份,郵箱tdliyou@163.com。謝謝
回復
Life、Shine: 1363585228@qq.com想學習以下,樓主
回復
super尚少: 不錯不錯,,我西安科技大學的,,有時間找你交流交流
回復
hjwstc9494:
感覺您這個項目做的很棒,我想學習一下,您可以發一份源碼給我嗎?
我的郵箱是:mrhan1992@hotmail.com
多謝您
回復
粟一燒:
可以發源碼學習一下碼
郵箱:l.95@qq.com
謝謝樓主
回復
lzchen: 贊,很好的應用,能發源碼學習一下嗎,謝謝1063362378@qq.com
回復
zhengjie1987: 不錯,很感興趣,希望能學習下,謝謝
回復
hello_mcu: 應用不錯,支持,學習。
回復
xy972853: 贊,很好,現在也在學習者方面,能發源碼學習一下嗎,謝謝1902145466@qq.com
回復
大愚若智78: 請給我發一份,非常感謝,學習學習。515112124@qq.com
回復
zhzh99: 學習一下,可以開個班嗎?
回復
kjiawei: 很感興趣,可以發份源碼學習嗎?嘻嘻,523090538@qq.com
回復
DCYcity: 我最近在弄ph2.5的 需要類似功能 可以發份源碼嗎 ,謝謝 527383814@qq.com
回復
DCYcity: 我最近在弄ph2.5的 需要類似功能 可以發份源碼嗎 ,謝謝 527383814@qq.com
回復
飛揚跋扈牛: 很感興趣,可以發份源碼給我嗎?18334793263@163.com
回復
guo30594: 很感興趣,可以交流一下么?amazingxm@163.com
回復
scx2006114: 你好,我非常想學習,能否開源與我?非常感謝!1350170127@ qq.com
回復
Life、Shine: 1363585228@qq.com想學習以下,樓主
回復
baymax2015: 你好,我對這個很有興趣,想試著學習一下,可以開源給我嗎?十分感謝,我的郵箱654182988@qq.com
回復
jf_1689824194.2700: 很好的項目,非常想學習一下,能開源給我嗎?luhuayiw@163.com.謝謝!
回復
寧靜致遠a: 同求源碼,謝謝 wjc_1943@163.com
回復
jopey: 樓主,我對這項目感興趣哦,可以開源給我么?1224398739@qq.com
回復
陳乃興: 還添加了圖靈機器人,蠻有趣的哈,我想用樹莓派和微信做,能分享一下源碼么?1286910460@qq.com灰常感謝
回復
1430347551: 你好,我也想求一份源碼,謝謝 ,740071911@qq.com
回復
malihui518: 很感興趣 可以把資料給我一份嗎? 544233578@qq.com
回復
handrap123: 厲害,牛人啊。學習下,謝謝,handrap@163.com
回復
動力源源動力: 能分享下嗎,特別感興趣,尤其是WIFI模塊的實現!qq郵箱1239723867@qq.com
回復
cjh5750: 真心很感興趣,可以的話麻煩發一份源碼給我,謝謝您!austchengjunhui@126.com
回復
鬼靈燃桐: 很厲害啊,有很多我都想學習了解一些,可以給我發一份源碼嗎?非常感謝!
回復
鬼靈燃桐: 很厲害啊,有很多我都想學習了解一些,可以給我發一份源碼嗎?非常感謝!1446536890@qq.com
回復
有愛無忌: 很感興趣,可以發份源碼學習嗎?1369898261@qq.com
回復
h1654155963.3562: 很感興趣,可以發份源碼學習嗎?我的郵箱863827237@qq.com
謝謝啦
回復
h1654155702.3669: 你好,做的好棒,很想學習一下,能開源一份嗎970072303@qq.com
回復
粟一燒: 可以,發我一份源碼嗎
郵箱:l.95@qq.com
謝謝樓主
回復
軍之夢: 你好!做得非常好,特別想學習一下,能發一份開源碼嗎?謝謝!1570175548@qq.com
回復
歡寶寶: 想學習一下微信那塊怎么連接 可以發源碼學習一下嗎 謝謝啦
郵箱:1602527328@qq.com
回復
zhonger: 哇!厲害,最近也在弄類似的。
可以發一份源碼供我學習一下嗎?
謝謝!
郵箱:2831213424@qq.com
回復
泯滅阿三: 有項目想找你合作,請加QQ:916386046
回復
退休的馬里奧: 覺得這個項目特別有意思,想交流下,可以開源下嗎?qq郵箱2631987631@qq.com
回復
Aaaaaaaappppp: 同求發源碼可以嘛,覺得真的很棒 412859404@qq.com
回復
郭越555: 想請教大佬這個怎么搞得,2686014036@qq.com
回復
Zero121666: 我也想學習一下,能不能也發我一份,謝謝啦!郵箱2235381012@qq.com
回復
山海皆可平: 打擾了樓主,您的作品太棒了!可以借鑒一下源碼嗎?sweetingpie@163.com
回復
山海皆可平: 麻煩樓主了,謝謝您!
回復
mollyx: 樓主大大——我也很想學習可以發給我嗎,1113549072@qq.com
回復
有點無聊333: 源碼可以發下嗎大佬1374321633@qq.com
回復
jf_36171263: 樓主大大,這個項目做的好好呀,可以分享源碼我學習一下嗎?可以的話,這是我郵箱2571905717@qq.com,謝謝啦!
回復