?

充電樁的遠程通信和控制

2024-01-02 09:32葉慶明李亞靜
山西電子技術 2023年6期
關鍵詞:服務端斷電客戶端

陳 垅,葉慶明,李亞靜

(河南科技大學信息工程學院,河南 洛陽 471023)

0 引言

隨著科技的發展與生活水平的日益提高,交通工具成為了人們日常生活的必需品。疫情政策的逐漸放開也使人們對于出行的需求隨即提升。充電樁作為非機動車出行必不可少的一個公共設施,也逐漸被人們接受與使用。但在我們日常生活中,對充電樁的管理較為混亂,用戶對充電樁產生需求時往往因找不到或沒有空閑充電樁而無法滿足自身的需求,這也對我們日常出行產生了一定的限制。而許多充電樁采取的是線下的即充即用,無法通過手機等設備對充電樁的位置、是否空閑等狀態進行遠程控制,使用效果并不理想。我國交通業雖然近年發展飛速,但是充電樁市場的管理及充電樁遠程定位控制這塊的投入較為稀少。而那些主流公司設計的App功能較為冗余,操作繁瑣不夠便捷,不利于日常生活的快捷操縱。為解決這一問題,簡化App冗余功能,實現用戶對充電樁的即點即用、即需即有的需求?;诖颂卦O計與開發一款完成遠程查找租用充電樁以及使用的APP。此項目采用STM32[1]完成功能的實現,并沒有商業化的模塊功能,例如收費和云服務器存儲。

1 系統需求分析

一般市面上的充電樁APP 分為Web端和Android端。 Web端是商家搭建的服務器,用來記錄信息。 Android端則是用戶自主安裝的App,讓用戶自行進行操作。因為一些在線功能如用戶信息存儲,充電金額繳納等功能不是程序設計的核心,故本項目對Android端進行詳解,暫不分析設計Web端。該項目的需求主要由以下六大部分組成:

1) 注冊:新用戶可以點擊首頁的注冊按鈕,輸入自己的賬號及密碼,因無Web端,故賬號密碼存入本地數據庫。

2) 登錄:用戶輸入自己的賬號與密碼,進入地圖頁面。

3) 地圖:在地圖頁面,用戶將會定位自己的位置。

4) 定位手機與充電樁:點擊搜索按鈕,即可搜索地圖上充電樁的位置。

5) 遠程控制:用戶點擊地圖上的充電樁按鈕,即可選擇充電與斷電,達到遠程控制的效果。

6) 充電記錄:充電結束后,后臺記錄充電時長。

2 系統實現

2.1 如何實現硬件定位

硬件核心采用STM32,靈感來源于《基于STM32單片機的智能窗戶設計》[2]和《ARM嵌入式開發實例——基于STM32的系統設計》[3]。

GPS模塊采用 U-BLOX NEO-6M 模組,見圖1,引腳見圖2,體積小巧,性能優異。搭配20.5 dB 高增益LNA芯片,搜星能力強。

圖1 U-BLOX NEO-6M模組圖

圖2 引腳圖

此項目用于硬件編程的軟件為Keil(C51),燒錄軟件使用FLYMCU,串口軟件使用XCOM,如果使用其他串口助手可能控制DTR/RTS導致MCU復位/程序不運行。串口軟件波特率必須是115200,設備通電后就可以通過串口查看經緯度、速度、海拔等信息。在硬件燒錄,焊接好后通過軟件引入的百度地圖API進行調用,使用Java語言進行調控。

2.2 如何實現硬件聯網

目前市面上的無線通信技術中除了我們日常使用的藍牙技術之外,還可以使用WiFi進行設備的連接。相比于藍牙模塊,Wifi模塊的可自定義程度要更強,用戶可操作性也更強。在我們的項目中,將使用無線通信的技術,實現APP端遠程操控硬件端。

在硬件端,我們使用ESP8266模塊,見圖3。

圖3 ESP8266模塊圖

ESP8266具有一個WiFi透傳模塊。何為透傳?透傳全稱透明傳輸,模糊了輸入和輸出的差別。在數據不變的前提下,不同協議之間的轉換可由模塊完成。模塊對于使用者是“透明的”,由此模塊僅對外提供使用的接口。該模塊具有兩種工作模式:STA模式(Station)和AP模式(Access Point)。個別的WiFi模塊具有STA+AP模式,此模式可以從STA 和AP自由切換。

在我們的項目中,主要使用的是STA模式。STA模式,通俗講是將硬件對應TCP傳輸協議中的客戶端。我們可以將手機視為服務端,使用AT指令開發,連接手機和充電樁硬件,達到發送信息的效果。

AT指令開發是利用了ESP8266本身是可編程芯片這一特點,我們可以使用出廠時封裝的WiFi協議棧,通過單片機串口實現WiFi模塊的通信。用A9和A10接口輸出連接ESP8266模塊實現無線通信以便于后面功能的使用。

2.3 軟件的設計

軟件方面此項目通過Android Studio進行開發。首先解決地圖的調用問題,此項目調用了百度地圖API,在百度地圖開放平臺申請使用。

在App端要對地圖sdk進行初始化(配置AndroidManifest.xml文件),填寫相關的信息,初始完成后,即可調用相關功能。首先,創建一個地圖容器進行使用,在App登錄后顯示地圖主界面,調用locationService.start();其次通過LocationClient發起定位,在點擊左上角搜索按鈕后,即可顯示充電樁位置。

對于充電樁,我們可以在無線通信的情況下,對其進行充電和停電兩種操作(詳見2.5如何模擬通電與斷電),斷電后,后臺將自動記錄充電時間。

對于登錄界面,我們將使用Button和EditText控件,因該項目暫未涉及Web端,我們將用戶數據存入sqlite本地,以此實現簡單的登錄注冊功能。

2.4 軟硬件的交互

對于軟硬件的交互,我們使用MQTT協議(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)。

MQTT協議構建于TCP/IP協議之上,具有低開銷,低寬帶占用的特點,對于小型設備的應用較為友好。

MQTT是一個基于客戶端-服務器的消息發布/訂閱傳輸協議。

MQTT 服務端通常是一臺服務器(broker),用來完成MQTT 信息傳輸,是信息傳輸的核心,像中轉站一樣將 MQTT 客戶端發送來的信息傳遞給另一個MQTT 客戶端;MQTT 服務端不但可以分揀傳輸信息,還可以管理調用 MQTT 客戶端,保證客戶端與客戶端之間的通訊順暢,信息得以正確傳輸與接收。

MQTT 客戶端可以向服務端發布信息,也可以從服務端收取信息。我們把客戶端發送信息的行為稱為 “發布”信息;而客戶端要想從服務端收取信息,則稱為訂閱信息。

發布/訂閱模式重定義了客戶端,令客戶端可以劃分為2種角色:發布者(Publisher)和訂閱者(Subscriber),這大大擴充了客戶端的功能。發布者可以發布若干的消息,此類信息類型一般稱為主題,在整體通信中,只有訂閱了這個主題的訂閱者才能收到屬于這個主題的消息。

對于發布者,其不需獲取訂閱者的信息(例如不知道訂閱者的IP和端口),也不需與對方建立直接的聯系。MQTT服務端將會扮演這個中間人角色。

對于訂閱者,其只需要獲取MQTT 服務器的IP和端口即可,并和它直接建立連接通信,MQTT服務端將會作為信息的中轉站,正確地分發信息。

項目中,我們將App發布的主題信息送往MQTT服務端,MQTT服務端分揀信息后,將信息傳遞給ESP8266模塊,ESP8266模塊再將信息傳遞給STM32主板進行統籌計算,然后將充電斷電信息傳達給其他模塊(見圖4)。

2.5 如何模擬通電與斷電

在我們接收到APP端的信息后,經過STM32主控的處理,通過A7接口輸出信號,接到信號后, S8050三極管高電平導通,實現充電樁的通電與斷電。在此項目中,為明顯顯示實驗結果,在硬件上添加LED燈和繼電器,兩者是通過S8050三極管控制通斷,來具現實驗現象(見圖5)。

圖5 三極管原理圖

3 結語

本文設計并實現了充電樁的遠程通信和控制。在App端用戶可以通過賬號密碼登錄,在地圖界面查找自己,然后通過搜尋功能查到充電樁的位置,對充電樁進行無線通信控制,控制其通電與斷電,并在斷電后保存使用的時長記錄。該項目秉承簡單易用的特點,基本滿足了日常出行對充電樁的需求,減少不必要的時間浪費。同時此項目是一個功能的實現,并沒有商業化的模塊功能,例如收費和云服務器存儲。

猜你喜歡
服務端斷電客戶端
高壓感應電動機斷電重啟時的瞬態仿真
日光燈斷電關閉及自動延時開關設計
云存儲中基于相似性的客戶-服務端雙端數據去重方法
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設計與實現
新時期《移動Web服務端開發》課程教學改革的研究
在Windows Server 2008上創建應用
一種基于STM32的具有斷電保護機制的采集存儲系統設計
高、低壓斷電對高爐噴煤系統的影響及處理
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合