資料介紹
描述
一、簡介
該項目專注于開發使用激光和實時警報服務的家庭安全解決方案。只能使用 Bolt IOT Android 應用程序通過安全設置(不觸發警報),然后輸入正確的密碼。該項目結合使用 Bolt IOT 模塊和 Arduino 以及提供消息服務的 Twilio。在以下情況下會觸發警報:
- 當輸入正確的密碼并允許該人通過時。
- 當輸入錯誤的密碼并發出警告時。
- 當有人試圖在沒有輸入正確密碼的情況下通過時。
這樣的設置可以部署在走廊和門后,以便在入侵者試圖進入時觸發警報。
2. 示范
?
?
3.電路
- 3.1 組件
一世。光敏電阻 (LDR)
光敏電阻(Light Decreducing Resistance 的縮寫 LDR,或光敏電阻,或 photo-con
感性電池)是一種無源組件,可降低組件敏感表面上接收光度(光)的電阻。光敏電阻的電阻隨著入射光強度的增加而降低;換言之,它表現出光電導性。光敏電阻可應用于光敏檢測器電路和光激活和暗激活開關電路中,作為電阻半導體。在黑暗中,光敏電阻可以具有高達幾兆歐 (MΩ) 的電阻,而在光照下,光敏電阻可以具有低至幾百歐姆的電阻。
壓電蜂鳴器在模制外殼內包含一個壓電振動板(也稱為壓電元件)。當施加電壓并且外殼內的壓電元件振動時會發出聲音。
激光器是一種通過基于電磁輻射的受激發射的光學放大過程來發射光的設備。術語“激光”起源于“受激輻射的光放大”的首字母縮寫詞。
矩陣鍵盤是您在手機、計算器、微波爐、門鎖等上看到的那種鍵盤。它們幾乎無處不在。然而,在 DIY 電子產品中,它們是讓用戶與您的項目交互的好方法,并且經常需要導航菜單、輸入密碼和控制機器人
- 3.2 與 Arduino 和 Bolt IOT 模塊的連接
>> 將 Bolt 模塊的 TX 引腳連接到 Arduino 的 Rx 引腳(引腳 0),將 Bolt 模塊的 RX 引腳連接到 Arduino 的 TX 引腳(引腳 1)。還將 Bolt 模塊的 5V 引腳和 GND 引腳連接到 Arduino 上的相應引腳。
>>對于 4x4 矩陣鍵盤,將引腳 R1 到 C4 連接到 Arduino 上的引腳 2 到引腳 9,并將 VCC 引腳(如果存在)連接到 5V。
>>將壓電蜂鳴器的+引腳連接到Arduino上的引腳10。
>>將 LDR 與 1k 歐姆電阻串聯連接到 5V 電源,并將電阻的另一端連接到 GND。將 LDR 和電阻的連接點連接到 Arduino 上的模擬引腳 A0。
>>將 Arduino 上的 11、12 和 13 針連接到 Bolt IOT 模塊上的 1、2 和 3 針。
4.代碼組件
- 4.1 Arduino代碼
#include
String ch="",pwd="123ABCD4"; //Password set as 1234ABCD4
const byte rows=4,cols=4;
char keys[rows][cols]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'},
}; //Setting up the key configuration
byte rpin[rows]={2,3,4,5};
byte cpin[cols]={6,7,8,9};
Keypad obj=Keypad(makeKeymap(keys),rpin,cpin,rows,cols); //Creating object for keypad
int ldr=A0,buzz=10,d1=11,d2=12,d3=13,light,key=0,i,k;
String cmd="";
void setup()
{
Serial.begin(9600);
pinMode(ldr,INPUT);
pinMode(buzz,OUTPUT);
pinMode(d1,OUTPUT);
pinMode(d2,OUTPUT);
pinMode(d3,OUTPUT);
}
void loop()
{
digitalWrite(d1,0);
digitalWrite(d2,0);
digitalWrite(d3,0);
if(Serial.available()>0)
{
cmd=Serial.readString(); //Read data sent from the Bolt IOT app
Serial.println(cmd);
}
if(cmd == "1")
{
char temp=obj.getKey(); //Reads the password entered
if(temp != NO_KEY)
{
if(temp != '*')
{
Serial.println(temp);
ch +=temp;
}
else
{
if(ch == pwd)
{
digitalWrite(d1,HIGH); //Sends signal to Bolt module for correct password
Serial.println("Access granted");
delay(10000);
}
else
{
digitalWrite(d2,HIGH); //Sends signal to Bolt module for wrong password
Serial.println("Access Denied");
cmd="0";
delay(10000);
}
}
}
}
light=analogRead(ldr);
if(light<300)
{
digitalWrite(d3,HIGH); //Sends signal to Bolt module for breach
for(i=0;i<10;i++) //Loop for making the buzzer beep
{
digitalWrite(buzz,HIGH);
delay(500);
digitalWrite(buzz,LOW);
delay(500);
}
}
}
上面的 Arduino 代碼很容易理解,因為我在其中提供了注釋。
請記住,在將 Arduino 代碼上傳到開發板時,請先移除 TX 和 RX 引腳,然后再上傳,否則會出現錯誤。同樣在輸入密碼時,最后按'*'結束密碼。
- 4.2 HTML代碼(用戶界面設計)
html>
<html>
<head>
<title>
Project
title>
<script type="text/javascript" src="https://cloud.boltiot.com/static/js/boltCommands.js">script>
<script>
setKey('{{ApiKey}}','{{Name}}');
script>
head>
<body onload="serialBegin(9600)">
<div style="background-color:red;height:350px;">
<center>
<br><br><br><br><br><br><br><br>
<button onclick="serialWrite('1')">Door openedbutton>
center>
div>
<div style="background-color:green;height:350px;">
<center>
<br><br><br><br><br><br><br><br>
<button onclick="serialWrite('0')">Door closedbutton>
center>
div>
body>
html>
源鏈接向瀏覽器提供了“serialBegin()”和“serialWrite()”的定義。
- 4.3 Python代碼
該項目的 python 編碼已在 Ubuntu (Linux) 中完成。在我們開始用 python 編寫主代碼文件之前,我們需要制作一個配置文件,其中包含每個用戶/設備的特定密鑰。我們將在我們的主代碼中導入這個文件并使用各種屬性。這樣做的好處是每個用戶只需更改配置文件的內容即可使用該產品。
以下是配置文件(命名為 conf.py):
sid = 'You can find SID in your Twilio Dashboard'
auth_token = 'You can find on your Twilio Dashboard'
from_number = 'This is the no. generated by Twilio. You can find this on your Twilio Dashboard'
to_number = 'This is your number. Make sure you are adding +91 in beginning'
api_key = 'This is your Bolt Cloud accout API key'
device_id = 'This is the ID of your Bolt device'
Bolt 模塊的 API 密鑰和設備 ID 可以如下確定:
>>按照https://cloud.boltiot.com/ 上的說明將您的 Bolt 設備連接到 Bolt Cloud。
>>之后將出現以下屏幕。螺栓設備 ID 以黃色突出顯示。
>>轉到API部分以了解API Key。
<>創建 Twilio 帳戶
第 1 步:在瀏覽器中打開https://www.twilio.com/ 。
第二步:點擊Get a Free API Key
按鈕注冊。
第 3 步:在注冊表格中填寫所有必要的詳細信息。下面是填寫好的注冊表單的截圖。
第 4 步:為了驗證他們會詢問您的電話號碼。在下拉列表中選擇印度作為選項,然后輸入您的電話號碼。
第 5 步:選擇“可編程短信”選項。
第 6 步:您可以在此頁面上查看 Account SID 和 Auth token。Auth 令牌默認不可見,您可以單擊“查看”按鈕使 Auth 令牌可見,如下圖所示。復制兩者并將它們安全地保存在某個地方。
第七步:點擊Get a number
按鈕。
第8步:然后會出現一個彈出窗口。點擊Choose this number
按鈕。
第9步:然后會出現一個彈出窗口,其中將包含最終數字。復制此編號并保存到記事本以供將來參考。
**完整的Python代碼
import conf
from boltiot import Sms, Bolt
import json, time
mybolt = Bolt(conf.api_key, conf.device_id)
sms = Sms(conf.sid, conf.auth_token, conf.to_no, conf.from_no)
while True:
print ("Reading value from Arduino")
resp1 = mybolt.digitalRead('1')
d1 = json.loads(resp1)
resp2 = mybolt.digitalRead('2')
d2 = json.loads(resp2)
resp3 = mybolt.digitalRead('3')
d3 = json.loads(resp3)
print("D1 value is: " + str(d1['value']))
print("D2 value is: " + str(d2['value']))
print("D3 value is: " + str(d3['value']))
try:
sens1 = int(d1['value'])
sens2 = int(d2['value'])
sens3 = int(d3['value'])
if sens3 == 1 :
print("Making request to Twilio to send a SMS")
response = sms.send_sms("Breach!!!! Someone has entered forcefully.")
print("Response received from Twilio is: " + str(response))
print("Status of SMS at Twilio is :" + str(response.status))
elif sens2 == 1 :
print("Making request to Twilio to send a SMS")
response = sms.send_sms("Someone is trying to open the door.")
print("Response received from Twilio is: " + str(response))
print("Status of SMS at Twilio is :" + str(response.status))
elif sens1 == 1 :
print("Making request to Twilio to send a SMS")
response = sms.send_sms("The door is opened. You can enter now.")
print("Response received from Twilio is: " + str(response))
print("Status of SMS at Twilio is :" + str(response.status))
except Exception as e:
print ("Error occured: Below are the details")
print (e)
time.sleep(10)
在上面的 python 代碼中,d1、d2 和 d3 是 Bolt IOT 模塊從 Arduino 接收到的輸入值。
5. 要記住的要點
一世。將 Arduino 代碼上傳到開發板時,請先移除 TX 和 RX 引腳,然后再上傳,否則會出現錯誤。
ii. 輸入密碼時,最后按“*”結束密碼。
iii. 進入后,請記住按 Bolt IOT Android 應用程序上的“關門”按鈕。
- 基于Realtek的智能語音服務解決方案
- 工廠安全智能管理解決方案
- 便宜的DIY激光警報
- 家庭檢疫安全警報
- MiMaMori家庭安全警報開源分享
- 家庭安全警報系統
- 亮風臺AR安全管控解決方案
- 基于諸智云的工業物聯網解決方案詳細資料免費下載 24次下載
- 基于家庭照明與物聯網連接的解決方案 4次下載
- 家庭無線視頻監控解決方案 0次下載
- 家庭網絡業務應用解決方案
- 基于ARM的家庭網絡系統解決方案
- Java Web應用服務安全性研究及解決方案
- 多角度構筑web服務安全解決方案
- 基于屬性的Web服務安全訪問控制方案
- 啟明智顯儀表解決方案:HMI芯片Model系列+ONEOS實時操作系統 169次閱讀
- 松盛光電恒溫激光錫焊系統解決方案 164次閱讀
- 瑞薩基于IEC61508的功能安全解決方案介紹(1) 518次閱讀
- ECU的安全車輛網絡有效測試解決方案 351次閱讀
- 分布式實時日志分析解決方案ELK部署架構 779次閱讀
- 支持安全物聯網設備開發和制造的解決方案 1059次閱讀
- ADI公司的出色過程自動化通訊解決方案 1512次閱讀
- 基于IP網絡的實時媒體流傳送方案 2381次閱讀
- 激光測徑儀的工作原理以及技術解決方案 8871次閱讀
- 解析自動駕駛解決方案優劣和功能安全需求 4975次閱讀
- 激光和激光器的種類 2.5w次閱讀
- 升特公司推出易于使用的低功耗、高性價比的集成化射頻解決方案 696次閱讀
- 意法半導體:家庭自動化完全解決方案 1046次閱讀
- RTX實時操作系統平臺拓展IntervalZero解決方案范圍 5164次閱讀
- MC68VZ328的智能家庭網關的解決方案 1326次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多