在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將ESP8266變成智能家居設備

李泳瑜 ? 來源:我不吃魚 ? 作者:我不吃魚 ? 2022-07-28 08:02 ? 次閱讀

智能家居設備正變得越來越普遍,這要歸功于遠程控制的可能性和配置的便利性。燈、智能插頭、恒溫器和氣象站只是智能家居設備中最常見的一些例子,如今主要配備 WiFi 通信接口。任何有機會使用眾多智能 WiFi 燈或燈泡之一的人都知道將設備連接到 WiFi 網絡并遠程控制其操作是多么快速和簡單。我們如何在小型ESP8266設備上重現這種行為,將其變成智能家居設備?

介紹

在本文中,將解釋嵌入式設備如何在不知道其憑據的情況下連接到 WiFi 網絡(通常是安全的)。由于智能設備沒有任何鍵盤或觸摸屏顯示器,用戶無法輸入 WiFi SSID 和密碼。那么,商業設備如何在無需上傳新固件的情況下連接到 WiFi 網絡呢?

德州儀器Texas Instruments) 為簡化嵌入式設備與家庭 WiFi 網絡的連接而開發的SmartConfig技術解釋了這個明顯的謎團:此操作只需一次,并且由一個簡單的步驟組成。在本文的后續部分,我們將介紹在 Espressif Systems 開發的ESP8266系列設備上激活 SmartConfig 功能的必要程序,這是一款提供 WiFi 接口并適合支持智能家居應用的廉價板。

工作原理

盡管德州儀器尚未發布任何真正的 SmartConfig 公有文檔,但其操作原理相對簡單。連接到家庭 WiFi 網絡的主機設備(智能手機、平板電腦或 PC)向虛構的接收者發送 UDP 數據包,其中包含用于訪問 WiFi 網絡的 SSID 和密碼。仍未連接的智能設備正在偵聽和監視網絡上傳輸的數據包的流量。

當客戶端識別到主機發送的數據包時,它會對其進行解碼,提取用于訪問 WiFi 網絡的憑據,并將它們存儲在自己的非易失性存儲器中,以便在每次上電時重復使用。從這一刻起,智能設備將能夠連接到 WiFi 網絡,而無需任何外部干預。如果設備隨后將被移動到另一個 WiFi 網絡的范圍內(例如在另一個房子中),則應重復相同的過程以獲取新的憑證。

圖 1所示的移動設備配備了一個特殊的應用程序,該應用程序連接到家庭 WiFi 網絡,將一系列 UDP 數據包傳輸到 WiFi 接入點 (AP)。在這些數據包的長度字段中,應用程序對 WiFi 網絡的 SSID 和密碼進行編碼。在智能設備上啟用 SmartConfig 功能時,對長度字段的內容進行解碼以提取訪問網絡的憑據。

通過網絡發送的數據包的結構符合IEEE 802.3 標準。具體而言,數據鏈路頭由 14 個字節組成:6 個字節用于目標地址,6 個字節用于源地址,2 個字節指定數據字段的長度。之所以選擇在 2 字節長度字段中輸入有關 WiFi 網絡的信息的原因非常簡單:即使在接入點上激活了安全連接,該字段也不會被編碼。

SmartConfig 功能由用于通過Arduino IDE開發草圖的ESP8266 WiFi 庫完全集成和支持。API 接口非常簡單:在“站”模式下配置 WiFi 收發器后,草圖中唯一要使用的功能如下:

? bool beginSmartConfig() – 在設備上啟用 SmartConfig 功能。如果成功,則返回 true,否則返回 false;

? bool smartConfigdone() – 它是更相關的函數:當設備已通過Sm??artConfig 協議正確配置并已建立WiFi 連接時,它返回true;

? bool stopSmartConfig() – 此函數禁用設備上的SmartConfig 功能。此功能的使用是可選的,在我們的草圖中根本不會使用。

草圖

所有處理都在setup函數內部執行。最初,WiFi 連接配置為站模式,并初始化串行線路波特率。隨后,如果設備在 10 秒超時后未能使用其非易失性存儲器中包含的信息連接到 WiFi 網絡,則調用beginSmartConfig函數以啟用此功能。然后,草圖進入一個循環,無限期地等待應用程序發送的 UDP 數據包的到達和隨后的解碼。

發生這種情況時,smartConfigDone函數返回一個非零值,草圖退出循環并在串行線路上顯示一條消息,其中包含用于連接到 WiFi 網絡的憑據和 DHCP 服務器分配的 IP 地址。后續連接將使用相同的憑據。除了在串口線上發送的調試信息外,Sketch 還使用板載 LED 顯示程序所在的階段,根據以下方案:

? LED 亮起:設備嘗試連接到 WiFi 網絡的初始階段;

? LED 閃爍:設備正在等待主機 UDP 數據包;

? LED 熄滅:設備已連接到 WiFi 網絡。

#include

#include

void setup()

{

int retry=0, config_done=0;

// 在站模式下配置 WiFi

WiFi.mode(WIFI_STA);

// 配置串口波特率

Serial.begin(9600);

// 將板載 LED 配置為輸出引腳

pinMode(16, OUTPUT);

// 打開 LED

digitalWrite(16, LOW);

// 檢查是否可以建立 WiFi 連接

Serial.println(“Attempt to connect to WiFi network.。.”);

而(WiFi.status()!= WL_CONNECTED)

{

Serial.print(“。”);

延遲(500);

if (retry++ 》= 20) // 連接超時為 10 秒

{

Serial.println(“連接超時已過期!啟動 SmartConfig.。.”);

WiFi.beginSmartConfig();

// 永遠循環:僅在接收到 SmartConfig 數據包時退出

while (true)

{

delay(500);

Serial.print(“。”);

if (WiFi.smartConfigDone())

{

Serial.println(“nSmartConfig 配置成功”);

配置完成=1;

休息; // 退出循環

}

切換LED();

}

if (config_done==1)

中斷;

}

}

// 關閉 LED

digitalWrite(16, HIGH);

// 等待 IP 地址分配

while(WiFi.status() != WL_CONNECTED)

{

delay(50);

}

// 顯示 WiFi 連接數據

Serial.println(“”);

WiFi.printDiag(串行);

// 顯示分配給我們設備的 IP 地址

Serial.println(WiFi.localIP());

}

void loop()

{

// 無事可做!

}

無效切換LED()

{

靜態int pinStatus = LOW;

如果(pinStatus==HIGH)

pinStatus=LOW;

否則

pinStatus=HIGH;

數字寫入(16,pinStatus);

}

必須將草圖加載并編譯到先前配置為支持ESP8266 系列板的Arduino IDE環境中。在啟動構建之前,請確保工具菜單中的 Erase Flash:“Sketch+WiFi 設置”選項已啟用。此選項會刪除任何以前存儲的用于訪問 WiFi 網絡的憑據。

該應用程序

要配置設備,我們將使用可從 Google Play 免費下載的ESP8266 SmartConfig 應用程序。安裝后,確保移動設備連接到您要連接 ESP8266 的同一 WiFi 網絡。在應用程序的主窗口中,檢查網絡 SSID 是否正確,然后在下面的文本框中輸入密碼。然后按頁面底部的 CONFIRM 按鈕,將幀長度字段中編碼的 SSID 和密碼信息發送到如上所述的 ESP8266。

幾秒鐘后,我們將獲得智能設備成功配置的確認,如應用程序和串行監視器上的日志所示。

此時您可以按下確認按鈕并關閉應用程序,除非您想將智能設備連接到另一個 WiFi 網絡或更改訪問憑據(SSID 和/或密碼),否則將不再需要此操作。從現在開始,ESP8266 可以獨立連接到 WiFi 網絡,使用通過 SmartConfig 接收并存儲在內部 eeprom 內存中的信息。

項目跟進

本文中的草圖旨在作為開發完整智能家居設備項目的基礎。雖然這些方面將在后面的文章中更詳細地討論,但我們已經可以突出顯示我們可以對項目進行的一些擴展。首先,可以通過在 WiFi 連接之后的階段插入能夠處理來自遠程客戶端的連接請求的 Web 服務器來修改草圖。因此,可以通過任何智能手機、平板電腦或 PC 與智能設備進行交互:我們只需使用互聯網瀏覽器連接到設備即可。下一步可能是將繼電器連接到 ESP8266 板并遠程控制連接到它們的負載的開/關,添加溫度、濕度、亮度、RGB 或其他傳感器。所有這些設備都將以簡單有效的方式遠程控制。以同樣的方式操作,我們可以構建一個智能插座或 WiFi 燈。

結論

我們在本文中已經看到,通過幾個簡單的步驟,可以通過 SmartConfig 協議配置普通的 ESP8266 卡,使其連接到所需的 WiFi 網絡,而無需修改電路板上的固件。該操作構成了構建完整智能家居應用程序的基礎和基本要求。在以后的文章中,我們將看到如何通過創建一個完整的操作智能設備來擴展這個項目。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7538

    瀏覽量

    164556
  • WIFI
    +關注

    關注

    81

    文章

    5316

    瀏覽量

    205268
  • 智能家居
    +關注

    關注

    1931

    文章

    9626

    瀏覽量

    186835
收藏 人收藏

    評論

    相關推薦

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發表于 10-08 15:06 ?391次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動畫的 OLED 顯示

    esp32和esp8266代碼共用嗎

    本文介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯網技術的飛速發展,越來越多的智能設備
    的頭像 發表于 08-19 18:23 ?1539次閱讀

    esp8266esp32區別是什么

    以下是關于ESP8266ESP32的主要區別: 處理器和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構。 ESP32 :使
    的頭像 發表于 08-19 18:16 ?6163次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應用于物聯網項目中。然而,如果不進行燒錄,ESP8266無法正常工作。 1. ESP8266簡介
    的頭像 發表于 08-19 17:28 ?1073次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 : 使用USB轉TTL模塊ESP8266模塊與電腦連接。 通過串口調試助手發送AT指令配置ESP8266,包括設置WiFi模式為STA模式(客戶端模式),連接指定的W
    的頭像 發表于 08-19 17:27 ?3852次閱讀

    機智云ESP8266開發板RGB彩燈控件

    用戶帶來了全新的家居體驗。無論是個性化的燈光設置,還是智能化的遠程管理,這款產品都展現了其在智能家居領域的引領地位。機智云esp8266開發板RGB彩燈控件1、
    的頭像 發表于 08-09 08:10 ?492次閱讀
    機智云<b class='flag-5'>ESP8266</b>開發板RGB彩燈控件

    如何將多個ESP8266與移動設備連接?

    我有三個ESP8266模塊。所有這些都被用作網絡服務器,作為透明的串行鏈接。 通過一對一連接,它工作正常。 如何使用一個移動應用程序連接到所有三個模塊?
    發表于 07-19 11:55

    如何讓ESP8266變成AP模式?

    請問除了smartconfig之外,我想讓ESP8266變成AP模式,再用手機APP與ESP8266對連后由手機輸入家中的路由器的SSID與Password給ESP8266 然后讓
    發表于 07-15 08:16

    如何將AP憑據從移動設備發送到ESP模塊?

    ESP8266 SDK 0.9.5 中,提供了智能配置 API。查看smartconfig_start功能,我可以看到它支持 ESP-TOUCH 協議。現在,我的問題是它如何將 A
    發表于 07-12 15:33

    如何使用ESP8266WiFi嵌入到設備中?

    我們考慮使用ESP8266 WiFi 嵌入到我們的設備中。
    發表于 07-12 10:41

    如何將atoi與esp8266 sdk一起使用?

    有誰知道如何將 atoi 與 esp8266 sdk 一起使用?我似乎找不到可以提供它的頭文件。 I\'m using \"ESP8266_NONOS_SDK_V1.5.4_16_05_20\"
    發表于 07-09 07:59

    請問如何將cURL庫添加到ESP8266_RTOS_SDK項目中?

    我想使用 curl api,但我不知道如何將庫添加到我的項目中,這樣當我將該庫的頭文件包含在我的項目中時它就不會抱怨。 有誰知道如何正確地第三方庫添加到ESP8266_RTOS_SDK項目中?
    發表于 07-09 07:52

    ESP8266如何將uart0的txd和rxd交換到其他引腳?

    大家好,我需要使用 ESP8266 的串口與其他設備通信. 但是 ESP8266 的 boot 啟動時會從 UART0 輸出一些調試信息,這會影響我的正常通信. ESP8266 的文檔
    發表于 07-08 07:56

    ESP8266網絡天氣時鐘OLED顯示

    基于ESP8266實現網絡獲取天氣和時鐘并OLED顯示
    的頭像 發表于 06-28 04:46 ?1492次閱讀
    <b class='flag-5'>ESP8266</b>網絡天氣時鐘OLED顯示

    國產低成本Wi-Fi SoC解決方案芯片ESP8266ESP8285對比差異

    ESP8266ESP8285對比差異 ESP8285相當于在ESP8266基礎上多加了1/2MB Flash, ESP8285與
    的頭像 發表于 05-17 11:44 ?1589次閱讀
    國產低成本Wi-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對比差異
    主站蜘蛛池模板: 精品理论片 | 在线观看的黄网 | 手机在线完整视频免费观看 | 国产成人在线播放视频 | 天堂网www中文在线 天堂网传媒 | 国产主播在线一区 | 久操视频在线免费观看 | 激情综合在线 | 日本暴力喉深到呕吐hd | 夭天干天天做天天免费看 | 国产午夜视频在永久在线观看 | 天天做天天爱天天爽综合区 | 午夜三级视频 | 免费一级毛片不卡在线播放 | 网站毛片 | 日韩三级免费看 | 天堂资源站 | 日本写真高清视频免费网站网 | 免费在线a视频 | 成人拍拍视频 | 欧美伊人| 手机看片福利永久 | 啪啪免费视频 | 性夜黄a爽爽免费视频国产 羞羞答答xxdd影院欧美 | 黄网址免费 | 毛色毛片免费观看 | 婷婷99精品国产97久久综合 | 美女视频永久黄网站免费观看国产 | 天天操夜夜操狠狠操 | 欧美一级视频精品观看 | 国产成人av在线 | 黄网站色视频免费看无下截 | 九九色网站 | 鲁丝一区二区三区 | 男女爱爱是免费看 | 最新地址四虎www4hutv | 欧美巨大xxxx做受中文字幕 | 全部在线播放免费毛片 | 91大神精品在线观看 | 天天做夜夜爽 | 狠狠狠色丁香婷婷综合激情 |