4

你聽說過IFTTT嗎?IFTTT是一項基于互聯網的方便易用的觸發式服務,雷鋒網之前已經有過詳細介紹,詳情看這里。
幾年來,IFTTT所涵蓋的范圍和提供的服務都原來越多了,像是同步微博和Twitter、自動備份相冊等等;另外,IFTTT還在積極向物聯網領域拓展,硬件套件供應商Spark和Adafruit.等都針對IFTTT的API開發了自己的接口應用。
下面就是Adafruit網站上公布的一個基于IFTTT的應用:開門自動報警系統。接下來我們就來詳細了解整個制作過程吧。
首先是硬件配置;要完成這個項目,首先你需要一個Adafruit HUZZAH ESP8266微控制器板(支持WiFi)和一個可以檢測開關門的傳感器。另外必須的組件包括一些電阻和供電電池。
如果一直保持ESP8266的開啟,那么長時間來看其能耗也是相當高的。為了充分延長電池壽命,可以將ESP8266設置在低功耗模式,每幾秒鐘喚醒一次對傳感器信號進行檢測即可。實現這個功能的方式也很簡單,只要將板上GPIO的16腳和RST連接起來就行了。
另外ESP8266的ADC的最大限制電壓為1.0V,所以需要對4.2V電池進行分壓。接線示意圖如下所示:

Pin 16連接RST
Pin 13連接檢測門開關的傳感器的一腳
GND連接門傳感器另一腳、電池-極、220kΩ
VBat連接電池+極和1MΩ電阻
220kΩ和1MΩ電阻另外的腳連接在一起,同時與板上A口相連
硬件部分的工作就是這么多,接下來就該設置Adafruit IO口了。首先,你需要在Adafruit IO上申請Adafruit IO Key(密鑰),這樣才能通過Adafruit的服務接入IFTTT。你所申請的密鑰大概是這個樣子:

獲得密鑰之后,繼續在上面創建Feed(反饋):battery和door,之后這些Feed就將作為其它相關應用(IFTTT)的觸發入口。

接下來在你的計算機上配置好開發環境之后,下載Arduino Sketch,首先你需要對其中一些文件進行簡單的編輯。
1、修改trigger.ino文件中的密鑰和網絡接入信息,將WLAN_SSID(WiFi名)、WLAN_PASS(WiFi密碼)和AIO_KEY(前面申請的密鑰)的參數設置成你自己對應的參數。

2、默認情況下,該程序會每5分鐘向Adafruit IO發送一次電池狀態信息,并且每3秒就檢查一次門的狀態。你可以根據自己的需要對BATTERY_INTERVAL 和SLEEP_LENGTH兩個常量進行定義。

其它的地方保持不變即可。接下來將修改好的文件通過FTDI或其它串行端口上傳到ESP8266。
登陸adafruit.io賬號,查看door的Feed,你應該會看到類似的信息,表示設置成功了。每隔5分鐘,battery應該還會有電池狀態的檢測信息。

接下來配置IFTTT賬號,這個就比較簡單了。

注冊IFTTT之后首先將IFTTT與Adafruit Channel進行綁定。之后就可以將你設置Adafruit ESP8266的Feed作為IFTTT的觸發器使用了。
當然,首先你需要將以上做好的硬件部分安裝到門上。當門被開啟時,會有一個Feed觸發傳輸到IFTTT中,你可以會這個觸發設置相應的動作方式,比如:發送一份郵件、一條微博,甚至還可以通過其它支持IFTTT的組件實現鳴笛報警功能。

想了解更多創意?趕緊關注硬創邦微信(leiphone_bang)吧,每天都有新花樣。

雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。