當前位置:首頁 > 物聯(lián)網(wǎng) > IoT設(shè)計分享
[導讀]在之前的教程中,我們使用NodeMCU構(gòu)建了一個Alexa控制的家庭自動化系統(tǒng)。它很容易構(gòu)建和實現(xiàn)。但有時我們需要更多的引腳來控制更多的設(shè)備,在這種情況下,我們可以使用一些具有更多GPIO引腳的微控制器與ESP8266板。在這里,我們將使用Arduino Uno和ESP8266來構(gòu)建基于物聯(lián)網(wǎng)的家庭自動化系統(tǒng)。

在之前的教程中,我們使用NodeMCU構(gòu)建了一個Alexa控制的家庭自動化系統(tǒng)。它很容易構(gòu)建和實現(xiàn)。但有時我們需要更多的引腳來控制更多的設(shè)備,在這種情況下,我們可以使用一些具有更多GPIO引腳的微控制器ESP8266板。在這里,我們將使用Arduino Uno和ESP8266來構(gòu)建基于物聯(lián)網(wǎng)的家庭自動化系統(tǒng)。

因此,在本教程中,我們將學習如何使用亞馬遜Echo Dot揚聲器通過語音命令控制家用電器。這并不是說我們懶得用開關(guān)來切換負載,而是在物聯(lián)網(wǎng)時代,一切都變得“智能”,我們也應(yīng)該建立一個智能家庭自動化系統(tǒng)?;谖锫?lián)網(wǎng)的家庭自動化現(xiàn)在非常流行,我們以前使用不同的控制器(如樹莓派,ESP8266, Arduino等)完成了許多物聯(lián)網(wǎng)家庭自動化項目。

所需的材料

1. Arduino Uno

2. 亞馬遜Alexa點揚聲器

3. ESP8266-01

4. 跳線

5. 面包板或零PCB

在之前的教程中已經(jīng)解釋過,使用Alexa控制家用電器的方法有很多種,最流行的方法是使用第三方服務(wù),如ThingSpeak, IFTTT和Webhooks。但是這些方法需要在每個平臺上進行配置,這使得任務(wù)不那么繁瑣和耗時。此外,編碼部分需要一些計算來獲取字符并解碼它們。為了在這個方法中調(diào)用Alexa需要一些額外的短語,比如打開燈泡,我們不得不說“Alexa, Alexa觸發(fā)打開燈泡”。正如你所看到的,我們必須在每次調(diào)用時說“Alexa觸發(fā)”,這聽起來很奇怪。因此,由于這么多的復雜性,我們將使用我們之前的方法,即使用fauxmoESP庫。

FauxmoESP庫僅適用于ESP板,不支持Arduino板?,F(xiàn)在,如何在Arduino中實現(xiàn)它呢?別擔心,我們有實現(xiàn)這個的方法。在這里,我們不會在AT模式下使用ESP8266模塊,而是在編程模式下使用它。因此,我們將在此模塊中上傳fauxmoESP代碼,并在從Alexa接收到的狀態(tài)(0或1)發(fā)生變化時使用串行通信發(fā)送不同的字符。這些字符將在Arduino板上接收,就像Arduino板與Arduino接口時接收藍牙模塊的數(shù)據(jù)一樣。

安裝物聯(lián)網(wǎng)Alexa家庭自動化庫

由于我們將在ESP上創(chuàng)建多個虛擬連接環(huán)境,因此我們需要安裝fauxmoESP以及異步TCP庫。

1. 對于ESP8266,從這個鏈接下載異步TCP庫,對于ESP32,從這個鏈接下載它。

2. 然后從這個鏈接下載fauxmoESP庫。

3. 現(xiàn)在,在Arduino目錄的libraries文件夾中解壓縮這些文件,該目錄可以在Documents文件夾中找到。另外,將這些文件夾重命名為oseperez-fauxmoesp-50cbcf3087f至xoseperez_fauxmoesp,將espasynccp -master重命名為ESPAsyncTCP。

4. 在fauxmoESP中有一個用于控制設(shè)備的示例代碼,我們必須修改這個示例。打開Arduino IDE并進入Examples -> FauxmoESp -> fauxmoESP_Basic。

在開始編碼部分之前,請確保已經(jīng)安裝了ESP板文件。如果你沒有板文件,然后按照我們之前的教程開始使用Arduino IDE的ESP。

代碼及工作說明

在這里我們分別解釋了ESP8266和Arduino的代碼,以了解該項目的工作原理。

ESP8266編程部分

這部分將與我們在以前的教程中所做的保持相同。但是這里有一些修改,因為這里的數(shù)據(jù)將通過串行通信發(fā)送到Arduino。

首先,我們包含了ESP板和fauxmoESP的重要頭文件。

然后定義波特率115200和wi - fi ssid和Password。另外,為fauxmoESP創(chuàng)建一個實例fauxmomo,以便我們可以在代碼中使用它。

為Wi-Fi設(shè)置一個單獨的函數(shù),以便它可以在void setup函數(shù)中調(diào)用。將WiFi模式設(shè)置為站模式,并在WiFi.begin()函數(shù)中傳遞SSID和Password。等待連接建立。另外,請注意不要使用Serial。print或println()是不必要的,因為它會將這些數(shù)據(jù)發(fā)送給Arduino。所以,避免使用它。

在void setup()函數(shù)中,將波特率傳遞給serial。Begin函數(shù)并調(diào)用wifissetup函數(shù)。

現(xiàn)在,fauxmoESP必須創(chuàng)建自己的web服務(wù)器,為此我們在createserver函數(shù)中傳遞true并將端口號設(shè)置為80。如果你在啟用功能中設(shè)置false,那么它將阻止設(shè)備被發(fā)現(xiàn)和切換。

使用fauxmo.addDevice()函數(shù)添加設(shè)備。參數(shù)將是您的設(shè)備的名稱,您將使用它來要求Alexa打開/關(guān)閉它。

現(xiàn)在,創(chuàng)建一個函數(shù)來處理從Alexa接收到的命令。在這個函數(shù)中,我們將比較字符串與設(shè)備名稱,如果匹配,則使用Serial向Arduino發(fā)送一個字符。打印或串行寫入。

同樣,對第二個設(shè)備進行相同的操作,但這次向Arduino發(fā)送不同的字符。

在void loop()函數(shù)中,只需使用fauxmo檢查來自Alexa服務(wù)器的傳入數(shù)據(jù)包。handle函數(shù),它將使用onSetstate()函數(shù)執(zhí)行操作。

ESP8266的完整代碼在本教程的末尾給出。使用FTDI模塊或Arduino Uno板對ESP8266-01進行編程。我們將使用Arduino板進行編程。在Arduino板上上傳一個空白草圖或BareMinimum示例代碼,并按照下面的電路圖進行連接。在這里了解更多關(guān)于使用FTDI模塊編程ESP8266的信息。

Arduino編程部分

Arduino代碼Alexa家庭自動化是非常簡單的。您必須使用Serial.available()函數(shù)檢查傳入的數(shù)據(jù),當該數(shù)據(jù)與if語句中給定的條件匹配時,然后觸發(fā)中繼。

線路圖

首先,使用Arduino板對ESP8266進行編程,進行以下連接,選擇“board”為Generic ESP8266,并選擇正確的端口號。最后,點擊上傳按鈕。

模塊編程完成后,只需從Arduino中移除Rx Tx線并上傳Arduino部分代碼。

然后再做一次連接,但要做一點改動。

連接ESP8266的Rx -> Arduino的Tx

連接ESP8266的Tx -> Arduino的Rx

從GND上取下Esp8266的GPIO 0。

除上述更改外,所有連接保持不變。

現(xiàn)在,我們已經(jīng)完成了編碼和硬件部分。是時候測試我們的家庭自動化系統(tǒng)了。另外,請注意,ESP8266和Amazon echo dot的Wi-Fi網(wǎng)絡(luò)應(yīng)該保持一致,即它們必須共享相同的Wi-Fi。

測試基于Arduino的Alexa家庭自動化系統(tǒng)

現(xiàn)在,試著說Alexa,發(fā)現(xiàn)設(shè)備。Alexa會回復說開始發(fā)現(xiàn),我找到了兩個設(shè)備,試著說“Alexa,打開臥室燈”。

或者,你可以在Alexa應(yīng)用程序中發(fā)現(xiàn)這些設(shè)備。點擊+號,然后發(fā)現(xiàn)設(shè)備。你應(yīng)該看到兩個裝置,即臥室燈和電視。

現(xiàn)在我們準備測試我們的物聯(lián)網(wǎng)Alexa家庭自動化系統(tǒng)。所以只要試著說Alexa,打開臥室燈,繼電器應(yīng)該就會打開。

現(xiàn)在說Alexa,關(guān)掉臥室燈,繼電器一個要關(guān)掉。試著命令開/關(guān)電視。

您可以在串行監(jiān)視器中看到設(shè)備的響應(yīng)和狀態(tài)。

還需要注意的是,fauxmoESP庫存在一些bug,目前還處于改進階段。所以,有時Alexa無法發(fā)現(xiàn)設(shè)備。

這就是如何使用Arduino制作基于Alexa的物聯(lián)網(wǎng)控制的家庭自動化系統(tǒng)。

本文編譯自iotdesignpro

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉