谷歌助手使用ESP32和Adafruit IO控制LED
在之前的物聯(lián)網(wǎng)文章中,我們使用ESP32使用IFTTT和Adafruit IO來控制LED。IFTTT和Adafruit IO是兩個流行的云平臺,可以輕松快速地構(gòu)建基于物聯(lián)網(wǎng)(IoT)的項目。我們還使用了另一個流行的android應(yīng)用程序“Blynk”來控制智能手機(jī)上的ESP32 GPIO。在硬件上做一些微小的改變,你可以用任何交流家用電器代替LED,通過互聯(lián)網(wǎng)從任何地方遠(yuǎn)程控制它。
在本文中,我們將使用Adafruit IO的谷歌助手來控制ESP32的LED。這里我們使用IFTTT來訪問谷歌助手,并通過語音命令控制LED。利用Arduino IDE對ESP32進(jìn)行編程。
組件的要求
?ESP32模塊
?USB電纜
?電路試驗板
?LED
?電阻和跳線
?啟用谷歌助手的設(shè)備。
?Adafruit IO上的帳戶
?IFTTT上的帳號
?谷歌帳戶-與您使用谷歌助手的帳戶相同。
線路圖
步驟1:為物聯(lián)網(wǎng)控制的LED設(shè)置Adafruit IO帳戶
Adafruit IO是一個圍繞MQTT協(xié)議構(gòu)建的物聯(lián)網(wǎng)平臺。MQTT是一種輕量級消息傳遞協(xié)議,它為資源受限的網(wǎng)絡(luò)客戶端提供了一種分發(fā)遙測信息的簡單方法。該協(xié)議采用發(fā)布/訂閱通信模式,用于機(jī)器對機(jī)器(M2M)通信,在物聯(lián)網(wǎng)(IoT)中起著重要作用。
對于這個項目,你必須按照以下步驟開始使用Adafruit IO:
訪問并創(chuàng)建一個帳戶。
創(chuàng)建帳戶后,您將進(jìn)入主屏幕。點擊左側(cè)菜單中的“Feeds”。
現(xiàn)在單擊Actions,然后創(chuàng)建一個New提要。然后它會要求你給你的feed命名,我給它LED_Control,你可以根據(jù)你的名字,然后創(chuàng)建,你的feed就創(chuàng)建了。
現(xiàn)在從左側(cè)菜單轉(zhuǎn)到“Dashboards”。點擊Actions,然后點擊創(chuàng)建一個新的儀表板,給它你想要的名字;我給“LEDSwitch”,然后點擊創(chuàng)建,你的儀表板現(xiàn)在將創(chuàng)建。
現(xiàn)在打開你的新儀表板,只需點擊它,你應(yīng)該被帶到一個基本空白的頁面。單擊藍(lán)色+按鈕將允許您向儀表板添加新的UI組件。
對于這個項目,我只需要一個按鈕,所以選擇第一個選項,它會要求你選擇飼料,所以選擇你剛剛做的,并保持其余設(shè)置的默認(rèn)值。
選擇你的儀表板窗口后,將看起來像這樣:
在編程過程中,您將需要您唯一的AIO密鑰,因此請單擊窗口右上角的密鑰按鈕。
點擊關(guān)鍵按鈕后,您的活動密鑰為這個項目生成,不要與任何人分享這個密鑰,這必須是保密的。
步驟2。通過IFTTT連接谷歌助手
在這一步中,我們將把谷歌助手連接到Adafruit IO MQTT Broker,以允許我們用語音命令控制燈光。為了做到這一點,我使用IFTTT (If this Then That)平臺。
要執(zhí)行此操作,您需要遵循以下步驟:
去網(wǎng)站創(chuàng)建一個新的帳戶,如果你還沒有。你也可以用你的谷歌賬號注冊。
創(chuàng)建帳戶后,單擊窗口右上角的用戶名,然后單擊“新建小程序”按鈕。
點擊New applet后,你會發(fā)現(xiàn)一個窗口,問你“If this then that”。IF THIS THEN THAT的意思是,如果在“THIS”上發(fā)生了什么事,那么我們就必須在“THAT”上做點什么。
點擊+藍(lán)色按鈕,搜索“谷歌助手”,然后在特定觸發(fā)器菜單中選擇“說一個簡單的短語”。這將詢問您一些細(xì)節(jié),根據(jù)您填寫并創(chuàng)建觸發(fā)器。
現(xiàn)在你需要輸入Action點擊“That”的+按鈕,搜索Adafruit點擊“Send data to Adafruit IO”
現(xiàn)在,它將要求您選擇提要名稱,因此選擇您之前為該項目創(chuàng)建的提要,并在Data to save中為該applet發(fā)送ON,然后單擊Create action。
一旦你創(chuàng)建了這個小程序,你必須創(chuàng)建另一個小程序來關(guān)閉LED。您必須按照相同的步驟創(chuàng)建另一個applet。
創(chuàng)建完這兩個小程序后,轉(zhuǎn)到“我的小程序”,您可以在這里看到這兩個小程序。
編程ESP32的谷歌助理控制LED
完整的程序在這個項目的最后給出。ESP32采用Arduino IDE編程。使用Arduino IDE連接ESP32與Adafruit IO非常容易,您必須在您的IDE中包含Adafruit MQTT客戶端庫,為此打開您的Arduino IDE并前往Sketch- > include Library ->管理庫并搜索“Adafruit MQTT”然后與此相關(guān)的庫將顯示給您;你只需要安裝它。
安裝此庫后,您就可以使用Adafruit IO與ESP32。
簡要地向您解釋代碼,并告訴您必須在哪里進(jìn)行修改。
在程序開始時,您必須添加以下庫:
現(xiàn)在你必須定義你的網(wǎng)絡(luò)SSID,密碼,你的Adafruit用戶名和你的AIO密鑰,你在做Adafruit IO設(shè)置。
現(xiàn)在您必須定義要輸出的LED。
現(xiàn)在,將WiFiClient和Adafruit_MQTT_Client對象創(chuàng)建為全局變量,并為LED_Control實例化提要。
現(xiàn)在在設(shè)置函數(shù)中,我們將定義我們的LED引腳,波特率,我們將連接到WiFi和MQTT服務(wù)器。
現(xiàn)在,在Loop函數(shù)中,我們需要檢查訂閱是否已更新,并采取相應(yīng)的行動。
最后,添加MQTT Connect函數(shù),以便建立MQTT連接。
一旦您的代碼準(zhǔn)備好修改,您就可以從Arduino IDE將其上傳到ESP32。
測試LED控制谷歌助手
上傳代碼后,打開你的串行監(jiān)視器,你的串行監(jiān)視器應(yīng)該是這樣的:
現(xiàn)在打開谷歌助手在你的安卓系統(tǒng),并給出語音命令,如“打開LED”或“關(guān)閉LED”,它會像你之前定義的那樣響應(yīng)你,你也會觀察到LED狀態(tài)的變化。
本文編譯自iotdesignpro