在開始之前,我建議您閱讀以下文章:
這些文章將使您對我們將要使用的Web應用程序有一個總體了解。
話雖如此,讓我們開始吧。
註:本篇內容參考這篇文章做成相關技術。
文章目錄標題
使用Google Assistant進行智慧家庭裝置自動化控制
內容概述
想像一下,在家裏若有一台Google Nest Mini裝置或是手機內有安裝Google Assistant APP,只要按照以下方式設定並DIY組裝一個ESP8266具Wifi功能的晶片,再加上繼電器(Relay module)功能的電源開關。這樣我們就可以利內Google Assistant的聲控功能,執行物聯網智能家電電源開關的聲控自動化控制功能。
以下是我們需要的所有硬體和軟體組成:
硬體部分
- ESP8266 開發板 ( NODEMCU或WeMos D1 Mini )
- 繼電器(Relay module)
- 麵包板
軟體部分
- 有RemoteMe.org帳戶
- IFTTT帳戶
- Arduino IDE
- 適用於Android或iPhone 的Google Assistant
在RemoteMe裏建立變數和設備
首先,我們必須建立一些變數來控制我們的繼電器。要新增變數,請登錄您的RemoteMe帳戶並轉到“變數”,然後點擊“添加”。填寫以下信息:
建好變數後,我們需要一個網絡設備,該設備將連接到我們的ESP板。要建立設備,請轉到“設備”選項卡,點擊“新設備”。從下拉選單中選擇其中“新網絡設備”選項。
在這裡,我們需要命名我們的設備。建議可以使用與上述相同的名稱,以免在編碼時感到困惑。我們將設備命名為“ Google_ESP”。設備ID為“ 1”。填寫完這些參數後,點擊“送出”來建立設備。
接下來,我們必須為設備產出代碼。要生成代碼,請單擊設備上的選單,然後選擇“代碼生成器引導”。
接著,我們會看到一個彈出窗口,在選單中我們必須選擇先前建立的變數。然後再點擊“下一步”
在下一頁上輸入您的WiFi憑據,以便ESP可以連接到您的Local端網絡。
接下來,您可以根據需要啟用直接連接。這樣可以最大程度地減少延遲,但是對於這個項目而言,這並不重要。
然後,打開“Debug”選項,這裏的鮑率可以選擇9600也可以用預設的115200。然後單擊下一步。
完成後,下載代碼。我們將在下一步中編輯此代碼。另外,我們需要再設定一台設備。這裏將被設定成一個網絡設備,我們可以在網頁選單中開啟/關閉該ESP設備用。
要建立網頁,請點擊“新設備”,然後選擇第一個選項“新網頁”。
將設備命名為“ Web_ESP”,並給設備ID“ 2”並送出。
要控制繼電器,我們需要在網頁上建立按鈕開關。要添加此頁面,請首先點擊設備“ Web_ESP”,然後點選“ index.html”。從下拉列表中選擇“使用嚮導編輯”。
點選“插入組件”,然後單擊“組件”,然後從列表中選擇“切換器”。
在名稱字段中,注意搜索圖標(放大鏡)。點擊該圖標,然後選擇“ Relay_1”。
接下來,您可以為按鈕添加任何標籤。這裏我將其標記為“中繼1”。
最後,再點擊“新增”開關。
到此為止,我們已經建立一個可以用一個網頁上的按鍵來遠端控制Arduino上的繼電器作業,讓我們以一段操作影片說明。
編輯和上傳代碼(Arduino IDE)
打開從RemoteMe下載的Arduino程式碼。我們必須稍微修改一下代碼以符合要求。
首先,我們必須定義將用作輸出的引腳。
#define Relay_1 D1
現在向下滾動,您會發現void onRelay_1Change這個函數。在這裡添加以下行:
digitalWrite(Relay_1,b?HIGH:LOW);
向下滾動以找到設置功能。在這裡,我們必須將引腳模式設置為輸出。
pinMode(Relay_1,OUTPUT);
另外,我們必須將引腳設置為低電平,以便在為模塊供電後繼電器不會打開。
digitalWrite(Relay_1,LOW);
完成這些更改後,即可將代碼上傳到ESP8266。
為Google Assistant設置IFTTT
在建立並設置完成RemoteMe的變數及設 後,並且將程式碼更改編譯上傳Arduino ESP8266晶片後,基本上我們就可以利用網頁的方式來遠端控制Arduino上的繼電器。
但為了使這樣的方式更有趣,我們將把我們開發出來的項目連接到Google Assistant,這樣就可以用執行語音命令的方式來打開繼電器,在使用上變得更有樂趣。
首先前往 IFTTT 網站,然後使用您的Google帳戶註冊。
注意:請確保您使用的智能手機具有相同的Google帳戶,否則設置將無法使用。
登錄後,點擊“我的小程序”,然後點擊“新小程序”
在頁面上,您將看到一個標題,“If this then that.”。點擊“ + this”
在搜索框中輸入“ Google”,然後選擇“ Google Assistant”。
接著,選擇第一個觸發器“說一個簡單的短語”。
在這裡,我們要寫一些我們希望Google Assistant識別並觸發動作的短語。我使用“Turn on relay one”作為觸發器,下面還有兩個選項,我們可以在其中添加不同形式的短語。
然後,在最後一個字段中,必須讓Google Assistant確定後也回覆一個短語,也就是再指令下完並確定執行後Google Assistant將使用該短語進行回覆。這裏使用了“Okey, turning on first relay”。您可以根據需要自定義這些短語。
現在點擊“Create trigger”完成觸發器。
最後,選擇“that”。接著,我們繼續建立並設置觸發器時發生的情況。
在搜索欄中,鍵入“ web”,然後選擇“ Webhooks”。
點擊“發出網絡請求。”
現在返回RemoteMe並轉到“變數”選項卡。
單擊“ Relay_1”上的漢堡選單,然後點擊“ Generate Set Variable Link”。
切換“使用發布方法”和“Boolean值”,然後點擊“生成”。
從RemoteMe複製鏈接,然後轉到IFTTT。在URL字段中,貼上剛複制的URL。選擇“方法”下的“ POST”,然後輸入“ application / json”。接著,從RemoteMe複製body部分並將其貼到IFTTT的主體字段中。點擊“建立動作”,然後點擊“完成”以建立小程序。
現在再轉到“我的小程序”,並與上一步相同創建一個新的小程序。此小程序將用於關閉繼電器。調整短語,使它們有意義。代替響應“打開繼電器一”,將其更改為“關閉繼電器一”。
在Webhooks中貼相同的URL鏈接,然後選擇“ POST”和“內容類型”為“ application / json”作為方法。使用相同的主體,但是在body部分中將“ true”替換為“ false”。然後點擊“建立動作”,然後單擊“完成”以創建小程序。
以上若全部設定完成,代表我們已經建立好一套智慧家庭基礎的控制自動化了。
智慧家庭自動化專案接線圖
使用下面的接線圖連接組件。
- 將ESP8266的D1連接到繼電器模塊的 D1(IN1) 。
- 要為繼電器供電,請連接5v電池。
- 如果要給ESP板供電 ,請將5v電池連接到Vin引腳。這裏是直接接通USB供電。
- 確保ESP的GND引腳連接到繼電器模塊的GND引腳。
連接繼電器(注意)
繼電器若要直接控制家電電器設備,在連接繼電器的兩端時,記得要確定繼電器提供的電壓是大於家用電壓。還有,必須確定連結的電線是火線,再從中間切開,以將其連接到繼電器。要找到帶電的電線,可以使用電線測試儀。
注意:如果您沒有經驗,不建議您使用交流電源。交流電很危險,意外電擊可能致命。如果您傷害自己或任何其他人,則我(或昱詠科技)概不負責。
測試Google Home Assistant
最後,要測試時,首先在將ESP(Wemos D1 mini) USB插上電源。連接到WiFi將需要幾秒鐘。現在幾乎每個人都知道如何使用Google Assistant,在這裏我將不解釋其過程。
簡而言之,我們可以要求Google Assistant打開一個繼電器。幾秒鐘後,指示燈應會亮起。您也可以使用我們在RemoteMe上建立的開關。
試著以下列步驟操作:
- 轉到remoteme.org並使用您的帳戶登錄。
- 轉到“設備”標籤,然後點擊“ Web_ESP”
- 現在點擊“ index.html”,然後選擇“在新標籤頁中打開”
在新的網頁上可以打開/關閉繼電器。
若要與手機共享頁面,請從同一列表中選擇“獲取匿名鏈接”選項。它會為您提供一個鏈接或單擊它旁邊的QR圖標。它將顯示一個QR碼。
使用任何移動設備掃描此代碼,您將被重定向到“ Web_ESP”。
視頻教程:
下一步是什麼?
您可以使用8ch繼電器甚至16ch繼電器板控制四個以上的設備。ESP8266沒有足夠的引腳來控制16ch,因此您可以改用I2C模塊。您還可以將不同的命令程式碼控制設定到IFTTT中,以自定義Google Assistant命令。最後,可以修改本教程以控制其他電子設備,機器人或原型。
希望您喜歡本教程。如果您有任何疑問,請在下面評論。
發送物聯網最新資訊和新聞直接發送到您的收件箱
加入超過 1,000 多個訂閱者,獨家訪問我們的每月訊息,其中包含物聯網、ESP8266、ESP32、雲端、託管 和 WordPress 提示!