物聯(lián)網(wǎng)模塊ESP8266學(xué)習(xí)筆記-1

????????價(jià)廉物美又好玩的物聯(lián)網(wǎng)模塊ESP8266,十多塊錢的東東卻不容易玩的轉(zhuǎn),在此記錄學(xué)習(xí)過程。

? ??????初識(shí)ESP8266

????????ESP8266是上海樂鑫(ESPRESSIF)生產(chǎn)的WI-FI低功耗芯片,是業(yè)內(nèi)集成度最高的 Wi-Fi 芯片,最小封裝尺寸僅為 5mm x 5mm。提供了一套高度集成的 Wi-Fi SoC 解決方案,其低功耗、緊湊設(shè)計(jì)和高穩(wěn)定性可以滿足用戶的需求。ESP8266集成了天線開關(guān)、射頻 balun、功率放大器、低噪放大器、過濾器和電源管理模塊,僅需很少的外圍電路,可將所占 PCB 空間降到最低。ESP8266EX 專為移動(dòng)設(shè)備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)應(yīng)用而設(shè)計(jì),通過多項(xiàng)專有技術(shù)實(shí)現(xiàn)了最低功耗。ESP8266EX 有三種運(yùn)行模式:激活模式、睡眠模式和深度睡眠模式,能夠延長(zhǎng)電池壽命。

????????ESP8266EX 擁有完整的自成體系的 Wi-Fi 網(wǎng)絡(luò)功能,既能夠獨(dú)立應(yīng)用,也可以作為從機(jī)搭載于其他主機(jī) MCU 運(yùn)行。當(dāng) ESP8266EX 獨(dú)立應(yīng)用時(shí),能夠直接從外接 flash 中啟動(dòng)。內(nèi)置的高速緩沖存儲(chǔ)器有利于提高系統(tǒng)性能,并且優(yōu)化存儲(chǔ)系統(tǒng)。此外 ESP8266EX 只需通過 SPI/SDIO 接口或 I2C/UART即可作為 Wi-Fi 適配器,應(yīng)用到基于任何微控制器的設(shè)計(jì)中。ESP8266EX 還集成了增強(qiáng)版的 Tensilica’s L106 鉆石系列 32-bit 內(nèi)核處理器,具有超低功耗和 16 位RSIC,時(shí)鐘速度最高可達(dá) 160 MHz。支持實(shí)時(shí)操作系統(tǒng) (RTOS),目前 Wi-Fi 協(xié)議棧只用了 20% 的 MIPS,其他均可用于用戶編程和開發(fā)。帶片上SRAM,ESP8266EX 可以通過 GPIO 外接傳感器和其他設(shè)備。? ??

ESP8266EX芯片

????????ESP8266芯片體積小并且是QFN封裝,我等普通愛好者用起來會(huì)比較困級(jí)。不過好在Taobao上有和外圍電路一起封裝好的模塊。還有基于這些模塊的開發(fā)板,板載USB轉(zhuǎn)串口電路,只要用MicroUSB線連接電腦就可以調(diào)試了。建議入手這種,方便好用價(jià)格也不貴。


Esp8266模塊? ??
搭載了USB轉(zhuǎn)串口的ESP8266開發(fā)板

? ? ? ??本人所了解的幾種主流開發(fā)方式

????????AT指令:模塊通過串口與上位機(jī)連接,上位機(jī)發(fā)出指令,模塊收到指令后做出響應(yīng)??梢杂肞C端的串口助手調(diào)試。當(dāng)然也可以用另一片單片機(jī)做上位機(jī),不過放著模塊集成的32位MCU不用,再用51之類的8位單片機(jī)驅(qū)動(dòng)的話就有點(diǎn)小馬拉大車了。

????????NodeMCU:運(yùn)行于ESP8266模塊上的一種固件,該固件提供一些封裝好的模塊(API),直接調(diào)用就可以了。使用LUA語言編程。

????????Arduino:模塊可以在Arduino環(huán)境下調(diào)試,有基礎(chǔ)的同學(xué)可以使用此方式。本菜鳥沒玩過Arduino,只是按教程簡(jiǎn)單試了一下,發(fā)現(xiàn)編譯下載好慢就放棄掉了。

????????3種方法各有優(yōu)劣,同學(xué)們可以自行選擇最適合自己的方式。至于官方推薦的開發(fā)方式是運(yùn)行在Linux環(huán)境下,本菜鳥直接無視,入門太難了。比來比去,最后還是選擇了NodeMCU,LUA語言和C有很大的相似性,以前玩過C51再玩這個(gè)可能會(huì)有幫助。

????????NodeMCU固件

????????NodeMCU的源代碼發(fā)布在github網(wǎng)站,但是要編譯成可刷入模塊的bin固件,需要在陌生的Linux環(huán)境下,我也沒有找到一個(gè)靠譜的教程,特意裝了個(gè)Linux系統(tǒng)試了試,貌似玩不轉(zhuǎn)。

????????不過有個(gè)好消息:固件可以在線訂制,打開http://nodemcu-build.com/,留下自己的Email,選擇自己需要的模塊和版本。很快會(huì)就收到訂制好的固件了,一個(gè)integer,一個(gè)float。區(qū)別大概是Float支持浮點(diǎn)Integer不支持。

刷入固件用的工具從這里下載https://github.com/nodemcu,按住Flash鍵不放,把模塊接入U(xiǎn)SB,選好COM口和要刷入的固件,速度優(yōu)先選高的,如果刷入失敗,再向下降就行。

固件刷好后,打開串口助手。波特率選115200,試一下第一句程序:print(“Hello NodeMCU!”),模塊正常的話會(huì)顯示Hello NodeMCU!

試試node.restart(),重新啟動(dòng)一下模塊,會(huì)顯示當(dāng)前固件的版本、生成時(shí)間、包含模塊等信息。

為便于理解,我們可以把ESP8266模塊看作一個(gè)可以連接WIFI的單片機(jī)。但是要玩轉(zhuǎn)這片小小的板子,卻沒有想像中那么簡(jiǎn)單。模塊的編程和51單片機(jī)有很大的區(qū)別,

固件刷好后,就可以開心的玩了。開發(fā)軟件個(gè)人建議使用Esplorer,此軟件需要安裝JAVA。試一下第一句程序:print(“Hello NodeMCU!”),模塊正常的話會(huì)顯示Hello NodeMCU!

試試node.restart(),重新啟動(dòng)一下模塊,會(huì)顯示當(dāng)前固件的版本、生成時(shí)間、包含模塊等信息。

最新的NODEMCU固件支持可變波特率,不再局限于9600bps。比如可以在Esplorer里把波特率改為57600。如下圖:

至此開發(fā)環(huán)境搭建完畢,可以試著先把模塊連接到家里的WIFI,參照如下例程,把SSID和密碼改成自己的,運(yùn)行一下就能連接了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容