Play ESP-01 with Arduino

2. ESP-01+Line打造簡易保全系統

器材準備

紅外線感應器在PM2.5研習的材料包裡並沒有附,請自行上拍賣購買,搜尋關鍵字hc-sr501,一個大概30元

 

IFTTT設定 Step by Step

IFTTT官網 https://ifttt.com/

IFTTT就是IF This Then That的縮寫,我們這裡會用到MAKER與LINE兩個SERVICE

它的原理就是:如果(if)MAKER收到來自WEB的訊號(this)(then)LINE通知(that)

01.首次註冊請選右上角的Sign up

02.接著填入你的email與自設一個密碼(不是信箱密碼),按下Sign up就完成了,也不需要到信箱做啟用的動作,十分簡單

03.登入後點選右上角自己的帳號,出現下拉選單再點選>>New Applet

04.點選+this,來指定第一個service

05.提供的服務太多,直接在搜尋的地方輸入關鍵字MAKER,會出現兩項,點選MAKER

06.英文說明,直接按下下方的Connect

07.點選事件觸發時機,這裡只有一個可選,Receive a web request

08.輸入一個自訂名稱,我把它取名為sensor_pir,好了按下Create trigger

09.點+that,指定第二個Service

10.在搜尋的地方輸入line,這次只出現一個,直接點選

11.跟之前的MAKER一樣,按下Connect

12.接著跳出視窗,要求輸入LINE綁定的信箱跟密碼,輸入完畢按登入

13.帳號密碼沒問題的話,按下同意並連動

14.連結LINE帳戶完成

15.LINE帳戶連結完成後會跳回Step 4 ,接下來的動作也只有一個可以選,就是發送訊息

16.訊息對象可發送給自己,或是發送給群組(需先將LINE Notify這個帳號加入該群組);訊息內容也可自訂參數,由網址傳遞過來;另外也可以傳送圖片

17.先把訊息改成如下,在實務上安裝感應器可能會有好幾組擺放在不同的位置,所以我們這裡把感應器的編號用{{value1}}來取代,(請注意預覽時它是顯示圓角標籤Value1),按下Create action

18.設定完成,按下下方的Finish

19.目前服務已經跑起來了(On),若要修改內容,點右上角的齒輪

20.最後要查出連接MAKER時的APIKEY是多少,先點右上角自己的帳號,出現下拉選單再點Serviecs

 

21.點Maker

22.點左上角齒輪Settings

 

23.下方URL最末段反白的這一串就是您的APIKEY,請先複製下來備用

 

 

編輯arduino程式

程式很簡單,打開arduino軟體,複製下方程式碼,修改一下無線網路SSID與密碼,並替換掉你自己的APIKEY,若是第2組感應器,就把value1的值改一下,修改好就可以把程式碼上傳到ESP-01了,(詳細上傳步驟請參閱上一章)

#include <ESP8266WiFi.h>

#define SSID    "無線網路SSID"                     
#define PASS    "無線網路密碼"     

void setup()
{
  pinMode(2,INPUT);
  WiFi.begin( SSID, PASS );
 }
 
void loop(){
if(digitalRead(2)==HIGH){
WiFiClientSecure client;
     if( !client.connect("maker.ifttt.com", 443 ) )
    {
         return;
    }
    else
    {                                                                //第二組感應器就把value1=1改成value1=2
        String getStr_line = "GET /trigger/sensor_pir/with/key/本段文字替換成您的?value1=1  HTTP/1.1\r\n";
        client.print( getStr_line );
        client.print( "Host: maker.ifttt.com\n" );
        client.print( "Connection: close\r\n\r\n" );
        client.stop();
      }  
 
  delay(5000);
}  
}

電路接線圖

請注意ESP-01電源是接到3.3V,紅外線感應器的電源是接到5V,別接錯了

接好線路插上變壓器,當紅外線感應器有偵測到動靜時,手機應該馬上就可以收到LINE的通知了

全部 錯誤訊息 (7) 已棄用 (0) 資料庫語法 (13) 區塊 (0) 額外資訊 (2) 計時(3)
錯誤訊息
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 73
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
通知: Undefined index: bootstrap 在檔案中的第 /modules/tadtools/class/Utility.php 列 409
已棄用
資料庫語法
0.000085 - SET SQL_BIG_SELECTS = 1
0.000893 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000390 - SELECT sess_data, sess_ip FROM session WHERE sess_id = '77anbbudsu2rcdm786pfjmhe2o'
0.000365 - SELECT * FROM modules WHERE dirname = 'tad_book3'
0.000501 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '9')
0.000314 - SELECT * FROM config WHERE (`conf_modid` = '9') ORDER BY conf_order ASC
0.000339 - select a.tbsn,a.title,b.author,a.category,a.page,a.paragraph,a.sort from tad_book3_docs as a left join tad_book3 as b on a.tbsn=b.tbsn where a.tbdsn='40'
0.000206 - SELECT tbsn,title FROM tad_book3 ORDER BY sort
0.000246 - select * from tad_book3_docs where tbdsn='40'
0.000198 - select * from tad_book3 where tbsn='11'
0.000292 - SELECT * FROM modules WHERE dirname = 'tadtools'
0.000316 - SELECT * FROM config WHERE (`conf_modid` = '4') ORDER BY conf_order ASC
0.000193 - select `tt_theme_kind` from `tadtools_setup` where `tt_theme`='school2015'
總計: 13
區塊
總計: 0
額外資訊
包含檔案: 103 檔案
使用記憶體: 3638368 bytes
計時
XOOPS 使用 0.048 秒來載入。
XOOPS Boot 使用 0.033 秒來載入。
Module init 使用 0.015 秒來載入。