資料介紹
描述
公司開始公布他們的遠程員工重返工作崗位的政策。重返辦公室必然會增加新的 COVID-19 病例數(shù)。但是,可能有一種方法可以減少辦公室內(nèi) COVID-19 病毒的傳播。一般來說,辦公室都有隔間,有助于隔離直接的人際傳播,但仍然存在傳播熱點,尤其是在共享空間。會議室是最糟糕的罪魁禍首之一,因為會議室不僅受到限制并在不同群體之間快速共享,而且僅在一天結(jié)束時才進行清潔。將責任留給任何共同行動,例如給辦公室植物澆水,讓會議室里的任何人承擔責任,即使曾經(jīng)得到維護,也很少得到支持。甚至白板的標記也很少被替換。此外,每天/每周消耗多個消毒濕巾/罐是非常浪費的,并且不會隨著會議次數(shù)而增加。因此,我提出了一種會議集成可再填充物聯(lián)網(wǎng)設(shè)備的解決方案,該設(shè)備對已發(fā)生會議的會議室進行消毒。
它是如何工作的?
我的解決方案包括一個全棧應(yīng)用程序以及一個嵌入式設(shè)備。有幾個工作部分,所以我將首先對系統(tǒng)流程進行高級概述,然后詳細解釋。這樣,那些關(guān)注下一節(jié)標題為“我是如何構(gòu)建它的?可以理解為什么我做了我所做的。
以下是該系統(tǒng)的高級概述:
我的解決方案從一個全棧應(yīng)用開始。我有一個顯示 GUI 的前端:
設(shè)置參數(shù)并切換“檢查可用性”按鈕后,后端會查看所選會議間隔的 AWS DynamoDB 表,并返回可用會議列表以及會議間隔可用的房間. 下面是表格的示例:
為了簡化開發(fā)過程,設(shè)置了一些注意事項。會議僅每一刻鐘開始,持續(xù)時間是一刻鐘的倍數(shù),并且 Room 1 被硬編碼以對應(yīng)于我的 Core2ForAWS 設(shè)備。選擇房間 1 的會議后,Core2ForAWS 元素的設(shè)備影子將更新為所選會議間隔。設(shè)備影子(稍后解釋)將如下所示:
設(shè)備邏輯
core2ForAWS 元素將解析來自設(shè)備影子的會議間隔信息,并填充大小為 96 的會議間隔數(shù)組。數(shù)組中的每個索引對應(yīng)于該索引對應(yīng)的 15 分鐘間隔的會議狀態(tài)。由于 1 天是 24 小時,因此有 96 個間隔,每個間隔為 15 分鐘。15 分鐘間隔參考從上午 12:00 開始。12:00 AM 被認為相當于 0000 分鐘,第 0 個 15 分鐘間隔。因此,15 分鐘間隔數(shù)組的索引 0 對應(yīng)于從 12:00 AM 到 12:15 AM 的會議間隔的會議狀態(tài)。如果安排了從上午 12:00 到上午 12:15 的會議,則數(shù)組的索引 0 將標記為“1”以表示會議間隔,如果沒有安排在上午 12:00 的會議,則將標記為“0”到上午 12:15 會議間隔。
現(xiàn)在,我創(chuàng)造了“先生”的嵌入式設(shè)備(它是整個設(shè)備,包括 core2ForAWS 元素)接管了。Mister 會檢查每個 15 分鐘間隔邊緣,并且僅當邊緣出現(xiàn)在剛剛結(jié)束的會議和沒有會議的 15 分鐘間隔之間時才會激活。會議間隔邊緣是兩個會議間隔之間的邊界。例如上午 12:00->12:15 會議間隔和 12:15->12:30 會議間隔之間的邊界。因此,例如,如果先生在 12:15 檢查并注意到從 12:00 AM -> 12:15 AM 有一個會議,并且從 12:15 AM -> 12:30 AM 會議沒有即將召開的會議,則會出現(xiàn)激活條件間隔。就索引而言,我們可以將其表示為從任何 array[j] = 1 到 array[j+1] = 0 的任何轉(zhuǎn)換,對于所有 j >= 0 &
一旦找到這樣的 1->0 邊緣,先生的 PIR 傳感器就會被激活,并每 2 分鐘檢查一次移動,以防剛剛發(fā)生的會議進入另一個會議間隔。如果在下一個會議間隔之前檢測到活動,則在檢查即將到來的會議間隔邊緣之前將當前會議間隔標記為“1”,因為存在會議間隔的活動價值。這張圖可以闡明這個想法:
假設(shè)目前,某個時間 > 8:00 am 和 < 8:15 am,由 1 表示。沒有安排在上午 8:00 舉行的實際會議,所以先生對會議間隔的內(nèi)部表示是數(shù)組索引:32(上午 8:00 是從上午 12:00 開始的 8 小時,8 * 4 = 32 = 上午 8:00 的數(shù)組索引)是“0”。如果 PIR 一直持續(xù)到上午 8:15(由 2 表示),則索引 32 處的間隔被標記為“1”。索引 32 被標記為“1”,因為 15 分鐘的會議間隔(上午 8:00)不打算主持會議,但仍然主持了 15 分鐘的活動。
如果 PIR 傳感器在 2 分鐘內(nèi)未檢測到活動,則會啟動輔助檢查。首先,會出現(xiàn)提示音,以提醒房間內(nèi)的任何人即將噴水,然后顯示一個設(shè)備屏幕,顯示從 30 秒開始的倒計時,并帶有確認按鈕(視頻演示將顯示這一點)。如果確認屏幕在整個持續(xù)時間內(nèi)都被忽略,則先生啟動伺服系統(tǒng)并噴灑房間,并等待下一個 15 分鐘間隔。如果確實確認了活動,則先生將返回以返回 PIR 邏輯。
我是如何建造它的?
我開始花一些時間學習 JS,reactJS:https ://reactjs.org/docs/getting-started.html和 nodeJS:https ://nodejs.org/en/docs/ 。我將在下面解釋 AWS DynamoDB 和 AWS IoT Core 集成并鏈接我的全棧應(yīng)用程序存儲庫。
我首先在這里設(shè)置我的 Core2ForAWS:https ://edukit.workshop.aws/en/getting-started.html ,只需完成這些步驟。然后,我按照以下說明設(shè)置 AWS IoT Core:https ://edukit.workshop.aws/en/blinky-hello-world/prerequisites.html 。到此階段,您應(yīng)該能夠獲取 AWS IoT 終端節(jié)點,并且您創(chuàng)建的 IAM 用戶應(yīng)該具有以下策略:
如果您找不到添加此策略的位置,請使用您的根電子郵件登錄 AWS 控制臺,然后單擊“IAM”。你應(yīng)該在左邊看到這個:
單擊“用戶”,然后單擊您創(chuàng)建的用戶。你會看到這樣的東西:
添加 AWSIoTFullAccess 策略。
這是我對正在發(fā)生的事情的解釋。您創(chuàng)建的 AWS 賬戶包含所有資源,例如 AWS IoT Core、DynamoDB、IAM 等。您創(chuàng)建的 IAM 用戶是經(jīng)過身份驗證的實體,可以根據(jù) IAM 用戶的策略訪問 AWS 賬戶的資源。當使用 IAM 用戶密鑰在 CLI 上運行命令“ aws configure”時,會創(chuàng)建一個配置文件并將其與用戶密鑰一起存儲在您的筆記本電腦上。調(diào)用 AWS 開發(fā)工具包 API 時,會找到配置文件。然后會發(fā)生一些調(diào)解,以便被調(diào)用的 API 具有與使用“ aws configure”命令配置密鑰的 IAM 用戶的策略相同的權(quán)限。
現(xiàn)在,將 AmazonDynamoDBFullAccess 策略也添加到您的 IAM 用戶。它應(yīng)該如下所示:
以下是與 AWS 交互并帶有注釋的相關(guān)代碼片段:
AWS.config.dynamodb = {
region: "us-west-2",
//replace endpoint with own endpoint
endpoint: "https://dynamodb.us-west-2.amazonaws.com",
};
AWS.config.iotdata = {
region: "us-west-2",
//replace endpoint with own endpoint
endpoint: "a36ozlrpzvmdr4-ats.iot.us-west-2.amazonaws.com",
};
// setting up the necessary AWS SDK objects
let dynamodb = new AWS.DynamoDB();
let docClient = new AWS.DynamoDB.DocumentClient();
let iotdata = new AWS.IotData();
// parameters for the DynamoDB table to be created
// replace TABLE_NAME with own table name
// replace PRIMARY_KEY with own primary key name
// replace SECONDARY_KEY with own secondary key name
let params = {
TableName: TABLE_NAME,
KeySchema: [
{ AttributeName: PRIMARY_KEY, KeyType: "HASH" },
{ AttributeName: SECONDARY_KEY, KeyType: "RANGE" },
],
AttributeDefinitions: [
{ AttributeName: PRIMARY_KEY, AttributeType: "S" },
{ AttributeName: SECONDARY_KEY, AttributeType: "S" },
],
ProvisionedThroughput: {
ReadCapacityUnits: 10,
WriteCapacityUnits: 10,
},
};
// the API that creates the DynamoDB table
dynamodb.createTable(params, function (err, data) {
if (err) {
console.error(
"Unable to create table. Error JSON:",
JSON.stringify(err, null, 2)
);
} else {
console.log(
"Created table. Table description JSON:",
JSON.stringify(data, null, 2)
);
}
});
// parameters for shadow
// payload is what to update the shadow with
// thingName is the name of the thing that you registered with AWS IoT Core
let shadowParams = {
// core2IoTPayload should be a JSON of your own choice
payload: JSON.stringify(core2IoTPayload),
// replace thingName with the thing name of own device
thingName: "01231bd1cbac971101"
};
// API to update shadow
iotdata.updateThingShadow(shadowParams, function (err, data) {
if (err) {
console.error("Unable to send to core2", JSON.stringify(err, null, 2));
} else {
console.log("send to core2 succeeded:");
}
});
// API to update DynamoDB table
docClient.put(putParams, function (err, data) {
if (err) {
res.send(JSON.stringify("error"));
} else {
res.send(JSON.stringify("success"));
}
});
下一步是創(chuàng)建先生設(shè)備。我想要一個可以用晶體管激活的電動水泵,所以我買了其中一個:
我把它拆開,它看起來像這樣:
事實證明,只需用開關(guān)短接兩個端子即可打開(您可以在原理圖部分看到這一點)。我將電子設(shè)備與伺服器和 PIR 傳感器一起粘在一些紙板上,然后向前跳了幾步(我忘了拍中間照片),我最終得到了這個:
電動泵機構(gòu)位于中間部分,就在空透明罐的正上方。四根柱子中心的彎曲“向后 r”部分使霧氣輸出偏轉(zhuǎn)。最重要的是,我有 PIR 傳感器、控制泵機制的晶體管和 Core2ForAWS 設(shè)備。一旦霧氣打開,電動泵機構(gòu)就會從罐中直接向上噴射霧狀消毒劑。伺服器開始動作,彎曲的“向后 r”段以 360 度的方式偏轉(zhuǎn)薄霧。如果我有一臺 3D 打印機,這個設(shè)備的設(shè)計會大不相同,而且效率更高(霧偏轉(zhuǎn)應(yīng)該旋轉(zhuǎn)霧輸出的噴嘴,而不是霧本身)。對于 PIR,我將其設(shè)置為像這樣的非重新觸發(fā)模式,因此每次移動都會導致邊緣觸發(fā)中斷:
?。。。?/font>筆記 ?。。?!原理圖中的電路圖需要澄清一下,舵機的5V和GND線應(yīng)該連接到外部電池或輸入電纜到 core2ForAWS !如果您連接到外部電池,請確保電池的接地連接到 core2ForAWS 的接地。從 core2ForAWS 連接到晶體管基極的導線是 core2ForAWS 上的 PIN26。在進行更改之前,我用完了 CircuitLab 免費試用版。
下面的代碼部分列出了啟動和運行 core2ForAWS 組件以及全棧應(yīng)用程序的確切步驟。
之前,我提到了一個設(shè)備影子,我想首先邀請您在這里查看此鏈接:解釋什么是設(shè)備影子。您可以將設(shè)備影子視為 AWS IoT“事物”與外部影響(即全棧應(yīng)用程序)之間的通信媒介。實際上,它更復雜,但它超出了本文的范圍。從本質(zhì)上講,發(fā)生的事情是全棧應(yīng)用程序?qū)懭氪嗽O(shè)備影子,并且預置并連接到 AWS IoT Core 的 core2ForAWS 收到剛剛寫入設(shè)備影子的更改的通知。
要開始使用全棧應(yīng)用程序,請遵循此處的 README:https ://github.com/daxlar/mister-frontend和此處:https : //github.com/daxlar/mister-backend上面的解釋可能比在整個文章中插入代碼塊更好地解釋了代碼。
?
設(shè)備的接線將在“原理圖”部分列出,所有代碼將在“代碼”部分。進入演示!
?
- 物聯(lián)網(wǎng)解決方案 2次下載
- 探究機械工程物聯(lián)網(wǎng)系統(tǒng)遠程解決方案 15次下載
- 基于流量指紋的物聯(lián)網(wǎng)設(shè)備識別方法 13次下載
- 一種面向物聯(lián)網(wǎng)服務(wù)的Web攻擊向量檢測方法 7次下載
- 基于物聯(lián)網(wǎng)的智慧醫(yī)院建設(shè)解決方案
- 物聯(lián)網(wǎng)芯片設(shè)計應(yīng)該如何降耗
- RF5325應(yīng)用在WiFi和藍牙前端模塊的集成解決方案應(yīng)用和數(shù)據(jù)免費下載
- 基于諸智云的工業(yè)物聯(lián)網(wǎng)解決方案詳細資料免費下載 24次下載
- 物聯(lián)網(wǎng)的真正價值是什么?
- 選擇工業(yè)物聯(lián)網(wǎng)標準的中間件解決方案 1次下載
- 一種物聯(lián)網(wǎng)接入技術(shù)方案 16次下載
- 一種智能無線LED照明系統(tǒng)解決方案 5次下載
- 一種簡單的圖案填充算法
- 一種有效的可轉(zhuǎn)換的認證加密方案
- 一種高效、低延時的會議密鑰管理方案
- 支持安全物聯(lián)網(wǎng)設(shè)備開發(fā)和制造的解決方案 1111次閱讀
- 為什么說網(wǎng)關(guān)在任何工業(yè)物聯(lián)網(wǎng)解決方案中都很重要? 3556次閱讀
- 如何構(gòu)建一個完整的物聯(lián)網(wǎng)解決方案 4808次閱讀
- Inventek物聯(lián)網(wǎng)照明解決方案系統(tǒng)架構(gòu)分析 2021次閱讀
- 嵌入式物聯(lián)網(wǎng)設(shè)備的3種方案 3072次閱讀
- 基于一種可以用按鍵進行調(diào)節(jié)LCD背光亮度的解決方案 8164次閱讀
- 最適合物聯(lián)網(wǎng)聯(lián)網(wǎng)的是哪一種技術(shù) 2903次閱讀
- 大規(guī)模物聯(lián)網(wǎng)的要求以及解決方案組件 1880次閱讀
- EMI電磁屏蔽-主要材料簡介 1.8w次閱讀
- 一種使用ARM+FPGA高速訪問USB設(shè)備的設(shè)計方案詳解 5665次閱讀
- Pelion物聯(lián)網(wǎng)平臺如何進一步助力Arm的物聯(lián)網(wǎng)戰(zhàn)略? 3710次閱讀
- 如何設(shè)計一個簡單效率的小型物聯(lián)網(wǎng)設(shè)備供電方案? 5688次閱讀
- 一種基于GPRS的單片機上網(wǎng)的解決方案 4491次閱讀
- 一種基于混合信號技術(shù)的汽車電子單芯片設(shè)計 1196次閱讀
- 一種基于DSP的視頻監(jiān)控系統(tǒng)解決方案 3440次閱讀
下載排行
本周
- 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中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用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次下載 | 免費
評論
查看更多