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

?

基于4G和微信平臺的社區(qū)垃圾回收系統(tǒng)

2017-06-23 11:48姚干孫兆沛何頂新
物聯(lián)網(wǎng)技術(shù) 2017年6期
關(guān)鍵詞:字符串串口二維碼

姚干+孫兆沛+何頂新

摘 要:為實現(xiàn)智慧社區(qū)的垃圾循環(huán)利用,培養(yǎng)居民的環(huán)保意識,文中提出了一個基于STM32微控制器的垃圾回收系統(tǒng),該系統(tǒng)具有稱重、掃描二維碼、滿溢報警以及顯示等功能。采用4G模塊USR-LTE-7S4通過HTTP協(xié)議與微信公眾平臺通信,系統(tǒng)結(jié)合網(wǎng)絡(luò)時間生成隨機字符串,并采用SHA-1安全哈希算法生成簽名,保證數(shù)據(jù)傳輸?shù)陌踩?。試驗表明,該系統(tǒng)成本低,能夠長期穩(wěn)定運行,值得應(yīng)用和推廣。

關(guān)鍵詞:垃圾回收系統(tǒng);STM32;USR-LTE-7S4;微信公眾平臺;HTTP;SHA-1

中圖分類號:TP23 文獻標(biāo)識碼:A 文章編號:2095-1302(2017)06-00-04

0 引 言

傳統(tǒng)社區(qū)大多采用垃圾桶進行垃圾回收,存在著垃圾分類難、再生資源循環(huán)利用率低、垃圾滿時得不到及時清理、人工維護成本高等諸多弊端[1]。

隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,為推動垃圾分類、改善社區(qū)環(huán)境,國內(nèi)很多社區(qū)已開始陸續(xù)嘗試?yán)腔刍厥战鉀Q方案[2]。但這些垃圾回收系統(tǒng)均存在成本高昂、功能單一以及使用場景受限等問題。為解決以上問題,本文基于4G模塊以及微信公眾平臺(以下簡稱“平臺”)設(shè)計了一套垃圾回收系統(tǒng)。用戶先使用系統(tǒng)的二維碼掃描槍對垃圾袋上的二維碼進行掃描,然后通過按鍵選擇垃圾種類,系統(tǒng)對垃圾稱重后,通過4G模塊將信息上傳到平臺,平臺返回用戶姓名和積分等信息并用液晶模塊顯示。系統(tǒng)檢測到垃圾滿時,自動向平臺報警,通知工作人員回收。該系統(tǒng)成本極低,可擴展性強,滿足了大多數(shù)社區(qū)的使用場景。

1 系統(tǒng)結(jié)構(gòu)

系統(tǒng)以STM32F103C4T6為主控芯片(以下簡稱“MCU”)。整體結(jié)構(gòu)如圖1所示,各外圍模塊的功能如下所示:

(1)稱重模塊:測量回收的垃圾重量,通過4G模塊將信息上傳到平臺。

(2)滿溢檢測模塊:檢測垃圾是否已經(jīng)堆滿,若堆滿則通過蜂鳴器提醒用戶,并通過4G模塊向平臺報警。

(3)二維碼掃描模塊:掃描垃圾袋上的二維碼,獲取用戶身份信息,并通過4G模塊上傳到平臺。

(4)顯示模塊:顯示操作提示信息、用戶相關(guān)信息以及系統(tǒng)異常信息。

(5)4G模塊:連接系統(tǒng)和平臺,將垃圾重量、種類和二維碼上傳到平臺,然后接收平臺返回的用戶信息及異常信息。

(6)電源模塊:為系統(tǒng)供電,使系統(tǒng)能夠獨立運行。

(7)其他模塊:蜂鳴器,產(chǎn)生提示音和報警音;按鍵,用來選擇垃圾種類。

2 硬件系統(tǒng)設(shè)計

2.1 稱重模塊

稱重模塊由壓力傳感器及A/D轉(zhuǎn)換芯片構(gòu)成,原理圖如圖2所示。

壓力傳感器采用JHBL懸臂式傳感器,由上下各兩片應(yīng)變片組成橋式電路,輸出電壓與受到壓力線性相關(guān)。橋式電路能有效消除共模干擾,提高靈敏度[3]。

A/D轉(zhuǎn)換芯片采用24位精度的HX711,片內(nèi)集成穩(wěn)壓電源和時鐘振蕩器,可靠性高;采用差分輸入,具有高達128增益的低噪聲放大器,采用串行通信協(xié)議,其輸出速率高達80Hz[4]。

2.2 滿溢檢測模塊

采用一對紅外發(fā)射與接收管檢測系統(tǒng)狀態(tài),具有成本低,安裝方便,抗干擾好等優(yōu)點。發(fā)射管發(fā)射紅外線,遇到垃圾被反射回來,接收管接收到時電阻發(fā)生變化,輸出電壓經(jīng)LM393比較器后輸出低電平,采用外部中斷方式檢測??赏ㄟ^電位器調(diào)節(jié)檢測范圍(3~80 cm),檢測角度為30°。

2.3 二維碼掃描模塊

雖然攝像頭成本較低,硬件電路也越來越集成化,但二維碼解碼涉及圖像處理,不僅消耗大量內(nèi)存資源,且算法復(fù)雜,運算量大。本系統(tǒng)選用的MCU的RAM為6 KB,CPU的主頻為72 MHz[5],無法實現(xiàn)穩(wěn)定、高效的解碼工作。因此選用ST2200二維碼掃描模塊,其內(nèi)部采用激光頭對二維碼進行掃描并識別,識別結(jié)果以ASCII碼通過串口發(fā)送至MCU。采用5 V電源供電,無需驅(qū)動程序,配置簡單,可進行連續(xù)的、多種二維碼的掃描。不工作時進入休眠狀態(tài),以降低功耗。

2.4 其他模塊

采用LCD12864作為顯示模塊,分辨率為128×64,內(nèi)置16點陣的漢字字庫。采用5 V供電,將PSB引腳接地,通過串行模式連接MCU。

按鍵作為輸入,連接MCU的PA4和PA5,按下輸出低電平觸發(fā)MCU外部中斷。通過MCU的PA0控制作為輸出的蜂鳴器,高電平有效。

2.5 4G模塊

為適應(yīng)多種使用環(huán)境,采用4G模塊通信。USR-LTE-7S4(以下簡稱“4G模塊”)是一款基于嵌入式Linux系統(tǒng)研發(fā)的串口轉(zhuǎn)4G透明傳輸模塊,將MCU輸入的串口數(shù)據(jù)通過4G網(wǎng)絡(luò)發(fā)送,接收返回數(shù)據(jù)解析為串口數(shù)據(jù)輸出給MCU。集成SIM卡功能,支持聯(lián)通、移動、電信4G及聯(lián)通3G和2G網(wǎng)絡(luò)。通過AT指令配置工作參數(shù),支持自定義注冊包、心跳包功能,具有4路Socket連接,支持FTP更新和自更新協(xié)議[6]。具有兩種工作模式:網(wǎng)絡(luò)透傳模式將串口數(shù)據(jù)封裝為TCP或UDP數(shù)據(jù),支持長連接和短連接;HTTPD模式則將串口數(shù)據(jù)組包為HTTP數(shù)據(jù)包發(fā)送。

考慮平臺業(yè)務(wù)的可擴展性和通信的安全性,選擇HTTPD模式;HTTP數(shù)據(jù)包相較于TCP/UDP數(shù)據(jù)包長度更大,故采用TDD-LTE網(wǎng)絡(luò),其下傳輸速率能達到下行150 Mb/s,上行速度50 Mb/s,滿足系統(tǒng)的實時性要求。

4G模塊采用5 V電源供電,串口工作電壓為3.3 V,可直接與MCU連接。外接SMA接口的全頻段吸盤天線,增益為8 dB。模塊采用LED顯示工作狀態(tài),指示燈引腳LINKA/LINKB、WORK、NET分別為網(wǎng)絡(luò)連接狀態(tài)、工作狀態(tài)和網(wǎng)絡(luò)狀態(tài)指示輸出。

模塊的連接示意圖如圖3所示。

2.6 電源模塊

本系統(tǒng)選用的所有外圍模塊均采用5 V電源供電,各模塊的工作電流見表1所列。

本系統(tǒng)采用12 V鋰電池作為電源。穩(wěn)壓電路采用TI的LM2576開關(guān)穩(wěn)壓電源,具有3 A的負(fù)載驅(qū)動能力,完全滿足系統(tǒng)運行所需電流;電壓調(diào)整率和電流調(diào)整率都很小,內(nèi)置過熱保護電路和過流保護電路,確保系統(tǒng)穩(wěn)定運行;相較于線性穩(wěn)壓源,LM2576效率更高,能提供更長的續(xù)航時間[7]。

3 軟件系統(tǒng)設(shè)計

3.1 微信公眾平臺

平臺一方面處理垃圾桶發(fā)送的HTTP請求,并返回數(shù)據(jù)給垃圾桶,另一方面向用戶提供垃圾回收的相關(guān)服務(wù),包括二維碼領(lǐng)取、回收消息提醒、積分管理和意見反饋等。用戶需要關(guān)注公眾號,綁定手機并完善相關(guān)信息。根據(jù)用戶角色的不同,系統(tǒng)分配了不同的權(quán)限,普通用戶只能接收回收消息提醒,而管理員則可查看垃圾回收的詳細(xì)信息,處理垃圾桶滿溢報警等。平臺接受垃圾桶發(fā)送的HTTP請求字段見表2所列。

平臺返回給垃圾桶的數(shù)據(jù)格式如下,其中<>內(nèi)的內(nèi)容為必填,[]中的內(nèi)容為可選,以逗號作為分隔符,即

<返回碼>,<返回信息>,[用戶姓名],[返還金額]

主要有以下5種返回數(shù)據(jù):

(1)0,成功,張三,0.5元:表示投放成功,用戶名為張三,返還金額為0.5元;

(2)0,成功:滿溢報警成功;

(3)-1,簽名失?。汉灻徽_;

(4)-2,簽名重復(fù):隨機字符串與之前的重復(fù);

(5)-3,用戶不存在:無該用戶信息。

3.2 系統(tǒng)軟件實現(xiàn)

軟件整體流程圖如圖4所示。

3.2.1 系統(tǒng)初始化

系統(tǒng)初始化包括液晶、蜂鳴器、紅外對管、稱重模塊、串口、外部中斷和定時器的初始化。初始化完成后,用戶按下垃圾投放按鈕,手動選擇垃圾種類,隨后進行二維碼掃描、稱重,最后將二維碼信息、垃圾種類和垃圾重量通過HTTP發(fā)送到平臺,平臺返回處理結(jié)果,并通過液晶顯示。另一方面,當(dāng)垃圾桶滿時,紅外對管輸出低電平,觸發(fā)外部中斷,此時蜂鳴器響,并將滿溢報警信息發(fā)送至平臺。

3.2.2 二維碼掃描

ST2200自動掃描二維碼,掃描結(jié)果為字符串形式,以回車符(0x0D)結(jié)尾,通過串口發(fā)送到MCU。采用USART1中斷接收,當(dāng)檢測到回車符且100 ms內(nèi)未接收到其他字符時則發(fā)送結(jié)束,并存儲二維碼信息。

3.2.3 稱重

HX711通過串行接口與MCU連接,讀取重量時,先將時鐘引腳拉低,使能AD,然后查詢數(shù)據(jù)引腳,當(dāng)其為低電平時,轉(zhuǎn)換結(jié)束。隨后控制時鐘引腳發(fā)送一個脈沖并讀取數(shù)據(jù)引腳,完成1 b的讀取,連續(xù)讀取24次后得到轉(zhuǎn)換結(jié)果。轉(zhuǎn)換結(jié)果最后通過線性變換得到真實重量。稱重時,連續(xù)讀取重量,當(dāng)相鄰幾次平均變化小于5 g時,完成稱重。

3.2.4 HTTP請求

完成一次HTTP請求的過程如圖5所示。

由于SHA1算法要求原始數(shù)據(jù)具有防沖突性,即每次發(fā)送的隨機字符串不重復(fù)。通常產(chǎn)生隨機數(shù)采用rand函數(shù),首先調(diào)用srand函數(shù)初始化隨機數(shù)種子,當(dāng)隨機數(shù)種子相同時,會導(dǎo)致rand函數(shù)產(chǎn)生的隨機數(shù)為固定序列,因而產(chǎn)生的是偽隨機數(shù)[8],無法滿足要求。為產(chǎn)生不重復(fù)的隨機字符串,采用以下方法:

(1)向平臺發(fā)送請求,獲取當(dāng)前網(wǎng)絡(luò)時間,系統(tǒng)返回時間字符串如20161220132748,取后10個字符為1220132748,記為St;

(2)采用rand函數(shù)連續(xù)產(chǎn)生6個隨機數(shù),查找隨機數(shù)對應(yīng)的ASCII字符,得到6個字符,將St與之結(jié)合得到隨機字符串。由于隨機字符串包含了當(dāng)前時間,即使rand函數(shù)具有相同的隨機數(shù)種子,也能得到不重復(fù)的隨機字符串。

3.2.5 簽名參數(shù)

簽名參數(shù)包含ticket和隨機字符串。ticket為4G模塊與平臺通信的臨時票據(jù),為避免頻繁刷新,簡化流程,采用用戶自定義的固定ticket,長度為86個字符。將ticket和隨機字符串(nonceStr)采用字典序排序,最后加上請求的URL,中間用“&”連接。

3.2.6 SHA-1

為保證通信的安全性,采用SHA-1加密算法對上述字符串加密,得到20個字節(jié)的簽名(signature)。SHA-1是一種散列算法,能將任意長度的信息映射為固定長度的唯一值,散列值和原始信息一一對應(yīng)。其加密性強,不可逆,無法通過散列結(jié)果推出原始信息[9]。

用M表示原始信息,其長度為n b,哈希值分別為H0、H1…H5,每個值為32 b。ROTLk表示左移k位。SHA-1算法流程如下:

SHA-1預(yù)處理

(1)補充消息:將M轉(zhuǎn)換為二進制,然后添加1個二進制“1”和k個二進制“0”,使得n+1+k≡448mod512,最后添加64 b的消息長度信息;

(2)消息分塊:將消息分為N個512 b的數(shù)據(jù)塊,記為M(1)、M(2)…M(N),每個數(shù)據(jù)塊可分為16個32 b的小數(shù)據(jù)塊,記為M0(i)、M1(i)...M15(i);

(3)哈希值初始化:參照SHA-1標(biāo)準(zhǔn),初始化H0、H1…H5的值,記為H0(0)、H1(0)…H5(0);

4 仿真和實驗

首先采用Http Requester代替4G模塊向平臺發(fā)送POST請求,以驗證在各種情況下平臺返回的數(shù)據(jù)是否正確,如圖6所示。測試投放塑料瓶,平臺返回數(shù)據(jù),其中包含用戶姓名、投放垃圾類型以及返還金額。

最后進行系統(tǒng)測試,分別測試滿溢報警以及投放紙質(zhì)垃圾,液晶顯示如圖7(a)所示,平臺推送消息如圖7(b)所示。

5 結(jié) 語

為推動智慧社區(qū)的垃圾分類,基于STM32設(shè)計了一套垃圾回收系統(tǒng),采用4G模塊通信,使得該系統(tǒng)可適應(yīng)不同的使用環(huán)境。采用微信公眾平臺提供服務(wù),向用戶反饋垃圾回收信息。相對于現(xiàn)有的垃圾回收系統(tǒng)成本低,適用場景廣,具有友好的人機接口和報警機制,值得應(yīng)用和推廣。

參考文獻

[1]鄧俊,徐琬瑩,周傳斌.北京市社區(qū)生活垃圾分類收集實效調(diào)查及其長效管理機制研究[J].環(huán)境科學(xué),2013, 34(1):395-400.

[2]佚名.北京:“垃圾智慧分類”進社區(qū)[J].城鄉(xiāng)建設(shè), 2016(1):38.

[3]王來志,王小平.基于電阻應(yīng)變片式傳感器的電子秤設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2014,4(2):58-60.

[4]海芯科技.HX711電子秤專用模擬/數(shù)字(A/D)轉(zhuǎn)換器芯片[R]. 2011.

[5] ST Microelectronics Corporation.STM32x4/STM32x6 Datasheet[Z].2010.

[6]濟南有人物聯(lián)網(wǎng)技術(shù)有限公司.USR-LTE-7S4 V1.0.5[Z].2016.

[7] Wang M. High Reliable MCU Power Supply Design Based on LM2576[Z].International Electronic Elements, 2004.

[8] Mccullough B D.Random Number Generation and Monte Carlo Methods[M].Random Number Generation and Monte Carlo Methods. Springer,2004:431-432.

[9] U.S. Department of Commerce. Secure Hash Standard - SHS: Federal Information Processing Standards Publication 180-4[M].CreateSpace Independent Publishing Platform, 2012.

猜你喜歡
字符串串口二維碼
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
二維碼
讓嚴(yán)肅的二維碼呆萌起來
USB接口的多串口數(shù)據(jù)并行接收方法探索
二維碼,別想一掃了之
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
一種新的基于對稱性的字符串相似性處理算法
基于并行控制的FPGA多串口拓展實現(xiàn)
依據(jù)字符串匹配的中文分詞模型研究
一種針對Java中字符串的內(nèi)存管理方案
阳江市| 南靖县| 永和县| 大余县| 津南区| 武宁县| 珲春市| 樟树市| 台东市| 大丰市| 桂阳县| 萨嘎县| 于田县| 佳木斯市| 钟山县| 咸丰县| 北流市| 雷波县| 社旗县| 敦化市| 乌什县| 兴仁县| 舒城县| 布尔津县| 于田县| 长丰县| 靖边县| 金门县| 张北县| 湘潭县| 卢龙县| 东至县| 年辖:市辖区| 夏邑县| 博白县| 宜良县| 赫章县| 三穗县| 柳州市| 乌兰浩特市| 南澳县|