基于物聯(lián)網(wǎng)的公交車收費(fèi)系統(tǒng)設(shè)計_第1頁
基于物聯(lián)網(wǎng)的公交車收費(fèi)系統(tǒng)設(shè)計_第2頁
基于物聯(lián)網(wǎng)的公交車收費(fèi)系統(tǒng)設(shè)計_第3頁
基于物聯(lián)網(wǎng)的公交車收費(fèi)系統(tǒng)設(shè)計_第4頁
基于物聯(lián)網(wǎng)的公交車收費(fèi)系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、.基于物聯(lián)網(wǎng)的公交車收費(fèi)系統(tǒng)一 系統(tǒng)設(shè)計整體設(shè)計公交車收費(fèi)系統(tǒng)使用Android數(shù)據(jù)網(wǎng)關(guān),連接無線AP點(diǎn),通過串口跟控制芯片連接,控制芯片將RFID讀卡器的數(shù)據(jù)通過無線AP發(fā)送,對公交卡用戶執(zhí)行開戶、充值、余額查詢、銷戶、消費(fèi)等操作。系統(tǒng)框圖如下:公交車收費(fèi)系統(tǒng)的硬件設(shè)備主要包括:(1) Android后臺:程序的運(yùn)行環(huán)境,處理獲取的卡號,執(zhí)行相關(guān)操作,并顯示金額。(2) RFID讀卡:讀卡設(shè)備,用于讀取IC卡數(shù)據(jù)。(3) Wi-Fi模塊:通過串口線與高頻RFID讀卡器相連,將讀卡數(shù)據(jù)通過Socket連接發(fā)送給安卓后臺管理程序。(4) 高頻IC卡:用戶公交卡。公交系統(tǒng)數(shù)據(jù)庫的設(shè)計本系統(tǒng)數(shù)據(jù)庫非

2、常簡單,在實(shí)驗(yàn)室階段,我們可以只用一個用戶表即可完成,簡單期間,下表只注冊用戶姓名,聯(lián)系電話,如果需要可以添加更多的用戶信息,比如年齡,工作單位之類的。表名: 公交用戶表結(jié)構(gòu)字段名數(shù)據(jù)類型長度主鍵索引外鍵說明User_IDInt8用戶編號User_nameString20姓名ID_NOString18身份證號,實(shí)名認(rèn)證公交卡IcardStringyes公交卡號StatusBool1卡狀態(tài):0正常,1暫停使用以及其他狀態(tài)TelString11用戶聯(lián)系電話PasswordString20消費(fèi)密碼,用以特定時候驗(yàn)證身份MoneyFloat余額ScoresFloat消費(fèi)積分,特定情況下使用Con_lo

3、gsText用以記錄消費(fèi)日志軟件部分: 軟件部分功能基本開發(fā)完成了信息查詢:WiFi模塊通過tcp/ip跟安卓后臺通訊(軟硬件交互部分): Wifi模塊跟單片機(jī)的連接:通過USARTESP8266模塊引腳圖通過串口通信的話。模塊連線就比較簡單了,只需要:ESP8266 <->STM32GND <->GND3.3V<->3.3VTXD<->PA3 /IO口功能復(fù)用,串口收發(fā)數(shù)據(jù)RXD <->PA2Wifi模塊使用:ESP8266支持AT指令:在AT模式下可以通過串口的AT指令對系統(tǒng)參數(shù)做配置。指令格式如下:AT+<at指令>

4、=<值>例如:“AT+CWMODE”查詢當(dāng)前模塊的WIFI模式。例如:“AT+CWMODE=3”設(shè)置模塊WIFI模式為AP+STA模式。這里是所有支持的AT指令:ESP8266模塊支持三種模式:AP模式,STA和AP+STA模式我們考慮采用AP模式:即模塊作為無線WIFI熱點(diǎn),允許其他WIFI設(shè)備連接到本模塊,實(shí)現(xiàn)串口與其他設(shè)備之間的無線(WIFI)數(shù)據(jù)轉(zhuǎn)換互傳。AP模式下包括三個子模式: TCP 服務(wù)器、TCP 客戶端, UDP將本模塊設(shè)置成TCP服務(wù)器端的過程:使用AT指令A(yù)T+CWMODE=2設(shè)置模塊WIFI模式為AP模式AT+RST重啟生效AT+CWSAP=”myWIfi”

5、,”12345678”,1,4設(shè)置模塊的AP參數(shù):SSID為myWifi,密碼為12345678,通道號為1,加密方式為:WPA_WPA2_PSKAT+CIPMUX=1開啟多連接AT+CIPSERVER=1,8888開啟SERVER模式,設(shè)置端口為8888安卓端的TCP/IPTransmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協(xié)議什么是Socket?Socket是應(yīng)用層與TCP/IP協(xié)議簇通訊的中間抽象層,Socket是一組接口,它把復(fù)雜的TCP/IP協(xié)議簇的內(nèi)容隱藏在套接字接口后面,我們無需關(guān)心協(xié)議的實(shí)現(xiàn),只需使用Socket

6、提供的接口即可。安卓端創(chuàng)建服務(wù)器端的步驟:1. 創(chuàng)建ServerSocket對象,綁定監(jiān)聽端口2. 通過accept()方法監(jiān)聽客戶端請求3. 連接建立之后,通過獲取輸入流,取得客戶端請求信息4. 創(chuàng)建輸出流,返回給客戶端信息5. 關(guān)閉資源安卓端創(chuàng)建客戶端的步驟:1. 創(chuàng)建socket對象,指定需要鏈接的服務(wù)器地址和端口號2. 建立連接后,獲取輸出流,向客戶端發(fā)起請求信息3. 獲取輸入流,讀取服務(wù)器端反饋的信息4. 關(guān)閉相應(yīng)資源讀卡器部分 : 主要內(nèi)容包括:STM32芯片與RC522模塊的通信,RC522模塊與IC卡之間的識別過程RC522引腳圖:1.rc522與單片機(jī)的引腳設(shè)置:RC522引

7、腳圖在使用不同類型接口的時候,RC522的引腳作用會不同,在與單片機(jī)通信的時候是采用SPI通信 串行外設(shè)接口因此跟STM32板的接線方式如下:(參看STM32引腳圖)RC522-stm321-SDA <->PA4 /選通*2-SCK <->PB13/SCK時鐘*3-MOSI<->PB15/OI*4-MISO<->PB14/IO*5懸空*6-GND <->GND*7-RST <->PB1*8-3.3V<->3.3VRC522的工作過程:一RC522跟單片機(jī)的通信:MFRC522發(fā)送與接收卡數(shù)據(jù)暫存于FIFO緩沖區(qū)

8、中數(shù)據(jù)幀格式:字符數(shù)值定義STX0x02通訊開始LEN-數(shù)據(jù)長度DATA-數(shù)據(jù)BCC-異或校驗(yàn)ETX0x03結(jié)束標(biāo)識位DATA格式:Command(2 bytes)Data0Datam按照ISO14443標(biāo)準(zhǔn),有以下常用命令:指令碼功能0xC001尋卡(ISO/IEC15693)0xC005讀取某一塊的信息(ISO/IEC15693)0xC006將信息寫入某一塊(ISO/IEC15693)0xC007將某一塊鎖定(ISO/IEC15693)0xC008寫入AFI(ISO/IEC15693)0xC009鎖定AFI(ISO/IEC15693)0xC00A寫入DSFID(ISO/IEC15693)0

9、xC00B鎖定DSFID(ISO/IEC15693)0xC00C獲取系統(tǒng)信息(ISO/IEC15693)0x3224尋卡(ISO/IEC14443A存儲卡)0x3225休眠卡片(ISO/IEC14443A存儲卡)0x3241激活卡片(ISO/IEC14443A存儲卡)0x3243讀取某一塊的信息(ISO/IEC14443A存儲卡)0x3244將信息寫入某一塊(ISO/IEC14443A存儲卡)0x3245讀余額(ISO/IEC14443A存儲卡)0x3246寫入余額(ISO/IEC14443A存儲卡)0x3247余額加值(ISO/IEC14443A存儲卡)0x3248余額減值(ISO/IEC1

10、4443A存儲卡)0x324B卡片復(fù)位(ISO/IEC14443A智能卡)0x324C發(fā)送應(yīng)用命令(ISO/IEC14443A智能卡)二對卡的操作分成四步:尋卡防沖突選卡讀/寫卡;使用二次編程的函數(shù)接口(1) 尋卡向FIFO中寫入PICC_REQIDL命令,通過PCD_TRANSCEIVE命令將FIFO中數(shù)據(jù)通過天線發(fā)送出去,此時若有卡在天線作用范圍內(nèi),將識別命令,并返回卡類型,和卡片序列號;卡類型(TagType):0x4400 = Mifare_UltraLight0x0400 = Mifare_One(S50)0x0200 = Mifare_One(S70)0x0800 = Mifare

11、_Pro(X)0x4403 = Mifare_DESFire關(guān)于下面兩條命令的區(qū)別:第一條命令讀取完卡后還會再次讀??;第二條命令讀取完卡后會等待卡離開開線作用范圍,直到再次進(jìn)入。(2) 防沖突向FIFO中寫入PICC_ANTICOLL0x20,通過PCD_TRANSCEIVE命令將FIFO中數(shù)據(jù)通過天線發(fā)送出去,卡返回卡序列號(共5字節(jié),第5字節(jié)是卡序列號校驗(yàn)碼);由于是非接觸式的,同一時間天線作用范圍內(nèi)可能不只一張卡時,即有多于一張的MIFARE 1卡發(fā)回了卡序列號應(yīng)答,則發(fā)生了沖突。此時,由于每張卡的卡序列號各不相同,MCM接收到的信息(即卡序列號)至少有1位既是0又是1(即該位的前、后半部都有副載波調(diào)制),MCM找到第1個沖突位將其置1(排除該位為0的卡),然后查第2個,依次排除,最后不再有沖突的SN即為被選中的卡。(3) 選卡向FIFO中寫入PICC_SElECTTAG0x70卡序列號,通過PCD_TRANSCEIVE命令將FIFO中數(shù)據(jù)通過天線發(fā)送出去,卡返回卡容量(對于MIFARE 1卡來說,可能為88H或08H);(4) 寫數(shù)據(jù)向FIFO中寫入PICC_WRITE塊地址,通過PCD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論