• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      姚干+孫兆沛+何頂新

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

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

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

      0 引 言

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

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

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

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

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

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

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

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

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

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

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

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

      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)壓電源和時(shí)鐘振蕩器,可靠性高;采用差分輸入,具有高達(dá)128增益的低噪聲放大器,采用串行通信協(xié)議,其輸出速率高達(dá)80Hz[4]。

      2.2 滿溢檢測(cè)模塊

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

      2.3 二維碼掃描模塊

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

      2.4 其他模塊

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

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

      2.5 4G模塊

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

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

      4G模塊采用5 V電源供電,串口工作電壓為3.3 V,可直接與MCU連接。外接SMA接口的全頻段吸盤(pán)天線,增益為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電源供電,各模塊的工作電流見(jiàn)表1所列。

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

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

      3.1 微信公眾平臺(tái)

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

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

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

      主要有以下5種返回?cái)?shù)據(jù):

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

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

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

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

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

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

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

      3.2.1 系統(tǒng)初始化

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

      3.2.2 二維碼掃描

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

      3.2.3 稱重

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

      3.2.4 HTTP請(qǐng)求

      完成一次HTTP請(qǐng)求的過(guò)程如圖5所示。

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

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

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

      3.2.5 簽名參數(shù)

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

      3.2.6 SHA-1

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

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

      SHA-1預(yù)處理

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

      (2)消息分塊:將消息分為N個(gè)512 b的數(shù)據(jù)塊,記為M(1)、M(2)…M(N),每個(gè)數(shù)據(jù)塊可分為16個(gè)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 仿真和實(shí)驗(yàn)

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

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

      5 結(jié) 語(yǔ)

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

      參考文獻(xiàn)

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

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

      [3]王來(lái)志,王小平.基于電阻應(yīng)變片式傳感器的電子秤設(shè)計(jì)[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]濟(jì)南有人物聯(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)肅的二維碼呆萌起來(lái)
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      二維碼,別想一掃了之
      基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
      一種新的基于對(duì)稱性的字符串相似性處理算法
      基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
      依據(jù)字符串匹配的中文分詞模型研究
      一種針對(duì)Java中字符串的內(nèi)存管理方案
      大城县| 务川| 凤翔县| 泰安市| 彰化市| 泰州市| 南丰县| 历史| 深圳市| 平潭县| 咸丰县| 宽城| 山阴县| 慈溪市| 大竹县| 吉隆县| 金门县| 盐亭县| 凌云县| 天峻县| 商南县| 牡丹江市| 张家川| 宾川县| 大宁县| 宁夏| 弥渡县| 城口县| 成安县| 新干县| 永新县| 东宁县| 吴桥县| 福鼎市| 西乌| 武强县| 太仆寺旗| 于田县| 池州市| 新泰市| 新乡县|