資料介紹
描述
介紹
家里的安全非常重要。該項目展示了一個原型智能門鎖安全系統(tǒng),可用于增強(qiáng)門的安全性。除了使用鑰匙的傳統(tǒng)方法門外,未經(jīng)授權(quán)的人或竊賊只要擁有正確的鑰匙,就可以輕松打開門。這將使他們能夠偷走房子里所有有價值的東西。
該項目的核心理念是實現(xiàn)基于智能多警報智能物聯(lián)網(wǎng)的門鎖安全系統(tǒng),盡可能減少用戶交互。因此,在這個項目中,我們將構(gòu)建自己的安全系統(tǒng),該系統(tǒng)可以檢測門/窗是否打開。警報可以通過谷歌助手通過語音命令激活或取消激活,當(dāng)檢測到入侵時,它還會在電報頻道上向您和您的親屬發(fā)送一封郵件,向他們發(fā)出警告。很酷的是,整個東西都在云上運行,因此可以從世界任何地方進(jìn)行控制。
基于物聯(lián)網(wǎng)的項目可以引領(lǐng)我們對自動化鎖定安全系統(tǒng)進(jìn)行另一場革命。安全可以通過普通保安來實現(xiàn),但數(shù)字化比其他所有方式都更有效。其非凡的特點是通過一點點使用物聯(lián)網(wǎng)和云計算,讓您的家庭、工業(yè)、學(xué)校、學(xué)院、服務(wù)器機(jī)房等變得智能和智能,從而節(jié)省時間、節(jié)省人力資源并獲得良好的效果。該安全系統(tǒng)將為所有關(guān)注安全的人提供幫助。
您可以使用您的項目或模型的區(qū)域。
在以下領(lǐng)域,您可以使用我們的項目提供智能門鎖安全。
- 商業(yè)的
寫字樓、購物中心、銀行、服務(wù)器機(jī)房、酒店和公寓
- 工業(yè)的
辦公室/倉庫、工業(yè)產(chǎn)權(quán)、存儲單元/車庫、數(shù)據(jù)
中心、發(fā)電廠
- 運輸
機(jī)場航站樓、火車、地鐵和巴士站、停車場、配送中心
- 教育
學(xué)校、大學(xué)、寄宿學(xué)校、圖書館、幼兒園
- 休閑娛樂
餐廳、體育館、體育場
工作原則
基于物聯(lián)網(wǎng)門鎖的系統(tǒng)使用基于樂鑫半導(dǎo)體著名的 ESP8266 Wi-Fi 模塊的 Bolt 開發(fā)板。但是這里它內(nèi)部運行著自己的 Bolt 固件,這有助于我們通過 Bolt 提供的 API 訪問 GPIO 引腳(數(shù)字讀/寫、模擬讀、PWM 寫)等。
在我們的硬件中,我們將在門上安裝一個霍爾效應(yīng)傳感器和磁鐵。當(dāng)門打開時,磁鐵會遠(yuǎn)離霍爾傳感器,傳感器會檢測到它,這可以通過 API 調(diào)用讀取,我們可以觸發(fā)蜂鳴器,并通過男性和電報向用戶發(fā)出警報。要激活警報,只需說在 IFTTT 中設(shè)置的 Google 助手的命令(激活安全警報)。一旦激活,橙色燈將開始發(fā)光,指示狀態(tài)。現(xiàn)在,只要門打開,警報就會響起,蜂鳴器響起,并且一封郵件將與 Telegram Channel 上的消息一起發(fā)送到您的 Gmail 收件箱,其中包含違規(guī)日期和時間。



創(chuàng)建我們的項目的步驟:-
設(shè)置 Bolt IoT 模塊
在我們從這里開始之前,我們必須設(shè)置 Bolt 硬件。這很容易做到,只需在您的手機(jī)上安裝 bolt 應(yīng)用程序并輸入您的 Wi-Fi 憑據(jù),以便您的 bolt 可以連接到您的 Wi-Fi,從而連接到互聯(lián)網(wǎng)。然后您可以訪問云頁面以從那里獲取您的設(shè)備 ID 和 API 密鑰,一切順利。您可以訪問BoltIOT 文檔以了解更多信息。

使用 Bolt IoT 硬件的 GPIO 引腳
正如我之前所說,Bolt 硬件的所有 GPIO 引腳都連接到云端,它們只能通過 API 進(jìn)行控制(讀/寫)。API 詳細(xì)信息可以在我之前分享的文檔中找到。但是,讓我們以一個為例。讀取引腳狀態(tài)的 API 在文檔中進(jìn)行了解釋,如下所示

這里,我們感興趣的是API URL
這里的 API 密鑰是 44b2de6b-7e68-40e7-a27f-814b58afe008,設(shè)備 ID 是 BOLT13819450。但這是一個示例密鑰和 ID,與您的設(shè)備不同。您必須訪問 cloud.boltiot.com 以獲取您設(shè)備的設(shè)備 ID 和 API 密鑰。下面的快照可以幫助您。

獲得 API 密鑰和設(shè)備 ID 后,您只需將默認(rèn)值替換為您的值并在瀏覽器中加載 URL。您的瀏覽器將使用 PIN 的狀態(tài)回復(fù)
{"success": "1", "value": "1"} or {"success": "1", "value": "0"}
如果值為 1,則為高,如果為 0,則為低。同樣,您可以嘗試所有命令的 API 鏈接,例如數(shù)字讀取、寫入、模擬寫入、PWM 甚至串行通信。一旦你玩完它,讓我們繼續(xù)這個項目的實際程序。
準(zhǔn)備 Python 環(huán)境
正如我之前所說,bolt 可以使用 JavaScript、HTML 或 Python 進(jìn)行編程。在這里,我們將只專注于如何使用 python 來完成。我們必須在已經(jīng)安裝了 python 的計算機(jī)上編寫 python 腳本。如果您對這一切不熟悉,我建議您閱讀本文以了解如何安裝 python 并開始使用它。除此之外,我們還需要安裝兩個庫包才能使我們的程序正常工作。您可以使用 pip install 選項將包添加到 python,在 python 目錄中的終端上運行以下命令來安裝包。打開 Windows 終端并導(dǎo)航到主要位于C://Python 3中的 python 目錄
第 1 步:-如果您之前沒有安裝過 pip,請安裝。使用以下命令安裝它
sudo easy_install pip
第 2 步:-在 C://Python/Scripts 目錄中安裝 requests 包
pip install requests
第 3 步:-使用以下命令安裝 boltiot 包
pip install boltiot
安裝成功完成后,您的 careen 應(yīng)該如下所示

就是這樣,現(xiàn)在我們打開了 Python IDLE 并開始為我們的安全系統(tǒng)編寫我們的實際程序。但在此之前,通過谷歌助手激活或關(guān)閉警報以及向我們的電報頻道發(fā)送電子郵件和發(fā)送消息,我們使用谷歌助手服務(wù)和 IFTTT 提供的網(wǎng)絡(luò)掛鉤服務(wù)。所以讓我們繼續(xù)設(shè)置它們。如果您不熟悉使用 IFTTT 小程序,那么建議您在繼續(xù)之前閱讀本文。
使用 Google 助理激活和停用鬧鐘
我們必須為此創(chuàng)建兩個小程序(食譜),一個是激活警報,另一個是取消激活警報。當(dāng)警報被激活時,連接到引腳 3 的電容器應(yīng)該被充電,當(dāng)警報被禁用時,連接到引腳 4 的電容器應(yīng)該被充電。


小程序為此服務(wù)使用 Google 助手,并且網(wǎng)絡(luò)掛鉤獲取對該服務(wù)的請求。下面的屏幕截圖顯示了如何設(shè)置小程序以在激活警報時將引腳 3 設(shè)為高電平,并在通過 Google 助手停用警報時將引腳 4 設(shè)為高電平。

?

電容器的用途是什么?
電容器 1 和 2 用作存儲元件。當(dāng)電路板收到來自 IFTTT 的命令時,引腳 3 和 4 將用作輸出引腳。根據(jù)命令,電路板將為電容器 1 或電容器 2 充電。
現(xiàn)在,當(dāng) IFTTT 操作完成時,Python 代碼將引腳 3 和 4 作為輸入引腳,通過讀取這些引腳的狀態(tài),Python 代碼將了解是否應(yīng)該根據(jù)哪個電容器充電來激活或停用警報。簡而言之,將 IFTTT 與 Python 接口是一個小技巧。如果 Bolt 平臺提供了一個虛擬位,但這里說這不是一個選項,那會容易得多。
檢測到入侵者時發(fā)送電子郵件
第三個小程序是在檢測到入侵者時發(fā)送電子郵件。這可以通過使用 IFTTT 上的網(wǎng)絡(luò)掛鉤和 Gmail 服務(wù)來完成。Webhooks 服務(wù)將為我們提供一個 URL,該 URL 在加載時將觸發(fā)該預(yù)定義的電子郵件。小程序的快照如下所示。您可以根據(jù)需要自定義接收者 ID 和文本。如果檢測到入侵者,該 URL 將在 python 腳本中使用 requests 庫觸發(fā)。

當(dāng)檢測到入侵者時向電報頻道發(fā)送警報。
1. 當(dāng)檢測到任何入侵者時,我們將利用電報頻道廣播警報。
2. 首先,在電報中創(chuàng)建一個新頻道并提供合適的名稱和描述,如下所示。
3. 在下一個屏幕中,將頻道設(shè)置為公開,并根據(jù)您的意愿輸入頻道永久鏈接。將此頻道鏈接保存為“telegram_chat_id” ,其中下圖為“smart_door_lock_alarm”。

4. 現(xiàn)在讓我們?yōu)槲覀兊念l道創(chuàng)建一個機(jī)器人。機(jī)器人是在電報中運行的第三方應(yīng)用程序,我們將使用此機(jī)器人向我們的頻道發(fā)送警報。
5. 在電報首頁,點擊右上角的搜索圖標(biāo),搜索botfather。
6. 在搜索結(jié)果中,選擇旁邊有藍(lán)色勾號的botfather。
7.聊天顯示幾個可能的命令,輸入“/newbot”來創(chuàng)建一個新的機(jī)器人。
8. 為您的機(jī)器人提供正確的名稱和用戶名。
9. 成功創(chuàng)建機(jī)器人后,它會生成一個令牌。此令牌用于通過 python 發(fā)送和接收消息。
10. 請將此便箋另存為“telegram_bot_id” ,其中保存為“bot”,后跟bot token。


11. 現(xiàn)在讓我們將機(jī)器人添加到我們的頻道,轉(zhuǎn)到頻道描述并從 3 點菜單中選擇添加管理員。從搜索字段中選擇機(jī)器人并賦予機(jī)器人適當(dāng)?shù)臋?quán)限。
選擇添加管理員
12.恭喜!您已成功創(chuàng)建頻道和機(jī)器人。

Python程序說明
此物聯(lián)網(wǎng)安全警報的完整 Python 代碼可在本項目末尾找到。在本節(jié)中,讓我們將代碼分成小片段并嘗試?yán)斫馑鼈儭?/font>python腳本的總體目標(biāo)是檢查警報是激活還是取消激活,如果激活,我們必須檢查門是否打開,如果打開,我們必須觸發(fā)電子郵件并打開蜂鳴器。
我們已經(jīng)知道,如果我們必須激活安全系統(tǒng),引腳 3 上的電容會很高,如果我們必須停用安全系統(tǒng),引腳 4 上的電容會很高。所以我們只需要在我們的 python 腳本中讀取它們來激活或取消激活警報。
我們通過導(dǎo)入時間、json、請求和boliot庫來開始程序。其中時間庫默認(rèn)添加到 python 中,但是您必須手動安裝 requests 和 boltiot 包,正如我們之前討論的那樣,否則您將在這些行中收到錯誤。
import time #導(dǎo)入延遲操作的時間
import requests #use requests 通過 webhooks IFTTT 發(fā)送郵件
from boltiot import Bolt #導(dǎo)入boliot 通過 API 控制 GPIO 引腳
import json # 處理 JSON 數(shù)據(jù)的庫
接下來我們輸入設(shè)備的憑據(jù),例如 API 密鑰和設(shè)備 ID 。只有使用這兩個值,您才能訪問設(shè)備上的任何 GPIO 引腳。如果任何人都可以使用它們來控制您的 GPIO 引腳,請不要與公眾分享這些。
api_key = "4749fe75-6c61-45f1-bee5-f9a6a1bd9103" #Get your API key from Blot Cloud Web
site
device_id = "BOLT11691968" #Get your Bolt device ID form Bolt Cloud Website
mybolt = Bolt(api_key, device_id)
telegram_chat_id = "@XXXX" # This is the channel ID of the created Telegram channel.
Paste after @ symbol.
telegram_bot_id = "botXXXX" # This is the bot ID of the created Telegram Bot. Paste
after bot text.
正如 API 部分所討論的,當(dāng)我們以字符串的形式執(zhí)行數(shù)字讀取時,我們將得到響應(yīng),因此我將這些字符串值分配給了兩個變量,以便我們可以在程序中輕松使用它們。
HIGH = '{"value": "1", "success": "1"}' #This will be returned by bolt API if digital read is high
LOW = '{"value": "0", "success": "1"}'#This will be returned by bolt API if digital read is low
現(xiàn)在我們創(chuàng)建一個名為send_telegram_message()的函數(shù),它將消息作為參數(shù)。
在第一行中,我們正在構(gòu)建 URL,以便 Telegram 知道它必須將消息發(fā)送到哪個機(jī)器人。telegram_bot_id 為此目的是必需的。數(shù)據(jù)變量是一個包含聊天 ID(頻道 ID)的字典,以便 Bot 知道它必須將消息發(fā)布到哪個頻道。它還包含要作為消息發(fā)送的文本消息。
在下一步中,我們需要使用我們之前構(gòu)建的 URL 向 Telegram 服務(wù)器發(fā)出 HTTP 請求。該請求是一個“POST”請求,其中包含所有相關(guān)數(shù)據(jù),如 URL 和要包含在請求中的數(shù)據(jù)。
` telegram_data = json.loads(response.text) ` 行將文本響應(yīng)轉(zhuǎn)換為 JSON 對象并將其存儲在 telegram_data 中。請求的狀態(tài)存儲在 telegram_data 變量的“ok”字段中,我們將其返回. “ok”字段將始終包含一個布爾值,即 True/False,如果消息已發(fā)送,則為 True。
該函數(shù)被封裝在一個 try-except 塊中,以便捕獲任何錯誤,如果 try 塊中存在任何錯誤,它將返回 False。
def send_telegram_message(message):
"""Sends message via Telegram"""
url = "https://api.telegram.org/" + telegram_bot_id + "/sendMessage"
data = {
"chat_id": telegram_chat_id,
"text": message
}
try:
response = requests.request("POST",url,params=data)
telegram_data = json.loads(response.text)
return telegram_data["ok"]
except Exception as e:
print("An error occurred in sending the alert message via Telegram")
print(e)
return False
在無限while循環(huán)中,我們還有另外兩個循環(huán)。如果從 Google 助手激活警報,則將執(zhí)行一個,如果取消激活警報,則將執(zhí)行另一個。默認(rèn)情況下,如果沒有收到命令,將執(zhí)行去激活的循環(huán)。
在這里,必須通過讀取引腳 3 來檢查警報是否被激活,引腳 3 只不過是電容器。如果引腳為高電平,我們使橙色 LED 發(fā)光,然后退出此循環(huán)并進(jìn)入激活的while循環(huán)。我們每 5 秒檢查一次,以確保我們不超過bolt 提供的 API 速率限制,即每分鐘 30 次調(diào)用。
while alarm == 0: #If alarm is off
response = mybolt.digitalRead('3') #check if it is being activated
if (response == HIGH):
print("Security System is activated")
mybolt.digitalWrite('2', 'HIGH') #Turn on LED to indicate Alarm is
activated
mybolt.digitalWrite('4','LOW') #Turn off the capacitor of the 4 pin
alarm = 1
elif (response == LOW):
print ("Waiting for Security System to be activated....")
else:
print ("Problem in getting value form pin 3")
time.sleep(2) #check once in every 2 seconds to avoid exceeding API rate limit
同樣,在激活的while循環(huán)中,我們必須檢查引腳 4 以了解警報是否被取消激活。如果停用,我們將關(guān)閉橙色循環(huán)并返回停用的while循環(huán)。否則,我們必須通過讀取引腳 0 來檢查磁鐵是否靠近霍爾傳感器。如果引腳為高電平,則意味著磁鐵遠(yuǎn)離傳感器,表明門已打開。所以我們觸發(fā)了蜂鳴器,并使用 requests 包觸發(fā)了郵件和消息到 Telegram 頻道。否則,我們會每 5 秒監(jiān)測一次傳感器。執(zhí)行相同操作的代碼如下所示
while alarm == 1: #If alarm is on
response = mybolt.digitalRead('4') #check is it is being de-activated
if (response == HIGH):
print("Security System is De-activated")
mybolt.digitalWrite('2', 'LOW')#Turn off LED to indicate Alarm is
De-activated
mybolt.digitalWrite('3', 'LOW')#Turn off the 3 GPIO pin.
alarm = 0
break
elif (response == LOW):
print ("Security System is currently active can be deactivated from google
assistant")
else:
print ("Problem in getting value form pin 4")
response = mybolt.digitalRead('0') #check if hall sensor is triggered
if (response == HIGH): #if magnet is not present
print ("Alert! Security breach Buzzer ON")
mybolt.digitalWrite('1', 'HIGH')
requests.get('https://maker.ifttt.com/trigger/Breach/with/key/i6nPcZ5ZlzaV
dbYITw6VGcpMkrVO5GqAX049cHEBDt') # webhook link to trigger mail through IFTTT
telegram_status=send_telegram_message("Alert!Someone opens your secret
door")
print("This is the telegram status: ",telegram_status)
time.sleep(5)
mybolt.digitalWrite('1', 'LOW')
print ("Buzzer OFF")
elif (response == LOW):
print ("No problem, all good!")
else:
print ("Problem in reading the value of button")
time.sleep(5)
是時候測試設(shè)備了
準(zhǔn)備好代碼后,我們就可以開始測試我們的項目了。將板安裝在門框上,將磁鐵安裝在門本身上。確保磁鐵靠近霍爾傳感器。這個想法是傳感器應(yīng)該在門關(guān)閉時檢測到磁鐵,而在門打開時不應(yīng)該能夠檢測到磁鐵。



?
- 基于物聯(lián)網(wǎng)的登錄警報系統(tǒng)和人/機(jī)器人驗證
- 使用物聯(lián)網(wǎng)平臺創(chuàng)建一個溫度警報系統(tǒng)
- 基于物聯(lián)網(wǎng)的橋梁健康監(jiān)測和警報系統(tǒng)
- 使用物聯(lián)網(wǎng)警報的喂鳥器
- 使用物聯(lián)網(wǎng)的加密貨幣價格警報系統(tǒng)
- 什么是智能工廠-物聯(lián)網(wǎng)系統(tǒng) 7次下載
- 物聯(lián)網(wǎng)工程概要設(shè)計課件下載 0次下載
- 物聯(lián)網(wǎng)工程PCB詳細(xì)設(shè)計課件下載 0次下載
- 物聯(lián)網(wǎng)工程需求分析課件下載 0次下載
- 物聯(lián)網(wǎng)工程概述課件下載 0次下載
- 關(guān)于物聯(lián)網(wǎng)和電梯的聯(lián)系 1次下載
- 物聯(lián)網(wǎng)到底是什么物聯(lián)網(wǎng)的簡介和三項關(guān)鍵技術(shù)詳細(xì)說明 16次下載
- 物聯(lián)網(wǎng)無線連接技術(shù)是什么?物聯(lián)網(wǎng)產(chǎn)品的射頻測試資料概述 26次下載
- 物聯(lián)網(wǎng)是什么?現(xiàn)在物聯(lián)網(wǎng)通信標(biāo)準(zhǔn)和協(xié)議有哪些?物聯(lián)網(wǎng)應(yīng)用的概述
- 物聯(lián)網(wǎng)的真正價值是什么?
- 物聯(lián)網(wǎng)的體系架構(gòu) 1438次閱讀
- 如何使用IC555創(chuàng)建6個有趣的警報器和警報音效發(fā)生器電路 4704次閱讀
- 物聯(lián)網(wǎng)是什么和物聯(lián)網(wǎng)基本架構(gòu) 6087次閱讀
- 工業(yè)4.0 工業(yè)物聯(lián)平臺有多重要 1361次閱讀
- 工業(yè)物聯(lián)網(wǎng)到底是什么?工業(yè)物聯(lián)網(wǎng)的上位史 4329次閱讀
- 部署物聯(lián)網(wǎng)有什么訣竅數(shù)據(jù)到底有多重要 2906次閱讀
- 精度在物聯(lián)網(wǎng)中扮演什么樣的角色_有多重要? 1830次閱讀
- 物聯(lián)網(wǎng)的工作原理及發(fā)展的展望和如何應(yīng)用物聯(lián)網(wǎng)的資料概述 4817次閱讀
- 物聯(lián)網(wǎng)的介紹和物聯(lián)網(wǎng)發(fā)展的未來展望詳細(xì)概述 1.2w次閱讀
- 什么是物聯(lián)網(wǎng)應(yīng)用技術(shù)_物聯(lián)網(wǎng)專業(yè)技能有什么 9.7w次閱讀
- 什么是物聯(lián)網(wǎng)節(jié)點_物聯(lián)網(wǎng)節(jié)點之間的關(guān)系 2.1w次閱讀
- 農(nóng)業(yè)物聯(lián)網(wǎng)的意義_農(nóng)業(yè)物聯(lián)網(wǎng)的功能_農(nóng)業(yè)物聯(lián)網(wǎng)的應(yīng)用 9899次閱讀
- 工業(yè)物聯(lián)網(wǎng)的意義_工業(yè)物聯(lián)網(wǎng)前景分析 1.2w次閱讀
- 蜂窩物聯(lián)網(wǎng)是什么_蜂窩物聯(lián)網(wǎng)建設(shè)意義 1.4w次閱讀
- 云計算與物聯(lián)網(wǎng)的關(guān)系_云計算和物聯(lián)網(wǎng)的優(yōu)勢 1.3w次閱讀
下載排行
本周
- 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元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 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十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論