電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用激光和實(shí)時(shí)警報(bào)服務(wù)的家庭安全解決方案

使用激光和實(shí)時(shí)警報(bào)服務(wù)的家庭安全解決方案

2022-11-24 | zip | 0.30 MB | 次下載 | 免費(fèi)

資料介紹

描述

一、簡(jiǎn)介

該項(xiàng)目專注于開發(fā)使用激光和實(shí)時(shí)警報(bào)服務(wù)的家庭安全解決方案。只能使用 Bolt IOT Android 應(yīng)用程序通過安全設(shè)置(不觸發(fā)警報(bào)),然后輸入正確的密碼。該項(xiàng)目結(jié)合使用 Bolt IOT 模塊和 Arduino 以及提供消息服務(wù)的 Twilio。在以下情況下會(huì)觸發(fā)警報(bào):

  • 當(dāng)輸入正確的密碼并允許該人通過時(shí)。
  • 當(dāng)輸入錯(cuò)誤的密碼并發(fā)出警告時(shí)。
  • 當(dāng)有人試圖在沒有輸入正確密碼的情況下通過時(shí)。

這樣的設(shè)置可以部署在走廊和門后,以便在入侵者試圖進(jìn)入時(shí)觸發(fā)警報(bào)。

pYYBAGN-1BKADPMqAAvhGrQJQWM320.jpg
項(xiàng)目設(shè)置
?
pYYBAGN-1C6AK3ZgAEeC-WbP5_s932.jpg
控制單元與 4x4 鍵盤一起輸入密碼
?
poYBAGN-1D2AG_9oACltzKgGHxk873.jpg
激光安全部分
?
poYBAGN-1EOAC__6AAB-IFLi2R0447.jpg
Bolt IOT 應(yīng)用截圖
?

2. 示范

?
pYYBAGN-1EWAVOwtAAEjN1vRL4M306.png
Python代碼執(zhí)行
?
poYBAGN-1EiACGX6AABEYpPzrqU902.jpg
違反警報(bào)短信
?
pYYBAGN-1EqAKH1QAABDcREBq7U618.jpg
密碼錯(cuò)誤短信
?
poYBAGN-1EyATrtKAABkBRZ2DMQ774.png
輸入錯(cuò)誤密碼時(shí)Arduino串口監(jiān)視器輸出。(開頭的1是由于Arduino從Bolt IOT應(yīng)用程序接收到的消息)。
?
pYYBAGN-1FKAeg3NAABDtYpEUbU239.jpg
正確密碼短信
?

?

poYBAGN-1FSAe8P9AAB1qXvFDHY603.png
輸入正確密碼時(shí) Arduino 串行監(jiān)視器輸出。
?

?

3.電路

  • 3.1 組件

一世。光敏電阻 (LDR)

光敏電阻(Light Decreducing Resistance 的縮寫 LDR,或光敏電阻,或 photo-con

感性電池)是一種無(wú)源組件,可降低組件敏感表面上接收光度(光)的電阻。光敏電阻的電阻隨著入射光強(qiáng)度的增加而降低;換言之,它表現(xiàn)出光電導(dǎo)性。光敏電阻可應(yīng)用于光敏檢測(cè)器電路和光激活和暗激活開關(guān)電路中,作為電阻半導(dǎo)體。在黑暗中,光敏電阻可以具有高達(dá)幾兆歐 (MΩ) 的電阻,而在光照下,光敏電阻可以具有低至幾百歐姆的電阻。

壓電蜂鳴器在模制外殼內(nèi)包含一個(gè)壓電振動(dòng)板(也稱為壓電元件)。當(dāng)施加電壓并且外殼內(nèi)的壓電元件振動(dòng)時(shí)會(huì)發(fā)出聲音。

激光器是一種通過基于電磁輻射的受激發(fā)射的光學(xué)放大過程來(lái)發(fā)射光的設(shè)備。術(shù)語(yǔ)“激光”起源于“受激輻射的光放大”的首字母縮寫詞。

矩陣鍵盤是您在手機(jī)、計(jì)算器、微波爐、門鎖等上看到的那種鍵盤。它們幾乎無(wú)處不在。然而,在 DIY 電子產(chǎn)品中,它們是讓用戶與您的項(xiàng)目交互的好方法,并且經(jīng)常需要導(dǎo)航菜單、輸入密碼和控制機(jī)器人

poYBAGN-1GCACShyAABL4D4e2o4026.png
4x4 矩陣鍵盤引出線
?
  • 3.2 與 Arduino 和 Bolt IOT 模塊的連接
pYYBAGN-1GOAe2guAAKJTMved04708.png
硬件連接
?

>> 將 Bolt 模塊的 TX 引腳連接到 Arduino 的 Rx 引腳(引腳 0),將 Bolt 模塊的 RX 引腳連接到 Arduino 的 TX 引腳(引腳 1)。還將 Bolt 模塊的 5V 引腳和 GND 引腳連接到 Arduino 上的相應(yīng)引腳。

>>對(duì)于 4x4 矩陣鍵盤,將引腳 R1 到 C4 連接到 Arduino 上的引腳 2 到引腳 9,并將 VCC 引腳(如果存在)連接到 5V。

>>將壓電蜂鳴器的+引腳連接到Arduino上的引腳10。

>>將 LDR 與 1k 歐姆電阻串聯(lián)連接到 5V 電源,并將電阻的另一端連接到 GND。將 LDR 和電阻的連接點(diǎn)連接到 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 代碼很容易理解,因?yàn)槲以谄渲刑峁┝俗⑨尅?/font>

請(qǐng)記住,在將 Arduino 代碼上傳到開發(fā)板時(shí),請(qǐng)先移除 TX 和 RX 引腳,然后再上傳,否則會(huì)出現(xiàn)錯(cuò)誤。同樣在輸入密碼時(shí),最后按'*'結(jié)束密碼。

  • 4.2 HTML代碼(用戶界面設(shè)計(jì))
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>

源鏈接向?yàn)g覽器提供了“serialBegin()”和“serialWrite()”的定義。

poYBAGN-1EOAC__6AAB-IFLi2R0447.jpg
Bolt IOT Android 應(yīng)用上的用戶界面
?
  • 4.3 Python代碼

該項(xiàng)目的 python 編碼已在 Ubuntu (Linux) 中完成。在我們開始用 python 編寫主代碼文件之前,我們需要制作一個(gè)配置文件,其中包含每個(gè)用戶/設(shè)備的特定密鑰。我們將在我們的主代碼中導(dǎo)入這個(gè)文件并使用各種屬性。這樣做的好處是每個(gè)用戶只需更改配置文件的內(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 密鑰和設(shè)備 ID 可以如下確定:

>>按照https://cloud.boltiot.com/ 上的說明將您的 Bolt 設(shè)備連接到 Bolt Cloud。

>>之后將出現(xiàn)以下屏幕。螺栓設(shè)備 ID 以黃色突出顯示。

pYYBAGN-1GeAM1ojAABuYbbHPVw097.png
?

>>轉(zhuǎn)到API部分以了解API Key。

poYBAGN-1GqAHxvXAABeqX2GULo295.png
?

<>創(chuàng)建 Twilio 帳戶

第 1 步:在瀏覽器中打開https://www.twilio.com/ 。

第二步:點(diǎn)擊Get a Free API Key按鈕注冊(cè)。

第 3 步:在注冊(cè)表格中填寫所有必要的詳細(xì)信息。下面是填寫好的注冊(cè)表單的截圖。

第 4 步:為了驗(yàn)證他們會(huì)詢問您的電話號(hào)碼。在下拉列表中選擇印度作為選項(xiàng),然后輸入您的電話號(hào)碼。

第 5 步:選擇“可編程短信”選項(xiàng)。

第 6 步:您可以在此頁(yè)面上查看 Account SID 和 Auth token。Auth 令牌默認(rèn)不可見,您可以單擊“查看”按鈕使 Auth 令牌可見,如下圖所示。復(fù)制兩者并將它們安全地保存在某個(gè)地方。

第七步:點(diǎn)擊Get a number按鈕。

第8步:然后會(huì)出現(xiàn)一個(gè)彈出窗口。點(diǎn)擊Choose this number按鈕。

第9步:然后會(huì)出現(xiàn)一個(gè)彈出窗口,其中將包含最終數(shù)字。復(fù)制此編號(hào)并保存到記事本以供將來(lái)參考。

**完整的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. 要記住的要點(diǎn)

一世。將 Arduino 代碼上傳到開發(fā)板時(shí),請(qǐng)先移除 TX 和 RX 引腳,然后再上傳,否則會(huì)出現(xiàn)錯(cuò)誤。

ii. 輸入密碼時(shí),最后按“*”結(jié)束密碼。

iii. 進(jìn)入后,請(qǐng)記住按 Bolt IOT Android 應(yīng)用程序上的“關(guān)門”按鈕。


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

評(píng)論

查看更多

下載排行

本周

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

本月

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

總榜

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