電子發(fā)燒友App

硬聲App

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

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

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

安全工作區(qū)開源分享

2022-11-04 | zip | 0.07 MB | 次下載 | 2積分

資料介紹

描述

什么是安全工作區(qū)

安全工作區(qū)旨在創(chuàng)建一個點對點網(wǎng)絡(luò),其中一堆AWS IoT EduKit將共享一個通用接口。接口將由 BLE(Bluetooth LOW ENERGY) UART 協(xié)議創(chuàng)建。這些設(shè)備可以一次在它們之間共享一個消息。

當(dāng)一個設(shè)備(Sender)想要發(fā)送消息時,它會與其他設(shè)備(Recipient)連接并收集它的GATT屬性。這些屬性是由接收設(shè)備提供的服務(wù)和特性。收集這些屬性后,發(fā)送方設(shè)備可以在該接口上讀取/寫入數(shù)據(jù),接收方設(shè)備將監(jiān)聽這些數(shù)據(jù)。

一個 android 應(yīng)用程序將作為管理設(shè)備也與該界面相關(guān)聯(lián)。如果任何設(shè)備想要向管理應(yīng)用程序發(fā)送消息,它也是可能的。

為什么選擇安全工作區(qū)

近來,自然災(zāi)害的加劇已成為大多數(shù)國家的可怕局面。這些自然災(zāi)害包括地震、暴雨造成的山體滑坡、海嘯對人口地區(qū)造成巨大損失,尤其是附近有工作場所的情況下。此外,我們不能否認與這些事件有關(guān)的死亡對社會造成沉重打擊的事實。

有時辦公室和工作場所不承認情況的嚴(yán)重性。即使是天氣預(yù)報也無法預(yù)測影響的確切時間和情況的嚴(yán)重程度。以下是地震造成可怕情況的一些案例。6.4級地震使建筑物倒塌| 來源以及因大地震而導(dǎo)致14人死亡的倒塌建筑| 來源。

在大多數(shù)情況下,被困在倒塌建筑物瓦礫下的人可以存活一段時間,但他們無法通知外面的人或他們的代表當(dāng)局他們的存在。雖然救援隊及時趕到并盡了最大努力,但問題是,他們不知道去哪里尋找還活著的人。結(jié)果,那些僅僅幸存下來的人無法從倒塌的建筑物中活著逃脫。

即使不僅是辦公室或工作場所,在 Covid-19 期間,許多員工也不得不在家工作。但它也不安全,因為當(dāng)任何自然災(zāi)害來襲時,住宅區(qū)或住宅區(qū)可能會受到影響。

此外,人為的有缺陷的建筑物和結(jié)構(gòu)故障、建筑物著火而找不到逃生門的問題可能會導(dǎo)致與地震或任何自然災(zāi)害相同的麻煩。拉納廣場事件造成1134人死亡,數(shù)千人受傷| 來源。過去十年以來,采礦作業(yè)中發(fā)生的事故也奪走了很多人的生命| 來源。

這就是 Secure Workspace 發(fā)揮作用的地方。物聯(lián)網(wǎng)的現(xiàn)代時代,藍牙/低功耗藍牙 (BLE) 等高級連接選項使通信選項變得簡單可靠。小型集成設(shè)備,例如:AWS IoT EduKit具有 IoT 云訪問和 BLE UART 通信協(xié)議。因此,可以構(gòu)建通信網(wǎng)絡(luò)并將消息從一個設(shè)備傳遞或接收到另一個設(shè)備。

每當(dāng)有人陷入不穩(wěn)定的情況或遇到問題時,他/她可以通過向最近的與 BLE 連接的AWS IoT EduKit設(shè)備發(fā)送 SOS 消息來通知。此外,還將有一個管理員 android 應(yīng)用程序,它可以搜索活動設(shè)備并與之連接并監(jiān)聽響應(yīng)。

安全工作區(qū)的特點

  • 個性化注冊:注冊過程包括提供姓名、密碼和信息。
  • 每個用戶一臺設(shè)備:Secure Workspace 旨在在工作場所建立一個網(wǎng)絡(luò),每個員工都有一個AWS IoT EduKit,他/她可以在緊急情況下發(fā)送 SOS 消息。為此,必須為每個用戶提供經(jīng)過身份驗證的登錄名和用戶配置文件。
  • 管理應(yīng)用程序和主動搜索:用戶有權(quán)將 SOS 消息直接發(fā)送到管理應(yīng)用程序。此外,在發(fā)生災(zāi)難或威脅事件后,管理員可以搜索活動設(shè)備并與之連接。
  • 點對點連接:一個設(shè)備可以使用與管理應(yīng)用程序相同的 BLE UART 協(xié)議向另一臺設(shè)備發(fā)送消息。

用于安全工作區(qū)的技術(shù)堆棧

  • AWS IoT Core:AWS IoT Core 用于偵聽來自設(shè)備的 MQTT 消息并采取相應(yīng)措施。
  • AWS DynamoDB:AWS DynamoDB 用于存儲用戶配置文件,例如名稱、密碼和消息。
  • AWS Lambda函數(shù):AWS Lambda 函數(shù)用作與 AWS IoT Core 事件綁定的無服務(wù)器計算機。當(dāng) MQTT 消息到達時,我們可以通過 lambda 函數(shù)觸發(fā)一些事件,例如:從 DynamoDB 獲取數(shù)據(jù)并發(fā)送到設(shè)備。
  • BLE UART:通用異步接收器/發(fā)送器 (UART) 是最流行的協(xié)議,用于通過串行端口與計算機設(shè)備通信。我們將使用的是 BLE over UART 協(xié)議。集成和偵聽數(shù)據(jù)更改或通過端口寫入數(shù)據(jù)很容易。

在繼續(xù)之前閱讀

  • AWS 賬戶:本項目教程強烈建議擁有一個 AWS 賬戶。我們可以在老師的幫助下使用 AWS Educate 帳戶。或者,我們可以使用 gmail 地址創(chuàng)建自己的地址,就像我使用 rahulmohoto.icpc@gmail.com 創(chuàng)建的一樣,然后啟動AWS 免費套餐包。該項目與 AWS 免費套餐兼容。
  • 設(shè)置角色和策略:在使用 AWS 服務(wù)之前,有必要知道我們正在使用它做什么。角色和策略需要根據(jù)我們的需要來設(shè)置。否則,把所有事情都做對不會得到我們想要的結(jié)果。
  • 管理員應(yīng)用:通過“關(guān)于管理員應(yīng)用的一些注意事項”部分對應(yīng)用程序有一個簡要的了解。
  • 關(guān)于代碼:AWS IoT EduKit 和 Android 應(yīng)用程序的代碼可在附加的 GitHub 存儲庫中找到。

環(huán)境設(shè)置

在我們繼續(xù)之前,我們需要為AWS IoT EduKit設(shè)備設(shè)置環(huán)境。需要關(guān)注的一些關(guān)鍵點:

  • 該應(yīng)用程序使用 UIFlow MicroPython 固件 1.12 構(gòu)建。構(gòu)建版本 1.8.1。
  • 對于這個項目,我將使用Microsoft Visual Studio Code作為我的代碼編輯器。軟件下載鏈接。
  • 我們必須為Microsoft Visual Studio Code 安裝一個插件,它的名稱是vscode-m5stack-mpy。按照此鏈接獲取該插件。
  • 我的環(huán)境設(shè)置如何 -
poYBAGNkf4WAGwMsAAGit3YoEG4372.png
Visual Studio 代碼編輯器上的環(huán)境設(shè)置
?
  • 為了在AWS IoT EduKit設(shè)備中閃存和燒錄固件,使用了另一個名為M5 Burner的軟件。按照此鏈接獲取該軟件。
  • 要了解有關(guān) UIFlow 和 MicroPython 庫的更多信息,請參閱它們的官方文檔。按照這個鏈接將直接到他們的官方文件。

安全工作區(qū)如何工作

為了便于理解,我們可以將系統(tǒng)分為兩部分。

  • 如果我們發(fā)現(xiàn)數(shù)據(jù)庫中不存在用戶數(shù)據(jù) ->注冊過程(第 1.1 節(jié))
  • 如果我們發(fā)現(xiàn)數(shù)據(jù)庫中存在用戶數(shù)據(jù) -> Dashboard Operations(Section:1.2)

1.1 未找到用戶數(shù)據(jù)時的注冊流程

?
?
?
pYYBAGNkf4mAT76nAAD5uFMWR4w383.png
?
1 / 6 ?流程圖:注冊(向右滾動查看分段視圖)
?

注冊背后發(fā)生了什么:

  • 第 1.1.1 節(jié):檢查現(xiàn)有用戶數(shù)據(jù)
  • 第 1.1.2 節(jié):在完成鍵盤輸入姓名、密碼和消息后進行注冊

1.1.1 如何檢查用戶數(shù)據(jù)是否存在于 DynamoDB

要檢查 DynamoDB 上是否存在用戶數(shù)據(jù),我們需要創(chuàng)建一個可以調(diào)用觸發(fā)器的事件。作為回報,我們將獲得來自 DynamoDB 的記錄。對于我們需要執(zhí)行的任務(wù),沒有可用的操作,例如:在“AWS IoT Core 規(guī)則”部分從 DynamoDB 獲取數(shù)據(jù)。

為此,我們可以做的是創(chuàng)建一個AWS Lambda 函數(shù)。 Lambda 函數(shù)用作無服務(wù)器計算機,它可以在觸發(fā)某種事件時執(zhí)行任務(wù)。對于我們的案例,我們將使用格式化的 MQTT 消息來觸發(fā)事件。在輸出中,我們還將獲得一個 MQTT 響應(yīng),但加載了我們想要從 DynamoDB 獲得的記錄的 JSON 數(shù)據(jù)。

讓我們關(guān)注列出的 lambda 函數(shù)中的“SendMQTTtoCORE2AWS”函數(shù)。

poYBAGNkf4yAaipRAAEWKiSMRbo209.png
AWS 上的 Lambda 函數(shù)
?
# SendMQTTtoCORE2AWS Lambda Function
# Python 3.8 
...
# TODO implement
client = boto3.resource("dynamodb")
table = client.Table("Save_User_Data")
data = table.scan()["Items"]
client = boto3.client('iot-data', region_name='us-west-2', endpoint_url='https://a25wmxf9jzsaoa-ats.iot.us-west-2.amazonaws.com')
# Change topic, qos and payload
response = client.publish(
topic='env/core',
qos=0,
payload=json.dumps(data[0]["User_Data"])
)
...

不僅是一個 lambda 函數(shù),我們還需要一個IoT 規(guī)則,它可以作為觸發(fā)器來調(diào)用該函數(shù)。這是我的 IoT 規(guī)則“Fetch_Data”來調(diào)用“ SendMQTTtoCORE2AWS” lambda 函數(shù)。

pYYBAGNkf46AG6pjAAEZmwa1pk8882.png
AWS IoT Core 上的 IoT 規(guī)則
?

“Fetch_Data”規(guī)則是什么:

  • 關(guān)于規(guī)則:該規(guī)則的作用是調(diào)用 lambda 函數(shù)“SendMQTTtoCORE2AWS”,從 DynamoDB 中獲取數(shù)據(jù)并作為 MQTT 消息發(fā)送到設(shè)備。
  • 事件觸發(fā):
SELECT Tag FROM 'env/msg' WHERE Tag = "Fetch_Data"
  • 行動:調(diào)用 lambda 函數(shù)。
poYBAGNkf5KAPK2IAAFVlNqOD0Y328.png
AWS IoT Core 上的 Fetch_Data 規(guī)則
?

AWS IoT EduKit發(fā)生了什么

# UiFlow MicroPython 1.12 Firmware
# .. Dictionary["Tag"]="Fetch_Data" this is must otherwise, SQL query won't match
...
aws = AWS(things_name='AWS_CORE2', host='a25wmxf9jzsaoa-ats.iot.us-west-2.amazonaws.com', port=8883, keepalive=60, cert_file_path="/flash/res/certificate.pem.crt", private_key_path="/flash/res/private.pem.key")
aws.start()
aws.publish(str('env/msg'),str((json.dumps((Dictionary)))))
...

**請參閱此處了解如何設(shè)置 DynamoDB 表和存儲設(shè)備數(shù)據(jù)

**請參閱此處了解如何使用 python 創(chuàng)建 Lambda 函數(shù)

**請參閱此處了解如何在 AWS 上發(fā)布和訂閱 MQTT

這樣,我們可以從 dynamoDB 獲取數(shù)據(jù)并將其作為 MQTT 消息發(fā)送到AWS IoT EduKit。

搜索現(xiàn)有數(shù)據(jù)并在設(shè)備部分獲取結(jié)果已完成。現(xiàn)在,我們可以進入下一部分,即將數(shù)據(jù)插入數(shù)據(jù)庫,我們剛剛通過鍵盤提供。

1.1.2 當(dāng)我們完成姓名、密碼和留言的數(shù)據(jù)輸入時

在我們完成名稱、消息和密碼的輸入后,將使用該名稱、消息和密碼創(chuàng)建一個字典[一個保存鍵和值對的 python 數(shù)據(jù)結(jié)構(gòu)]。

# Uiflow MicroPython 1.12 Firmware
...
DictionaryOfSendingInfo={"Name_Data":listOfInputs[0],"Password":listOfInputs[1],"Message":listOfInputs[2],"Tag":"Send_Data"}

...

稍后,字典被發(fā)送到 AWS DynamoDB 并作為記錄存儲在表下Save_User_Data.但是,要在 DynamoDB 上存儲數(shù)據(jù)這樣的操作,必須觸發(fā)一些事件。因此,我們需要在AWS IoT Core 中為此制定規(guī)則。

這些是我的物聯(lián)網(wǎng)規(guī)則。目前,我們只關(guān)注“Save_Data”規(guī)則。

poYBAGNkf5eAA3U9AAFOEeZ_e-c426.png
AWS IoT Core 上的 IoT 規(guī)則
?

什么是“Save_Data”規(guī)則:

  • 關(guān)于規(guī)則:此規(guī)則的功能是在 DynamoDB 上插入設(shè)備數(shù)據(jù)(MQTT 消息),從AWS IoT EduKit 發(fā)送。
  • 事件觸發(fā):
SELECT Name_Data, Password, Message, Tag FROM 'env/msg' WHERE Tag = "Send_Data"
  • 行動:在 DynamoDB 表中插入一條消息。
poYBAGNkf5qAGd8sAAFt6AFq1GY510.png
AWS IoT Core 上的 Save_Data 規(guī)則
?
pYYBAGNkf52AD_bdAAEcoPX8oE4691.png
User_Data 作為記錄存儲在 AWS DynamoDB 上
?

**請參閱此處了解如何設(shè)置 DynamoDB 表和存儲設(shè)備數(shù)據(jù)

AWS IoT EduKit發(fā)生了什么:

# UiFlow MicroPython 1.12 Firmware
# .. Dictionary["Tag"]="Send_Data" this is must otherwise, SQL query won't match
...
aws = AWS(things_name='AWS_CORE2', host='a25wmxf9jzsaoa-ats.iot.us-west-2.amazonaws.com', port=8883, keepalive=60, cert_file_path="/flash/res/certificate.pem.crt", private_key_path="/flash/res/private.pem.key")
aws.start()
aws.publish(str('env/msg'),str((json.dumps((Dictionary)))))
...

這樣,字典數(shù)據(jù)(名稱、密碼和消息)將作為 MQTT 消息(JSON 有效負載)傳輸并存儲在 DynamoDB 上。如果沒有找到現(xiàn)有數(shù)據(jù),這就是用戶注冊部分的全部內(nèi)容。

**請參閱此處了解如何在 AWS 上發(fā)布和訂閱 MQTT

1.2 找到用戶數(shù)據(jù)時的儀表板操作

?
?
?
poYBAGNkf6KAVpNmAAC3jj6AkXQ924.png
?
1 / 4 ?流程圖:儀表板操作(向右滾動查看分段視圖)
?

儀表板背后發(fā)生了什么

  • Profile view and edit button:

與之前一樣,使用“SendMQTTtoCORE2AWS” Lambda 函數(shù)從 AWS DynamoDB 獲取數(shù)據(jù)。如果按下配置文件視圖按鈕,則可以在“配置文件視圖頁面”上看到輸出。如有必要,我們可以從這里編輯注冊的數(shù)據(jù)。要編輯數(shù)據(jù),我們需要另一個事件,這與我們之前在 DynamoDB 中所做的插入操作不同。現(xiàn)在,我們將不得不創(chuàng)建另一個規(guī)則,可以編輯之前保存的數(shù)據(jù)。

為了達到我們的目的,我們將使用這個 lambda 函數(shù)“EditFunctionDynamoDB”。

poYBAGNkf6aALHSrAAERzOqe1UY693.png
AWS 上的 Lambda 函數(shù)
?
# EditFunctionDynamoDB Lambda Function
# Python 3.8 
...
client = boto3.resource("dynamodb")
table = client.Table("Save_User_Data")
response = table.update_item(
Key={
'Record_Time': data[0]["Record_Time"],
},
UpdateExpression="set User_Data.Name_Data=:n, User_Data.Message=:m, User_Data.Password=:p,  User_Data.Tag=:t",
ExpressionAttributeValues={
':n': event["Name_Data"]
':m': event["Message"],
':p': event["Password"],
':t': event["Tag"]
},
ReturnValues="UPDATED_NEW"
)
...

但要調(diào)用該函數(shù),必須有一條關(guān)于“AWS IoT Core”的規(guī)則。在這里,我們將使用“Edit_Data”規(guī)則。

pYYBAGNkf6mAYdWUAADMuyLAAoE284.png
AWS IoT Core 上的 IoT 規(guī)則
?

什么是“Edit_Data”規(guī)則:

  • 關(guān)于規(guī)則:此規(guī)則的功能將更新AWS DynamoDB 上的現(xiàn)有數(shù)據(jù)。
  • 事件觸發(fā):
SELECT Name_Data, Password, Message, Tag FROM 'env/msg' WHERE Tag = "Edit_Data"
  • 行動:調(diào)用 lambda 函數(shù)“EditFunctionDynamoDB”。
pYYBAGNkf6yARbYaAAF1RE9HL2A047.png
AWS IoT Core 上的 Edit_Data 規(guī)則
?

有了這個,我們可以更新之前保存在 AWS DynamoDB 上的記錄。現(xiàn)在,我們進入下一節(jié)。

  • SOS button:

在緊急情況下,我們可以使用此按鈕將之前存儲的 SOS 消息直接發(fā)送到附近的設(shè)備。將使用BLE UART 進行通信。

# UiFlow Micropython 1.12 Firmware

...
uart_ble = ble_uart.init(user_info["Name_Data"])
uart_ble.write(message)
...

等待??!

我們已經(jīng)到了可以向AWS IoT EduKit設(shè)備或管理應(yīng)用程序發(fā)送 SOS 消息的地步。所以,我們分成兩個部分。

  • 發(fā)送到另一個AWS IoT EduKit設(shè)備(第 2.1 節(jié))
  • 發(fā)送給管理員android 應(yīng)用程序(第 2.2 節(jié))

雖然,在這兩種情況下,通過 BLE UART 發(fā)送消息是相同的,但接收設(shè)備不同。這就是為什么區(qū)分它們,將使我們更好地理解。

2.1 兩臺 AWS IoT EduKit 設(shè)備之間的點對點通信

來自發(fā)件人:

# Sample Code Snippet
# UiFlow Micropython 1.12 Firmware
# From Sender

from ble import ble_uart
...
uart_ble = ble_uart.init("Device 1")
uart_ble.write(message)
...

致收件人:

# Sample Code Snippet
# UiFlow Micropython 1.12 Firmware
# Receive data on recipient

from ble import ble_uart

label0 = M5Label('Received Data', x=133, y=99, color=0x000, font=FONT_MONT_14, parent=None)
...
def on_recv():
  # global params
  global label0
  # Show the received text and make an alarm
  speaker.playWAV("res/Alarm.wav")
  label0.set_text(str(uart_ble.read()))

...
pYYBAGNkf7OAE2u2AABw3dszVKU726.png
流程圖:使用 BLE-UART 的點對點通信
?

2.2 向管理應(yīng)用程序發(fā)送 SOS 消息

來自發(fā)件人:

# UiFlow Micropython 1.12 Firmware
# From Sender

from ble import ble_uart
...
uart_ble = ble_uart.init(user_info["Name_Data"])
uart_ble.write(message)
...

致收件人:

// Java 8 Android API - 23
// On recipient
...
if(Read.equals(characteristic.getUuid().toString()))
{
    value = characteristic.getStringValue(0);
    Log.w(TAG, "Value--> "+ value); 
// receives data when GATT characteristics match with device service UUID

...
?
?
?
poYBAGNkf7aAKVjCAAB_OKjhJVQ097.png
?
1 / 3 ?流程圖:與 Android 管理應(yīng)用程序的點對點通信
?

關(guān)于管理員申請的一些注意事項

  • 在儀表板部分,我們可以添加設(shè)備以立即連接和監(jiān)聽數(shù)據(jù)變化。
poYBAGNkf7iAUkMuAABe5yHo8s4881.png
儀表板用戶界面
?
  • 搜索后單擊可用設(shè)備列表中的特定設(shè)備,將彈出一個對話框。在那里可以看到兩個選項。選擇連接:立即連接設(shè)備。添加到收藏夾:這會將設(shè)備添加到收藏夾列表。所有這些數(shù)據(jù)都將存儲在Firebase 實時數(shù)據(jù)庫中。
?
?
?
pYYBAGNkf7uAI4HGAABO62AY4Wg838.png
?
1 / 2 ?選擇特定設(shè)備時
?
  • 應(yīng)用程序如何與 FireBase 交互:
pYYBAGNkf76AA8nLAAB2B3WM8jY766.png
流程圖:顯示應(yīng)用程序和 FireBase 之間的交互。
?
  • 現(xiàn)在,我的AWS IoT EduKit設(shè)備的 GATT 特性 - “READ”已硬編碼在 android 項目中(我們需要為另一臺設(shè)備更改它)。因此,現(xiàn)在只能使用該特定設(shè)備讀取/接收消息。當(dāng)我們想通過 BLE 與某個設(shè)備連接時,我們必須知道該設(shè)備提供了哪些 GATT(通用屬性配置文件)服務(wù),以及確認了哪些特征。由于現(xiàn)在這是硬編碼的,它將適用于一對一的連接,但對于多個設(shè)備,這種方法必須是動態(tài)的。

視頻演示

在這里,重要的討論主題將是:

  • “安全工作區(qū)”應(yīng)用程序如何在AWS IoT EduKit 上運行。
  • 管理應(yīng)用程序如何在 Android 設(shè)備上運行。
  • BLE over UART 協(xié)議如何建立通信并將消息從AWS IoT EduKit發(fā)送到 android 設(shè)備。
?

為什么我們?nèi)绱藢W⒂?BLE 連接

BLE,或者簡單來說,低功耗藍牙連接提供了兩個設(shè)備之間的短距離通信協(xié)議。連接后,兩個設(shè)備都可以共享數(shù)據(jù)。它們中的任何一個都可以充當(dāng)發(fā)送者(服務(wù)器),而另一個可以充當(dāng)接收者(客戶端)。而且它不需要任何集中式服務(wù)器來相互連接。

直到兩個設(shè)備都有足夠的電池來打開它們的 BLE 模塊,它們才能進行通信。當(dāng)任何自然災(zāi)害發(fā)生時,首先斷開的是互聯(lián)網(wǎng)連接。出于這個原因,我們無法與他人交流并告知他們我們正在經(jīng)歷的絕境。但是有了BLE,就可以尋求幫助。

這就是為什么 BLE 是 Secure Workspace 的支柱。

未來的工作

目前,Secure Workspace已通過一對一設(shè)備(與另一臺 AWS IoT EduKit設(shè)備或管理應(yīng)用程序)進行測試和運行,以傳輸 SOS 消息。但是,網(wǎng)絡(luò)范式中會有很多這樣的AWS IoT EduKit設(shè)備。所以,應(yīng)該有一些操作來知道哪一個要發(fā)送數(shù)據(jù)。

因此,構(gòu)建輪詢操作將是成功實施 Secure Workspace 的下一個任務(wù)。

結(jié)論

對于建筑基礎(chǔ)設(shè)施脆弱的第三世界國家來說,像安全工作空間這樣的項目非常需要,以應(yīng)對不斷增加的自然災(zāi)害/災(zāi)難,因為它可以對尋找幸存者產(chǎn)生良好的影響,并且當(dāng)這些災(zāi)難發(fā)生在工作場所或家。

試圖使項目文檔盡可能詳細,并在每個部分之后附加有用的鏈接。希望能幫助到你 :)

?


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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