女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

怎樣使用ESP8266制作自己的Wi-Fi連接按鈕

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-28 17:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

物聯網具有巨大的DIY潛力。有了足夠的專業知識和少量廉價的組件,您就可以構建一個復雜的連接設備系統。

有時候,您想要簡單的東西。沒有鐘聲或口哨聲,只需執行一個任務的按鈕即可。如果您曾經使用Amazon Dash按鈕對日常家用物品進行重新排序,那么您可能已經熟悉這種情況。

今天,我們將使用NodeMCU制作一個啟用Wi-Fi的按鈕,并將其編程為使用IFTTT做。..好吧,任何事!如果需要,可以在視頻后提供書面說明。

您需要的內容

您將需要:

1 x NodeMCU(ESP8266)板,可在速賣通上以2-3美元的價格購買

1 x按鈕

1 x LED(可選)

1 x 220歐姆電阻(可選)

面包板和連接線

用于編程的Micro USB

已安裝Arduino IDE的計算機

除了NodeMCU之外,您應該能夠在任何Arduino入門套件中找到大多數這些部件。本教程將假定您使用的是可選的LED和電阻,但這不是必需的。

步驟1:設置電路

此項目的硬件設置非常簡單。

紫色線將引腳D0 連接到按鈕的一側。綠線將按鈕的另一端連接到 RST引腳。藍色導線從引腳D1 連接到電阻器和LED。 LED的負極連接到NodeMCU的 GND引腳。

設置試驗板后,其外觀應類似于:

如果您想知道我是如何僅使用這些細小的電纜將我的LED接地,那么我們的快速面包板崩潰過程應該有助于清除它!檢查設置并通過USB將NodeMCU連接到計算機。

步驟2:設置IDE

在進行編碼之前,您需要做一些準備。如果尚未安裝,請設置Arduino IDE以識別您的NodeMCU板。您可以通過文件》首選項將其添加到板列表中。

您可以找到有關此步驟的更詳細說明在我們的NodeMCU簡介文章中。

該項目需要兩個庫。導航到草圖》包含庫》管理庫。搜索Ivan Grokhotkov的 ESP8266WIFI 并將其安裝。編寫該庫是為了與NodeMCU板建立Wi-Fi連接。

下一步,搜索John Romkey的 IFTTTWebhook 并安裝最新的版。該庫旨在簡化向IFTTT發送Webhook的過程。

這就是我們需要的所有準備工作,讓我們編寫代碼!

代碼的工作方式

我們將使用 ESP8266WIFI 庫建立Wi-Fi連接。 IFTTTWebhooks 庫向IFTTT發送請求-在這種情況下,將其發布到Twitter。然后,指示NodeMCU板在不使用時進入睡眠狀態以節省電量。

按下按鈕時,它將鏈接 D0 和 RST 針腳。這將重置板,然后再次執行該過程。

本教程中的大多數代碼對于初學者來說都足夠簡單。就是說,如果您是入門者,那么在遵循我們的Arduino初學者指南之后,您會發現它容易理解。

本教程分批遍歷代碼以幫助您理解。如果您想直接做生意,可以在Pastebin上找到完整的代碼。請注意,您仍然需要在此代碼中填寫Wi-Fi和IFTTT憑據才能使其正常工作!

步驟3:測試深度睡眠

我們將開始創建一個簡單的測試以顯示深度睡眠的工作原理。在Arduino IDE中打開一個新草圖。輸入以下兩個代碼塊。

#include

#include

#define ledPin 5

#define wakePin 16

#define ssid “YOUR_WIFI_SSID”

#define password “YOUR_WIFI_PASSWORD”

#define IFTTT_API_KEY “IFTTT_KEY_GOES_HERE”

#define IFTTT_EVENT_NAME “IFTTT_EVENT_NAME_HERE”

在這里,我們包括我們的庫,并定義了我們在草圖中需要的一些變量。您會注意到,與上面的Fritzing圖相比,此處的ledPin和akePin編號不同。 NodeMCU與Arduino開發板具有不同的引腳排列。不過,由于這個方便的圖表,這不是問題:

現在創建一個設置函數:

void setup() {

Serial.begin(115200);

while(!Serial) {

}

Serial.println(“ ”);// print an empty line before and after Button Press

Serial.println(“Button Pressed”);

Serial.println(“ ”);// print an empty line

ESP.deepSleep(wakePin);

}

在這里,我們設置了串行端口,并使用while循環等待它開始。由于此代碼將在按下重置按鈕后觸發,因此我們將“已按下按鈕” 打印到串行監視器。然后,我們告訴NodeMCU進入深度睡眠狀態,直到按下連接 wakePin 和 RST 引腳的按鈕。

最后,為了進行測試,將其添加到您的 loop()方法中:

void loop(){

//if deep sleep is working, this code will never run.

Serial.println(“This shouldn‘t get printed”);

}

通常,Arduino草圖在設置后會連續運行循環功能。由于我們在設置結束之前就將電路板送入睡眠狀態,因此循環永遠不會運行。

保存您的草圖并將其上傳到電路板上。打開串行監視器,您應該看到“已按下按鈕”。每次按鈕觸發時,電路板都會復位,并且消息會再次打印。

有關串行監視器的注意事項

在某些情況下,您可能已經注意到串行監視器中的一些廢話字符您的項目。這通常是由于未將串行監視器設置為與 Serial.begin(XXXX)速率相同的波特率。

許多指南建議以波特率啟動串行連接115200這樣的項目。我嘗試了許多組合,在串行消息前后,它們都有不同程度的亂碼。根據各種論壇的帖子,這可能是由于板故障或軟件兼容性問題造成的。因為它不會嚴重影響項目,所以我選擇假裝它沒有發生。

如果您在串行監視器上遇到問題,請嘗試使用不同的波特率,看看哪種最適合您。

第4步:連接到Wi-Fi

現在創建一個用于連接到Wi-Fi網絡的功能。

void connectToWifi() {

Serial.print(“Connecting to: SSID NAME”); //uncomment next line to show SSID name

//Serial.print(ssid);

WiFi.begin(ssid, password);

Serial.println(“ ”);// print an empty line

Serial.print(“Attempting to connect: ”);

//try to connect for 10 seconds

int i = 10;

while(WiFi.status() != WL_CONNECTED && i 》=0) {

delay(1000);

Serial.print(i);

Serial.print(“, ”);

i--;

}

Serial.println(“ ”);// print an empty line

//print connection result

if(WiFi.status() == WL_CONNECTED){

Serial.print(“Connected.”);

Serial.println(“ ”);// print an empty line

Serial.print(“NodeMCU ip address: ”);

Serial.println(WiFi.localIP());

}

else {

Serial.println(“Connection failed - check your credentials or connection”);

}

}

此方法嘗試連接到您的網絡十次,中間間隔一秒鐘。連接成功或失敗會打印到串行監視器。

第5步:調用連接方法

現在,永遠不會調用 connectToWifi()。在“已按下按鈕”消息和使評估板進入睡眠狀態之間,向您的設置功能添加一個呼叫。

connectToWifi();

如果您想知道適合的位置,它應該看起來像

在草圖頂部,將 ssid 和 password 變量替換為您的Wi-Fi憑據。保存您的草圖并將其上傳到板上。

現在,在板啟動時,它將返回到設置功能之前嘗試連接到Wi-Fi網絡。現在,讓我們設置IFTTT集成。

步驟6:設置IFTTT集成

IFTTT允許與各種Web服務集成。我們在Wi-Fi PC塔式LED教程中使用了它,以便在收到新電子郵件時發送警報。今天,我們將使用它來按一下按鈕發送一條推文。

導航到我的小程序頁面,然后選擇新小程序

點擊 +此并連接到 Webhooks 。選擇“接收網絡請求” 并命名您的活動。 保持簡單!記下事件名稱,稍后需要將其添加到NodeMCU代碼中。點擊“創建觸發器” 。

現在選擇 +那個。搜索 Twitter 服務并連接到該服務-您需要授權該服務才能發布到您的Twitter帳戶。選擇“發布推文” 并選擇您的消息。

下一個屏幕將要求您查看該小程序。單擊完成。就是這樣!

步驟7:將IFTTT憑據添加到代碼中

返回Arduino IDE,您需要將IFTTT API密鑰和事件名稱添加到定義的變量中。要查找API密鑰,請導航至我的小程序,然后在服務標簽下選擇 Webhooks 。選擇文檔來訪問密鑰。

將密鑰和事件名稱復制到代碼中,替換為其設置的臨時名稱。

#define IFTTT_API_KEY “IFTTT_KEY_GOES_HERE”

#define IFTTT_EVENT_NAME “IFTTT_EVENT_NAME_HERE”

請注意,逗號必須保留,只能替換文本。

在調用 connectToWifi()并將板子送入睡眠之間,創建一個IFTTTWebhook庫對象的實例。 LED會在深度睡眠再次開始之前發出任務完成的信號。

//just connected to Wi-Fi

IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);

hook.trigger();

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

delay(200);

digitalWrite(ledPin, LOW);

//now sending board to sleep

hook 對象上的調用觸發器會觸發IFTTT小程序,并應發布到您的Twitter帳戶。保存您的草圖并上傳?,F在,您應該有一個功能齊全的推文按鈕。

如果它似乎不起作用,請仔細檢查您的代碼和憑據是否有錯誤。如果您確實遇到困難,請從上方獲取完整的代碼,然后將其與您自己的代碼進行比較。

完成!您如何進一步改進?

這是Wi-Fi按鈕的基本版本,但是可以通過多種方法進行改進。為簡單起見,此處使用USB連接供電。電池將使它完全可以移動,而裝有電路的盒子將是完美的初學者3D打印項目。

盡管使用了深度睡眠,您可能會發現電池很快就會用完。有許多Arduino省電技巧可幫助此類項目。雖然比本教程要難得多,但是如果您從頭開始制作自己的節能意識的Arduino,那么電池供電的Wi-Fi按鈕可能會持續數月!

該項目將是智能遙控器的完美之選。家庭應用程序。 IFTTT上已經有大量的家庭自動化小程序。一旦掌握了基礎知識,就可以使用幾乎任何傳感器或開關來觸發幾乎可以想象的任何服務。

責任編輯:wv

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

    關注

    14

    文章

    2259

    瀏覽量

    126971
  • ESP8266
    +關注

    關注

    51

    文章

    965

    瀏覽量

    47397
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32+esp8266連接機智云,上傳溫濕度數據并控制繼電器開關(平臺配置、代碼生成、代碼移植)

    本教程將詳細介紹如何將STM32微控制器與ESP8266Wi-Fi模塊連接到機智云平臺,實現溫濕度數據的上傳與繼電器的遠程控制。通過此過程,您將學會如何配置機智云平臺,燒錄ESP8266固件,移植
    的頭像 發表于 07-15 18:54 ?35次閱讀
    STM32+<b class='flag-5'>esp8266</b><b class='flag-5'>連接</b>機智云,上傳溫濕度數據并控制繼電器開關(平臺配置、代碼生成、代碼移植)

    Wi-Fi 定位服務

    ,可讓支持 Wi-Fi 的設備利用附近 Wi-Fi 網絡的數據確定自己的大致位置。它的工作原理是檢索附近網絡的 SSID、BSSID 和信號強度等 Wi-Fi 網絡信息,并將這些信息與
    發表于 04-17 15:01

    樂鑫ESP32調試Wi-Fi常用調試API

    在使用ESP32調試Wi-Fi功能時,由于場景和各種因素的影響,難免會遇到各種連接不上,Wi-Fi斷連等問題。下面介紹一些API,方便新手調試Wi-
    的頭像 發表于 02-07 18:10 ?2576次閱讀
    樂鑫<b class='flag-5'>ESP</b>32調試<b class='flag-5'>Wi-Fi</b>常用調試API

    Wi-Fi 4到Wi-Fi 7:網速飆升40倍的無線革命

    1 Wi-Fi技術的快速發展 每一代新的Wi-Fi協議發布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網絡技術顯著提升,實現了網速的巨大飛躍。 ? ?
    的頭像 發表于 12-09 10:10 ?1050次閱讀
    從<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> 7:網速飆升40倍的無線革命

    Wi-Fi 7與Wi-Fi 6E有什么區別

    也許很多人還在考慮是否要將使用的Wi-Fi設備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經開始“登堂入室”了。Wi-Fi 7是新一代
    的頭像 發表于 11-07 11:38 ?3451次閱讀

    【AI技術支持】ESP32無線Wi-Fi常用調試API

    Wi-Fi常用調試API在使用esp32調試Wi-Fi功能時,由于場景和各種因素的影響,難免會遇到各種連接不上,Wi-Fi斷連等問題。下面介
    的頭像 發表于 10-26 08:00 ?1802次閱讀
    【AI技術支持】<b class='flag-5'>ESP</b>32無線<b class='flag-5'>Wi-Fi</b>常用調試API

    esp32和esp8266代碼共用嗎

    作為兩款具有Wi-Fi功能的微控制器,因其低成本、易用性和靈活性而受到廣泛關注。然而,盡管它們在某些方面具有相似性,但在硬件性能、開發環境和編程語言等方面仍存在一定差異。 二、ESP32與ESP8266簡介
    的頭像 發表于 08-19 18:23 ?2339次閱讀

    esp8266esp32區別是什么

    的內存選項,包括最小512KB的RAM和最大16MB的閃存。 Wi-Fi和藍牙 : ESP8266 :支持2.4GHz Wi-FiESP32 :支持2.4GHz
    的頭像 發表于 08-19 18:16 ?7325次閱讀

    ESP8266需要燒錄固件庫嘛

    需要。ESP8266是一款非常流行的Wi-Fi模塊,廣泛應用于物聯網項目中。它具有低成本、低功耗、易于編程等特點,因此受到了許多開發者的喜愛。在開發ESP8266項目時,燒錄固件庫是一個非常重要
    的頭像 發表于 08-19 17:30 ?1873次閱讀

    esp8266不燒錄可以使用嗎

    ,可以方便地與其他硬件設備進行連接。 2. ESP8266的硬件特性 處理器 :Tensilica L106,最高頻率160MHz 內存 :64KB SRAM,1MB Flash Wi-Fi :支持802.11 b/g/n協議,
    的頭像 發表于 08-19 17:28 ?1678次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現: 通過路由器連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接
    的頭像 發表于 08-19 17:27 ?7598次閱讀

    ESP8266如何為應用程序選擇正確的Wi-Fi模塊嗎?

    通信 - 應用程序將與連接到它的iOS設備一起使用 我對這個問題很陌生,我們需要選擇一些好的 Wi-Fi 模塊來開始,并學習所有有問題的 Wi-Fi/網絡問題。所以這就是為什么我要求你們,更有經驗
    發表于 07-19 16:56

    如何將ESP8266-01模塊用作物理層設備?

    嗨,大家好。我想將 ESP8266-01 模塊用作物理層設備,就像射頻發射器和接收器一樣。 一個模塊將用作發射器,它在沒有 WI-Fi 連接的情況下工作,并將發送原始數據,第二個模塊將接收數據,并且
    發表于 07-19 12:18

    請問ESP8266可以用于Wi-Fi Direct嗎?

    ESP8266的規格表說它具有“Wi-Fi Direct”功能。 文檔顯示,ESP8266可以很容易地用作軟接入點(例如 AT CWSAP 等),但是,我的公司需要一個遵循 Wi-Fi
    發表于 07-17 08:09

    ESP8266 01將模塊連接Wi-Fi網絡,收到超時錯誤怎么解決?

    我有一個 ESP8266 01 模塊。 我正在嘗試將模塊連接Wi-Fi 網絡,但未能這樣做,我收到超時錯誤 (CWJAP:1)。 AT+GMR AT version:0.40.0.0(Aug8
    發表于 07-16 07:43