資料介紹
描述
一、簡介
該項目專注于開發(fā)使用激光和實時警報服務的家庭安全解決方案。只能使用 Bolt IOT Android 應用程序通過安全設置(不觸發(fā)警報),然后輸入正確的密碼。該項目結合使用 Bolt IOT 模塊和 Arduino 以及提供消息服務的 Twilio。在以下情況下會觸發(fā)警報:
- 當輸入正確的密碼并允許該人通過時。
- 當輸入錯誤的密碼并發(fā)出警告時。
- 當有人試圖在沒有輸入正確密碼的情況下通過時。
這樣的設置可以部署在走廊和門后,以便在入侵者試圖進入時觸發(fā)警報。
2. 示范
?
?
3.電路
- 3.1 組件
一世。光敏電阻 (LDR)
光敏電阻(Light Decreducing Resistance 的縮寫 LDR,或光敏電阻,或 photo-con
感性電池)是一種無源組件,可降低組件敏感表面上接收光度(光)的電阻。光敏電阻的電阻隨著入射光強度的增加而降低;換言之,它表現(xiàn)出光電導性。光敏電阻可應用于光敏檢測器電路和光激活和暗激活開關電路中,作為電阻半導體。在黑暗中,光敏電阻可以具有高達幾兆歐 (MΩ) 的電阻,而在光照下,光敏電阻可以具有低至幾百歐姆的電阻。
壓電蜂鳴器在模制外殼內(nèi)包含一個壓電振動板(也稱為壓電元件)。當施加電壓并且外殼內(nèi)的壓電元件振動時會發(fā)出聲音。
激光器是一種通過基于電磁輻射的受激發(fā)射的光學放大過程來發(fā)射光的設備。術語“激光”起源于“受激輻射的光放大”的首字母縮寫詞。
矩陣鍵盤是您在手機、計算器、微波爐、門鎖等上看到的那種鍵盤。它們幾乎無處不在。然而,在 DIY 電子產(chǎn)品中,它們是讓用戶與您的項目交互的好方法,并且經(jīng)常需要導航菜單、輸入密碼和控制機器人
- 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 歐姆電阻串聯(lián)連接到 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 代碼上傳到開發(fā)板時,請先移除 TX 和 RX 引腳,然后再上傳,否則會出現(xiàn)錯誤。同樣在輸入密碼時,最后按'*'結束密碼。
- 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 編寫主代碼文件之前,我們需要制作一個配置文件,其中包含每個用戶/設備的特定密鑰。我們將在我們的主代碼中導入這個文件并使用各種屬性。這樣做的好處是每個用戶只需更改配置文件的內(nèi)容即可使用該產(chǎn)品。
以下是配置文件(命名為 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。
>>之后將出現(xiàn)以下屏幕。螺栓設備 ID 以黃色突出顯示。
>>轉到API部分以了解API Key。
<>創(chuàng)建 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步:然后會出現(xiàn)一個彈出窗口。點擊Choose this number
按鈕。
第9步:然后會出現(xiàn)一個彈出窗口,其中將包含最終數(shù)字。復制此編號并保存到記事本以供將來參考。
**完整的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 代碼上傳到開發(fā)板時,請先移除 TX 和 RX 引腳,然后再上傳,否則會出現(xiàn)錯誤。
ii. 輸入密碼時,最后按“*”結束密碼。
iii. 進入后,請記住按 Bolt IOT Android 應用程序上的“關門”按鈕。
- 基于Realtek的智能語音服務解決方案
- 工廠安全智能管理解決方案
- 便宜的DIY激光警報
- 家庭檢疫安全警報
- MiMaMori家庭安全警報開源分享
- 家庭安全警報系統(tǒng)
- 亮風臺AR安全管控解決方案
- 基于諸智云的工業(yè)物聯(lián)網(wǎng)解決方案詳細資料免費下載 24次下載
- 基于家庭照明與物聯(lián)網(wǎng)連接的解決方案 4次下載
- 家庭無線視頻監(jiān)控解決方案 0次下載
- 家庭網(wǎng)絡業(yè)務應用解決方案
- 基于ARM的家庭網(wǎng)絡系統(tǒng)解決方案
- Java Web應用服務安全性研究及解決方案
- 多角度構筑web服務安全解決方案
- 基于屬性的Web服務安全訪問控制方案
- 工業(yè)環(huán)境中的測距與定位應用解決方案 333次閱讀
- 航電實時測試系統(tǒng)解決方案 301次閱讀
- 啟明智顯儀表解決方案:HMI芯片Model系列+ONEOS實時操作系統(tǒng) 751次閱讀
- 松盛光電恒溫激光錫焊系統(tǒng)解決方案 384次閱讀
- ECU的安全車輛網(wǎng)絡有效測試解決方案 467次閱讀
- 分布式實時日志分析解決方案ELK部署架構 915次閱讀
- 支持安全物聯(lián)網(wǎng)設備開發(fā)和制造的解決方案 1111次閱讀
- ADI公司的出色過程自動化通訊解決方案 1604次閱讀
- 基于IP網(wǎng)絡的實時媒體流傳送方案 2503次閱讀
- 激光測徑儀的工作原理以及技術解決方案 9408次閱讀
- 解析自動駕駛解決方案優(yōu)劣和功能安全需求 5100次閱讀
- 激光和激光器的種類 2.5w次閱讀
- 意法半導體:家庭自動化完全解決方案 1097次閱讀
- RTX實時操作系統(tǒng)平臺拓展IntervalZero解決方案范圍 5204次閱讀
- MC68VZ328的智能家庭網(wǎng)關的解決方案 1426次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現(xiàn)
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多