(北部灣大學 電子與信息工程學院,廣西 欽州 535000)
如今,伴隨著互聯網的快速發展,各類旅游APP如雨后春筍般涌現,旅游類APP正逐漸成為旅游業發展中不可或缺的一部分。智慧旅游是基于互聯網技術,搭載便攜的移動智能終端,以滿足游客日益增長的個性化需求,提供高滿意度服務的旅游方式。隨著智能手機的普及和互聯網的迅猛發展,旅游類APP已成為人們實現智慧旅游的重要工具[1]。
目前對于團隊旅游、自駕游等群體出行方式,會遇到許多問題,主要存在地理位置失聯、通信效率低下、車輛無法穩定行駛等,造成時間和金錢的浪費。產品不應忽視用戶體驗,需要切實解決用戶旅游過程中存在的實際問題,為特定用戶提供定制化體驗[2]。針對以上問題,提出了車聯網大家庭出行模式,多人共享各車的定位數據,降低出行成本,提高出行效率,實現多機多人多車多定位的生活體驗和服務。
本系統由車載定位終端和后臺服務器及安卓APP組成。車載定位終端由微控制器模塊、北斗GPS雙定位模塊、DHT11溫濕度檢測模塊、GSM模塊組成。車聯網體系結構主要由三大層次結構組成,按照其層次由低到高分別為采集層、網絡層和應用層[3]。系統總體框架如圖1所示。

圖1 系統總體框架
采集層:使用STM32F103微控制器作為系統主控制器,負責各傳感器數據的統一處理和分析。通過串口控制北斗GPS雙定位模塊和DHT11溫濕度傳感器模塊,進行位置信息和溫濕度信息的獲取與解析。通過串口控制GSM通信芯片,將解析后的信息無線傳遞到后臺服務器。同時LCD液晶屏實時顯示控制器狀態及通信信息,方便維護。
網絡層:后臺服務器實現采集層和應用層系統之間的數據透明傳輸,采用網絡通信技術中常用的HTTP協議,車載終端通過GSM模塊上的SIM卡GPRS無線通信技術訪問服務器并上傳車載信息到服務器,車車互聯APP用戶端請求指定端口的TCP連接訪問服務器獲取車輛定位、速度、時間、溫濕度等數據。
應用層:該層是車聯網的最高層,可以為聯網用戶提供各項服務。用戶登錄車車互聯APP,輸入車輛唯一標識碼,從后臺服務器獲取車輛實時位置等數據,并顯示在地圖上。應用層還集成了即時通信服務、百度地圖等服務,經過對數據進行相應分析處理后,可以為用戶提供多人多車共享定位、實時監控、即時通信等應用服務。
微控制器選用STM32F103VET6作為主控芯片,使用3.2寸ILI9341液晶屏交互。STM32F103VET6 是意法半導體有限公司出品的32位基于Cortex-M3內核的增強型微控制器,擁有100個引腳,80個通用I/O口,512 KB FLASH及64 KB SRAM,系統時鐘為72 MHz,具有3路12位的A/D轉換器,2路12位D/A輸出,4個通用定時器,2個高級定時器,2個基本定時器,2個SPI接口,2個I2C接口,3個USART接口和2個UART接口,片內資源和外設接口豐富[4]。
GPS導航系統為無源被動式偽碼單向測距三維導航,北斗導航系統為主動式雙向測距二維導航。GPS的定位精度高于北斗定位系統,但其使用受地形因素的影響,而北斗定位系統除具有定位功能外,還具有通信功能,可與外設進行信息交流[5]。北斗GPS雙模定位模塊BH-ATGM332D的最大定位更新率可達10 Hz,具有高性能、低功耗等特點,支持兩套系統同時在導航終端上運行,可通過串口通信向單片機系統輸出GPS及北斗定位信息。通過NMEA庫解碼獲得車載實時定位信息,借助百度API技術顯示在地圖界面,可用于車輛追蹤。
BH-ATGM332D支持TTL電平串口通信標準,STM32微控制器通過USART3接口與BH-ATGM332D模塊通信。引腳連接方式見表1所列。

表1 STM32與BH-ATGM332D引腳連接
DHT11是一種把溫度和濕度模塊融為一體的高度集成的傳感器,其性價比高、響應迅速、抗干擾能力強[6]。濕度精度為±5%RH,溫度精度為±2 ℃,量程濕度范圍為20%RH~90%RH,溫度范圍為0~50 ℃。DHT11傳感器可實時監測車內環境的溫度與濕度,輸出已校準數字信號,借助安卓APP進行車內溫濕度的監測與預警。
GSM模塊負責車載終端與后臺服務器的通信。GSM模塊使用的SIM800A無線收發芯片內置SIM卡槽,內嵌TCP/IP協議,支持Micro-SIM卡,可通過串口傳輸標準的AT命令對模塊進行控制。將GPRS無線通信技術和GPS結合,可為應用終端提供車輛行駛過程中的位置、時間、速度信息,未來還可以使用GSM語音、短信等實現車輛預警語音播報,短信通知親屬等功能。
系統開發板使用5 V USB接口電源輸入,而GSM模塊需要9 V電源,為防止燒壞開發板,GSM模塊使用外部電源供電。SIM800A支持TTL電平串口通信標準,STM32微控制器通過USART3接口控制GSM模塊。引腳的連接方式見表2所列。

表2 STM32與SIM800A引腳連接
STM32單片機程序使用Keil公司開發的Keil μVison5單片機C語言集成開發軟件編寫,該軟件自帶多種型號單片機的初始化函數庫[7],編譯生成的機器碼由DAP仿真器下載至單片機。
STM32微控制器主控制程序流程如圖2所示。連接電源,按“復位”按鈕后電路開始初始化,程序運行。首先,初始化系統模塊,包括ILI9341液晶屏初始化與系統定時器初始化。ILI9341液晶屏實時顯示模塊數據及模塊運行情況,當某個模塊出現異常時能夠及時排查、解決問題;系統定時器用于產生時基,維持單片機系統的心跳。之后,初始化溫濕度檢測模塊,微處理器和DHT11間采用單總線數據格式,一次通信時間約4 ms。接著初始化GSM模塊,與服務器建立TCP連接,若連接失敗,可考慮兩個原因:第一,GSM模塊SIM卡未充值話費;第二,服務器未監聽。最后,初始化GPS模塊。GPS模塊開始采集當前地理位置經緯度等數據信號,經相關模塊處理后,將采集到的數據通過串口傳送至單片機處理,并實時在ILI9341液晶屏顯示[8]。由主程序判別經緯度信息是否有效,無效則重新獲取,有效則將溫濕度信息和GPS信息發送給GSM通信模塊,傳輸至服務器。

圖2 主控制程序流程
為解決車載終端系統車輛標識碼的問題,用戶可以通過輸入SIM卡號獲取車輛信息,一個SIM卡號對應一臺設備。由于新購買的SIM卡與手機號碼并非一一對應,因此SIM卡只是電話號碼的存儲介質,需要事先使用USB轉串口線連接GSM模塊與上位機,運行GSM調試助手發送AT指令將本機號碼寫入電話本存儲區,STM32微控制器通過串口發送指令到GSM模塊即可獲取本機號碼。上位機與GSM模塊連接如圖3所示,相應的AT指令見表3所列。

圖3 上位機與GSM模塊連接圖

表3 配置本機號碼功能的AT指令
后臺服務器借助騰訊云服務器平臺提供信息傳輸服務,采用TCP協議的Socket機制通信,使用Eclipse作為開發環境,借助Java語言的多線程機制實現并發服務器,滿足多個用戶的并發訪問需求。GPS信息和溫濕度信息保存為JSON格式,通過GSM模塊的GPRS無線通信方式上傳到后臺服務器,由服務器對數據進行分析、加工、保存和傳輸,利用Tomcat服務提供應用程序外網訪問資源。
車車互聯APP功能設計如圖4所示,包括首頁模塊、視頻模塊、“一路同行”模塊、個人模塊。首頁模塊提供旅游愛好者社交平臺,用戶可以在論壇上交流與分享;視頻模塊展示大眾喜聞樂見的短視頻,瀏覽視頻已成為吸引用戶流量的重要手段;個人模塊主要用于用戶注冊、登錄以及管理用戶信息;“一路同行”模塊是軟件的亮點,下面著重介紹。

圖4 車車互聯APP功能架構
為了解決團隊出行遇到的困難,提高出行效率,“一路同行”模塊設計了即時通信、共享定位、共享圍欄、快捷消息、車輛監控5項功能。模塊程序流程如圖5所示。

圖5 “一路同行”流程
(1)即時通信功能借助環信即時通信云服務,允許2個或多個用戶使用網絡實時傳遞文字消息、文件、語音與視頻,解決團隊出行的交流問題。
(2)共享定位包括用戶位置共享以及車輛位置共享,使用Bmob后端云提供數據庫服務,用戶位置信息通過百度地圖API接口實時獲取并保存在云端數據庫,當2個或多個用戶互為好友時即可共享定位;車輛定位通過用戶輸入車輛唯一標識碼從后臺服務器獲取車輛定位信息,并根據百度坐標系BD0911顯示在地圖上。共享定位解決了用戶失聯、車輛追蹤的難題,提升了駕駛安全。
(3)共享圍欄用于組織者給成員劃定活動區域,成員接收組織者發來的地理圍欄可以明確自己的活動區域,防止成員越界產生安全隱患。地理圍欄有兩種類型,一種是圓形圍欄,另一種是多邊形圍欄,可以快速準確地畫出不同圖形的地理圍欄,適用于導游等群體。
(4)家庭出行時車輛、人員較多,在高速公路上常常會被車流淹沒,且車輛間很難同時溝通。為解決這一問題,在地圖頁面左下方設置有快捷消息按鈕,車主只需將手機固定在車載支架上并加入群組,并點擊按鈕彈出消息列表后,點擊消息即可快速發送給群內其他成員,用戶也可以自定義消息內容。
(5)車輛監控功能方便駕駛員隨時監測車內環境狀況,降低意外發生幾率[9]。用戶輸入車輛唯一標識碼可以從后臺服務器獲取車輛溫濕度、海拔、速度、定位等數據。軟件檢測數據后,一旦發現數值超出閾值,會立即提醒車主注意安全。
良好的APP界面設計能夠給用戶帶來舒適的使用體驗,滿足用戶在使用過程中對便利性、功能性和個性化的需求,提升軟件競爭力[10]。車車互聯APP主界面在底部導航欄中設置有不同的按鈕或者滑動ViewPager控件,通過點擊按鈕或滑動控件可切換界面。圖6所示為即時通信界面,圖7所示為地圖定位界面。

圖6 即時通信界面

圖7 地圖定位界面
硬件實物如圖8所示。實驗結果表明,車載定位終端系統能夠正常運行,各模塊均可實現其相應功能,具有實時性好、成本低、網絡連通性強、運行穩定等優點。經過市面上的不同安卓機型對APP進行模塊用例測試,發現軟件正常運行,響應速度符合要求,未出現崩潰、閃退、卡頓等現象,用戶界面友好,系統預期結果與實際結果相符。車車互聯APP適用于安卓7.0以上版本,應用軟件二維碼如圖9所示。

圖8 硬件實物

圖9 車車互聯APP二維碼
隨著車聯網架構體系的不斷成熟,汽車不再是只能加油換擋的物體,而是變得越來越智能化。本文從車聯網的角度對硬件、軟件的應用進行了研究,對智慧旅游的生活體驗和服務有一定的啟示作用。該系統解決了團隊出行位置失聯、通信效率低下等問題,還提供了多項旅游出行服務。其性能良好,實時性較高,成本較低,適合在智能化市場上推廣應用。