沈 兵,向 軍,梁會軍,蒯楓翔
(湖北民族大學 智能科學與工程學院,湖北恩施 445000)
電動自行車是人們生活中常見的代步工具,也是發(fā)展綠色經(jīng)濟,提倡綠色出行的載體[1,2]。據(jù)統(tǒng)計,我國的電動自行車用戶近3億,并以驚人的速度逐年遞增,而隨著外賣業(yè)的迅速發(fā)展,大部分騎手平均每天騎行距離達到100 km至150 km,而續(xù)航里程為50 km 左右鋰電池遠不能支撐騎手一天的工作行程[3,4]。同時,在物聯(lián)網(wǎng)的技術(shù)和共享經(jīng)濟環(huán)境下,共享電動自行車結(jié)合逐漸成熟的智能化終端技術(shù)已經(jīng)出現(xiàn)在很多城市中,并越來越受到城市居民的喜愛和認可[3]。但目前共享電動自行車大多沒有固定充電樁,如何給電瓶充電已成為共享電動自行車接續(xù)發(fā)展的阻礙之一,而如果采用人為更換電池模式,會給中后期的運維工作和人力成本投入造成較大的壓力。幾乎每家每戶都有電動自行車,為了方便地給電瓶充電,用戶各顯神通的充電方式會誘發(fā)觸電、火災(zāi)等問題[6-8]。
為此,結(jié)合“集中充電,自主換電”的思想,依托阿里云物聯(lián)網(wǎng)平臺設(shè)計了一套電瓶換電柜控制系統(tǒng),自主研發(fā)一款電瓶換電柜,能滿足電動自行車智能換電柜技術(shù)要求及檢測標準。該系統(tǒng)融合物聯(lián)網(wǎng)思維,使電瓶充電更方便、更安全、更有序。
換電柜作為電動自行車充電集成化的載體,為電瓶充電帶來了很大便捷。本設(shè)計初步設(shè)定一個換電柜擁有6 個電池充電箱,每個充電箱內(nèi)配有控制電路板對充電過程進行實時監(jiān)測、信息采集并建立通訊。1 號箱的電路板作為主控電路板與觸摸屏通過RS-232串口進行通訊,主控板與從控電路板建立RS-485通訊協(xié)議,以總線的方式進行通訊。換電柜通過ESP8266 無線通訊模塊與阿里云物聯(lián)網(wǎng)平臺按照MQTT 通信協(xié)議進行通訊[8]。用戶可通過手機上的APP 掃描觸摸屏上的二維碼驗證身份。身份驗證后發(fā)送指令給阿里云物聯(lián)網(wǎng)平臺,再由平臺發(fā)送指令給換電柜,解鎖觸摸屏跳轉(zhuǎn)至操作界面,讓用戶進行充電、取電的操作,控制系統(tǒng)整體框圖如圖1所示。
圖1 換電柜控制系統(tǒng)整體框圖
控制電路板采用STM32F103R8T6 單片機作為主控芯片。STM32F103R8T6單片機是ST旗下的一款常用的增強型系列微控制器,基于Cortex-M3?內(nèi)核,主頻高達72 MHz,20 K 的靜態(tài)存儲,64 K 字節(jié)程序存儲空間[1],具有51個Ι/O引腳和7個定時器。
集成電路板包含電源模塊、通訊模塊、繼電器控制模塊、溫度煙霧報警模塊、撥碼開關(guān)、指示燈模塊、電壓反饋模塊等多個模塊,控制電路板整體結(jié)構(gòu)如圖2 所示。據(jù)此,實現(xiàn)對每個充電箱充電過程的監(jiān)測、控制以及信息傳遞。
圖2 控制電路板結(jié)構(gòu)圖
控制電路板中不同模塊供電需求不同,例如STM32F103R8T6 芯片、通訊模塊和撥碼開關(guān)需以3.3 V 電壓供電,指示燈模塊、繼電器模塊和溫度模塊需以12 V電壓供電,煙霧模塊需以5 V電壓供電。因此,設(shè)計選擇以12 V 直流電壓源接入電源模塊,用以LM2576HVT-5.0 穩(wěn)壓器為主的降壓電路將12 V 電壓轉(zhuǎn)換成5 V 電壓,再用以ASM1117-3.3 穩(wěn)壓器為主的降壓電路將5 V 電壓轉(zhuǎn)換成3.3 V 電壓,為整個電路板和各模塊供電。
通訊模塊是電動自行車電瓶換電柜控制系統(tǒng)極為重要的模塊,是觸摸屏與主控電路板、主控電路板與其他充電箱中的控制電路板建立通訊的基礎(chǔ)。主控電路板通過串口1 與觸摸屏進行RS-232串行通訊,接受、分析來自觸摸屏的信號。若接受到的信號目標對象不是1 號充電箱,主控芯片則將信號按照充電箱控制電路板間的自定義通訊協(xié)議進行轉(zhuǎn)換,再通過主控板上的串口2 傳輸?shù)娇刂齐娐钒彘g的通訊總線上。從控制電路板也是經(jīng)由串口2接收傳遞控制信號和充電箱內(nèi)實時數(shù)據(jù)。由于控制電路板間的通訊協(xié)議和觸摸屏與主控板間的通訊協(xié)議不同,主控板中的主控芯片將分析以兩種協(xié)議傳遞的信息。串口1 的通訊電路是以MAX232CSA 收發(fā)器為核心外連九針母頭,串口2的通訊電路以MAX1487CPA為核心,通過兩線端子與RS-485總線連接。
電壓反饋模塊主要作用是測量充電過程中的電池電壓,然后經(jīng)過LM358芯片中的運算放大器處理后反饋給單片機進行分析。STM32 將設(shè)定三個閾值與接收到的電壓信號進行比較,當電壓信號小于最低閾值時,系統(tǒng)認為該充電箱內(nèi)并無電池,當電壓信號大于最高閾值時,系統(tǒng)認為該充電箱內(nèi)的電池已經(jīng)充滿,在這兩種情況下,系統(tǒng)都會斷開充電繼電器以及執(zhí)行相應(yīng)操作。只有當電壓信號大于最低閾值,小于最高閾值時,系統(tǒng)才會認為充電箱內(nèi)有需要充電的電池,而中間的閾值則是用于界定電池電量是否已經(jīng)充過80%。同時,指示燈的亮滅也是通過電壓信號與閾值的比較進行變換。
撥碼開關(guān)電路是用SW DΙP-4 撥碼按鍵構(gòu)成的簡易電路,在系統(tǒng)初始化過程中,控制芯片通過讀取相應(yīng)引腳的高低電平,識別撥碼開關(guān)提供的4 位二進制信息,以此確定本箱編號。
溫度模塊是結(jié)合DS18B20 傳感器將溫度信號傳給控制芯片。DS18B20 傳感器僅有三根連接線,分別是信號線、地線和電源線,信號線接入電路時需上拉4.7 kΩ 電阻。芯片在工作過程中定時讀取溫度信號,分別將溫度信號的整數(shù)部分和小數(shù)部分轉(zhuǎn)換成一字節(jié)的數(shù)據(jù),發(fā)送給主控芯片。
煙霧模塊以MQ-2 多種氣體傳感器為主體,檢測充電箱內(nèi)的煙霧信號后,信號經(jīng)過ADC0832芯片轉(zhuǎn)化后傳給控制電路板。由于需以5 V 電壓給MQ-2 供電,信號傳遞給芯片時應(yīng)光耦隔離,以保證芯片運行安全。
指示燈模塊、風扇控制模塊、電磁鎖模塊以及繼電器控制模塊都需要12 V 電壓供電,而STM32F103R8T6 控制芯片引腳僅接受3.3 V 信號,因此當信號輸出時都需經(jīng)光耦隔離控制各模塊的運行。
應(yīng)用Android Studio開發(fā)環(huán)境設(shè)計安卓APP,用戶可下載并使用APP 掃描觸摸屏上的二維碼驗證身份并解鎖觸摸屏。
阿里云物聯(lián)網(wǎng)平臺與APP 和ESP8266 無線通訊模塊之間的通訊協(xié)議均為MQTT,用戶可采取如圖3 的操作流程注冊賬號、身份驗證和登陸賬號。登陸賬號后,可采用掃描觸摸屏上的二維碼或在APP 上選定換電柜的編號后向阿里云物聯(lián)網(wǎng)平臺發(fā)送允許操作指令,使用換電柜。
圖3 APP操作流程圖
點擊APP 中按鈕可觸發(fā)事件將控制命令以JSON 的ALΙNK 的格式傳輸給阿里云,再由阿里云以同樣的數(shù)據(jù)格式傳遞給ESP8266 無線通訊模塊,實現(xiàn)電動自行車終端用戶與換電柜之間的通訊。
設(shè)計選用大彩科技有限公司旗下DC10768KM 150_1111_0C型號的15寸觸摸屏作為觸控屏。前期制作的人機交互界面如圖4 所示。六個區(qū)域中的“充電”、“取電”按鈕分別用來控制六個充電箱箱門的開啟。按下“充電”按鈕時,若充電箱內(nèi)無電池,對應(yīng)箱門開啟,否則界面會彈出“箱內(nèi)有電池”的提示。按下“取電”按鈕時,若對應(yīng)充電箱有電量超過80%的電池,充電箱箱門開啟,否則界面會彈出“箱內(nèi)可取電池”的提示。
每個區(qū)域有三色燈,紅燈亮時表示對應(yīng)箱內(nèi)電池電量不足80%。黃燈亮時表示對應(yīng)箱內(nèi)電池電量大于80%。綠燈亮時表示箱內(nèi)有電量充足的電池。當區(qū)域內(nèi)三色燈全部熄滅時表示對應(yīng)充電箱內(nèi)無電池。
主程序運行流程圖如圖5所示,連接電路后,給控制電路板和觸摸屏上電,各控制電路板首先初始化各引腳功能配置,通過撥碼開關(guān)引腳上的電平識別自身編號,主控電路板編號為1 號。主程序進入循環(huán)后,主控板將本充電箱的基本信息通過串口1傳給觸摸屏,通過串口2 向其他控制電路板依次發(fā)送查詢指令。收到查詢指令后,各控制電路板讀取本充電箱內(nèi)溫度、煙霧、箱門關(guān)合及電池電量信息,按自定義協(xié)議規(guī)則整合成數(shù)據(jù),通過串口2 發(fā)送到RS-485 總線上。主控電路板通過識別數(shù)據(jù)內(nèi)源地址和目的地址信息判斷數(shù)據(jù)來源,分析轉(zhuǎn)換后傳給觸摸屏顯示。當用戶通過觸摸屏按下“充電”和“取電”按鈕時,觸摸屏發(fā)送指令給主控板。主控板經(jīng)分析轉(zhuǎn)換后或打開本充電箱箱門,或通過串口2 發(fā)送各控制板。
圖5 控制電路板主程序流程圖
電瓶換電柜內(nèi)部具有兩種通訊協(xié)議,一種是DC10768KM150_1111_0C 觸摸屏默認通訊協(xié)議;大彩組態(tài)命令集。另一種是各控制電路板間自定義的一個協(xié)議,其協(xié)議結(jié)構(gòu)如圖6 所示;數(shù)據(jù)共有13位,以FF FF 為幀頭,EE 為幀尾,第三位至第七位分別記錄數(shù)據(jù)的源地址、目標地址、功能指令、充電箱箱門的狀態(tài)和箱內(nèi)電池電量的狀態(tài)。數(shù)據(jù)的第八位至第十一位記錄充電箱內(nèi)的溫度和煙霧實時數(shù)據(jù),及十二位代表充電箱內(nèi)有無電池的信息。當控制電路板收到查詢信號,控制芯片將讀取箱內(nèi)各信號整合到數(shù)據(jù)中,反饋給主控芯片。主控芯片對照目的地址接受分析收到的數(shù)據(jù),將指示燈信號轉(zhuǎn)換成觸摸屏可以識別的指令傳給觸摸屏。
圖6 應(yīng)答信號數(shù)據(jù)分析圖
在測試初始階段,主控芯片只有向RS-485總線依次發(fā)送查詢信號,然后接受每個充電箱反饋而來的響應(yīng)信號才可獲取其狀態(tài)信息。加入延時后,主控電路板每隔2 s 按順序向其中一個從控電路板發(fā)送查詢信號,但經(jīng)測試發(fā)現(xiàn),各個充電箱狀態(tài)信息需要等待一個12 s 查詢周期才能反饋至觸摸屏,極大地造成了信息傳輸?shù)难舆t。為了保證充電過中狀態(tài)信息能夠及時傳輸,對主控電路板的控制策略進行了調(diào)整,并改進了Keil 程序。經(jīng)過改進后,各個充電箱內(nèi)的狀態(tài)信息跳變后,從控電路板能在1 s內(nèi)主動向主控電路板發(fā)送狀態(tài)信息,并通過觸摸屏及時顯示,消除了初始階段狀態(tài)信息延時反饋的弊端。
主控芯片和從控芯片共用一套程序,芯片通過初始化過程確定自身編號后執(zhí)行不同的操作??刂齐娐钒逯袚艽a開關(guān)被置為03,被定為主控電路板;右邊控制電路板中的撥碼開關(guān)被置為03,被定為從控電路板。它們能將充電過程中的狀態(tài)的信息反饋至觸摸屏,并在觸摸屏中的區(qū)域1 和區(qū)域3中顯示。程序經(jīng)過多次調(diào)試和改進,已可使用手機APP 掃碼解鎖觸摸屏進入主界面進行充電、取電的操作。主從控制電路板中的各個模塊都能及時采集到實時數(shù)據(jù)并反饋給觸摸屏進行顯示,控制電路板間也能實現(xiàn)迅速可靠的通信。
為解決電動自行車充電難、充電過程存在不安全等問題,從硬件、軟件兩方面入手設(shè)計了一套換電柜控制系統(tǒng)。該系統(tǒng)以STM32F103R8T6 單片機為控制核心,應(yīng)用ESP8266 無線通訊模塊與阿里云物聯(lián)網(wǎng)平臺根據(jù)MQTT 協(xié)議建立無線通訊,并在Android Studio 軟件中開發(fā)終端APP。用戶可通過APP 驗證身份,解鎖換電柜觸摸屏和結(jié)算金額。經(jīng)過實物測試,該系統(tǒng)能極大程度地給電動車用戶帶來便利,提高電瓶充電過程的安全性。