資料介紹
描述
動機
交通上的信任/安全是一項挑戰(zhàn)新功能,需要通過近年來越來越受歡迎的拼車服務來解決。Uber、Lyft、Via 和 Juno 是一些由業(yè)主駕駛的私家車的例子,提供從門到門或從特定起點到終點的交通服務。
公共交通和出租車因其共同的顏色、制造商和設(shè)計而很容易被發(fā)現(xiàn)。然而,拼車服務很難被注意到,因為它們只在前窗或側(cè)窗上顯示一個小貼紙。每次接老婆,都會在地鐵站看到這種情況。人們在車站上下行走以尋找他們的請求乘車。發(fā)車款,顏色都盡量減輕這個負擔,但還是有誤乘的可能。
然后,有可能有人假裝是您的乘車人,造成嚴重的安全問題。
該項目的動機是 Hackster 中提出的以下項目:
第一個展示了當前流行的使用個人外部設(shè)備(通常是手機)確認身份的安全功能。大多數(shù)系統(tǒng)會生成一個隨機代碼并將其發(fā)送到注冊設(shè)備以輸入到登錄系統(tǒng)中。
第二個展示了用戶成為確認身份的密碼短語的想法。用戶選擇密碼并將其發(fā)送到 AID,AID 將其轉(zhuǎn)換為二維碼以便于閱讀。
使用 AID 可以保護隱私并使其具有防篡改功能,因為連接獨立于拼車請求系統(tǒng)。
材料
Particle Boron LTE 是身份驗證設(shè)備 (AID) 系統(tǒng)的核心板。Boron 板包含一個嵌入式 SIM 卡,可以與本地蜂窩網(wǎng)絡通信。
Adafruit TFT 2.4" 觸摸屏羽翼被用作主界面。
最后,任何網(wǎng)絡瀏覽器都可以啟用移動設(shè)備:筆記本電腦、平板電腦或手機來確認密碼。
流水作業(yè)
工藝流程如下:
- 請求乘車(請求者)。
- 驅(qū)動程序接受請求并將 AID id 和名稱發(fā)送給請求者
- 請求者收到 AID id 和名稱;嘗試建立連接。
- 使用 AID 連接成功,將設(shè)備名稱與收到的設(shè)備名稱進行比較。
- 請求者寫入密碼并將其發(fā)送給 AID。
- AID 接收請求者密碼并構(gòu)建 QR 碼。
- 請求者掃描駕駛員 AID 屏幕上的二維碼。
- 請求者對掃描的 QR 碼進行解碼并比較密碼是否匹配。
- 相同的密碼歡迎請求者并解鎖車門。
安全密碼
密碼短語已被證明比單字密碼更安全。使用的密碼最多可以有 63 個字符。當密碼有效時,系統(tǒng)可以有一個時間間隔,超過該時間密碼無效并且需要新的密碼。
粒子函數(shù)
該應用程序使用 Particle 函數(shù)通過 Cloud API 函數(shù)與 Web App 進行通信。
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;
}
當密碼匹配二維碼并驗證客戶身份時,調(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 格式,您必須定義一個標頭來標識您請求的內(nèi)容類型。這是您用于傳遞令牌的標頭的附加內(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ù)將響應分配給 deviceInfo 全局變量。然后對該變量進行 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)頁傳遞到相機控制網(wǎng)頁。該函數(shù)向 AID 設(shè)備發(fā)送確認命令。
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ù)將確認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)絡應用
Web App 是一個 HTML5/JavaScript 程序,它與 AID 設(shè)備建立通信,發(fā)送密碼,從 AID 設(shè)備讀取二維碼并確認密碼匹配。
在三星 Edge S7 手機中使用 Chrome 來運行 Web 應用程序。
下面的網(wǎng)頁顯示了主界面。該頁面嘗試使用收到的設(shè)備 ID 和令牌與 AID 設(shè)備建立通信。如果無法通信,界面中會顯示 Ping 按鈕。這使用戶有機會再次嘗試通信鏈接。
建立通信鏈路后,Ping 按鈕消失,并顯示從通信鏈路讀取的 AID 名稱和狀態(tài)
輸入您的唯一密碼,然后按發(fā)送密碼。該頁面會將密碼發(fā)送到 AID 設(shè)備(生成二維碼的地方)并返回成功狀態(tài)。
Send Passphrase 按鈕??被隱藏并顯示 Continue 按鈕。按繼續(xù)按鈕訪問讀取二維碼掃描頁面。
掃描二維碼頁面如上圖所示。車輛到達車窗后,AID 附在車窗上,按下啟動攝像頭按鈕激活車載攝像頭,聚焦 AID 設(shè)備上顯示的 QR 碼,然后按下拍攝快照。
然后該頁面處理 QR 碼并比較發(fā)送的密碼。如果兩者都匹配,則它會向 AID 設(shè)備發(fā)送一條確認消息,該設(shè)備會通過顯示帶有歡迎消息的綠色圓圈來響應。
有時相機的使用無法按預期工作,并且無法解釋 QR 碼。圖像格式的設(shè)置可能會出現(xiàn)問題,如果是這種情況,請按選擇文件,在三星 S7 中會顯示通過相機或瀏覽選擇文件的菜單。選擇相機并拍照,系統(tǒng)將拍攝該圖像并處理二維碼。
二維碼
用于處理 QR 碼的庫取自 Lazar Laszlo(Web 應用程序)和 Anun Panya(AID 應用程序)。Anun Panya 的庫經(jīng)過修改以支持粒子板和 Adafruit TFT 2.4 觸摸屏監(jiān)視器。還允許在 QR 碼顯示上使用縮放系數(shù)。
援助應用
AID App 非常簡單。它基本上基于幾個粒子函數(shù),這些函數(shù)定義了客戶觸發(fā)的事件。如粒子函數(shù)一節(jié)所示,這兩個函數(shù)定義的一個是顯示客戶發(fā)送的密碼,第二個是確認密碼已被驗證。
產(chǎn)品、車隊和客戶
該系統(tǒng)可以很容易地擴展到產(chǎn)品。客戶將共享連接到產(chǎn)品的所有設(shè)備,并且只與接受驅(qū)動程序服務請求的設(shè)備對話。然后可以根據(jù)實際安裝 AID 設(shè)備的驅(qū)動程序的地理位置和客戶請求服務的位置對設(shè)備進行分組。
粒子儀表板在創(chuàng)建產(chǎn)品時提供這些功能。當請求被批準時,產(chǎn)品服務將 AID 設(shè)備 ID、名稱和訪問令牌發(fā)送到設(shè)備。客戶接收這些信息并與 AID 建立直接通信鏈接。
客戶未連接到 AID 設(shè)備,但在收到信息時無法篡改 ID。
結(jié)論
該系統(tǒng)在提高騎手的安全性和防止有人冒充您的騎行方面表現(xiàn)出可喜的表現(xiàn)。
該系統(tǒng)還可用于從機場接人的豪華轎車服務,或與??我們從未接觸過的人或服務的任何會議,例如雜貨店送貨服務。
未來的工作預見了一種為服務正確收費的方法。
- 智能安全帽開源構(gòu)建
- Raven Pi安全攝像頭開源分享
- Lifi安全系統(tǒng)開源設(shè)計
- 家庭報警安全系統(tǒng)開源分享
- MiMaMori家庭安全警報開源分享
- 夜間安全燈控制開源分享
- 物聯(lián)網(wǎng)家庭安全模型開源分享
- 安全工作區(qū)開源分享
- 安全預警系統(tǒng)開源分享
- 激光安全報警器開源分享
- 開源網(wǎng)絡協(xié)議分析器WireShark軟件下載 15次下載
- 渾源軟件項目中的代碼結(jié)構(gòu)和開源組件綜述 5次下載
- ThinkPHP 6.0完全開發(fā)手冊資源下載 13次下載
- 開源課程行動倡議及科學導論綜述 6次下載
- 物聯(lián)網(wǎng)應用的SoC安全架構(gòu)設(shè)計方案 21次下載
- 介紹一種基于eBPF的Linux安全防護系統(tǒng) 708次閱讀
- 利用開源軟件的最佳實踐 464次閱讀
- 推薦GitHub上與嵌入式相關(guān)的高星開源項目 967次閱讀
- 前沿開源技術(shù)領(lǐng)域的開源大數(shù)據(jù)一一解讀 1005次閱讀
- 谷歌重新定義開源軟件漏洞治理框架 2657次閱讀
- 2020年開源的六大發(fā)展趨勢 4257次閱讀
- 在貼片加工廠中有哪些安全防護需要了解 1306次閱讀
- 開源過程中的5件注意事項 3548次閱讀
- 開源與云的一些爭論 3200次閱讀
- 選擇開源項目的重要因素 2122次閱讀
- 物聯(lián)網(wǎng)十大經(jīng)典開源操作系統(tǒng) 1w次閱讀
- 全年開源項目的盤點和總結(jié) 3231次閱讀
- NASA的開源軟件是什么?NASA的開源軟件的詳細分析 7186次閱讀
- 開源存儲的六大優(yōu)勢 3975次閱讀
- 11個機器學習開源項目 2767次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多