基于物聯(lián)網的語音控制新像素LED -在谷歌助手上使用語音命令設置任何顏色
隨著谷歌助理、亞馬遜Alexa和蘋果Siri等虛擬助手的發(fā)展,家庭自動化和語音控制應用變得相當流行。我們以前建立了許多家庭自動化項目,從簡單的Alexa控制的家庭自動化到語音控制的家庭自動化使用樹莓派。在這個項目中,我們將使用谷歌助手和Blynk應用程序來控制Neopixel LED條。Blynk應用程序是一個免費的物聯(lián)網平臺,鏈接到IFTTT(如果這樣,那么那個)網站,該網站用于創(chuàng)建if-else條件語句,或者換句話說,applet。谷歌助手的語音命令已經通過IFTTT小程序添加。通過谷歌助手給出的命令被解碼,然后使用IFTTT Webhooks發(fā)送到Blynk。然后微控制器訪問Blynk應用程序中的數據。這里使用的微控制器是ESP-01,因為它體積小,具有Wi-Fi功能。
使用NodeMCU控制新像素所需的組件
?新像素LED帶
?LM1117穩(wěn)壓器
?直流電源插孔(母)
?2x10μf電容器
用Arduino Uno編程ESP8266-01
而不是使用FTDI板,在這里我使用Arduino Uno來編程ESP8266-01。使用Arduino編程ESP8266-01的電路圖如下:
將ESP-01的VCC和GND連接到3.3V, Arduino的GND, CH_PD連接到3.3V, GPIO_0連接到Arduino的GND。將ESP-01的RX和TX分別連接到Arduino Uno的RX和TX。GPIO_0接地,使能ESP8266的編程模式。按圖完成電路后,將Arduino的Reset引腳連接到GND上,繞過Arduino。它將禁用Arduino并將代碼直接上傳到ESP8266板。連接ESP-01的RST引腳到地,半秒后取下RST(藍色LED閃爍幾毫秒)。
現(xiàn)在,啟動Arduino Uno并打開Arduino IDE。在“Board type”中選擇“Generic ESP8266 Module”,上傳代碼。
Neopixel與ESP8266接口的電路圖
上傳代碼后,拆除Arduino Uno,按照圖將Neopixel LED帶與ESP-01連接。
ESP-01的VCC和CH_PD引腳接LM1117的輸出引腳,GND引腳接5V電源的-ve導軌。Neopixel LED的數據引腳連接到ESP-01的GPIO2引腳上。這個完整的設置將由一個5V適配器供電。LM117穩(wěn)壓器用于調節(jié)ESP8266-01板的3.3V電壓。
焊接完穿孔板上的所有組件后,它看起來像下面這樣:
設置Blynk應用程序
Blynk是一個可以在Android和iOS設備上運行的應用程序,可以控制任何物聯(lián)網設備。通過使用Blynk應用程序,用戶可以創(chuàng)建自己的圖形用戶界面來設計物聯(lián)網應用程序GUI。我們以前在許多其他基于物聯(lián)網的項目中使用過Blynk。
在安裝之前,從Google Play商店下載Blynk應用程序(iOS用戶可以從Apple store下載),如果你沒有帳戶,請注冊。
創(chuàng)建新項目:
安裝成功后,打開應用程序,點擊“新建項目”。在下一個屏幕上設置項目名稱、板類型和連接類型等參數。本項目選擇設備為“ESP8266”,連接類型為Wi-Fi,點擊“創(chuàng)建”。
創(chuàng)建GUI:
在Blynk中打開項目,單擊“+”符號,它將顯示許多小部件。在我們的例子中,我們需要一個RGB顏色選擇器,它被列為“zeRGBa”和一個按鈕,將用于改變LED條的操作模式。
在Widgets中設置參數:
添加完所有小部件后,現(xiàn)在設置用于向ESP-01發(fā)送控件值的顏色和模式的小部件參數。
點擊ZeRGBa,我們將看到一個名為ZeRGBa Settings的屏幕。將輸出選項設置為“合并”,并將引腳設置為“V2”,如下圖所示。同樣,在按鈕設置中,將輸出引腳設置為“V3”,如下圖所示。
獲取認證令牌:
創(chuàng)建新項目后,Blynk會將該項目的認證令牌發(fā)送給您。您還可以從項目頁面獲取Blynk認證令牌。只需單擊堅果圖標并使用復制所有選項復制驗證令牌并將其粘貼到安全的地方。我們在編程ESP-01時需要它。
使用Google Assistant和Blynk設置IFTTT
IFTTT又名“If This, Then That”,是一個基于網絡的服務,用于創(chuàng)建簡單條件語句鏈,稱為applet。它使用戶能夠創(chuàng)建觸發(fā)器并基于觸發(fā)器執(zhí)行操作。在這個項目中,當我們使用Google Assistant說出特定的一行時,我們將使用IFTTT來創(chuàng)建一個觸發(fā)器。為此,我們必須創(chuàng)建一個applet,其中我們將使用Webhooks將谷歌助手與Blynk應用程序集成在一起。
首先,在IFTTT上創(chuàng)建一個帳戶。要做到這一點,請瀏覽IFTTT網站并點擊注冊。然后填寫您的詳細信息并點擊創(chuàng)建帳戶。現(xiàn)在,當你登錄你的賬戶時,點擊你的個人資料,然后點擊“創(chuàng)建”。
注意:登錄到IFTTT使用相同的電子郵件ID在您的Android手機的谷歌帳戶。例如,如果您的手機使用xyz@gmail.com電子郵件ID登錄,那么使用相同的電子郵件ID登錄IFTTT。
現(xiàn)在使用If ' This ' Then ' That創(chuàng)建一個小程序。這里的“This”是服務名,我們將通過它提供輸入,而“That”將根據輸入生成觸發(fā)器。所以在這個項目中,我們將谷歌Assistant作為“this”,Webhooks作為“That”。所以要創(chuàng)建一個小程序,點擊“This”圖標并搜索“谷歌助手”。在這里,IFTTT將請求允許使用你的谷歌賬戶。
現(xiàn)在在谷歌助手中,點擊“說一個帶有文本成分的簡單短語”。
現(xiàn)在在下一個窗口中,它會詢問你想對你的谷歌助手說什么短語,以及你想聽到什么作為對該短語的回應。你也可以添加一些可選的短語?,F(xiàn)在點擊“創(chuàng)建觸發(fā)器”。
現(xiàn)在,這個applet的一部分已經完成。對于第二部分,點擊“That”。
在搜索窗口中,搜索“webhooks”,然后在下一個窗口中點擊“Make a web request”。
在下一個窗口中,輸入URL。API的語法如下:
式中:188.166.206.43為Blynk在印度的IP地址,He3ot0ZXrYQcROYlwOIuVu-F為Auth令牌,V1為虛擬pin1。
3D打印ESP-01外殼
我測量了使用規(guī)模的設置的尺寸,也測量了桶千斤頂的尺寸,為我的設置設計一個套管。完成后,我的設計看起來是這樣的。
完成設計后,我將其導出為STL文件,并根據打印機設置進行切片,最后進行打印。STL文件也可以從Thingiverse下載,你可以使用它打印你的大小寫。打印完成后,我繼續(xù)將項目組裝在一個永久的外殼中,并將其安裝在一個設施中。與完整的連接,我組裝電路到我的外殼,一切都是一個很好的適合,你可以看到在這里。
控制新像素的ESP-01編程
使用谷歌助手控制新像素的完整代碼可以在本頁底部找到。對這個問題的解釋如下。在這個項目中,我們將使用Adafruit_NeoPixel.h和BlynkSimpleEsp8266.h庫。這些庫可以直接從Arduino IDE下載。為此,轉到Sketch > Include Library > Manage Libraries。在搜索框中搜索“Adafruit Neo”下載并安裝Blynk ESP8266庫。
請按照與ESP8266相同的步驟安裝Blynk庫。
安裝庫之后,開始編寫代碼,包括所有必需的庫文件并定義輸入和輸出引腳
在接下來的幾行中,輸入Blynk和Wi-Fi憑據,如認證令牌,以及ESP-01應該連接的Wi-Fi的Wi-Fi名稱和密碼。blink驗證令牌可以從Blynk應用程序獲得。
之后,聲明NeoPixel strip對象,其中參數1是NeoPixel strip中的像素數,參數2是連接LED strip的ESP-01引腳。
BLYNK_WRITE()函數用于檢查V1, V2和V3虛擬引腳的傳入數據。虛擬pin V1用于接收來自webhooks URL的Google Assistant數據,而V2和V3 pin用于更改來自Blynk應用程序的Neopixel顏色和模式。
在loop()函數內部,Blynk.run()檢查來自Blynk GUI的傳入命令。然后將輸入的字符串保存到一個變量中,并使用if條件執(zhí)行相應的操作。
控制新像素與Blynk和谷歌助理
一旦你的代碼和硬件準備好了,使用Arduino Uno在ESP-01上上傳代碼。之后,連接Neopixel LED并對你的谷歌助手說“ok Google,打開彩虹模式”或“打開影院模式”。谷歌助手將識別該短語并響應“ok開啟”,Neopixel將根據命令照亮。您還可以使用Blynk來控制新像素的顏色。
這就是如何用谷歌助手控制ESP8266。
本文編譯自iotdesignpro