概述
我們剛剛在車庫中安裝了貓門,我想看看我們的貓每天(實際上是晚上)有多少次進出門。我們可以說貓在使用門,因為我們有時會在門外和門內找到它。對于這個項目,我跳過了其他項目使用的攝像頭,并決定嘗試使用IFTTT(如果不這樣做)免費服務來檢測運動時發送電子郵件。
因此,拆開我的零件盒,我發現了一個PIR運動傳感器,ESP8266和5V電池。
我使用了Adafruit HUZZAH ESP8266,因為它具有用于為3.3v ESP供電的5V穩壓器,以及用于初始設置的良好教程。我也將Arduino IDE與ESP8266庫一起使用,因為我已經非常熟悉將其與Huzzah ESP8266結合使用。
我決定將此接口連接到IFTTT(www.ifttt.com),以觸發任何類型的事件。最初,每次檢測到運動時僅一封電子郵件。
請注意,IFTTT需要HTTPS SSL加密。因此,該項目包括該代碼。
步驟1:零件清單
零件清單
·Adafruit HUZZAH ESP8266https://www.adafruit.com/product/2471
·PIR運動檢測器,例如https://www.adafruit.com/products/189
·FTDI或USB控制臺電纜https://www.adafruit.com/products/954或等效
·5V電源或5V USB電池(用于便攜式)
·面包板,電線,盒子將所有東西都放入
·安裝了ESP8266擴展包的Arduino IDE(請參閱下面的初始設置)
·從GitHub下載ESP8266_PIR軟件:https://github.com/rgrokett/ESP8266_PIR
重要的ESP8266初始設置
在開始項目之前,您應該熟悉Adafruit HUZZAH開發板,并使用Arduino IDE對其進行編程。最好的方法是使用出色的Adafruit教程:
https://learn.adafruit.com/adafruit-huzzah-esp8266 。..
您必須能夠對其ESP8266進行編程,并按照其教程中的說明通過瀏覽器無線連接到它。完成后,然后繼續進行下一步。..
步驟2:IFTTT設置
1。轉到www.ifttt.com
2。登錄。如果您沒有帳戶,則可以注冊。免費。
3。登錄后,點擊我的小程序
4。點擊新小程序
5。點擊“……”。
6。在搜索服務框中輸入“ Webhooks ”
7。點擊 Webhooks 圖標
8。對于“選擇觸發器”,只有一個帶有“ Receive a Web Request ”的大灰色框。單擊它
9。對于完整的觸發器字段,輸入“ pirigrigger ”,然后單擊“創建”。這是ESP8266 .ino軟件中使用的事件名稱。它們必須匹配。
10。點擊“…”的“ 那個”。
11。在搜索渠道框中輸入“ 電子郵件”。您可以更改此設置以執行其他操作,例如發送短信等。但是,請堅持使用電子郵件。您以后可以隨時進行編輯。
14。對于“選擇操作”,單擊帶有“ 向我發送電子郵件”的灰色大框。
15。單擊帶有“ 給我發送電子郵件”的藍色大框。
16。您可以編輯文本,也可以直接保留文本。某些字段未使用,但它們只是在您的電子郵件中顯示為空白。
17。點擊創建操作。您將看到一個僅描述此食譜將要執行的操作的屏幕。您可以編輯食譜標題,也可以直接保留。點擊完成。
18。請注意,它使用您注冊IFTTT時輸入的電子郵件地址。
19。現在,您有了IFTTT食譜。
可以使用任何使用Maker渠道的IFTTT食譜,只要它被稱為“ pirigrigger”即可。 ((如果需要,您可以在下面的ESP8266_PIR.ino程序中更改觸發器名稱。)
IFTTT Maker URL
您需要IFTTT分配的Maker URL,以便從ESP8266發送到IFTTT。
1。在屏幕的右上角上單擊您的名字,然后選擇服務。
2。再次單擊 Webhooks圖標。
3。點擊設置按鈕。
4。在“制造商設置”屏幕上,您需要復制“ URL:”字段的 api鍵部分。
示例:https://maker.ifttt.com/use/aBc1fakekey2ab3cBA
.ino程序稍后需要。
步驟3:軟件
您應該在對ESP8266進行硬件布線之前對其進行編程和測試。
1。 停止的!確保您已經完成了Arduino IDE的Adafruit教程軟件設置,并按照上述“初始設置”部分中的說明使用WiFi網絡測試了ESP8266!
2。好的,從GitHub(https://github.com/rgrokett/ESP8266_PIR/)下載ESP8266_PIR軟件
3。將ESP8266_PIR子目錄復制到Arduino IDE開發目錄中。
該文件夾包含所需的3個軟件文件。
ESP8266_PIR.ino
HTTPSRedirect.h
HTTPSRedirect.cpp
4。雙擊 ESP8266_PIR.ino 程序將其加載到Arduino IDE中。
5。使用Arduino IDE,編輯ESP8266_PIR.ino,然后將 WiFi SSID 和 PASSWORD 插入適當的位置。
6。使用先前復制的 IFTTT API密鑰更新API_KEY。如果需要,您可以在IFTTT中查看渠道-》搜索渠道-》制作者。
7。您還可以更改一些變量,如下所述:
const char* ssid = “{YOUR_WIFI_SSID}”; // Your WiFi SSID
const char* password = “{YOUR_WIFI_PWD}”; // Your WiFi Password
const char* api_key = “aBc1fakekey2ab3cBA”; // Your API KEY from https://ifttt.com/maker
const char* event = “pirtrigger”; // Your IFTTT Event Name
bool verifyCert = false; // Select true if you want SSL certificate validation
int PIRpin = 14; // GPIO 14 (PIR Sensor)
int MOTION_DELAY = 15; // Delay in seconds between events to keep from flooding IFTTT & emails
IFTTT需要HTTPS SSL和HTTPS 302重定向。 ESP8266庫(安裝在Adafruit教程中)包含HTTPS SSL函數,并且該庫的擴展由https://github.com/electronicsguy/ESP8266/tree/ma 。..開發,用于處理HTTPS 302重定向。
由于此代碼不在ESP8266庫中,因此我提供了一個副本,或者您可以從上面的URL獲取最新版本,并將.cpp和.h文件添加到ESP8266_PIR文件夾中。
IFTTT服務器最初會返回302重定向消息,因此“ HTTPSRedirect.cpp”軟件會無形地處理將請求重新發送到新主機的情況。
可選
“ WiFiClientSecure”提供SSL加密,因此郵件始終以加密方式發送,但是默認情況下,IFTTT的SSL證書的驗證處于關閉狀態。您可以通過更改 verifyCert = true;
啟用它,這需要使用IFTTT服務器的SHA1指紋來驗證證書。
const char* SHA1Fingerprint=“A9 81 E1 35 B3 7F 81 B9 87 9D 11 DD 48 55 43 2C 8F C3 EC 87”;
此指紋最初是使用Linux命令從IFTTT服務器檢索的:
$ openssl s_client -servername maker.ifttt.com -connect maker.ifttt.com:443 | openssl x509 -fingerprint -noout
用冒號替換冒號并更新ESP8266_PIR.ino如所須。
注意:除非IFTTT更改了其SSL證書,否則不必更改此設置。
再次,您可以通過以下方法繞過所有此檢查:保留 verifyCert = false; 數據仍處于加密狀態。
在此處繼續
8。就像Adafruit教程中所示,使用FTDI或USB控制臺電纜編譯和上傳程序。請記住,您必須按下HUZZAH ESP8266上的微小GPIO0和RESET按鈕(又名Bootload模式),才能進行上載。
9。程序完成加載后,打開串行監視器,將其設置為115,200波特,然后按 ESP8266 RESET 按鈕以重新啟動程序。
10。連接到Wifi上網后,它應該在串行監視器中顯示IP地址。
此外,板上的紅色LED應當閃爍4次,表明已成功連接。如果沒有連接,請確保ESP8266_PIR.ino中的SSID/PASSWD已更新并上傳。
11。連接PIR和電源的時間……
步驟4:硬件-PIR
1。暫時從PC拔下FTDI/USB電纜以關閉ESP8266的電源。
2。按如下所示連接PIR傳感器。請注意,PIR由5V供電,但其I/O線為3.3v,這使其直接與ESP8266的3.3v GPIO引腳兼容。
(請參見引腳圖)
3。現在將PIR接線,將FTDI/USB電纜重新連接到PC。
4。再次,從Arduino IDE啟動串行監視器。
5。重置ESP8266,您應該會看到LED閃爍4次,并再次顯示IP地址。
6。如果您移到PIR的前面,則串行監視器應注冊該事件并發送給IFTTT。如果IFTT觸發成功,您應該看到200 OK HTTP響應消息和文本并收到一封電子郵件。
《 HTTP/1.1 200 OK
《 Server: Cowboy
《 Connection: keep-alive
《 X-Powered-By: Sad Unicorns
《 X-Top-Secrettt: VG9vIGVhc3k/IElmIHlvdSBFK3.。./NlY3JldEBlIHdnQgTWFrZXJzLg==
《 Content-Type: text/html; charset=utf-8
《 Content-Length: 50
《 Etag: W/“32-44d0098f”
《 Date: Wed, 29 Jun 2016 21:25:32 GMT
《 Via: 1.1 vegur
《
* Connection #0 to host maker.ifttt.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
Congratulations! You‘ve fired the pirtrigger event
步驟5:硬件-電源
1。由于Adafruit HUZZAH ESP8266支持5V工作,因此可以使用5V USB電池或USB電源。由于我們將PIR傳感器直接連接到V +引腳之一,因此電池或電源必須連接到FTDI/USB電纜所連接的V +和GND。因此,如果您需要對ESP8266進行重新編程,則需要斷開這些連接。
(請參閱電纜插針圖)
您可能需要構建一個USB到ESP電纜,方法是使用未使用的USB電纜并按照上圖所示將其切割。
2。準備就緒后,將USB連接器插入電源或電池。
3。幾秒鐘后,您應該看到紅色LED閃爍四次,表明它已連接至WiFi。
4。做一些動作,大約一分鐘后,電子郵件會到達!
將所有內容放入一個盒子中。 PIR傳感器可以通過透明塑料工作,但如果安裝在外部,則靈敏度更高。將盒子放在貓門附近(或任何想要檢測運動的地方),即可開始使用。
責任編輯:wv
-
運動檢測
+關注
關注
0文章
34瀏覽量
12612 -
ESP8266
+關注
關注
50文章
962瀏覽量
44964 -
IFTTT
+關注
關注
0文章
47瀏覽量
3141
發布評論請先 登錄
相關推薦
評論