實作入侵偵測通知系統一點也不困難!當紅外線感測器偵測到物體時,將透過AM7020(NBIoT Module)觸發IFTTT平台所設定的事件,並自動發送LINE推送通知。看到這裡也許有些人已經覺得很矇了,IFTTT事件、AM7020 Module、還要結合自動推送?請耐心服用以下教學短文,讓你在5分鐘內搞懂一切!

 

所需材料

  • ESP32

  • AM7020(含SIM card & 天線)

  • PIR Sensor(人體紅外線感測器)

 

ESP32

ESP32是一塊同時具有WiFiBluetooth功能的開發板,具有兩組HW UART。這次範例會使用第二組HW UARTAM7020溝通,並將Protocol Stack 建置在 ESP32上。

 

AM7020

AM7020是一款NBIoT模組,模組本身支援HTTP(S)、MQTT(S)、TLS等多項Protocol,加上專屬AM7020的Arduino Library,讓使用門檻大大降低,對初學者相當親切的一款模組。

 

PIR Sensor

PIR為人體紅外線感測器,當接收到特定波長範圍的紅外線後,會影響內部接收元件進而產生電位差訊號,經過電路轉換即可輸出數位訊號。感測距離最大可達7至9米,實際感測距離也會因環境溫度有所改變。

 

 

專案架構

本次實作將以ESP32作為主控板並讀取PIR數位訊號;當PIR被觸發時,會透過UART 與AM7020溝通並使用HTTP發送請求至IFTTT平台的Webhook service,IFTTT平台再透過預先設定的觸發事件,發送LINE Notify至LINE用戶端。

 

 

3大步驟:

1. IFTTT事件建立

2. 硬體配置

3. 程式說明

 

1. 建立IFTTT事件(觸發Webhook發送LINE Notify)

首先進到IFTTT官網註冊帳號,登入後建立一個觸發事件,用意為「當IFTTT Webhook被觸發,就透過line Notify發送訊息至line上」。

 

在此設定Webhook的觸發事件名稱為『IR_Trig』(可自行設定,但須確保Arduino程式碼端也維持相同名稱),LINE Notify通知訊息為『有人入侵!!』(大家可以自行修改),並且可以在Photo URL的欄位填入圖片網址(這裡示範史迪奇),這樣一來LINE Notify就會在觸發時把通知訊息及圖片發送給用戶端囉!

 

建立完畢後我們需要取得Webhook的key才能進行後續請求,點選Webhook圖示 >> Documentation即可在頁面上方(紅框處)看到Your Key is:xxxxxxx,大家記得記下key,後續的code將會需要使用。

 

這裡的紅框處為你的Webhook key;綠框是觸發事件的網址,我們就是透過AM7020發送HTTP請求,達到觸發事件的功能;藍框則為HTTP請求Body的部份,可以讓使用者將一些資料一併發送至LINE用戶端(本次專案不會使用到,未來有機會再介紹給各位)。

 

2. 硬體配置

ESP32

AM7020

PIR

5v

V

-

3v3

-

Vcc

GND

G

GND

TX2

R

-

RX2

T

-

D5

EN

-

D4

-

OUT

 

 

 

 

3. 程式說明

 

  • 安裝所需Arduino Library

程式會需要使用到TinyGsm以及ArduinoHttpClient這兩個Library,大家需要去Github上下載後,放到Arduino Library資料夾內。

在Arduino上層需要使用ArduinoHttpClient這個library,它負責處理及產生HTTP相關的封包內容,產生出來的封包再交由TinyGsm包裝成TCP封包,最後在經由UART使用AT Command的方式發送到AM7020。

程式碼請參閱Github ( https://github.com/JiekangHuang/PIR_Line_Notify );

在config.h設定檔內的第65行要改為自己先前記下來的IFTTT Webhook key;第66行則要確定與自己設定的觸發事件名稱相同(e.g.『IR_Trig』)。

 

  • 執行程式碼

當PIR偵測到有物體移動時,就會透過AM7020發送HTTP request到IFTTT Webhook,IFTTT收到請求後將依照先前設定的條件發送LINE Notify訊息到用戶端(就是我們前面所設定的「有人入侵!!」文字訊息及史迪奇圖片)。

 

小結

本次專案透過3步驟教大家快速實作警訊通知系統,原理就是使用ESP32讀取PIR Sensor狀態,一旦PIR Sensor被觸發便會透過AM7020將HTTP請求發送至IFTTT;經過IFTTT預先設定的事件處理即可達到發送LINE Notify訊息的功能,3步驟完成簡易入侵偵測通知系統是不是相當容易呢!

 

這款入侵通知系統的特色更取決於AM7020模組、NBIoT的優勢,對於偏鄉、沒有WiFi訊號的地方也能正常運作,不受地域限制就是NBIoT最大的特色。喜歡的夥伴歡迎分享給親友,未來也將更新更多NBIoT實作分享。