国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于云服務(wù)器與微信平臺的水表系統(tǒng)設(shè)計

2018-10-15 06:08:24,
關(guān)鍵詞:水表二維碼客戶端

(南京理工大學 機械工程學院,南京 210094)

引 言

目前醫(yī)院使用的大多是IC卡水表(熱水),需要用水必須要有IC卡。顯然這種用水方式并不適宜流動性極大的病人及其家屬們,而且辦卡手續(xù)繁瑣,充值麻煩。近年來微信支付逐漸成為流行的支付手段,無現(xiàn)金支付極大便利了人們的生活,也使IC卡水表被替代成為可能。本文基于此種情況設(shè)計了一種可以使用微信支付的水表,用戶只需關(guān)注公眾號并注冊充值,使用手機微信掃描水表上的二維碼,即可用水。

1 系統(tǒng)總體方案設(shè)計

微信水表系統(tǒng)的整體結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)總體框圖

該系統(tǒng)分為兩個部分:水表控制終端以及搭建在微信平臺和騰訊云服務(wù)器上的服務(wù)系統(tǒng)。水表控制終端主要功能是通過以太網(wǎng)絡(luò)與云服務(wù)器連接并進行數(shù)據(jù)傳輸,根據(jù)云端傳來的信息完成相應(yīng)的操作,并在用水結(jié)束后將用戶的使用信息及時反饋給云端。云服務(wù)器接收終端數(shù)據(jù)并存儲,借助微信公眾平臺與手機端微信實現(xiàn)信息交互。用戶利用手機微信掃描水表終端的二維碼,云服務(wù)器解析掃碼信息后通知對應(yīng)設(shè)備開閥放水。

2 水表終端的軟硬件設(shè)計

水表終端由主控芯片、閥門控制電路、LCD顯示電路、水溫測量電路、網(wǎng)絡(luò)通信電路5部分構(gòu)成。

2.1 主控芯片的選擇

考慮到功耗以及性能問題,水表終端選用TI公司研發(fā)的芯片MSP430F149。該芯片是一種采用低功耗技術(shù)的混合信號處理器,其內(nèi)配置有大量的外圍模塊且支持JTAG,調(diào)試方便,易于開發(fā)。它具有5種低功耗模式,工作狀態(tài)下電流也僅為250 μA/MIPS[1],且具有快速喚醒的功能,僅需6 μs就可以將它從待機狀態(tài)轉(zhuǎn)換為工作狀態(tài)[1]。利用該特性,水表終端在非使用狀態(tài)時,將芯片切換到低功耗模式能夠降低整個系統(tǒng)的耗能。

2.2 閥門控制電路

圖2 閥門控制電路

圖2是閥門控制電路圖。該電路由復合晶體管陣列ULN2003、繼電器和電磁閥構(gòu)成。因為MSP430F149引腳的輸出電流最大為6 mA,而要使繼電器能夠工作,電流至少要達到50 mA,所以在其中加上了ULN2003芯片,ULN2003是一個七通道非門電路,其驅(qū)動電流最大可達500 mA,能夠滿足驅(qū)動要求。當P5.5引腳輸出為低電平時,ULN2003輸出高電平驅(qū)動繼電器開始工作,繼電器線圈通電吸引開關(guān)閉合,電磁閥打開,水管出水。用戶接完水按下關(guān)閉按鈕,引腳P5.5變?yōu)楦唠娖?,繼電器斷電,電磁閥線圈也斷電,電磁閥閥門關(guān)閉,水就會停止流出。

2.3 網(wǎng)絡(luò)通信電路

要完成與云服務(wù)器的通信,必須要使水表能夠接入網(wǎng)絡(luò),因此本設(shè)備選用了W5500以太網(wǎng)模塊。W5500芯片整合了物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層,并在內(nèi)部利用硬件實現(xiàn)了TCP/IP協(xié)議棧,是一款全硬件TCP/IP嵌入式以太網(wǎng)控制器。它只需要對Socket進行編程就能夠?qū)崿F(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸,而不需要像傳統(tǒng)的以太網(wǎng)芯片一樣還需要在微控制器內(nèi)嵌入TCP/IP 協(xié)議,這可以大幅降低系統(tǒng)開發(fā)時間。W5500與主芯片通過SPI接口連接,連接情況如圖3所示。

圖3 網(wǎng)絡(luò)模塊電路

W5500支持TCP、UDP、ARP等協(xié)議,基于穩(wěn)定性考慮,本設(shè)計采用TCP方式通信。水表終端處于客戶端模式,在初始化過程中,除了要配置自身的網(wǎng)關(guān)、子網(wǎng)掩碼,物理地址和IP地址,還需要設(shè)置服務(wù)器的IP地址。

2.4 其他電路

圖4 溫度測量電路

水溫測量模塊本文選用的是高溫型DS18B20防水型數(shù)字溫度傳感器水溫探頭,其感溫范圍為-55~125 ℃,單總線接口,3~5 V電壓供電,精度高,抗干擾能力強。連接電路如圖4所示。在水表進入工作模式后,CPU每分鐘都會讀一次溫度數(shù)據(jù)并顯示。水表的顯示模塊選用的是LCD12864,在此不再贅述。

2.5 水表終端軟件設(shè)計

水表終端的控制流程如圖5所示,當系統(tǒng)上電并初始化完成后,系統(tǒng)進入低功耗狀態(tài),直到按鍵中斷將其喚醒。

圖5 終端軟件流程圖

進入工作模式后,終端向云服務(wù)器發(fā)送連接請求,與云服務(wù)器經(jīng)過三次握手后建立穩(wěn)定連接[2]。用戶利用手機微信掃描終端的二維碼,服務(wù)器解析二維碼中蘊含的設(shè)備號后,通知對應(yīng)設(shè)備開啟。云服務(wù)器能夠同時接入的終端數(shù)目有限,因此在用戶用水完成后,水表會主動斷開與服務(wù)器的連接,從而減輕服務(wù)器的負擔,同時水表也進入休眠模式,降低功耗。

3 服務(wù)器端的軟件設(shè)計

考慮到要與微信平臺對接,本系統(tǒng)選用的是騰訊云服務(wù)器。服務(wù)器上主要實現(xiàn)兩個功能,一是與水表終端連接,從而實現(xiàn)對終端的控制以及數(shù)據(jù)傳輸功能,二是與微信平臺對接,從而使用戶可以利用手機微信打開設(shè)備、查閱信息以及繳費等。

3.1 服務(wù)器與終端的通信

云服務(wù)器與終端利用TCP方式通信,兩者之間的連接由終端主動發(fā)起,因此服務(wù)器創(chuàng)建serversocket之后需要先調(diào)用accept函數(shù)監(jiān)聽指定端口。因為服務(wù)器要與不止一個終端相連,而服務(wù)端對客戶端連接請求的處理是同步進行的,也就是說如果服務(wù)器端已與某個客戶端建立連接,即使監(jiān)聽到來自新的客戶端的連接請求也不能立即回應(yīng),必須要先跟當前的客戶端通信完之后才能處理新的連接請求。因此服務(wù)器程序設(shè)置為在主線程循環(huán)監(jiān)聽客戶端的連接,每接收到一個Socket請求就新建一個工作線程來處理它,如此便能流暢地與多個客戶端連接[3]。工作線程流程如圖6所示,其中deviceID是全局變量,默認值為0。用戶掃碼之后,二維碼中的設(shè)備號被解析后發(fā)給云服務(wù)器,將此值賦給deviceID。

圖6 工作線程流程圖

3.2 云服務(wù)器與微信平臺的連接

云服務(wù)器能夠與微信平臺進行數(shù)據(jù)交互,除了需要微信公眾號處于開發(fā)模式外,還必須要保證云服務(wù)器上的應(yīng)用程序與微信平臺的接口相連,確保云服務(wù)器收到的請求來自微信平臺,因此服務(wù)器上需要添加請求校驗程序,其校驗流程如下:

① 接收到校驗請求后,提取signature、nonce、timestamp以及echostr四個參數(shù)。

② 將token、nonce、timestamp三個參數(shù)按字典序排序并拼接成字符串。

③ 對字符串進行sha1加密,與signature比對,如果兩者相等,則表明所用的服務(wù)器與微信服務(wù)器成功對接,此時返回參數(shù)echostr;如果不相等,則表明對接失敗,檢查配置程序并修改后重新嘗試對接。

云平臺和微信平臺成功連接后,用戶就可以在手機微信端完成充值、查詢用水記錄等操作。

手機端與云服務(wù)器之間的信息交互實際上是以微信平臺作為中轉(zhuǎn)站的。三者之間的通信流程描述如下:

① 用戶利用微信客戶端做出某種操作(比如掃碼),該操作的信息首先會被微信平臺接收到[4]。

② 微信平臺收到消息后,將此消息通過HTTP POST方式傳到騰訊云服務(wù)器(本系統(tǒng)使用的云服務(wù)器)[4]。

③ 云服務(wù)器收到消息后進行處理,然后將結(jié)果返回給微信平臺。

④ 微信平臺將處理結(jié)果發(fā)送給手機微信客戶端。

3.3 微信二維碼生成

每臺水表終端都有唯一的設(shè)備號,基于此服務(wù)器才能準確找到對應(yīng)的設(shè)備。因此如何將這個設(shè)備號傳遞給云服務(wù)器,讓云端知道該通知哪臺水表開閥放水是個重要問題。本系統(tǒng)采用二維碼來區(qū)分不同設(shè)備。

二維碼通過黑白相間的圖案來記錄信息,近年來,其作為一種優(yōu)秀的信息存儲手段,已經(jīng)被廣泛使用。因為本系統(tǒng)使用的是微信服務(wù),而且其公眾號開發(fā)模式可以提供生成帶參數(shù)二維碼的接口,所以本系統(tǒng)選用的是微信二維碼。

用戶使用手機微信掃描水表上的二維碼,解析出設(shè)備號之后發(fā)送到云端,從而完成對應(yīng)設(shè)備的開啟。

4 系統(tǒng)測試

在實際測試中,掃描水表二維碼后,水表閥門順利打開,手機微信端的返回信息正確,如圖7所示。點擊微信公眾號上的“消費記錄“可看到自己的賬戶余額和花費,如圖8所示。微信水表系統(tǒng)預期的功能基本實現(xiàn),通信正常。

圖7 測試結(jié)果一

圖8 測試結(jié)果二

結(jié) 語

猜你喜歡
水表二維碼客戶端
可以吃的二維碼
二維碼
童話世界(2020年32期)2020-12-18 18:15:41
水表普查與水表掛接子系統(tǒng)建設(shè)
水表檢定裝置不確定度分析計算的相關(guān)思考
防凍水表
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
讓嚴肅的二維碼呆萌起來
學生天地(2017年10期)2017-05-17 05:50:46
二維碼,別想一掃了之
台山市| 海盐县| 高安市| 金溪县| 东城区| 陇西县| 奉新县| 平南县| 洪洞县| 新郑市| 宜兰市| 衡水市| 霞浦县| 福鼎市| 无为县| 海宁市| 庆元县| 措美县| 永靖县| 富顺县| 石门县| 东乌珠穆沁旗| 贺州市| 上饶市| 巴彦淖尔市| 土默特右旗| 石狮市| 鄂托克前旗| 台湾省| 江口县| 滨州市| 榆林市| 始兴县| 高邑县| 武夷山市| 佛教| 繁昌县| 鹤壁市| 广州市| 灵宝市| 怀宁县|