電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>安全乘車開源分享

安全乘車開源分享

2022-11-03 | zip | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

描述

動機(jī)

交通上的信任/安全是一項(xiàng)挑戰(zhàn)新功能,需要通過近年來越來越受歡迎的拼車服務(wù)來解決。Uber、Lyft、Via 和 Juno 是一些由業(yè)主駕駛的私家車的例子,提供從門到門或從特定起點(diǎn)到終點(diǎn)的交通服務(wù)。

公共交通和出租車因其共同的顏色、制造商和設(shè)計(jì)而很容易被發(fā)現(xiàn)。然而,拼車服務(wù)很難被注意到,因?yàn)樗鼈冎辉谇按盎騻?cè)窗上顯示一個小貼紙。每次接老婆,都會在地鐵站看到這種情況。人們在車站上下行走以尋找他們的請求乘車。發(fā)車款,顏色都盡量減輕這個負(fù)擔(dān),但還是有誤乘的可能。

然后,有可能有人假裝是您的乘車人,造成嚴(yán)重的安全問題。

該項(xiàng)目的動機(jī)是 Hackster 中提出的以下項(xiàng)目:

雙重身份驗(yàn)證:Omega NFC 模塊和 WIZ750SR

聰明的騎士

第一個展示了當(dāng)前流行的使用個人外部設(shè)備(通常是手機(jī))確認(rèn)身份的安全功能。大多數(shù)系統(tǒng)會生成一個隨機(jī)代碼并將其發(fā)送到注冊設(shè)備以輸入到登錄系統(tǒng)中。

第二個展示了用戶成為確認(rèn)身份的密碼短語的想法。用戶選擇密碼并將其發(fā)送到 AID,AID 將其轉(zhuǎn)換為二維碼以便于閱讀。

使用 AID 可以保護(hù)隱私并使其具有防篡改功能,因?yàn)檫B接獨(dú)立于拼車請求系統(tǒng)。

材料

Particle Boron LTE 是身份驗(yàn)證設(shè)備 (AID) 系統(tǒng)的核心板。Boron 板包含一個嵌入式 SIM 卡,可以與本地蜂窩網(wǎng)絡(luò)通信

Adafruit TFT 2.4" 觸摸屏羽翼被用作主界面。

最后,任何網(wǎng)絡(luò)瀏覽器都可以啟用移動設(shè)備:筆記本電腦、平板電腦或手機(jī)來確認(rèn)密碼。

流水作業(yè)

工藝流程如下:

  • 請求乘車(請求者)。
  • 驅(qū)動程序接受請求并將 AID id 和名稱發(fā)送給請求者
  • 請求者收到 AID id 和名稱;嘗試建立連接。
  • 使用 AID 連接成功,將設(shè)備名稱與收到的設(shè)備名稱進(jìn)行比較。
  • 請求者寫入密碼并將其發(fā)送給 AID。
  • AID 接收請求者密碼并構(gòu)建 QR 碼。
  • 請求者掃描駕駛員 AID 屏幕上的二維碼。
  • 請求者對掃描的 QR 碼進(jìn)行解碼并比較密碼是否匹配。
  • 相同的密碼歡迎請求者并解鎖車門。
?
pYYBAGNiBL-ABOYZAABOKniIZ3M466.jpg
流程圖
?

安全密碼

密碼短語已被證明比單字密碼更安全。使用的密碼最多可以有 63 個字符。當(dāng)密碼有效時,系統(tǒng)可以有一個時間間隔,超過該時間密碼無效并且需要新的密碼。

粒子函數(shù)

該應(yīng)用程序使用 Particle 函數(shù)通過 Cloud API 函數(shù)與 Web App 進(jìn)行通信。

Boron 程序定義了以下兩個函數(shù)。

void setup() {    
   display.begin();    
    .    
    .    
    .    
   Particle.function("safeRyder",setQRcode);    
   Particle.function("confirmSR",setAccessConfirm);    
}

setQRcode 接收客戶發(fā)送的密碼,創(chuàng)建二維碼并顯示在屏幕上。

int setQRcode(String command) {    
 qrcode.create(command);    
 return 0;    
}

當(dāng)密碼匹配二維碼并驗(yàn)證客戶身份時,調(diào)用 setAccessConfirm 函數(shù)。然后屏幕會顯示一個綠色圓圈和一條歡迎消息。

int setAccessConfirm(String command)    
{    
 int width = display.width();    
 int height = display.height();    
 display.fillScreen(ILI9341_BLACK);    
 display.fillCircle(width/2,height/3,width/3,ILI9341_GREEN);    
 display.setCursor(width/5, (height/3)*2+30);    
 display.setTextColor(ILI9341_WHITE);      
 display.setTextSize(4);    
 display.println("Welcome");    
 return 0;    
}

云 API

HTML5 代碼使用云 API 和 JSON 調(diào)用注冊函數(shù)。下面的 pingParticle 函數(shù)使用網(wǎng)址打開一個 http 請求。請注意 deviceId: 和 token: 必須替換為您的 deviceId 和 token,您可以在 Particle 儀表板中找到它們。

另外,請注意,為了使用 JSON 格式,您必須定義一個標(biāo)頭來標(biāo)識您請求的內(nèi)容類型。這是您用于傳遞令牌的標(biāo)頭的附加內(nèi)容。ping 命令發(fā)送包以檢查設(shè)備是否在線和連接。

請注意,PUT 用于 ping 命令。

function pingParticle()    
{    
   var xhttp = new XMLHttpRequest();    
   xhttp.onreadystatechange = function() {    
       if (this.readyState == 4 && this.status == 200) {    
           deviceInfo = this.responseText;    
       }    
   };    
   xhttp.open("PUT", "https://api.particle.io/v1/devices/deviceId:/ping", false);    
   xhttp.setRequestHeader("Authorization", "Bearer token:");    
   xhttp.setRequestHeader("Content-Type", "application/json");    
   xhttp.send();    
}

The以下函數(shù) getDeviceInfo 請求設(shè)備的一般信息。請注意,回調(diào)函數(shù)將響應(yīng)分配給 deviceInfo 全局變量。然后對該變量進(jìn)行 JSON 解碼以訪問所需信息,例如設(shè)備名稱。

請注意,a GET 用于獲取設(shè)備信息。

function getDeviceInfo()    
{    
   var xhttp = new XMLHttpRequest();    
   xhttp.onreadystatechange = function() {    
       if (this.readyState == 4 && this.status == 200) {    
           deviceInfo = this.responseText;    
       }    
   };    
   xhttp.open("GET", "https://api.particle.io/v1/devices/deviceId:", false);    
   xhttp.setRequestHeader("Authorization", "Bearer token:");    
   xhttp.setRequestHeader("Content-Type", "application/json");    
   xhttp.send();    
}

callParticle 函數(shù)調(diào)用設(shè)備中定義的 Particle 函數(shù)。它使用 JSON 格式發(fā)送函數(shù)的參數(shù),在本例中為密碼。請注意,它使用 AID 的令牌和 deviceId。

請注意,POST 用于調(diào)用 Particle 函數(shù)。

function callParticle(msg2Send)    
{    
   var xhttp = new XMLHttpRequest();    
   var txtSCode = document.getElementById('txtSafeCode');    
   var sendData = txtSCode.value;    
   xhttp.onreadystatechange = function() {    
       if (this.readyState == 4 && this.status == 200) {    
           document.getElementById("btnContinue").style = "visibility:visible";    
           document.getElementById("btnSendCode").style = "visibility:hidden";    
       }    
   };    
   xhttp.open("POST", "https://api.particle.io/v1/devices/"+deviceId+"/safeRyder", false);    
   xhttp.setRequestHeader("Authorization", "Bearer "+token);    
   xhttp.setRequestHeader("Content-Type", "application/json");    
   xhttp.send("{"arg": ""+sendData+""}");    
}

下面的函數(shù)是庫解碼二維碼后的回調(diào)注冊函數(shù)。請注意,我們使用 sessionStorage 函數(shù)將密碼從一個網(wǎng)頁傳遞到相機(jī)控制網(wǎng)頁。該函數(shù)向 AID 設(shè)備發(fā)送確認(rèn)命令。

qrcode.callback = function(data) {    
   var output = document.querySelector("output");    
   output.innerHTML = "QR Code Data 2: " + data;    
   var sendData = window.sessionStorage["passphrase"];    
   if (data == sendData)    
   confimCodeParticle();    
}

這是通過調(diào)用confirmSR Particle 函數(shù)將確認(rèn)POST 到AID 設(shè)備的函數(shù)。

請注意,POST 用于調(diào)用 Particle 函數(shù)。

function confimCodeParticle()    
{    
   var xhttp = new XMLHttpRequest();    
   xhttp.open("POST", "https://api.particle.io/v1/devices/"+deviceId+"/confirmSR", false);    
   xhttp.setRequestHeader("Authorization", "Bearer "+token);    
   xhttp.setRequestHeader("Content-Type", "application/json");    
   xhttp.send("{"arg": ""}");    
}

網(wǎng)絡(luò)應(yīng)用

Web App 是一個 HTML5/JavaScript 程序,它與 AID 設(shè)備建立通信,發(fā)送密碼,從 AID 設(shè)備讀取二維碼并確認(rèn)密碼匹配。

三星 Edge S7 手機(jī)中使用 Chrome 來運(yùn)行 Web 應(yīng)用程序。

下面的網(wǎng)頁顯示了主界面。該頁面嘗試使用收到的設(shè)備 ID 和令牌與 AID 設(shè)備建立通信。如果無法通信,界面中會顯示 Ping 按鈕。這使用戶有機(jī)會再次嘗試通信鏈接。

?
pYYBAGNiBMOAFVPfAAENGqNsB7g621.jpg
如果尚未建立通信鏈接,請按 Ping
?

建立通信鏈路后,Ping 按鈕消失,并顯示從通信鏈路讀取的 AID 名稱和狀態(tài)

?
poYBAGNiBMyAbLS_AAEHVxTUyWk432.jpg
輸入密碼并按發(fā)送
?

輸入您的唯一密碼,然后按發(fā)送密碼。該頁面會將密碼發(fā)送到 AID 設(shè)備(生成二維碼的地方)并返回成功狀態(tài)。

?
poYBAGNiBNCAYql3AAEDE6TH200824.jpg
按繼續(xù)
?

Send Passphrase 按鈕??被隱藏并顯示 Continue 按鈕。按繼續(xù)按鈕訪問讀取二維碼掃描頁面。

?
poYBAGNiBNSAZb8yAAGBObw90WE152.jpg
開始實(shí)時預(yù)覽
?

掃描二維碼頁面如上圖所示。車輛到達(dá)車窗后,AID 附在車窗上,按下啟動攝像頭按鈕激活車載攝像頭,聚焦 AID 設(shè)備上顯示的 QR 碼,然后按下拍攝快照。

?
pYYBAGNiBNqAD7CPAAIbHC4115w619.jpg
系統(tǒng)解碼二維碼密碼
?

然后該頁面處理 QR 碼并比較發(fā)送的密碼。如果兩者都匹配,則它會向 AID 設(shè)備發(fā)送一條確認(rèn)消息,該設(shè)備會通過顯示帶有歡迎消息的綠色圓圈來響應(yīng)。

有時相機(jī)的使用無法按預(yù)期工作,并且無法解釋 QR 碼。圖像格式的設(shè)置可能會出現(xiàn)問題,如果是這種情況,請按選擇文件,在三星 S7 中會顯示通過相機(jī)或?yàn)g覽選擇文件的菜單。選擇相機(jī)并拍照,系統(tǒng)將拍攝該圖像并處理二維碼。

二維碼

用于處理 QR 碼的庫取自 Lazar Laszlo(Web 應(yīng)用程序)和 Anun Panya(AID 應(yīng)用程序)。Anun Panya 的庫經(jīng)過修改以支持粒子板和 Adafruit TFT 2.4 觸摸屏監(jiān)視器。還允許在 QR 碼顯示上使用縮放系數(shù)。

援助應(yīng)用

AID App 非常簡單。它基本上基于幾個粒子函數(shù),這些函數(shù)定義了客戶觸發(fā)的事件。如粒子函數(shù)一節(jié)所示,這兩個函數(shù)定義的一個是顯示客戶發(fā)送的密碼,第二個是確認(rèn)密碼已被驗(yàn)證。

產(chǎn)品、車隊(duì)和客戶

該系統(tǒng)可以很容易地?cái)U(kuò)展到產(chǎn)品。客戶將共享連接到產(chǎn)品的所有設(shè)備,并且只與接受驅(qū)動程序服務(wù)請求的設(shè)備對話。然后可以根據(jù)實(shí)際安裝 AID 設(shè)備的驅(qū)動程序的地理位置和客戶請求服務(wù)的位置對設(shè)備進(jìn)行分組。

粒子儀表板在創(chuàng)建產(chǎn)品時提供這些功能。當(dāng)請求被批準(zhǔn)時,產(chǎn)品服務(wù)將 AID 設(shè)備 ID、名稱和訪問令牌發(fā)送到設(shè)備。客戶接收這些信息并與 AID 建立直接通信鏈接。

客戶未連接到 AID 設(shè)備,但在收到信息時無法篡改 ID。

結(jié)論

該系統(tǒng)在提高騎手的安全性和防止有人冒充您的騎行方面表現(xiàn)出可喜的表現(xiàn)。

該系統(tǒng)還可用于從機(jī)場接人的豪華轎車服務(wù),或與??我們從未接觸過的人或服務(wù)的任何會議,例如雜貨店送貨服務(wù)。

未來的工作預(yù)見了一種為服務(wù)正確收費(fèi)的方法。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)