電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>創(chuàng)建安全臨時(shí)QR令牌

創(chuàng)建安全臨時(shí)QR令牌

2022-12-22 | zip | 0.31 MB | 次下載 | 免費(fèi)

資料介紹

描述

介紹

“我在那里”創(chuàng)建由 Azure Sphere 設(shè)備簽名的安全臨時(shí) QR 令牌(JSON Web 令牌)以供以后驗(yàn)證。

pYYBAGOSxb-AJZ0qAAFlX-IN9-k000.jpg
?

問題

在許多情況下,我們必須表明我們?cè)谀硞€(gè)地點(diǎn)和某個(gè)時(shí)間出現(xiàn)過。

我們不希望用戶必須事先被識(shí)別,因此身份證(磁卡、芯片卡、非接觸式卡或帶有 NFC 標(biāo)簽智能手機(jī))等解決方案不值得我們使用。也不值得使用生物特征識(shí)別的解決方案。

典型用例

  • 獎(jiǎng)勵(lì)使用回收箱的市民。
  • 一名送貨員或送貨員,以證明她/他去了一個(gè)收集點(diǎn)。
  • 為那些來到某些商店的人提供忠誠度積分。
  • 記錄內(nèi)部和外部員工的簽入和簽出
  • 記錄清潔工何時(shí)進(jìn)入和離開清潔某個(gè)區(qū)域。

解決方案

IWT (I Was There) 生成帶有日期標(biāo)記的 QR 碼,該標(biāo)記獨(dú)立于人,經(jīng)過簽名且是唯一的,以避免對(duì)其進(jìn)行修改,以保證該標(biāo)記以后未被修改。

IWT 的原型實(shí)施,用于獎(jiǎng)勵(lì)回收公民的計(jì)劃:

?

它是如何工作的

  • 用戶接近 IWT 設(shè)備。
  • 然后,用戶按下按鈕,或檢測(cè)到門的關(guān)閉或打開事件,或者通過接近傳感器通知設(shè)備生成新的二維碼。
  • 設(shè)備離線生成一個(gè)新的二維碼,其中包含簽名的 JWT 令牌、JSON Web 令牌,包括唯一標(biāo)識(shí)符和令牌發(fā)布的日期和時(shí)間。
  • 然后設(shè)備在低功耗電子紙顯示器上顯示二維碼。
?
  • 異步地,設(shè)備向 Azure 云發(fā)送事件以記錄和監(jiān)控新的 QR 請(qǐng)求
  • 用戶可以使用任何相機(jī)捕捉圖像以供以后驗(yàn)證,或者可以使用特定的應(yīng)用程序來驗(yàn)證令牌。
  • 在一段可配置的時(shí)間后,令牌從屏幕上消失,設(shè)備準(zhǔn)備好生成下一個(gè)令牌。
  • 對(duì)于忠誠度計(jì)劃,IWT 設(shè)備可以從 IOT Central 平臺(tái)發(fā)出編程的獎(jiǎng)勵(lì)消息。

或者,該設(shè)備可以生成一個(gè)聽不見的聲音信號(hào),該信號(hào)可以用任何錄音設(shè)備錄制(實(shí)施待定)。

挑戰(zhàn)

在解決方案的設(shè)計(jì)過程中,我遇到了幾個(gè)影響最終解決方案的問題:

  • 無法使用 Azure Sphere Pluton 安全子系統(tǒng)來加密數(shù)據(jù)。此外,Azure Sphere 目前不提供用于加密的 API。此外,也沒有可用于檢索設(shè)備標(biāo)識(shí)符的 API 函數(shù)。
  • 官方 JSON Web Token (JWT) 庫使用 OpenSSL 或 GnuTLS,這些庫對(duì)于這個(gè)嵌入式系統(tǒng)來說太重了。
  • 沒有用于 Azure Sphere 設(shè)備的 waveshare 電子紙顯示庫。

克服障礙

我的第一個(gè)決定是嘗試合并一個(gè)加密處理器模塊來執(zhí)行加密、簽名和存儲(chǔ)加密密鑰。不幸的是,我仍然沒有按時(shí)收到密碼模塊,不得不選擇軟件解決方案。

  • 對(duì)于密碼學(xué),我決定使用 wolfCrypt 庫。幸運(yùn)的是,wolfSSL 發(fā)布了一個(gè) Visual Studio 解決方案,其中包含用于 wolfCrypt 庫的加密算法測(cè)試。
  • JWT 令牌直接使用字符串函數(shù)形成,無需使用任何臨時(shí)庫。
  • 我為waveshare 1.54英寸電子紙模塊顯示器做了一個(gè)STM32 EPD驅(qū)動(dòng)的適配。

設(shè)計(jì)

硬件

硬件包括安富利 Azure Sphere MT320 入門套件開發(fā)套件和 Waveshare 1.54 英寸電子紙模塊電子墨水顯示器。

Microsoft Azure Sphere 解決方案的優(yōu)勢(shì)

pYYBAGOSxcWAIQH1AACsDGqV56s532.png
使用 Azure Sphere 解決方案的優(yōu)勢(shì)
?

Avnet Azure Sphere MT320 入門套件

  • Azure Sphere MT3620 入門套件支持使用 Avnet 認(rèn)證的 Azure Sphere 模塊進(jìn)行快速原型制作,該模塊基于 Microsoft MT3620AN 設(shè)備。
  • MT3620 是首款通過 Azure Sphere 認(rèn)證的“微控制器”,是一款具有“端到端安全性”的 SoC 物聯(lián)網(wǎng)設(shè)備。
  • 用戶應(yīng)用程序可以針對(duì)它的 500 MHz ARM Cortex-A7 內(nèi)核以及兩個(gè)旨在支持實(shí)時(shí)要求的通用 200 MHz ARM Cortex-M4F I/O 子系統(tǒng)內(nèi)核。片上外設(shè)(GPIO、UARTI2C、SPI、I2S、PWM 和 ADC)可以映射到這三個(gè)用戶可訪問內(nèi)核中的任何一個(gè)。
poYBAGOSxciAFwqbAADRrLJlyxY014.png
?

微雪1.54寸電子紙模組電子墨水屏

  • 選擇電子墨水屏是因?yàn)樗哂酗@示二維碼的良好品質(zhì),并且在具有這些特性的項(xiàng)目中具有較低的功耗。
  • 它是一個(gè)電子墨水顯示模塊,1.54英寸,200 x 200分辨率,帶有嵌入式控制器,通過SPI接口通信,支持局部刷新。
  • 特點(diǎn):低功耗、寬視角、無電顯示清晰。
poYBAGOSxcyATvtIAAAvI8thKWM176.png
Waveshare 1.54 電子紙模組 - 后視圖
?
pYYBAGOSxc6AFGrmAAAke-9sVhQ879.png
Waveshare 1.54 電子紙模組 - 正視圖
?

軟件設(shè)計(jì)

狀態(tài)圖

  • 空閑顯示“按A”
  • 獎(jiǎng)勵(lì)顯示與 QR 關(guān)聯(lián)的獎(jiǎng)勵(lì)(如果有)
  • JWT_QR問題并顯示新的 QR 令牌
  • 時(shí)鐘顯示時(shí)間時(shí)鐘
  • 設(shè)置顯示設(shè)置
  • 同步設(shè)置 與 Azure 云同步設(shè)置
  • Azure 云異步任務(wù)發(fā)送/接收/同步云數(shù)據(jù)
poYBAGOSxdKAPpbDAAA-a2wIotY551.png
內(nèi)河運(yùn)輸狀態(tài)圖
?

用戶界面

?

空閑屏幕

在空閑狀態(tài)期間,屏幕顯示按下 A 按鈕以獲取新 QR 的指示

poYBAGOSxf2AUqLqAAmnlMz-32A505.jpg
空閑屏幕
?

獎(jiǎng)勵(lì)畫面

如果收到下一個(gè) QR 的新獎(jiǎng)品狀態(tài),則按下按鈕 A 后,將顯示與 QR 關(guān)聯(lián)的獎(jiǎng)品。客戶忠誠度計(jì)劃的選項(xiàng)。

pYYBAGOSxieAWx77AAqzfsmgR70553.jpg
獎(jiǎng)勵(lì)畫面
?

二維碼屏幕

然后是包含簽名的 JWT 令牌的新 QR 碼。從 Azure 云中設(shè)置的時(shí)間將處于此狀態(tài)。

poYBAGOSxlqAC25vAAoiWgiMDnA802.jpg
二維碼屏幕
?

時(shí)鐘屏幕和設(shè)置

按下 B 按鈕時(shí),會(huì)顯示帶有設(shè)備當(dāng)前時(shí)間的時(shí)鐘,如果再次按下,則會(huì)顯示應(yīng)用程序設(shè)置。

pYYBAGOSxn6AVbE2AAtljgsTe4k407.jpg
時(shí)鐘屏幕和設(shè)置
?

?

創(chuàng)建 JWT 令牌 QR

JWT 令牌 QR 剖析

pYYBAGOSxoOAd1GoAACDxNl5MDk976.png
?

QR 碼包含此字符串:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlMmRhNzc3My1hN2NkLTQ0YTAtODVkNy00M2ZlMDY1NGNiMjItN2RjNTQ4MTEtNWRjYjBjNzAiLCJpYXQiOjE1NzM1ODgwODB9.Dm8qKzv5n0EHMCcIECn08Ev_eppzPNc-hGtuICCNGK0

它是一種緊湊形式的 JSON Web 令牌。JWT 通常如下所示:xxxxx.yyyyy.zzzzz

JSON Web Token (JWT) 是一種緊湊的 URL 安全方式,用于表示要在兩方之間傳輸?shù)穆暶鳌?/font>JSON Web Token (JWT) 是一個(gè)開放標(biāo)準(zhǔn) (RFC 7519)。JWT 中的聲明被編碼為 JSON 對(duì)象,用作 JSON Web 簽名 (JWS) 結(jié)構(gòu)的有效負(fù)載或用作 JSON Web 加密 (JWE) 結(jié)構(gòu)的明文。信息可以被驗(yàn)證和信任,因?yàn)樗墙?jīng)過數(shù)字簽名的。JWT 可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公鑰/私鑰對(duì)進(jìn)行簽名。https://tools.ietf.org/html/rfc7519

它由以點(diǎn)(.)分隔的三部分組成,分別是:

  • 標(biāo)頭:包含令牌的元數(shù)據(jù),它至少包含簽名類型和加密算法。
  • Payload/Claim:包含我們要傳輸?shù)男畔ⅲ?/font>
  • Signature:使用header和payload計(jì)算得出,也可以驗(yàn)證內(nèi)容沒有被篡改。

這三部分的內(nèi)容都是Base64Url編碼的。對(duì)上述token的三部分進(jìn)行解碼:

poYBAGOSxoaAY579AAB2cdTAZgE878.png
?

Header :聲明編碼對(duì)象是一個(gè) JSON Web Token,并且它是使用 HS256 算法簽名的。

{
"alg": "HS256",
"typ": "JWT"
}

Payload /Claim :我們正在使用兩個(gè)已注冊(cè)的聲明名稱。在 JWT 的上下文中,聲明可以定義為關(guān)于實(shí)體的聲明,以及關(guān)于令牌本身的附加元數(shù)據(jù)。服務(wù)器可用于正確處理 JSON Web Token 身份驗(yàn)證的聲明和聲明。我們可以提供多種索賠;這些包括已注冊(cè)的聲明名稱、公共聲明名稱和私人聲明名稱。

  • iat :“頒發(fā)于”時(shí)間,以 Unix 時(shí)間表示,頒發(fā)令牌
  • jti :JWT ID 聲明為 JWT 提供了唯一標(biāo)識(shí)符
{
"jti": "e2da7773-a7cd-44a0-85d7-43fe0654cb22-7dc54811-5dcb0c70",
"iat": 1573588080
}

https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-10.1

簽名:數(shù)字簽名或消息驗(yàn)證代碼 (MAC)。

https://tools.ietf.org/html/rfc7515

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  [your-256-bit-secret]
)

保護(hù) JWT 令牌

Azure sphere 不提供 API 來為來自 A7 和/或 M4 子系統(tǒng)的加密函數(shù)調(diào)用獲取硬件支持/加速。所以我們正在使用 wolfSSL 嵌入式 SSL 庫(以前稱為 CyaSSL)

狼SSL

wolfSSL 嵌入式 SSL 庫(以前稱為 CyaSSL)是一個(gè)用 ANSI C 編寫的輕量級(jí) SSL/TLS 庫,適用于嵌入式、RTOS 和資源受限環(huán)境——主要是因?yàn)樗捏w積小、速度快和功能集。由于其免版稅定價(jià)和出色的跨平臺(tái)支持,它也常用于標(biāo)準(zhǔn)操作環(huán)境。wolfSSL 支持當(dāng)前 TLS 1.3 和 DTLS 1.2 級(jí)別的行業(yè)標(biāo)準(zhǔn),比 OpenSSL 小 20 倍,wolfSSL 由 wolfCrypt 庫提供支持。

https://github.com/wolfSSL/wolfssl/tree/master/IDE/VS-AZURE-SPHERE

鍵控哈希 HMAC

wolfCrypt 目前提供 HMAC 來滿足消息摘要的需要。結(jié)構(gòu) Hmac 位于標(biāo)題“wolfssl/wolfcrypt/hmac.h”中。

HMAC 初始化是用 wc_HmacSetKey() 完成的。對(duì)于我們使用 HMAC SHA-256 的項(xiàng)目

標(biāo)頭

{"alg":"HS256","typ":"JWT"}
BASE64     eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
BASE64URL  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

有效載荷

{"sub":"1234567890","name":"John Doe","iat":1516239022}
BASE64  eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ==
BASE64URL  eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

驗(yàn)證簽名

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
0123456789ABCDEF0123456789ABCDEF )

結(jié)果是:

HMACSHA256(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ,
0123456789ABCDEF0123456789ABCDEF)

最后:

HEX         A650E04A6412F8B67A06942E513556D35C9BE22FC8EA12D92970AACFB76B6EED
HEX2B64     plDgSmQS+LZ6BpQuUTVW01yb4i/I6hLZKXCqz7drbu0=
B642B64URL  plDgSmQS-LZ6BpQuUTVW01yb4i_I6hLZKXCqz7drbu0

編碼令牌

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
.plDgSmQS-LZ6BpQuUTVW01yb4i_I6hLZKXCqz7drbu0

hmac hmac;

byte        key[24];            /*fill key with keying material*/
byte        buffer[2048];   /*fill buffer with data to digest*/
byte        hmacDigest[SHA256_DIGEST_SIZE];
wc_HmacSetKey(&hmac, SHA256, key, sizeof(key));
wc_HmacUpdate(&hmac, buffer, sizeof(buffer));
wc_HmacFinal(&hmac, hmacDigest);

hmacDigest 現(xiàn)在包含緩沖區(qū)中散列數(shù)據(jù)的摘要。

生成二維碼

我們正在使用 Richard Moore QR Code 庫,這是一個(gè)用 C 語言生成 QR 碼的簡單庫,針對(duì)處理和內(nèi)存受限系統(tǒng)進(jìn)行了優(yōu)化。

特征:

  • 基于堆棧(不需要堆;但如果需要,您可以使用堆)
  • 低內(nèi)存占用(相對(duì))
  • 編譯時(shí)剝離不必要的邏輯
  • 麻省理工學(xué)院執(zhí)照;

https://github.com/ricmoo/QRCode

走向云端

實(shí)施步驟

  • 創(chuàng)建自定義 IoT Central 應(yīng)用程序
  • 創(chuàng)建設(shè)備模板
  • 將 QR 請(qǐng)求事件添加到測(cè)量選項(xiàng)卡
  • 將切換控件添加到“設(shè)置”選項(xiàng)卡:RGB LED 控件、WWAN 和 APP LED 控件
  • 將應(yīng)用程序信息添加到屬性選項(xiàng)卡
  • 應(yīng)用版本
  • 當(dāng)前 SSID
  • BSSID
  • 當(dāng)前的 Wi-Fi 射頻

資源

https://www.element14.com/community/groups/azuresphere/blog/2019/05/09/avnets-azure-sphere-starter-kit-out-of-box-demo-part-3-of-3

監(jiān)控 Qr 請(qǐng)求

每當(dāng)新的每周 QR 碼異步發(fā)布到 Azure 云時(shí),在構(gòu)建應(yīng)用程序時(shí)發(fā)送到 Azure IoT Central 或 Azure IoT Hub。

下圖中看到的點(diǎn)對(duì)應(yīng)于按下 A 按鈕后或當(dāng)簧片開關(guān)檢測(cè)到從打開到關(guān)閉的步驟時(shí)生成 QR 碼的事件。

pYYBAGOSxo6Abxg1AADicOdqEE8280.png
Azure IoT 門戶中的 QR 請(qǐng)求事件
?
pYYBAGOSxpaAOB96AADdJm0hKHM946.png
QR 請(qǐng)求事件的詳細(xì)列表視圖
?

我們可以看到帶有生成的 QR ID 的事件的詳細(xì)列表視圖。

編程顯示新消息

新的獎(jiǎng)勵(lì)或信息消息可以從 IoT Central 編程或完全禁用。

poYBAGOSxpiAN1QpAADO6Ka39FY052.png
?

獲取設(shè)備信息

特性

Key               Value
userLedRed        true | false    enables/disables the red LED of the user RGB LED
userLedGreen      true | false    enables/disables the green LED of the user RGB LED
userLedBlue       true | false    enables/disables the blue LED of the user RGB LED
appLed            true | false    enables/disables the application LED
wifiLed           true | false    enables/disables the WI-FI LED

集成電子紙顯示

Waveshare 1.54inch e-Paper V2概述

1.54英寸電子紙V2是一款有源矩陣電泳顯示器(AMEPD),具有接口和參考系統(tǒng)設(shè)計(jì)。1.54”活動(dòng)區(qū)包含200×200像素,具有1位黑白全顯示能力。集成電路包含柵極緩沖器、源極緩沖器、接口、時(shí)序控制邏輯、振蕩器、DC-DC。SRAM.LUT、VCOM 和邊框隨每個(gè)面板提供。

https://www.waveshare.com/wiki/1.54inch_e-Paper_Module

pYYBAGOSxpuABJ_nAAA-ePFZoPk686.png
電子紙 - 引腳符號(hào)說明
?

引腳圖

此表顯示了 eINK click 上的引腳分配如何對(duì)應(yīng)于 mikroBUS? 插座上的引腳分配(后者顯示在中間的兩列中)。

poYBAGOSxp6AHxmMAACp70IdFoc193.png
引腳圖
?

單擊 Socket #1 引腳分配

poYBAGOSxqCAOOn3AADheb6NmZc923.png
AVNET KIT 點(diǎn)擊套接字#| 引出線
?

源代碼引腳定義

#define AVT_MODULE_GPIO31_SCLK1_TXD1 (GPIO_Id)31
#define AVT_MODULE_GPIO32_MOSI1_RTS1_CLK1 (GPIO_Id)32
#define AVT_MODULE_GPIO33_MISO1_RXD1_DATA1 (GPIO_Id)33
#define AVT_MODULE_GPIO34_CSA1_CTS1 (GPIO_Id)34
#define EPAPER_DC (GPIO_Id)0
#define EPAPER_BUSY (GPIO_Id)2
#define EPAPER_RESET (GPIO_Id)16
#define EPAPER_SCLK AVT_MODULE_GPIO31_SCLK1_TXD1
#define EPAPER_MOSI AVT_MODULE_GPIO32_MOSI1_RTS1_CLK1
#define EPAPER_CS AVT_MODULE_GPIO34_CSA1_CTS1

通訊協(xié)議

SPI接口

pYYBAGOSxqKAeJHWAABYTf0H_ao828.png
?

與傳統(tǒng)的SPI協(xié)議不同,從機(jī)到主機(jī)的數(shù)據(jù)線是隱藏的,因?yàn)樵O(shè)備只有顯示需求。

CS為slave片選,當(dāng)CS為低電平時(shí),芯片使能。(CS#) 是連接到 MCU 的片選輸入。該芯片啟用 MCU 通信:僅當(dāng) CS# 被拉低時(shí)。

DC為數(shù)據(jù)/命令控制引腳,DC=0時(shí)寫命令,DC=1時(shí)寫數(shù)據(jù)。(D/C#) 是連接到 MCU 的數(shù)據(jù)/命令控制引腳。當(dāng)引腳被拉高時(shí),數(shù)據(jù)將被解釋為數(shù)據(jù)。當(dāng)引腳被拉低時(shí),數(shù)據(jù)將被解釋為命令。

SCLK 是 SPI 通信時(shí)鐘。

SDIN是SPI通信中主機(jī)到從機(jī)的數(shù)據(jù)線。

(RES#)為復(fù)位信號(hào)輸入。復(fù)位為低電平有效。注 1.5-4:此引腳(BUSY)為忙狀態(tài)輸出引腳。當(dāng) Busy 為高電平時(shí),芯片的運(yùn)行不應(yīng)中斷,也不應(yīng)向模塊發(fā)出任何命令。當(dāng)驅(qū)動(dòng) IC 工作時(shí),驅(qū)動(dòng) IC 會(huì)將 Busy 引腳置為高電平,例如: - 輸出顯示波形;或 - 與數(shù)字溫度通信。

(BS1) 用于 3 線 SPI 或 4 線 SPI 選擇。當(dāng)它為“低”時(shí),選擇 4 線 SPI。當(dāng)它為“高”時(shí),選擇 3 線 SPI(9 位 SPI)。

SPI通信有數(shù)據(jù)傳輸時(shí)序,由CPHA和CPOL組合而成。

  • 1. CPOL 決定空閑狀態(tài)下串行同步時(shí)鐘的電平。當(dāng) CPOL = 0 時(shí),電平為 Low。然而,CPOL對(duì)傳輸影響不大。
  • 2、CPHA決定數(shù)據(jù)是在串行同步時(shí)鐘的第一個(gè)時(shí)鐘沿還是第二個(gè)時(shí)鐘沿采集;當(dāng) CPHL = 0 時(shí),在第一個(gè)時(shí)鐘邊沿收集數(shù)據(jù)。

SPI有4種通信模式。常用SPI0,其中CPHL=0,CPOL=0。

數(shù)據(jù)傳輸在SCLK的第一個(gè)下降沿開始,在一個(gè)時(shí)鐘周期內(nèi)傳輸8位數(shù)據(jù)。這里使用SPI0,數(shù)據(jù)按位傳輸,MSB在前。

感知用戶

除了在按下按鈕時(shí)啟動(dòng)新的二維碼之外,我們還可以在它檢測(cè)到用戶何時(shí)使用接近傳感器使用回收容器時(shí)激活它。

#define AVT_MODULE_GPIO42_ADC1	MT3620_GPIO42
#define AVT_SK_CM1_AN AVT_MODULE_GPIO42_ADC1
#define PROXIMITY_GPIO AVT_SK_CM1_AN

我們使用干簧管和磁鐵來檢測(cè)用戶是否打開了容器門。

我們將使用的簧片開關(guān)是常開的。我們有兩種選擇來檢測(cè)門何時(shí)完全關(guān)閉或門何時(shí)完全打開。對(duì)于這個(gè)項(xiàng)目,我們將使用第一個(gè)替代方案:

檢測(cè)門完全關(guān)閉:當(dāng)門關(guān)閉時(shí),磁鐵使干簧管閉合,并一直處于該狀態(tài),直到門被打開。我們將干簧管接地,然后通過 4.7K 拉高 GPIO 引腳 42。在關(guān)閉狀態(tài)下將讀取低。當(dāng)從高到低時(shí),將發(fā)送新 QR 的事件,即當(dāng)門再次完全關(guān)閉時(shí),獎(jiǎng)勵(lì)用戶在使用后關(guān)閉門 :D。

poYBAGOj1OmAMOmlAAAE1Zw0wSE613.png
GPIO42 檢測(cè)關(guān)門
?

?

pYYBAGOj1RKAQGYQAAnaZMtzxME591.jpg
垃圾回收箱內(nèi)的干簧管和磁鐵
?

?

開發(fā)工具

驗(yàn)證二維碼

從帶有 QR 掃描儀的 Android 設(shè)備:

pYYBAGOj1ReAKTLqAAG1oMBuloU012.png
從 Android 設(shè)備驗(yàn)證二維碼
?

驗(yàn)證 JWT

使用 JWT 調(diào)試器驗(yàn)證簽名:https ://jwt.io/#debugger

poYBAGOj1RqAEQ0HAACJHTDpPxI568.png
JWT調(diào)試器
?

?

?


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

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  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)用手冊(cè)
  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電氣工程師手冊(cè)免費(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ū)動(dòng)電路設(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é)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)