紀(jì)鑫樂+劉堯猛+吳紅霞+白馥齊
摘 要:為了更簡便地使用停車位,滿足車主的需求,基于 GPRS/GPS 技術(shù)開發(fā)了智能體車鎖設(shè)備。硬件采用主控CPU為STM32F103C8T6,用于控制通過GPRS模塊返回的GPS信息以及實現(xiàn)與串口數(shù)據(jù)的交互。在智能鎖的設(shè)計上,通過 GPIO 接口,來控制兩路繼電器模塊,實現(xiàn)智能車鎖電機(jī)的正反轉(zhuǎn),從而實現(xiàn)車位鎖的升起和落下。GPRS模塊采用QUECTEL系列MC20CA-04-STD芯片,實現(xiàn)GPS信息的獲取與傳輸功能。
關(guān)鍵詞:GPRS/GPS;智能;車位鎖;STM32
中圖分類號:U491 文獻(xiàn)標(biāo)志碼:A
0 引言
隨著人們生活水平的提高,私家車已經(jīng)逐漸普及到各家各戶,停車位的需求也日益增加,而車主對哪個地方可以停車,哪個地方的車位已滿完全不了解,造成了剩余停車位的浪費(fèi)。基于這種現(xiàn)象,設(shè)計了智能體車鎖,用于簡化車主找車位的過程。智能體車鎖可以通過手機(jī)APP將鎖的位置和車位是否被使用告知車主,還可以通過手機(jī)APP控制車鎖的開啟與關(guān)閉,實現(xiàn)了車到鎖開,車走鎖關(guān)的功能。
1 主控制板的選用
該主板將GPRS模塊與主控制模塊結(jié)合在一起,內(nèi)置串口2(UART2)實現(xiàn)了GPRS模塊與主控CPU的數(shù)據(jù)交互,串口1(UART1)用于接到個人PC端,用于接收和發(fā)送數(shù)據(jù)。
主控CPU為STM32F103C8T6 單片機(jī)一顆。單片機(jī)實現(xiàn)了整個系統(tǒng)核心的樞紐, 實現(xiàn)對整個系統(tǒng)的把控,并完成對應(yīng)的代碼實現(xiàn)。引出來了多余的 GPIO 口,主要是方便用戶進(jìn)行二次開發(fā)。
MC20 模塊一顆。MC20 支持 GSM/GPS/BD 功能,在設(shè)計當(dāng)中充分考慮資源最大化,引出 GPS/BD 天線引腳和 GSM 天線引腳。用戶可以實現(xiàn)利用 MC20 一顆芯片實現(xiàn) GPRS 網(wǎng)絡(luò)對 GPS/BD 數(shù)據(jù)的遠(yuǎn)程傳輸。MC20 支持北斗與 GPS 雙模功能,模塊也是默認(rèn)采用 GPS 和 北斗都是支持的格式進(jìn)行的設(shè)計。MC20 提供了一顆 LED 網(wǎng)絡(luò)指示燈。主板返回GPS信息的實現(xiàn)。單片機(jī)在右下方引出了兩個對應(yīng)的 LED 燈,這兩個燈主要是方便用 戶進(jìn)行 TCP 遠(yuǎn)程開關(guān)燈控制或者是短信控制 LED 燈功能,如圖1所示。
2 主要功能的實現(xiàn)
完整的主控面板由一個3.7V、3000mAh的電源,一個J-LINK適配器,一個TTL轉(zhuǎn)USB接口,兩個用于實現(xiàn)電機(jī)的正反轉(zhuǎn)的GPIO接口組成,如圖2所示。
2.1 GPRS模塊的實現(xiàn)
2.1.1 GPRS相關(guān)配置的實現(xiàn)
通過GPS/BD 天線引腳和 GSM 天線引腳,可以利用 MC20芯片實現(xiàn)GPRS 網(wǎng)絡(luò)對 GPS/BD 數(shù)據(jù)的獲取與傳輸。GPRS模塊需要用AT指令對其進(jìn)行配置。
1. AT+QGNSSC=1 對GPS模塊上電
2. AT+QGNSSC? 檢查上電情況
3. ATE0 關(guān)閉回顯
4. AT+CSQ 檢查CSQ(模塊當(dāng)前信號質(zhì)量),可以利用手機(jī)APP查看
5. AT+CPIN? 檢查SIM卡是否在位
6. AT+CREG? 是否注冊GSM網(wǎng)絡(luò)
7. AT+CGREG? 是否注冊GPRS網(wǎng)絡(luò)
8. AT+QISTAT 查詢IP狀態(tài)
9. AT+QIDEACT 關(guān)閉場景
10. AT+QIFGCNT=0 配置場景,為后面的數(shù)據(jù)連接做基礎(chǔ)
11. AT+QICSGP=1,\042CMNET\042 接入APN
12. AT+QIREGAPP 開啟移動場景
13. AT+QIACT PDP上下文激活
14. AT+QIDNSIP=1 使用IP連接還是域名連接,0是IP,1是域名
15. AT+QIOPEN=\042TCP\042,\042(要使用的域名)\042,\042(域名對應(yīng)的端口號)\042 這里是需要登錄的域名,輸入域名及其端口號。
2.1.2 GPRS模塊向CPU傳輸GPS數(shù)據(jù)的實現(xiàn)
主板內(nèi)嵌串口2(UART2),可以將MC20模塊獲取的數(shù)據(jù)經(jīng)過串口2傳送到STM32 CPU控制的模塊。
通過USART_SendData()函數(shù)將獲取到的數(shù)據(jù)通過串口進(jìn)行傳輸。
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
/* Check the parameters */
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_USART_DATA(Data));
/* Transmit Data */
USARTx->DR = (Data & (uint16_t)0x01FF);
}
2.2 CPU主板部分功能的實現(xiàn)
主控CPU為STM32F103C8T6 單片機(jī)一顆。單片機(jī)實現(xiàn)了整個系統(tǒng)核心的樞紐, 實現(xiàn)對整個系統(tǒng)的把控,并完成對應(yīng)的代碼實現(xiàn)。
運(yùn)用Rec_Server_Data()函數(shù),對從服務(wù)器端接收端的數(shù)據(jù)進(jìn)行處理:
(1)如果在接收緩沖區(qū)RxBuffer中收到“up”字符串,表示將進(jìn)行開鎖動作,則將指示燈開啟,同時將智能鎖降下。
(2)如果在接收緩沖區(qū)RxBuffer中收到“down”字符串,表示將進(jìn)行關(guān)鎖動作,則將指示燈熄滅,同時將智能鎖抬起。
void Rec_Server_Data(void)
{
……
if(strstr(RxBuffer,”up”)!=NULL)
{
LED1_ON();
OP_DOWN_ON();
Delay_nMs(100);
OP_DOWN_OFF();
}
else if(strstr(RxBuffer,”down”)!=NULL)
{
LED1_OFF();
OP_UP_ON();
Delay_nMs(100);
OP_UP_OFF(); }
…...
}
3 智能車鎖的打開與關(guān)閉
在手機(jī)APP端點擊開鎖(或關(guān)鎖)按鈕,會通過服務(wù)器端向主板發(fā)送一條“up”(“down”)字符串,主板通過GPIO端控制兩路繼電器的高低電平來實現(xiàn)電機(jī)的正反轉(zhuǎn),來實現(xiàn)智能鎖的打開與關(guān)閉,如圖3所示。
結(jié)語
測試結(jié)果表明,該系統(tǒng)可以完成預(yù)定的功能,可以正確地顯示出車鎖所在的位置,并可以通過手機(jī)端來控制在智能車鎖的開啟和關(guān)閉。此套系統(tǒng)簡化了私家車車主找提車位難的問題,方便了人們的出行,還可以充分利用現(xiàn)有的停車位資源。
參考文獻(xiàn)
[1]廖義奎.Cortex-M3之STM32嵌入式系統(tǒng)設(shè)計[M].北京:中國電力出版社,2012:4.
[2][美] 拉伯羅斯(Jean J.Labrosse)著;宮輝,曾鳴,龔光華,等.譯嵌入式實時操作系統(tǒng)[M].北京 :北京航空航天大學(xué)出版社,2012:11.
[3]郭天祥,新概念51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社,2009:9.endprint