資料介紹
描述
介紹
家里的安全非常重要。該項目展示了一個原型智能門鎖安全系統,可用于增強門的安全性。除了使用鑰匙的傳統方法門外,未經授權的人或竊賊只要擁有正確的鑰匙,就可以輕松打開門。這將使他們能夠偷走房子里所有有價值的東西。
該項目的核心理念是實現基于智能多警報智能物聯網的門鎖安全系統,盡可能減少用戶交互。因此,在這個項目中,我們將構建自己的安全系統,該系統可以檢測門/窗是否打開。警報可以通過谷歌助手通過語音命令激活或取消激活,當檢測到入侵時,它還會在電報頻道上向您和您的親屬發送一封郵件,向他們發出警告。很酷的是,整個東西都在云上運行,因此可以從世界任何地方進行控制。
基于物聯網的項目可以引領我們對自動化鎖定安全系統進行另一場革命。安全可以通過普通保安來實現,但數字化比其他所有方式都更有效。其非凡的特點是通過一點點使用物聯網和云計算,讓您的家庭、工業、學校、學院、服務器機房等變得智能和智能,從而節省時間、節省人力資源并獲得良好的效果。該安全系統將為所有關注安全的人提供幫助。
您可以使用您的項目或模型的區域。
在以下領域,您可以使用我們的項目提供智能門鎖安全。
- 商業的
寫字樓、購物中心、銀行、服務器機房、酒店和公寓
- 工業的
辦公室/倉庫、工業產權、存儲單元/車庫、數據
中心、發電廠
- 運輸
機場航站樓、火車、地鐵和巴士站、停車場、配送中心
- 教育
學校、大學、寄宿學校、圖書館、幼兒園
- 休閑娛樂
餐廳、體育館、體育場
工作原則
基于物聯網門鎖的系統使用基于樂鑫半導體著名的 ESP8266 Wi-Fi 模塊的 Bolt 開發板。但是這里它內部運行著自己的 Bolt 固件,這有助于我們通過 Bolt 提供的 API 訪問 GPIO 引腳(數字讀/寫、模擬讀、PWM 寫)等。
在我們的硬件中,我們將在門上安裝一個霍爾效應傳感器和磁鐵。當門打開時,磁鐵會遠離霍爾傳感器,傳感器會檢測到它,這可以通過 API 調用讀取,我們可以觸發蜂鳴器,并通過男性和電報向用戶發出警報。要激活警報,只需說在 IFTTT 中設置的 Google 助手的命令(激活安全警報)。一旦激活,橙色燈將開始發光,指示狀態。現在,只要門打開,警報就會響起,蜂鳴器響起,并且一封郵件將與 Telegram Channel 上的消息一起發送到您的 Gmail 收件箱,其中包含違規日期和時間。
創建我們的項目的步驟:-
設置 Bolt IoT 模塊
在我們從這里開始之前,我們必須設置 Bolt 硬件。這很容易做到,只需在您的手機上安裝 bolt 應用程序并輸入您的 Wi-Fi 憑據,以便您的 bolt 可以連接到您的 Wi-Fi,從而連接到互聯網。然后您可以訪問云頁面以從那里獲取您的設備 ID 和 API 密鑰,一切順利。您可以訪問BoltIOT 文檔以了解更多信息。
使用 Bolt IoT 硬件的 GPIO 引腳
正如我之前所說,Bolt 硬件的所有 GPIO 引腳都連接到云端,它們只能通過 API 進行控制(讀/寫)。API 詳細信息可以在我之前分享的文檔中找到。但是,讓我們以一個為例。讀取引腳狀態的 API 在文檔中進行了解釋,如下所示
這里,我們感興趣的是API URL
這里的 API 密鑰是 44b2de6b-7e68-40e7-a27f-814b58afe008,設備 ID 是 BOLT13819450。但這是一個示例密鑰和 ID,與您的設備不同。您必須訪問 cloud.boltiot.com 以獲取您設備的設備 ID 和 API 密鑰。下面的快照可以幫助您。
獲得 API 密鑰和設備 ID 后,您只需將默認值替換為您的值并在瀏覽器中加載 URL。您的瀏覽器將使用 PIN 的狀態回復
{"success": "1", "value": "1"} or {"success": "1", "value": "0"}
如果值為 1,則為高,如果為 0,則為低。同樣,您可以嘗試所有命令的 API 鏈接,例如數字讀取、寫入、模擬寫入、PWM 甚至串行通信。一旦你玩完它,讓我們繼續這個項目的實際程序。
準備 Python 環境
正如我之前所說,bolt 可以使用 JavaScript、HTML 或 Python 進行編程。在這里,我們將只專注于如何使用 python 來完成。我們必須在已經安裝了 python 的計算機上編寫 python 腳本。如果您對這一切不熟悉,我建議您閱讀本文以了解如何安裝 python 并開始使用它。除此之外,我們還需要安裝兩個庫包才能使我們的程序正常工作。您可以使用 pip install 選項將包添加到 python,在 python 目錄中的終端上運行以下命令來安裝包。打開 Windows 終端并導航到主要位于C://Python 3中的 python 目錄
第 1 步:-如果您之前沒有安裝過 pip,請安裝。使用以下命令安裝它
sudo easy_install pip
第 2 步:-在 C://Python/Scripts 目錄中安裝 requests 包
pip install requests
第 3 步:-使用以下命令安裝 boltiot 包
pip install boltiot
安裝成功完成后,您的 careen 應該如下所示
就是這樣,現在我們打開了 Python IDLE 并開始為我們的安全系統編寫我們的實際程序。但在此之前,通過谷歌助手激活或關閉警報以及向我們的電報頻道發送電子郵件和發送消息,我們使用谷歌助手服務和 IFTTT 提供的網絡掛鉤服務。所以讓我們繼續設置它們。如果您不熟悉使用 IFTTT 小程序,那么建議您在繼續之前閱讀本文。
使用 Google 助理激活和停用鬧鐘
我們必須為此創建兩個小程序(食譜),一個是激活警報,另一個是取消激活警報。當警報被激活時,連接到引腳 3 的電容器應該被充電,當警報被禁用時,連接到引腳 4 的電容器應該被充電。
小程序為此服務使用 Google 助手,并且網絡掛鉤獲取對該服務的請求。下面的屏幕截圖顯示了如何設置小程序以在激活警報時將引腳 3 設為高電平,并在通過 Google 助手停用警報時將引腳 4 設為高電平。
?
電容器的用途是什么?
電容器 1 和 2 用作存儲元件。當電路板收到來自 IFTTT 的命令時,引腳 3 和 4 將用作輸出引腳。根據命令,電路板將為電容器 1 或電容器 2 充電。
現在,當 IFTTT 操作完成時,Python 代碼將引腳 3 和 4 作為輸入引腳,通過讀取這些引腳的狀態,Python 代碼將了解是否應該根據哪個電容器充電來激活或停用警報。簡而言之,將 IFTTT 與 Python 接口是一個小技巧。如果 Bolt 平臺提供了一個虛擬位,但這里說這不是一個選項,那會容易得多。
檢測到入侵者時發送電子郵件
第三個小程序是在檢測到入侵者時發送電子郵件。這可以通過使用 IFTTT 上的網絡掛鉤和 Gmail 服務來完成。Webhooks 服務將為我們提供一個 URL,該 URL 在加載時將觸發該預定義的電子郵件。小程序的快照如下所示。您可以根據需要自定義接收者 ID 和文本。如果檢測到入侵者,該 URL 將在 python 腳本中使用 requests 庫觸發。
當檢測到入侵者時向電報頻道發送警報。
1. 當檢測到任何入侵者時,我們將利用電報頻道廣播警報。
2. 首先,在電報中創建一個新頻道并提供合適的名稱和描述,如下所示。
3. 在下一個屏幕中,將頻道設置為公開,并根據您的意愿輸入頻道永久鏈接。將此頻道鏈接保存為“telegram_chat_id” ,其中下圖為“smart_door_lock_alarm”。
4. 現在讓我們為我們的頻道創建一個機器人。機器人是在電報中運行的第三方應用程序,我們將使用此機器人向我們的頻道發送警報。
5. 在電報首頁,點擊右上角的搜索圖標,搜索botfather。
6. 在搜索結果中,選擇旁邊有藍色勾號的botfather。
7.聊天顯示幾個可能的命令,輸入“/newbot”來創建一個新的機器人。
8. 為您的機器人提供正確的名稱和用戶名。
9. 成功創建機器人后,它會生成一個令牌。此令牌用于通過 python 發送和接收消息。
10. 請將此便箋另存為“telegram_bot_id” ,其中保存為“bot”,后跟bot token。
11. 現在讓我們將機器人添加到我們的頻道,轉到頻道描述并從 3 點菜單中選擇添加管理員。從搜索字段中選擇機器人并賦予機器人適當的權限。
選擇添加管理員
12.恭喜!您已成功創建頻道和機器人。
Python程序說明
此物聯網安全警報的完整 Python 代碼可在本項目末尾找到。在本節中,讓我們將代碼分成小片段并嘗試理解它們。python腳本的總體目標是檢查警報是激活還是取消激活,如果激活,我們必須檢查門是否打開,如果打開,我們必須觸發電子郵件并打開蜂鳴器。
我們已經知道,如果我們必須激活安全系統,引腳 3 上的電容會很高,如果我們必須停用安全系統,引腳 4 上的電容會很高。所以我們只需要在我們的 python 腳本中讀取它們來激活或取消激活警報。
我們通過導入時間、json、請求和boliot庫來開始程序。其中時間庫默認添加到 python 中,但是您必須手動安裝 requests 和 boltiot 包,正如我們之前討論的那樣,否則您將在這些行中收到錯誤。
import time #導入延遲操作的時間
import requests #use requests 通過 webhooks IFTTT 發送郵件
from boltiot import Bolt #導入boliot 通過 API 控制 GPIO 引腳
import json # 處理 JSON 數據的庫
接下來我們輸入設備的憑據,例如 API 密鑰和設備 ID 。只有使用這兩個值,您才能訪問設備上的任何 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 部分所討論的,當我們以字符串的形式執行數字讀取時,我們將得到響應,因此我將這些字符串值分配給了兩個變量,以便我們可以在程序中輕松使用它們。
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
現在我們創建一個名為send_telegram_message()的函數,它將消息作為參數。
在第一行中,我們正在構建 URL,以便 Telegram 知道它必須將消息發送到哪個機器人。telegram_bot_id 為此目的是必需的。數據變量是一個包含聊天 ID(頻道 ID)的字典,以便 Bot 知道它必須將消息發布到哪個頻道。它還包含要作為消息發送的文本消息。
在下一步中,我們需要使用我們之前構建的 URL 向 Telegram 服務器發出 HTTP 請求。該請求是一個“POST”請求,其中包含所有相關數據,如 URL 和要包含在請求中的數據。
` telegram_data = json.loads(response.text) ` 行將文本響應轉換為 JSON 對象并將其存儲在 telegram_data 中。請求的狀態存儲在 telegram_data 變量的“ok”字段中,我們將其返回. “ok”字段將始終包含一個布爾值,即 True/False,如果消息已發送,則為 True。
該函數被封裝在一個 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循環中,我們還有另外兩個循環。如果從 Google 助手激活警報,則將執行一個,如果取消激活警報,則將執行另一個。默認情況下,如果沒有收到命令,將執行去激活的循環。
在這里,必須通過讀取引腳 3 來檢查警報是否被激活,引腳 3 只不過是電容器。如果引腳為高電平,我們使橙色 LED 發光,然后退出此循環并進入激活的while循環。我們每 5 秒檢查一次,以確保我們不超過bolt 提供的 API 速率限制,即每分鐘 30 次調用。
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循環中,我們必須檢查引腳 4 以了解警報是否被取消激活。如果停用,我們將關閉橙色循環并返回停用的while循環。否則,我們必須通過讀取引腳 0 來檢查磁鐵是否靠近霍爾傳感器。如果引腳為高電平,則意味著磁鐵遠離傳感器,表明門已打開。所以我們觸發了蜂鳴器,并使用 requests 包觸發了郵件和消息到 Telegram 頻道。否則,我們會每 5 秒監測一次傳感器。執行相同操作的代碼如下所示
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)
是時候測試設備了
準備好代碼后,我們就可以開始測試我們的項目了。將板安裝在門框上,將磁鐵安裝在門本身上。確保磁鐵靠近霍爾傳感器。這個想法是傳感器應該在門關閉時檢測到磁鐵,而在門打開時不應該能夠檢測到磁鐵。
?
- 基于物聯網的登錄警報系統和人/機器人驗證
- 使用物聯網平臺創建一個溫度警報系統
- 基于物聯網的橋梁健康監測和警報系統
- 使用物聯網警報的喂鳥器
- 使用物聯網的加密貨幣價格警報系統
- 什么是智能工廠-物聯網系統 7次下載
- 物聯網工程概要設計課件下載 0次下載
- 物聯網工程PCB詳細設計課件下載 0次下載
- 物聯網工程需求分析課件下載 0次下載
- 物聯網工程概述課件下載 0次下載
- 關于物聯網和電梯的聯系 1次下載
- 物聯網到底是什么物聯網的簡介和三項關鍵技術詳細說明 16次下載
- 物聯網無線連接技術是什么?物聯網產品的射頻測試資料概述 26次下載
- 物聯網是什么?現在物聯網通信標準和協議有哪些?物聯網應用的概述
- 物聯網的真正價值是什么?
- 物聯網的體系架構 989次閱讀
- 物聯網是什么和物聯網基本架構 5697次閱讀
- 工業4.0 工業物聯平臺有多重要 1301次閱讀
- 物聯網的三大核心是哪些 3w次閱讀
- 工業物聯網到底是什么?工業物聯網的上位史 4201次閱讀
- 部署物聯網有什么訣竅數據到底有多重要 2814次閱讀
- 精度在物聯網中扮演什么樣的角色_有多重要? 1737次閱讀
- 物聯網的工作原理及發展的展望和如何應用物聯網的資料概述 4690次閱讀
- 物聯網的介紹和物聯網發展的未來展望詳細概述 1.2w次閱讀
- 什么是物聯網應用技術_物聯網專業技能有什么 9.7w次閱讀
- 什么是物聯網節點_物聯網節點之間的關系 2w次閱讀
- 農業物聯網的意義_農業物聯網的功能_農業物聯網的應用 9619次閱讀
- 工業物聯網的意義_工業物聯網前景分析 1.2w次閱讀
- 蜂窩物聯網是什么_蜂窩物聯網建設意義 1.3w次閱讀
- 云計算與物聯網的關系_云計算和物聯網的優勢 1.3w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 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開發指南
- 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開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 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次下載 | 免費
評論
查看更多