何睿凡 秦將 姜炎 劉曉華



摘要:針對實時監測快遞箱運輸環境的需求,提出了一種基于STM32單片機的智能快遞箱的設計方案,實現了溫濕度監測、位置監測和手機App端查詢的功能。系統以STM32單片機為主控制器,采用DHT11溫濕度傳感器模塊和GPS定位模塊分別收集溫濕度和位置信息,通過SIM800A模塊傳輸數據至OneNET云平臺,App從OneNET平臺獲取到數據,用戶即可在手機App上實現遠程監測。測試結果顯示該系統能實現對快遞箱狀態的實時監測,具有低成本、低功耗的特點,對智能物流數據的改進具有實際應用價值。
關鍵詞:STM32;智能快遞箱;溫濕度;位置;App;實時監測
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)18-0036-03
開放科學(資源服務)標識碼(OSID):
1 引言
在高速發展的互聯網及物流運輸行業的大環境下,我國的快遞業務量急速增長,互聯網物流行業極大地便利了人們的日常生活,但同時也面臨著嚴峻的挑戰。根據國家郵政局的統計,目前,中國快遞業務量超過1000億,連續八年位居世界第一,每天服務近7億用戶[1]。但是快遞數量增長迅速的同時,快遞丟失、損壞的現象越來越常見,而快件丟失賠償低、貨物損壞索賠難,導致消費者的合法權益得不到保障,因此智能物流數據需要更加完善。本文設計的智能快遞箱實現了對快遞箱內溫濕度以及位置信息的實時監測,并在終端上顯示監測到的各數據,方便用戶實時獲取到快件的狀態并及時處理異常情況,尤其對于食品級的快件具有重要意義。
2 總體設計
本設計分為硬件和軟件兩部分,硬件部分由STM32單片機、DHT11溫濕度傳感器模塊、NEO-6M-GPS定位模塊和SIM800A模塊組成,軟件部分可分為硬件功能程序設計與軟件程序設計。本系統采用STM32單片機作為主控制器,負責所有數據的收發與執行,以串口通信的方式通過溫濕度傳感器DHT11、GPS模塊采集溫濕度及位置信息,然后通過串口發送AT指令控制SIM800A,接收到期待的應答結果后發送數據給SIM800A。SIM800A通過HTTP協議連接到OneNET平臺并將所測數據上傳到OneNET平臺。App根據設備ID向OneNET云平臺發送GET請求,將返回的數據解析處理后顯示在App詳細信息界面。系統整體框架圖如圖1所示。
3 硬件設計
智能快遞箱系統采用STM32F407單片機為主控核心,以DHT11為溫濕度傳感器模塊,以NEO-6M-GPS為定位模塊,以SIM800A為傳輸模塊。
3.1 STM32單片機
主控芯片在整個系統中承擔著最核心的任務,它像一座橋梁連接著各個模塊,負責所有數據的收發與執行,起到承上啟下的作用[2]。在本系統中,需要主控芯片對各傳感器模塊輸入的數據信息進行集中處理并與SIM800A模塊產生交互。因此,為了實現智能快遞箱系統工作的高效性和可靠性,選擇合適的主控芯片非常重要。
基于高性能,低功耗和低成本等需求,選擇STM32F407VET6單片機作為主控芯片,它基于擁有更高性能的ARM Cortex-M4處理器內核。STM32單片機內置1024K的FLASH和192K的SRAM,具有144個I/O口,1.8~3.6V電源就能支持系統長時間工作,還提供了三種低功耗模式。它擁有高速的計算能力和豐富的外設接口,便于通過連接多種傳感器來擴展其他功能,在同類產品中性能最高。利用STM32解析DHT11模塊以及GPS模塊傳來的數據信息,然后利用SIM800A模塊通過移動網絡傳輸至OneNET云平臺。
3.2 DHT11溫濕度傳感器模塊
由于快遞箱本身規模小且數量多,所以溫濕度傳感器的選擇應盡可能地滿足集約性和小型化。另外考慮到測量的精度和消耗的功率,選擇數字溫濕度傳感器DHT11作為本系統溫濕度數據的采集模塊[3]。
DHT11是一款含有已校準數字控制信號系統輸出的,專業的數字模塊采集技術和溫濕度傳感技術復合的數字溫濕度檢測傳感器,包括了一個電阻式感濕元件和一個NTC測溫元件[4-5],測量范圍為20%~90%RH和0~50℃,測濕精度可達到±5%RH,測溫精度可達到±2℃。DHT11具有體型小巧、操作簡單、穩定性高、傳輸距離長和測量精確等特點。DHT11模塊與STM32連接方式如圖2所示。
3.3 GPS定位模塊
考慮到本系統追蹤靈敏、定位精準和體積小巧的需求,選擇基于NEO-6M內核的GPS定位模塊。GPS模塊通過串口的方式與單片機進行通信,操作簡單,并且自身攜帶的SMA接口可連接有源天線,工作能力強。模塊的高靈敏度、低功耗及小巧的體積,適用于移動定位系統的應用,是GPS產品應用的最佳選擇。在本系統中,它與STM32開發板連接來監測快遞箱的實時位置,使系統實用性更強,便于攜帶[6]。GPS模塊與STM32的連接方式如圖3所示。
3.4 SIM800A傳輸模塊
SIM800A是一款兩頻GSM/GPRS模塊,工作頻率為GSM/GPRS 900/1800MHz,模塊尺寸為24*24*3mm,可滿足對空間尺寸的要求。它支持中國移動手機卡,支持TCP/UDP通信,板載高效DC降壓電路,可以將5-18V電源穩壓在3.8V左右,板載TTL電平串口,串口電平做了匹配,可以跟STM32單片機直接連接。同時,硬件具有一路復位管腳,模塊出現問題時,可以復位解決。STM32通過串口發送AT指令對SIM800A進行控制,只需進行串口數據的收發,便可低功耗實現遠程服務平臺的數據傳輸[7]。SIM800A模塊與STM32的連接方式如圖4所示。
4 軟件設計
軟件設計包含了硬件功能程序設計和軟件功能程序設計。硬件功能程序設計通過Keil MDK軟件編譯實現,選擇C語言作為編程語言,包括了溫濕度數據采集程序,位置數據采集程序和數據傳輸程序[8]。軟件功能程序設計的開發環境使用Android Studio軟件,選擇Java語言作為編程語言,包括查詢界面和詳細信息界面兩部分。
4.1 硬件功能程序設計
1)溫濕度數據采集程序
DHT11數字溫濕度傳感器采用單總線數據格式,單數據引腳端口完成輸入輸出雙向傳輸[9]。數據發送流程為:首先主機發送開始信號,即復位DHT11,拉低數據線至少18ms,再拉高數據線20~40us,然后等待DHT11的回應,響應成功時DHT11會拉低數據線保持40~50us,然后再次拉高40~80us,開始輸出數據。輸出的是未編碼的二進制數據,由5byte組成。濕度=byte4·byte3(%RH),溫度=byte2·byte1(℃)[10-11],前四個byte相加等于byte0時校驗正確。
2)位置數據采集程序
NEO-6M GPS模塊采用串口進行通信,采用NMEA-0183協議輸出GPS定位數據,采用UBX配置協議作為控制協議。在NMEA-0183協議中,GPS定位信息以ASCII碼的形式來傳遞,我們稱之為幀。程序分別解析GPGSV信息(可見衛星數)、GPGGA信息(GPS定位信息)、GPGSA信息(當前衛星信息)、GPRMC信息(推薦定位信息)和GPVTG信息(地面速度信息)[12],提取NMEA-0183信息,從而得到GPS定位的各種信息。UBX配置協議用來控制模塊,以命令的形式進行,配置GPS的更新頻率,NMEA輸出信息的格式等,保存在外部EEPROM里面。
3)數據傳輸程序
系統接通電源后,STM32發送AT指令配置SIM800A,發送“AT+CIPSTART=“TCP” “api.heclouds.com”“80”指令,返回“CONNECT OK”,即通過TCP協議與PC端成功建立連接,通過串口調試助手可監測各模塊是否正常響應。STM32通過串口向SIM800A發送數據,SIM800A通過HTTP協議接入OneNET平臺并傳輸數據,在此之前先對OneNET進行相關設置:選擇多協議接入,選擇HTTP協議,新建設備與產品,新建溫濕度及位置信息的數據流模板。程序中數據流模板的名稱需與OneNET上設置一致,格式需按照POST請求方法的協議規范,包含在OneNET平臺創建的設備名、APIkey、Host和Content-Length信息。數據上傳完成后,對應的數據流模板將增加新數據[13]。
4.2 軟件功能程序設計
App程序使用Java語言編寫,開發環境使用Android Studio軟件,軟件主要分為查詢界面和詳細信息界面兩部分,在查詢界面可通過掃描二維碼或手動輸入快遞單號的方式查詢智能快遞盒詳細信息,后臺根據輸入的快遞單號通過OneNET平臺查詢快遞盒的詳細數據,包括智能快遞盒的溫度、濕度信息以及定位信息,并將數據顯示在詳細信息界面,程序流程圖如圖5所示。
查詢界面由輸入框、掃碼按鈕以及查詢按鈕組成,如圖6所示。該部分主要實現數據的查詢,根據輸入的快遞單號在數據庫中進行查詢,若數據庫中存在該快遞單號,則根據該單號所綁定的設備ID查詢OneNET平臺的數據,若不存在,則提示該單號未綁定智能快遞盒。
詳細信息界面由當前地理位置信息、當前溫度以及當前濕度組成,該部分負責解析OneNET平臺返回的數據并顯示在當前界面,其中,地理位置信息通過調用百度地圖API所建立的地圖來顯示,溫度和濕度作為文本信息顯示在地圖下方,如圖7所示。
5 結束語
本文基于STM32單片機,采用DHT11,GPS模塊分別采集快遞箱的溫濕度和地理位置信息,采用SIM800A上傳這些數據到OneNET平臺,并設計了一款手機App獲取OneNET平臺上的數據,實現了在手機端即可實時監測快遞箱的溫濕度信息以及位置信息的功能。該系統功耗低,易操作,具有廣泛的應用價值。
參考文獻:
[1] 陳文麗.快遞物流業彰顯超大市場規模優勢[N].中國商報,2021-12-29(1).
[2] 傅良康,蘇威,吳文秀.基于STM32的室內環境遠程監測系統設計[J].科技資訊,2020,18(33):18-20.
[3] 徐鑫秀,趙士原.基于DHT11傳感器的機房溫濕度控制系統設計[J].現代信息科技,2020,4(14):57-59.
[4] 楊冬連,耿艷香,趙晶,等.智能種植箱系統的設計與實現[J].山西科技,2020,35(3):47-49,52.
[5] 王水發,范偉華.基于Arduino的智能安全窗監控系統的開發與研究[J].電子質量,2019(10):43-45.
[6] 張浩華,劉凡楊,佟佳琪.基于Arduino和OneNet云平臺的溫度與行蹤監控系統設計[J].沈陽師范大學學報(自然科學版),2020,38(6):537-542.
[7] 徐晶,聶思兵,陳陣,等.基于GPRS的遠程無線串口通訊系統設計[J].山西電子技術,2021(4):64-67
[8] 楊春麗.基于ZigBee技術的葡萄園環境監測系統[J].電腦知識與技術,2021,17(20):159-161.
[9] 林玩杰,李水峰,毛立夫,等.基于STM32智能家居控制系統的設計[J].電子設計工程,2019,27(24):176-180.
[10] 葉秀斌,潘依郎,魏經緯,等.基于NB-IoT的一種智能環衛裝置的設計與實現[J].物聯網技術,2019,9(3):97-99,101.
[11] 肖素華.基于STM32的智能家居管理系統的研究與設計[J].電腦知識與技術,2020,16(20):223-225.
[12] 寧波小遛共享信息科技有限公司.一種還車檢測的方法、系統及裝置:中國,202010470366.0[P].2020-10-16.
[13] 楊蕓.基于Arduino與OneNET的家居環境遠程監測系統設計[J].物聯網技術,2020,10(9):11-13.
【通聯編輯:梁書】