精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

怎樣使用ESP8266-01引腳和指示燈

454398 ? 來源:網絡整理 ? 作者:佚名 ? 2019-11-08 17:19 ? 次閱讀

第1步:ESP8266-01 Pins

怎樣使用ESP8266-01引腳和指示燈

ESP8266-01是最小的ESP8266模塊,只有8個管腳。在這些VCC中,GND,RST(復位)和CH_PD(片選)不是I/O引腳,但需要模塊操作。這樣就可以將GPIO0,GPIO2,TX和RX用作可能的I/O引腳,但即使這些引腳都具有預先分配的功能。 GPIO0和GPIO2確定模塊以哪種模式啟動,并且TX/RX引腳用于對模塊進行編程以及用于串行I/O(通常用于調試)。 GPIO0和GPIO2需要連接上拉電阻,以確保模塊正確啟動。

步驟2:ESP8266編程技巧(espcomm失敗)

使用Arduino IDE編程ESP8266時(請參閱ESP8266-01 Wifi Shield),有時(通常)會在Arduino IDE中收到錯誤消息,例如:-

esp_com打開失敗

錯誤:失敗打開COM33錯誤:espcomm_open失敗

錯誤:espcomm_upload_mem失敗

在這種情況下,請按照以下步驟操作:-

檢查是否已在Arduino工具菜單中選擇了ESP8266板

檢查是否已在Arduino工具菜單中選擇了COM端口

將GPIO0接地的ESP8266重新通電(干凈)電源應用程序,請參閱下文)

如果3)不能解決問題,請從計算機上拔下USB電纜,等待幾秒鐘,然后再將其重新插入

如果4)不能解決問題,從PC上拔掉USB電纜,關閉Arduino IDE,打開Arduino IDE,重新插入USB電纜。

在給ESP8266供電時,將GPIO0接地后,請確保干凈地供電。不要搖晃連接。 ESP8266 led應該亮起并保持不閃爍。

步驟3:最佳技巧–使用I2C

使ESP8266-01額外輸入的最好技巧是使用I2C接口

一種選擇是使用GPIO0和GPIO2作為I2C總線。

使模塊正確啟動所需的上拉電阻可以加倍,因為I2C總線上拉電阻和總線上的其他從器件均是集電極開路,因此不應下拉總線通電時。但是,在某些情況下,從站(尤其是具有備用電池的從站)可能會卡住并壓低總線。在這種情況下,您需要隔離總線,直到ESP8266進入引導階段為止。

通過為I2C總線使用TX和RX可以避免此問題

注意:

GPIO1(TX)用作數據線,因為在加電時,您總是會在GPIO1上獲得一些調試輸出。沒有辦法抑制此輸出,但時鐘線(RX)會保持高電平,因此這些數據都不會被時鐘傳給從機

在對ESP8266進行編程時,RX線會連接到ESP8266。程序員的輸出。編程結束時,ESP8266會重新啟動,并且330保護電阻可防止RX短路編程器的輸出驅動器

I2C串聯電阻可為TX,RX提供防止I2C總線短路的保護

ESP8266是3.3V器件,因此最好使用3.3V I2C從器件。如今,許多(但不是全部)I2C器件均為3.3V。 “通常,在一個設備的電壓高于另一個設備的電壓的系統中,有可能通過I2C連接兩個設備,而它們之間沒有任何電平轉換電路。技巧是將上拉電阻器連接到兩個電壓中的較低者。”(SparkFun I2C教程)對于5V和3.3V器件的混合,將上拉電阻器連接到3.3V線,如上所示。

使用I2C是向ESP8266-01添加多通道A-to-D轉換器的好方法,該轉換器不會暴露底層模塊的單個ADC輸入。例如,使用Adafruit 12位I2C 4通道ADC或模擬輸出SparkFun的I2C DAC Breakout – MCP4725板。 I2C總線還提供許多其他類型的傳感器

有關克服I2C問題的更多信息,請參見http://www.i2c-bus.org/i2c-primer/common-problems.。.。另請參閱I2C電池后備RTC可靠啟動的簡短方法,以幫助清除總線

第4步:將GPIO0/GPIO2用于OUTPUT,將RX用于INPUT

雖然可以通過WiFi連接發送調試消息,但是使用TX連接通常很方便。下一個示例顯示如何將GPIO0和GPIO2用作輸出,將RX用作輸入。

使用

Serial.begin(115200,SERIAL_8N1,SERIAL_TX_ONLY);

允許您將RX用作通用輸入(或其他輸出),同時仍將調試消息寫入串行。 RX引線中的330歐姆電阻再次連接到Flash編程器,可以防止編程器的驅動器短路。注意:必須先打開S1才能對ESP8266進行編程。

可以從草圖訪問TX引腳,因為GPIO1和RX為GPIO3

使用GPIO0作為輸出時如何重新編程

注意:需要將GPIO0接地才能進入編程模式。如果您將其拉高,則將其接地可能會損壞ESP8266芯片。當代碼驅動GPIO0輸出時,對ESP8266進行重新編程的安全方法是:-

a)關閉開發板電源 b)短GPIO0到gnd c)打開開發板電源,使其進入編程模式由于GPIO0短路

d)消除了GPIO0的短路,因此在程序運行時您不會短路輸出

e)重新編程開發板 f)必要時重啟開發板。

步驟5:另一個技巧-使用GPIO0/GPIO2驅動繼電器并讀取按鈕

這里是另一種配置方式別針。注意:僅當您的繼電器模塊具有隔離的輸入(N1和N1-com)時,此技巧才有效。由于此限制和支持代碼的復雜性,上一個示例以RX作為輸入為佳。

使用ESP8266 GPIO0/GPIO2/GPIO15引腳已經介紹了如何一起使用GPIO0/GPIO2獲得額外的輸入。在這里,該示例將擴展為使用GPIO0作為繼電器驅動器輸出,并使用GPIO0/GPIO2作為輸入。

此處是pdf格式的原理圖。

此處GPIO0被用作輸出以驅動繼電器,GPIO0/GPIO2用作輸入來讀取瞬時按鈕,該按鈕除了可以通過WiFi連接進行遠程控制之外,還可以用作手動操作來打開和關閉繼電器。如果在通電時按下瞬時按鈕,則也可用于啟用配置模式。

這里的訣竅是在ESP8266模塊初始化時仍保持GPIO0和GPIO2為高電平的同時進行所有操作。

上拉電阻R1和R3為這兩個引腳提供了必要的高電平,但是必須確保連接到GPIO0和GPIO2的任何額外電路都不能將引腳拉低。光電隔離繼電器連接在+ 3.3V和GPIO0之間。這樣可在啟動時使GPIO0保持高電平,但在啟動后允許GPIO0作為輸出,并使繼電器輸入接地以操作繼電器。模塊初始化時是否操作瞬時按鈕都沒有關系,因為只需將GPIO0連接到GPIO2并將這兩個都連接到其上拉電阻即可。

檢測配置模式

使用ESP8266作為一個臨時訪問點,您可以按此處所述通過網頁進行配置。該過程的一部分是在加電時使用按鈕或短路鏈接來指示要進入配置模式的軟件。

ESP8266模塊初始化后,將運行 setup()代碼。在該代碼中,要檢測瞬時按鈕是否被按下,您無需使GPIO0為低電平即可為按鈕提供GND,然后檢查GPIO2輸入是否為低。該檢查的副作用是,當設備進入配置模式時,繼電器將始終處于運行狀態。一旦看到繼電器操作,就可以釋放按鈕,因為屆時將已檢測到其輸入。這是一些示例代碼,可在 setup()

boolean configMode = false; // not in config mode normally

void setup() {

pinMode(0, OUTPUT);

digitalWrite(0, LOW); // make GPIO0 output low

// check GPIO2 input to see if push button pressed connecting it to GPIO0

configMode = (digitalRead(2) == LOW);

if (configMode) {

// start AP and get ready to serve config web page

// leave relay on to indicate in config mode

//。..。..

} else {

// normal usage

// make GPIO0 HIGH to turn off the relay

digitalWrite(0, HIGH);

//。..。.

}

// rest of setup()

}

檢測手動覆蓋按鈕

中進行此操作。開機時按下按鈕以啟用配置模式。除了能夠通過WiFi鏈接控制繼電器之外,我們還希望使用該按鈕作為手動替代來打開和關閉繼電器。

此處不介紹繼電器的WiFi控制,但可以使用pfodApp輕松完成。有關如何使用pfodDesigner為ESP8266模塊生成Arduino代碼的信息,請參見OLIMEX菜單生成器。

本節將介紹如何檢測何時按下按鈕,指示用戶想要切換繼電器,即打開它。如果是OFF,則將其打開;如果關閉,則將其打開。原理圖與上面相同,所有技巧都在代碼中。有兩種情況需要考慮:-

繼電器已關閉,用戶希望使用按鈕將其打開,

繼電器已打開,用戶希望

繼電器關閉,用戶希望使用按鈕將其打開。

在這種情況下, GPIO0為高電平。在這種情況下,實際上GPIO0可以作為輸入,因為上拉電阻R1將確保繼電器不會打開。那是訣竅。在這種情況下,將GPIO0設為輸入,將GPIO2輸出設為LOW,然后當用戶按下按鈕時,將發生兩件事:-a)由于GPIO2通過按鈕提供的接地,繼電器將打開,并且b)輸入GPIO0將變為低電平。該代碼檢查輸入GPIO0的狀態,并在輸入GPIO0變為低電平時知道使用已按下按鈕并希望繼電器打開。然后,該代碼使GPIO0變為Output LOW,以在釋放按鈕時使繼電器保持打開狀態。

繼電器打開,用戶希望使用按鈕將其關閉。

在這種情況下,從上述情況開始,GPIO0為輸出低電平,繼電器保持打開狀態。現在,在這種情況下,將GPIO2設為輸入(由R3上拉),然后當用戶按下按鈕時,輸入GPIO2被GPIO0上的LOW輸出拉低。當用戶釋放按鈕時,代碼將檢測到低電平到高電平的過渡,然后將GPIO0設為輸入,由于上拉電阻R1而釋放繼電器,并使GPIO2變為輸出LOW,以針對上述情況i)進行設置。

還有另一個竅門。對于情況ii),我們需要GPIO2作為輸入,該輸入可檢測到從低電平到高電平的轉換以關閉繼電器。但是,如果我們在情況i)的末尾制作GPIO2并輸入,那么當用戶釋放他們剛剛按下以打開繼電器的按鈕時,我們將獲得從低到高的轉換。為避免立即再次關閉繼電器,將忽略繼電器打開后的第一個從低到高的過渡,因為這只是用戶釋放他們按下的按鈕來打開繼電器。

示例循環( )繼電器手動超越控制代碼

在此代碼中,為簡單起見,我忽略了開關的反跳。輸入應在任何實際應用中進行去抖動。

示例代碼在此處,ESP8266_01pinMagic_1.ino

再次使TX/RX引腳可用進行串行調試或用作其他I/O

結論

此頁顯示了如何充分利用ESP8266-01上可用的有限引腳。將GPIO0/GPIO2用作I2C總線可提供最大的擴展,但是如果您的項目不使用I2C,您仍可以使用GPIO0/GPIO2來驅動繼電器并檢測按鈕輸入。無論哪種情況,TX/RX都可用于串行調試,或者如果您通過WiFi鏈接發送調試打印語句,則這些引腳也可用于常規I/O。
責任編輯:wv

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

    關注

    3

    文章

    415

    瀏覽量

    28256
  • ESP8266
    +關注

    關注

    50

    文章

    962

    瀏覽量

    44852
收藏 人收藏

    評論

    相關推薦

    指示燈LED資料分享

    指示燈板,用CMOS N溝道驅動
    發表于 11-07 10:50 ?0次下載

    ESP8266 太空人動畫的 OLED 顯示

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

    esp32和esp8266代碼共用嗎

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

    esp8266esp32區別是什么

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

    esp8266不燒錄可以使用嗎

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

    ESP8266-01如何更新固件?

    您好,我有 ESP8266-01,我需要通過 Arduino 更新固件......我有這個版本......esp_iot_sdk_v1.4.0_15_09_18.zip 可以給任何鏈接重言同義嗎?
    發表于 07-22 07:33

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

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

    ESP8266可以使用僅支持標準SPI的閃存芯片嗎?

    ]][espDownloader.pyo][行:457][錯誤]:ESP8266芯片閃存下載錯誤esp_write_flash。 我使用帶有SST25VF080B閃光ESP8266-0
    發表于 07-19 07:52

    如何使用ESP8266-01構建一個電池供電的數據記錄器?

    為此類應用量身定制的。在 TI 的數據手冊上,它看起來非常簡單: 1) TPL5111(帶有其 DRV 引腳)接通電壓調節器的 ENABLE 引腳。 2) ESP8266-01 由穩壓器供電,執行其
    發表于 07-19 06:53

    使用ESP8266-01和Arduino SDK安裝AT固件失敗了怎么解決?

    在使用我的 ESP8266-01 和 Arduino SDK 玩了一會兒后,我想再次在其上安裝 AT 固件,但我失敗了。 我嘗試從ESP8266_NONOS_SDK-3.0.5開始,按如下方式安裝它
    發表于 07-19 06:08

    ESP8266-01適合長時間使用嗎?

    我正在使用ESP8266-01,運行NONOS_SDK_V2.0.0_16_07_19。程序正在使芯片進入深度睡眠 2 分鐘,然后收集數據。它運行良好大約 ~20 小時,ESP UART 輸出符合
    發表于 07-18 06:45

    ESP8266-01在幾個小時后停止響應了如何解決?

    我已經使用 Arduino IDE 為我的家庭自動化項目編寫了 ESP8266-01ESP-01 會在一段時間后停止響應接收到的 UDP 廣播數據。 有人可以告訴我如何解決這個問題嗎?
    發表于 07-15 07:31

    ESP8266-01將ch_pd引腳與直接vcc連接,電池功耗持續非常高,怎么解決?

    我使用 ESP8266-01 開發產品并與其他主機 MCU 接口,主機 MCU 使用 UART 和 AT 命令進行 ESP 通信。我們的產品是在低功耗的電池源上,如果我想與主機 MCU 建立
    發表于 07-15 06:37

    基于SDK2.0的ESP8266-01閃存失敗的原因?

    如果我的固件基于 SDK2.0,我無法刷新一堆 ESP8266-01。在其他用戶的支持下(見線程:http://www.esp8266.com/viewtopic.php?f= ...編號
    發表于 07-11 06:12

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

    ESP8266ESP8285對比差異 ESP8285相當于在ESP8266基礎上多加了1/2MB Flash, ESP8285與
    的頭像 發表于 05-17 11:44 ?1189次閱讀
    國產低成本Wi-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對比差異