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