You are currently viewing 用Google Assistant和ESP8266讓智慧家庭控制自動化

用Google Assistant和ESP8266讓智慧家庭控制自動化

在開始之前,我建議您閱讀以下文章:

這些文章將使您對我們將要使用的Web應用程序有一個總體了解。

話雖如此,讓我們開始吧。

註:本篇內容參考這篇文章做成相關技術。

使用Google Assistant進行智慧家庭裝置自動化控制

內容概述

想像一下,在家裏若有一台Google Nest Mini裝置或是手機內有安裝Google Assistant APP,只要按照以下方式設定並DIY組裝一個ESP8266具Wifi功能的晶片,再加上繼電器(Relay module)功能的電源開關。這樣我們就可以利內Google Assistant的聲控功能,執行物聯網智能家電電源開關的聲控自動化控制功能。

以下是我們需要的所有硬體和軟體組成:

硬體部分

  • ESP8266 開發板 ( NODEMCU或WeMos D1 Mini )
  • 繼電器(Relay module)
  • 麵包板

軟體部分

在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 提示!

發佈留言