0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP8266-12E和Arduino入門(mén)

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2020-01-31 17:53 ? 次閱讀

對(duì)于任何物聯(lián)網(wǎng)DIY)DIY項(xiàng)目來(lái)說(shuō),Wi-Fi都是必不可少的工具包,但是我們最喜歡的Arduino并未隨附Wi-Fi,并且添加Wi-Fi防護(hù)罩可以帶來(lái)總費(fèi)用約為40美元。如果我告訴您有一個(gè)兼容Arduino的開(kāi)發(fā)板,且內(nèi)置Wi-Fi的價(jià)格不到10美元怎么辦?嗯,有。

遇到了Arduino殺手:: ESP8266。將皇冠從我們親愛(ài)的Arduino開(kāi)發(fā)板的光亮的頭上偷走只是時(shí)間問(wèn)題。

除了俗稱(chēng)的ESP8266(也稱(chēng)為NodeMCU),最初是作為Arduino板的低成本W(wǎng)i-Fi附加件銷(xiāo)售的,直到黑客社區(qū)意識(shí)到您可以完全擺脫Arduino的困擾。

在不到一年的時(shí)間里,ESP8266迅速普及,并且得到了如此良好的支持和開(kāi)發(fā),如果您當(dāng)前使用的是Arduino,您需要站起來(lái)記筆記。立即購(gòu)買(mǎi),然后按照本指南開(kāi)始進(jìn)行ESP8266編程-全部從熟悉的Arduino IDE中進(jìn)行。

您當(dāng)然不限于使用Arduino IDE,它們與兼容Lua也是如此(對(duì)我的新手來(lái)說(shuō),這看起來(lái)像是精簡(jiǎn)的Python),但是由于我們是從那些已經(jīng)在A(yíng)rduino上學(xué)到的人的角度解決這個(gè)問(wèn)題的,所以今天我們將專(zhuān)門(mén)介紹它。

現(xiàn)在有很多ESP8266型號(hào),但我將繼續(xù)推薦該型號(hào):ESP-12E(也稱(chēng)為NodeMCU 1.0,或者它的最新同級(jí)NodeMCU 2.0)。

它是比其他芯片貴一些(6.50美元比4美元!),但包括對(duì)芯片進(jìn)行編程所需的串行驅(qū)動(dòng)器,并具有內(nèi)置的電源調(diào)節(jié)器以及許多IO引腳。它得到了廣泛的支持,除了USB連接以外,實(shí)際上不需要任何其他程序來(lái)編程或供電,因此使用起來(lái)最簡(jiǎn)單。如果您購(gòu)買(mǎi)任何其他種類(lèi)的ESP8266開(kāi)發(fā)板,則可能需要單獨(dú)的3.3v電源調(diào)節(jié)器和合適的FTDI連接進(jìn)行編程。

ESP8266-12E和Arduino入門(mén)

首先,為該開(kāi)發(fā)板安裝串行驅(qū)動(dòng)程序。如果由于新的安全系統(tǒng)而在運(yùn)行El Capitan,則可能需要禁用KEXT簽名。

下一步,我們需要從Arduino IDE的開(kāi)發(fā)板上啟用對(duì)ESP8266的支持經(jīng)理。打開(kāi)“偏好設(shè)置”,然后輸入以下URL,其中顯示 Additional Board Manager URL :

ESP8266-12E和Arduino入門(mén)

點(diǎn)擊確定,然后打開(kāi)從工具-》主板菜單中的 Boards Manager ,搜索esp8266并安裝平臺(tái)。現(xiàn)在,您應(yīng)該可以看到NodeMCU 1.0的選擇。

保留CPU和上載速度,然后選擇新安裝的串行端口。在Mac上,它顯示為 cu.SLAB_USBtoUART 。

作為第一個(gè)程序,我建議使用簡(jiǎn)單的Wi-Fi掃描器-從文件-》示例中找到它-》 ESP8266WiFi-》 WifiScan 。請(qǐng)注意,上傳速度很慢,但最終會(huì)說(shuō)“完成上傳”,此時(shí)(不是以前,否則您將中斷上傳過(guò)程),您可以打開(kāi)串行監(jiān)視器。您應(yīng)該看到類(lèi)似以下內(nèi)容:

成功!現(xiàn)在,讓我們嘗試連接一個(gè)。

這是用于連接到Wi-Fi網(wǎng)絡(luò)的絕對(duì)簡(jiǎn)單的準(zhǔn)系統(tǒng)代碼。它不僅可以連接,還可以做其他任何事情,但是您可以稍后再添加。只需記住將YOUR_SSID和YOUR_PASSWORD更改為您的Wi-Fi詳細(xì)信息即可。上傳,打開(kāi)串行控制臺(tái),您應(yīng)該會(huì)看到它已連接。

#include

const char* ssid = “YOUR_SSID”;

const char* password = “YOUR_PASSWORD”;

WiFiClient wifiClient;

void setup() {

Serial.begin(115200);

Serial.print(“Connecting to ”);

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(“?!保?

}

Serial.println(“”);

Serial.println(“WiFi connected”);

Serial.println(“IP address: ”);

Serial.println(WiFi.localIP());

}

void loop() {

}

難道這是如此簡(jiǎn)單嗎?

在我們攜帶之前上面是引腳圖-稍后可能會(huì)派上用場(chǎng)。請(qǐng)注意,代碼中提到的引腳號(hào)是GPIO號(hào),而不是可能寫(xiě)在板PCB上的D0-16。如果絕對(duì)不能肯定地確定傳感器不起作用的原因,那么您可能已經(jīng)混淆了引腳號(hào)。

快速智能家居傳感器使用MQTT和DHT11

這是一個(gè)實(shí)際示例,您可以立即使用它來(lái)監(jiān)視您的房屋。我們將添加DHT11溫度和濕度傳感器,然后使用MQTT協(xié)議通過(guò)Wi-Fi網(wǎng)絡(luò)報(bào)告這些值,在我的情況下,該報(bào)告將報(bào)告給OpenHAB DIY家庭自動(dòng)化系統(tǒng)(如果沒(méi)有,您可能需要閱讀我們的初學(xué)者指南使OpenHAB在Raspberry Pi上啟動(dòng)并運(yùn)行,以及第2部分,專(zhuān)門(mén)討論安裝MQTT服務(wù)器。

在接線(xiàn)側(cè),將DHT傳感器連接到 GND , 3.3v 和?D4 (或GPIO 2)。這就是我們現(xiàn)在所需要的。

下載這些MQTT和DHT庫(kù)。 即使您已經(jīng)擁有了它們,也仍然可以下載這些文件,備份所擁有的文件并用它們覆蓋。Adafruit的最新DHT11庫(kù)使用自動(dòng)算法來(lái)確定從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)的速度。傳感器,但是它在ESP8266上存在故障,并且90%的時(shí)間導(dǎo)致讀取失敗。

使用下載中包含的舊版庫(kù)1.0,您可以手動(dòng)更改計(jì)時(shí):11種方法最適合這些ESP2866開(kāi)發(fā)板。我還遍歷了MQTT庫(kù)的許多副本,試圖找到一個(gè)好的 callback 函數(shù),最后找到了其中的一個(gè)。替換掉它們后,您需要重新啟動(dòng)Arduino IDE。

這是項(xiàng)目的完整代碼。頂部是您需要更改的所有變量,包括Wi-Fi詳細(xì)信息,MQTT服務(wù)器(雖然沒(méi)有身份驗(yàn)證,但如果使用云服務(wù)器,則可以使用URL代替URL,)以及發(fā)布數(shù)據(jù)的渠道。

這是它的工作方式和一些注意事項(xiàng):

首先我們連接到Wi-Fi,然后連接到MQTT服務(wù)器,然后開(kāi)始主循環(huán)()。

在循環(huán)中,我們每60秒輪詢(xún)DHT傳感器并將讀數(shù)發(fā)布到相關(guān)的MQTT通道。同樣,如果您發(fā)現(xiàn)大多數(shù)讀數(shù)都導(dǎo)致失敗消息,則說(shuō)明DHT庫(kù)的版本錯(cuò)誤–降級(jí)至v1.0。

client.loop()將控制權(quán)傳遞給MQTT庫(kù),使其能夠?qū)魅胂⒆龀龇磻?yīng)。

我們有一個(gè) messageReceived()函數(shù)用于處理傳入消息–只需執(zhí)行簡(jiǎn)單的if語(yǔ)句來(lái)比較有效載荷以及您期望的消息。例如,您可以使用它來(lái)激活繼電器。

運(yùn)行了幾天后,我發(fā)現(xiàn)它們會(huì)隨機(jī)停止工作–我認(rèn)為這是某種內(nèi)存泄漏,但是鑒于我沒(méi)有我沒(méi)有編碼技能來(lái)解決這個(gè)問(wèn)題,而且可能與核心庫(kù)有關(guān),所以我每天都選擇asimple軟復(fù)位。傳感器節(jié)點(diǎn)首次激活后的正好一天,它們將自行重啟。

從3.3v為這些廉價(jià)DHT11模塊供電時(shí),濕度值遠(yuǎn)遠(yuǎn)低于其應(yīng)有的水平。我已經(jīng)通過(guò)簡(jiǎn)單的乘法解決了這一問(wèn)題,并針對(duì)商用傳感器進(jìn)行了校準(zhǔn)。我建議您在閱讀之前,也請(qǐng)先根據(jù)自己的已知來(lái)源進(jìn)行確認(rèn)?;蛘?,用5V為它們供電–但是您必須在數(shù)據(jù)引腳和ESP8266之間放置一個(gè)5v-3.3v邏輯電平轉(zhuǎn)換器,否則會(huì)損壞它。。

如果一切順利,您現(xiàn)在應(yīng)該在MQTT代理中接收傳感器讀數(shù),并且可以按照我們的初學(xué)者指南第2部分中的詳細(xì)說(shuō)明將它們連接到OpenHAB,在這里我還向您展示了如何繪制數(shù)據(jù)圖。

告別Arduino,我們?nèi)绱藧?ài)你。只是開(kāi)個(gè)玩笑:我家的每個(gè)地方甚至都沒(méi)有Wi-Fi,因此對(duì)于那些地點(diǎn),我仍然需要帶有Arduino和RF接收器的網(wǎng)狀網(wǎng)絡(luò)。

要進(jìn)行有趣的項(xiàng)目,請(qǐng)查看如何制作一個(gè)ESP8266的Wi-Fi按鈕。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186349
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    962

    瀏覽量

    44684
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?109次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動(dòng)畫(huà)的 OLED 顯示

    arduino(1)--ESP8266配置

    硬件準(zhǔn)備 首先需要準(zhǔn)備一個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是淘寶購(gòu)買(mǎi)的兼容arduinoESP8266模塊。 arduino配置 我使用的是arduino來(lái)編程實(shí)現(xiàn),故需要下載對(duì)應(yīng)的庫(kù)文件,打
    發(fā)表于 09-06 11:00

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的智能設(shè)備開(kāi)始進(jìn)入我們的生活。其中,ESP32和ESP82
    的頭像 發(fā)表于 08-19 18:23 ?795次閱讀

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個(gè)Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?2830次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。然而,如果不進(jìn)行燒錄,ESP8266將無(wú)法正常工作。 1. ESP8266簡(jiǎn)介 ESP8266是一款由Espres
    的頭像 發(fā)表于 08-19 17:28 ?478次閱讀

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
    的頭像 發(fā)表于 08-13 18:04 ?770次閱讀
    <b class='flag-5'>Arduino</b> Nano 和 NodeMCU <b class='flag-5'>ESP8266</b> 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    ESP8266 12E如何升級(jí)到最新固件?

    ESP8266 12E如何升級(jí)到最新固件
    發(fā)表于 07-22 07:03

    ESP8266 12E如何使用SDK中的函數(shù)?

    ESP8266 12E - 如何使用 SDK 中的函數(shù)
    發(fā)表于 07-22 06:52

    請(qǐng)問(wèn)ESP8266 12E如何升級(jí)到最新固件?

    ESP8266 12E - 如何升級(jí)到最新固件
    發(fā)表于 07-16 07:33

    請(qǐng)問(wèn)如何在ESP8266-12E上執(zhí)行AT v.20的完整固件上傳?

    我有一個(gè) NodeMCU DevKit v1.0 開(kāi)發(fā)板。它上面有一個(gè) ESP8266-12E,之前運(yùn)行的是 NodeMCU 固件。我想嘗試一些需要 AT 命令的庫(kù) (v.20),所以我一直在嘗試
    發(fā)表于 07-16 07:25

    ESP8266為什么不響應(yīng)Arduino?

    我是這個(gè) wifi 芯片的新手。我的問(wèn)題是,當(dāng)我將其與 arduino mega 連接時(shí),我無(wú)法從 esp8266 獲得響應(yīng)。 像許多在線(xiàn)教程一樣,我按照說(shuō)明進(jìn)行操作,但仍然無(wú)法得到任何回應(yīng)
    發(fā)表于 07-16 06:39

    ESP8266-12EArduino框架時(shí),在建立串行連接時(shí)必須將GPIO15拉至低電平才能工作,為什么?

    使用 NodeMCU (ESP8266-12E) 和 Arduino 框架時(shí),我注意到在建立串行連接時(shí)必須將 GPIO15 拉至低電平。否則串行連接無(wú)法正常工作。這是什么原因,有沒(méi)有一份文件可以讓我閱讀?
    發(fā)表于 07-10 07:43

    使用arduino生成bin文件,怎么方便燒錄到ESP8266/32?

    使用arduino生成bin文件,怎么方便燒錄(下載)到ESP8266/32?
    發(fā)表于 06-21 13:03

    國(guó)產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片ESP8266ESP8285對(duì)比差異

    ESP8266ESP8285對(duì)比差異 ESP8285相當(dāng)于在ESP8266基礎(chǔ)上多加了1/2MB Flash, ESP8285與
    的頭像 發(fā)表于 05-17 11:44 ?1042次閱讀
    國(guó)產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對(duì)比差異

    esp8266microPython如何調(diào)用Arduino庫(kù)?

    esp8266microPython如何簡(jiǎn)單的調(diào)用Arduino庫(kù),本人C++不是太熟練,想把ATmega328p的一個(gè)LCD屏驅(qū)動(dòng)移植到esp8266 microPython 上,不知如何實(shí)現(xiàn)
    發(fā)表于 10-30 07:42