概述
我們剛剛在車庫中安裝了貓門,我想看看我們的貓每天(實(shí)際上是晚上)有多少次進(jìn)出門。我們可以說貓?jiān)谑褂瞄T,因?yàn)槲覀冇袝r(shí)會(huì)在門外和門內(nèi)找到它。對(duì)于這個(gè)項(xiàng)目,我跳過了其他項(xiàng)目使用的攝像頭,并決定嘗試使用IFTTT(如果不這樣做)免費(fèi)服務(wù)來檢測運(yùn)動(dòng)時(shí)發(fā)送電子郵件。
因此,拆開我的零件盒,我發(fā)現(xiàn)了一個(gè)PIR運(yùn)動(dòng)傳感器,ESP8266和5V電池。
我使用了Adafruit HUZZAH ESP8266,因?yàn)樗哂杏糜跒?.3v ESP供電的5V穩(wěn)壓器,以及用于初始設(shè)置的良好教程。我也將Arduino IDE與ESP8266庫一起使用,因?yàn)槲乙呀?jīng)非常熟悉將其與Huzzah ESP8266結(jié)合使用。
我決定將此接口連接到IFTTT(www.ifttt.com),以觸發(fā)任何類型的事件。最初,每次檢測到運(yùn)動(dòng)時(shí)僅一封電子郵件。
請(qǐng)注意,IFTTT需要HTTPS SSL加密。因此,該項(xiàng)目包括該代碼。
步驟1:零件清單
零件清單
·Adafruit HUZZAH ESP8266https://www.adafruit.com/product/2471
·PIR運(yùn)動(dòng)檢測器,例如https://www.adafruit.com/products/189
·FTDI或USB控制臺(tái)電纜https://www.adafruit.com/products/954或等效
·5V電源或5V USB電池(用于便攜式)
·面包板,電線,盒子將所有東西都放入
·安裝了ESP8266擴(kuò)展包的Arduino IDE(請(qǐng)參閱下面的初始設(shè)置)
·從GitHub下載ESP8266_PIR軟件:https://github.com/rgrokett/ESP8266_PIR
重要的ESP8266初始設(shè)置
在開始項(xiàng)目之前,您應(yīng)該熟悉Adafruit HUZZAH開發(fā)板,并使用Arduino IDE對(duì)其進(jìn)行編程。最好的方法是使用出色的Adafruit教程:
https://learn.adafruit.com/adafruit-huzzah-esp8266 。..
您必須能夠?qū)ζ銭SP8266進(jìn)行編程,并按照其教程中的說明通過瀏覽器無線連接到它。完成后,然后繼續(xù)進(jìn)行下一步。..
步驟2:IFTTT設(shè)置
1。轉(zhuǎn)到www.ifttt.com
2。登錄。如果您沒有帳戶,則可以注冊(cè)。免費(fèi)。
3。登錄后,點(diǎn)擊我的小程序
4。點(diǎn)擊新小程序
5。點(diǎn)擊“……”。
6。在搜索服務(wù)框中輸入“ Webhooks ”
7。點(diǎn)擊 Webhooks 圖標(biāo)
8。對(duì)于“選擇觸發(fā)器”,只有一個(gè)帶有“ Receive a Web Request ”的大灰色框。單擊它
9。對(duì)于完整的觸發(fā)器字段,輸入“ pirigrigger ”,然后單擊“創(chuàng)建”。這是ESP8266 .ino軟件中使用的事件名稱。它們必須匹配。
10。點(diǎn)擊“…”的“ 那個(gè)”。
11。在搜索渠道框中輸入“ 電子郵件”。您可以更改此設(shè)置以執(zhí)行其他操作,例如發(fā)送短信等。但是,請(qǐng)堅(jiān)持使用電子郵件。您以后可以隨時(shí)進(jìn)行編輯。
14。對(duì)于“選擇操作”,單擊帶有“ 向我發(fā)送電子郵件”的灰色大框。
15。單擊帶有“ 給我發(fā)送電子郵件”的藍(lán)色大框。
16。您可以編輯文本,也可以直接保留文本。某些字段未使用,但它們只是在您的電子郵件中顯示為空白。
17。點(diǎn)擊創(chuàng)建操作。您將看到一個(gè)僅描述此食譜將要執(zhí)行的操作的屏幕。您可以編輯食譜標(biāo)題,也可以直接保留。點(diǎn)擊完成。
18。請(qǐng)注意,它使用您注冊(cè)IFTTT時(shí)輸入的電子郵件地址。
19?,F(xiàn)在,您有了IFTTT食譜。
可以使用任何使用Maker渠道的IFTTT食譜,只要它被稱為“ pirigrigger”即可。 ((如果需要,您可以在下面的ESP8266_PIR.ino程序中更改觸發(fā)器名稱。)
IFTTT Maker URL
您需要IFTTT分配的Maker URL,以便從ESP8266發(fā)送到IFTTT。
1。在屏幕的右上角上單擊您的名字,然后選擇服務(wù)。
2。再次單擊 Webhooks圖標(biāo)。
3。點(diǎn)擊設(shè)置按鈕。
4。在“制造商設(shè)置”屏幕上,您需要復(fù)制“ URL:”字段的 api鍵部分。
示例:https://maker.ifttt.com/use/aBc1fakekey2ab3cBA
.ino程序稍后需要。
步驟3:軟件
您應(yīng)該在對(duì)ESP8266進(jìn)行硬件布線之前對(duì)其進(jìn)行編程和測試。
1。 停止的!確保您已經(jīng)完成了Arduino IDE的Adafruit教程軟件設(shè)置,并按照上述“初始設(shè)置”部分中的說明使用WiFi網(wǎng)絡(luò)測試了ESP8266!
2。好的,從GitHub(https://github.com/rgrokett/ESP8266_PIR/)下載ESP8266_PIR軟件
3。將ESP8266_PIR子目錄復(fù)制到Arduino IDE開發(fā)目錄中。
該文件夾包含所需的3個(gè)軟件文件。
ESP8266_PIR.ino
HTTPSRedirect.h
HTTPSRedirect.cpp
4。雙擊 ESP8266_PIR.ino 程序?qū)⑵浼虞d到Arduino IDE中。
5。使用Arduino IDE,編輯ESP8266_PIR.ino,然后將 WiFi SSID 和 PASSWORD 插入適當(dāng)?shù)奈恢谩?/p>
6。使用先前復(fù)制的 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函數(shù),并且該庫的擴(kuò)展由https://github.com/electronicsguy/ESP8266/tree/ma 。..開發(fā),用于處理HTTPS 302重定向。
由于此代碼不在ESP8266庫中,因此我提供了一個(gè)副本,或者您可以從上面的URL獲取最新版本,并將.cpp和.h文件添加到ESP8266_PIR文件夾中。
IFTTT服務(wù)器最初會(huì)返回302重定向消息,因此“ HTTPSRedirect.cpp”軟件會(huì)無形地處理將請(qǐng)求重新發(fā)送到新主機(jī)的情況。
可選
“ WiFiClientSecure”提供SSL加密,因此郵件始終以加密方式發(fā)送,但是默認(rèn)情況下,IFTTT的SSL證書的驗(yàn)證處于關(guān)閉狀態(tài)。您可以通過更改 verifyCert = true;
啟用它,這需要使用IFTTT服務(wù)器的SHA1指紋來驗(yàn)證證書。
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服務(wù)器檢索的:
$ openssl s_client -servername maker.ifttt.com -connect maker.ifttt.com:443 | openssl x509 -fingerprint -noout
用冒號(hào)替換冒號(hào)并更新ESP8266_PIR.ino如所須。
注意:除非IFTTT更改了其SSL證書,否則不必更改此設(shè)置。
再次,您可以通過以下方法繞過所有此檢查:保留 verifyCert = false; 數(shù)據(jù)仍處于加密狀態(tài)。
在此處繼續(xù)
8。就像Adafruit教程中所示,使用FTDI或USB控制臺(tái)電纜編譯和上傳程序。請(qǐng)記住,您必須按下HUZZAH ESP8266上的微小GPIO0和RESET按鈕(又名Bootload模式),才能進(jìn)行上載。
9。程序完成加載后,打開串行監(jiān)視器,將其設(shè)置為115,200波特,然后按 ESP8266 RESET 按鈕以重新啟動(dòng)程序。
10。連接到Wifi上網(wǎng)后,它應(yīng)該在串行監(jiān)視器中顯示IP地址。
此外,板上的紅色LED應(yīng)當(dāng)閃爍4次,表明已成功連接。如果沒有連接,請(qǐng)確保ESP8266_PIR.ino中的SSID/PASSWD已更新并上傳。
11。連接PIR和電源的時(shí)間……
步驟4:硬件-PIR
1。暫時(shí)從PC拔下FTDI/USB電纜以關(guān)閉ESP8266的電源。
2。按如下所示連接PIR傳感器。請(qǐng)注意,PIR由5V供電,但其I/O線為3.3v,這使其直接與ESP8266的3.3v GPIO引腳兼容。
(請(qǐng)參見引腳圖)
3。現(xiàn)在將PIR接線,將FTDI/USB電纜重新連接到PC。
4。再次,從Arduino IDE啟動(dòng)串行監(jiān)視器。
5。重置ESP8266,您應(yīng)該會(huì)看到LED閃爍4次,并再次顯示IP地址。
6。如果您移到PIR的前面,則串行監(jiān)視器應(yīng)注冊(cè)該事件并發(fā)送給IFTTT。如果IFTT觸發(fā)成功,您應(yīng)該看到200 OK HTTP響應(yīng)消息和文本并收到一封電子郵件。
《 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。因此,如果您需要對(duì)ESP8266進(jìn)行重新編程,則需要斷開這些連接。
(請(qǐng)參閱電纜插針圖)
您可能需要構(gòu)建一個(gè)USB到ESP電纜,方法是使用未使用的USB電纜并按照上圖所示將其切割。
2。準(zhǔn)備就緒后,將USB連接器插入電源或電池。
3。幾秒鐘后,您應(yīng)該看到紅色LED閃爍四次,表明它已連接至WiFi。
4。做一些動(dòng)作,大約一分鐘后,電子郵件會(huì)到達(dá)!
將所有內(nèi)容放入一個(gè)盒子中。 PIR傳感器可以通過透明塑料工作,但如果安裝在外部,則靈敏度更高。將盒子放在貓門附近(或任何想要檢測運(yùn)動(dòng)的地方),即可開始使用。
責(zé)任編輯:wv
-
運(yùn)動(dòng)檢測
+關(guān)注
關(guān)注
0文章
40瀏覽量
12743 -
ESP8266
+關(guān)注
關(guān)注
51文章
965瀏覽量
47445 -
IFTTT
+關(guān)注
關(guān)注
0文章
47瀏覽量
3329
發(fā)布評(píng)論請(qǐng)先 登錄
ESP8266燒錄與機(jī)智云一鍵配網(wǎng)教程

零知開源——ESP8266+MPU6050 實(shí)現(xiàn)運(yùn)動(dòng)姿態(tài)檢測

ESP8266 通過 MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制

MSP430FR2355上集成智能模擬的PIR運(yùn)動(dòng)檢測器應(yīng)用說明

arduino(1)--ESP8266配置
采用低于1GHz Simplelink?無線MCU的無線運(yùn)動(dòng)檢測器

使用MSPM0進(jìn)行PIR運(yùn)動(dòng)檢測

評(píng)論