【超低成本】Line即時連動保全系統

Description

Description
作者:黃文玉

前言

今天要來做一個最簡單、最便宜的保全系統,利用[紅外線動作感測器(PIR)]來感測是否有人員進出,如果有感測到再利用IFTTT來傳送信息到LINE,來達到保全的功用!

所需材料:(以下材料總共不超500元)

  • Arduino控制板 X 1
  • 紅外線動作感測器(PIR Motion Sensor) 或稱人體紅外線感測器 X1
  • WiFi Terminal ESP8266 X1
  • 行動電源 或 (18650電池盒+18650電池X2) 註:後發現用9V電池電力好像不足
  • 杜邦線

外觀圖:

元件接法:

紅外線動作感測器(PIR Motion Sensor)

紅外線人體感測

WiFi Terminal ESP8266

註:因為一剛開始8266沒有接VCC線,而是透過microUSB提供5V的電源,發現一直無法成功,後來改直接從Arduino提供5V的電(如上圖所示)才成功!真奇怪,而且在此花了非常多時間,真是的…….

進入Moto Blockly 

使用IFTTT的積木範例


範例的積木如下:

修改成符合自己的環境(增加感測到時,亮D13的L燈)


轉成 Arduino的語言並上傳
#include “motoESP8266.h”

#include <SoftwareSerial.h>
SoftwareSerial esp8266_Serial(A5,A4);

ESP8266 wifi_esp8266(esp8266_Serial);

String ifttt_value_code;
String ifttt_postdata1;
String ifttt_postdata2;
String ifttt_postdata3;

void setup()
{
Serial.begin(9600);
esp8266_Serial.begin(9600);

pinMode(6, INPUT);
pinMode(13, OUTPUT);
wifi_esp8266.restart();
wifi_esp8266.setOprToStation();
wifi_esp8266.joinAP(“Xiaomi_6F5A”,”12345678″);
delay(8000);
Serial.println(wifi_esp8266.getLocalIP());

}
void loop()
{
if (digitalRead(6) == 1) {
digitalWrite(13,HIGH);
wifi_esp8266.createTCP(“maker.ifttt.com”,80);
ifttt_value_code = “\n{\”value1\” :” + String(0) + “,\”value2\”: ” +String(0)+”,\”value3\”: ” +String(0)+”}”;
ifttt_postdata1 = “POST /trigger/pir_on/with/key/cmPXXXXXXXXXXXRmp HTTP/1.1\r\nHost: maker.ifttt.com\r\nUser-Agent: Arduino\r\n”;
ifttt_postdata2 = “Accept: */*\r\nContent-Length: ” + String(ifttt_value_code.length()) + “\r\n” + “Content-Type: application/json\r\n” + “Connection: close\r\n\r\n”;
ifttt_postdata3 = ifttt_value_code +”\r\n”;
wifi_esp8266.send((const uint8_t*)ifttt_postdata1.c_str(), ifttt_postdata1.length());
wifi_esp8266.send((const uint8_t*)ifttt_postdata2.c_str(), ifttt_postdata2.length());
wifi_esp8266.send((const uint8_t*)ifttt_postdata3.c_str(), ifttt_postdata3.length());
Serial.print(“注意,有人進入屋內!!”);
delay(1000);

} else {
digitalWrite(13,LOW);

}

}
序列埠監控視窗呈現結果


LINE接收到的訊息

成功!!

補充一:WiFi Terminal ESP8266 韌體燒錄

作法請參考Motoduino的網站
也可參考我在Transformer的文章
我照著做的畫面,如下
設定WiFi 模組為PRG 模式(燒錄韌體模式),再用燒錄軟體燒錄韌體(這邊採用motoduino下載的v1.3.0.2 AT Firmware.bin)
關閉 FLASH TOOL 燒錄功具, 開啟Arduino IDE 的Serial Monitor, 且設定如下圖!

修改 baud rate為 9600 (輸入 AT+UART_DEF=9600,8,1,0,0 )


檢查是否修改成功,修改Serial Monitor 的 baud rate為 9600, 然後輸入 AT 命令, 如回應 OK, 表示修改成功!

有關8266韌體燒錄,成功!!

 

補充二:IFTTT的使用(利用LINE來傳遞信息)

作法可參考我的另一篇文章
IFTTT 註冊:教學
官網:https://ifttt.com/
註冊 IFTTT 的好處是他目前完全免費, 並且可以讓 WF8266R 跨界使用更多熱門服務.。 IFTTT 簡單來說就是 當 什麼 發生時,就做 什麼 事! 這 2 個「什麼」就是「服務」, 並且可以交互訂閱.
LINE 通知
先登入進去IFTTT
請點右上角你的帳號, 在選單中選擇 New Applet 建立服務

點選「+this」

選擇一個Service

輸入「maker」,並選Maker (這邊要改為輸入 Webhooks )

選擇一個觸發事件(Choose trigger),這部分只有一個選項而已,我們用URL進行觸發


接下來要幫這事件取個名稱(本例的事件名稱是 pir_on , 下圖的test為別的例子)

接下來設定系統要做什麼事情,點選「+that」


選擇一個行動的服務,我們選擇用「LINE」來通知該事件被觸發

連結LINE,並輸入LINE的帳號、密碼

點選「同意並連動」


這時會收到一個LINE Notify


進入Send message的畫面,將要傳遞的訊息輸入在Message的框格內(本例的Message為<注意,有人進入屋內。>)


完成

接下來要尋找觸發的網址格式,我們直接進到以下網址 https://ifttt.com/maker,選擇右上角的「Settings」


IFTTT提供的網址格式如下 https://maker.ifttt.com/trigger/[event]/with/key/[key]?value1=[1]&value2=[2]
[event]就是事件名稱,這邊是test,[key]就是剛剛找到的Key,?後面我們沒設定,所以就不用,所以我們的網址就會像下列
https://maker.ifttt.com/trigger/事件名稱/with/key/你的key
測試成功

黃 文玉

黃 文玉

現職為高雄市左營區新上國小電腦老師。
黃 文玉

Contact

Contact
  • Category
    Smart Home
  • Tags
    line, Smart Home

Project簡述

Project簡述
  • 簡述
    今天要來做一個最簡單、最便宜的保全系統,利用[紅外線動作感測器(PIR)]來感測是否有人員進出,如果有感測到再利用IFTTT來傳送信息到LINE,來達到保全的功用!
  • 作者
    黃文玉

您的姓名 〈需填寫〉

您的電子郵件信箱 〈需填寫〉

主旨

您的信件內容