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

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

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

如何在NodeMCU ESP8266上使用MicroPython

454398 ? 來源:工程師吳畏 ? 2019-07-26 10:28 ? 次閱讀

MicroPython:用于微控制器的Python

Python是一種開源編程語言,易于使用使用語法和許多庫來幫助使編碼更容易。 Python有很多來自Web應(yīng)用程序,科學(xué)和數(shù)字計(jì)算以及創(chuàng)建軟件原型的應(yīng)用程序。因?yàn)樗情_源的,所以它也得到了社區(qū)的大力支持。

Python主要用于Web和軟件,但基于Python的硬件呢?這就是MicroPython的用武之地。

MicroPython是一種基于Python 3的編程語言,用C語言編寫,用于在微控制器上運(yùn)行。 MicroPython允許在微控制器上使用Python語言的簡單性而不是更復(fù)雜的低級語言。

NodeMCU ESP8266 Board

NodeMCU ESP8266板有30個引腳連接到開發(fā)板。在30個引腳中,17個是GPIO引腳。這些GPIO引腳可用作:

ADC通道:10位ADC(模數(shù)轉(zhuǎn)換器)通道

UART接口:用于串行加載代碼

PWM輸出:用于調(diào)光LED或控制電機(jī)

SPI和I2C接口:連接各種傳感器和外圍設(shè)備

I2S:添加聲音您的項(xiàng)目

這些GPIO引腳是多路復(fù)用的,這意味著單個GPIO引腳可以充當(dāng)PWM/UART/SPI。

如何在NodeMCU ESP8266上使用MicroPython

NodeMCU ESP8266電路板引腳詳情

要將NodeMCU ESP8266的GPIO引腳與MicroPython代碼一起使用,我們需要使用I/O索引號而不是GPIO引腳號來解決它們。下面是GPIO引腳的等效I/O索引號表。

設(shè)置uPyCraft IDE

雖然有MicroPython編程選項(xiàng),但本教程使用uPyCraft IDE為ESP8266 NodeMCU刷新固件和代碼。為了安裝適用于Windows PC的uPyCraft IDE,我們需要將Python 3安裝到我們的操作系統(tǒng)中。

要安裝Python 3,請轉(zhuǎn)到Python下載并從Python網(wǎng)站下載安裝文件。

下載Python 3.7X

安裝下載的Python 3.7.X.exe并啟用添加Python 3.7到PATH。然后單擊立即安裝。

安裝Python 3.7.X

安裝Python 3后,我們可以下載適用于Windows的uPyCraft IDE。要下載,請查看下面的圖片。

下載uPyCraft

接下來,將下載的uPyCraft安裝到Windows。

uPyCraft.exe

安裝并打開uPyCraft后,您將看到以下屏幕:

uPyCraft IDE

安裝uPyCraft后,我們可以使用它來使用MicroPython固件刷新ESP板。但首先我們需要最后一次下載:CP20X驅(qū)動程序。

安裝CP210X驅(qū)動程序

In為了將任何內(nèi)容閃存到我們的主板上,我們需要下載并安裝CP210X驅(qū)動程序。 CP210X驅(qū)動程序是USB-to-UART橋接器虛擬COM端口驅(qū)動程序,便于主機(jī)通信。

下載CP210X

下載后,將CP210X安裝到Windows。這將使我們能夠在uPyCraft IDE上看到NodeMCU使用的COM端口。

將MicroPython固件刷新到ESP8266

默認(rèn)情況下,ESP8266不會使用MicroPython進(jìn)行閃存。所以在我們開始編程之前,讓我們在我們的主板上閃存MicroPython固件。

首先,為ESP8266下載最新版本的MicroPython固件。

下載ESP8266固件

注意:確保為電路板下載正確的固件。在MicroPython下載中為特定板使用不同的固件。

下載MicroPython固件后,打開uPyCraft IDE并檢查正在使用的串口和板。

選擇串口端口,轉(zhuǎn)到工具》串行并選擇您的ESP8266 COM端口(請參閱ESP8266所在的COM端口,我的是COM4)。

選擇電路板,轉(zhuǎn)到工具》電路板并選擇ESP8266電路板。

選擇COM端口

現(xiàn)在,我們選擇了ESP8266連接的端口和我們正在使用的電路板。讓我們將固件刷到電路板上。

轉(zhuǎn)到工具》 BurnFirmware 和單擊刻錄固件。

刻錄固件

使用以下選項(xiàng)設(shè)置固件:

板:esp8266

burn_addr :0x0

erase_flash :是

com:COM4

固件:選擇“用戶“并選擇我們之前下載的esp.8266.bin文件

Flash設(shè)置

在點(diǎn)擊OK之前,按住ESP8266板上的flash按鈕。

ESP8266上的Flash按鈕

按住按鈕的同時單擊刻錄固件窗口中的“確定”按鈕。

Flash進(jìn)度條

當(dāng)刻錄固件的進(jìn)度條開始時,您可以釋放閃光燈按鈕。一旦刻錄達(dá)到100%,固件就會閃爍到ESP8266板上。

如果收到“擦除假”注意框,這意味著ESP8266板未處于閃爍模式。重復(fù)這些步驟并再次按住閃光燈按鈕,ESP8266進(jìn)入閃爍模式。

刪除錯誤錯誤

uPyCraft和ESP8266文件系統(tǒng)

ESP板文件可以在“device”文件夾中看到。該文件夾包含默認(rèn)的“ boot.py ”,它在啟動時運(yùn)行設(shè)備并設(shè)置設(shè)備的配置。在設(shè)備文件夾下,建議創(chuàng)建“ main.py ”以運(yùn)行主代碼。

設(shè)備文件夾

除了設(shè)備文件夾,IDE的左側(cè)有許多文件夾。我們來討論這些不同的文件夾。

sd - 用于訪問SD卡的存儲,僅適用于帶有SD卡模塊的主板。

uPy_lib - 包含內(nèi)置IDE庫文件。

workSpace - 保存文件存儲在計(jì)算機(jī)中的位置。您可以設(shè)置保存文件的目錄路徑。

基本uPyCraft示例

我們已經(jīng)設(shè)置將uPyCraft和閃存固件放到我們的ESP8266上?,F(xiàn)在讓我們運(yùn)行一個示例代碼來檢查我們與ESP8266的連接是否正常。

有許多示例代碼可以在uPyCraft中使用。在本例中,我們將使用blink.py查看是否可以使NodeMCU板上的LED閃爍。

轉(zhuǎn)到示例》基本》 blink.py

導(dǎo)航示例blink.py

以下是blink.py的示例代碼

Blink.py

要連接到我們的ESP8266電路板,請單擊斷開的鏈圖標(biāo)以建立與電路板的連接。一旦建立與電路板的連接,鏈就會從斷鏈變?yōu)檫B接鏈。

連接圖標(biāo)

一次與設(shè)備連接后,我們現(xiàn)在可以下載并運(yùn)行代碼了。在我們這樣做之前,讓我們首先創(chuàng)建一個“main.py”。

要創(chuàng)建一個新文件,請單擊此圖標(biāo):

新文件

#Copy this code below from the blink.py to the new file

#hardware platform: FireBeetle-ESP8266

import time

from machine import Pin

led=Pin(2,Pin.OUT) #create LED object from pin2,Set Pin2 to output

while True:

led.value(1) #turn off

time.sleep(0.5)

led.value(0) #turn on

time.sleep(0.5)

粘貼新代碼后無標(biāo)題文件。轉(zhuǎn)到文件并將其保存到“ main.py ”。

現(xiàn)在我們已準(zhǔn)備好下載并運(yùn)行代碼到ESP8266。要刷新代碼,請單擊“下載并運(yùn)行”按鈕。

下載并運(yùn)行

當(dāng)代碼正確閃爍時,確認(rèn)顯示在shell和main.py文件上,表示下載成功。

MicroPython Shell

在NodeMCU ESP8266板上,你應(yīng)該看到LED每0.5秒閃爍一次。

LED開啟和關(guān)閉0.5s

閃爍的LED指示ESP8266上閃爍的blink.py代碼有效。

恭喜! MicroPython已成功寫入ESP8266?,F(xiàn)在輪到您探索ESP8266項(xiàng)目的所有可能性。

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

    關(guān)注

    13

    文章

    289

    瀏覽量

    21187
  • Micropython
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    4681
收藏 人收藏

    評論

    相關(guān)推薦

    esp32和esp8266代碼共用嗎

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

    esp8266esp32區(qū)別是什么

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

    esp8266不燒錄可以使用嗎

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

    esp8266wifi模塊怎么連接手機(jī)

    ESP8266 WiFi模塊連接手機(jī)主要可以通過兩種方式實(shí)現(xiàn): 通過路由器連接(STA模式)和直接作為熱點(diǎn)連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過路由器連接(STA模式) 配置
    的頭像 發(fā)表于 08-19 17:27 ?696次閱讀

    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 ?617次閱讀
    Arduino Nano 和 <b class='flag-5'>NodeMCU</b> <b class='flag-5'>ESP8266</b> 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    何在UART啟動加載模式下設(shè)置ESP8266?

    我需要能夠使用 UART 通過不同的 MCU 對 ESP8266 進(jìn)行編程。但是,我找不到有關(guān)如何執(zhí)行此操作的任何文檔。有誰知道怎么做?我知道如何在 UART 啟動加載模式下設(shè)置 ESP8266。
    發(fā)表于 07-19 14:25

    ESP8266加載micropython,文件的MD5與閃存中的數(shù)據(jù)不匹配怎么解決?

    ESP8266 加載 micropython,文件的 MD5 與閃存中的數(shù)據(jù)不匹配!
    發(fā)表于 07-19 08:08

    何在ESP8266使用SSDP,并使用RTOS SDK?

    我正在嘗試在 ESP8266 使用 SSDP,并使用 RTOS SDK。
    發(fā)表于 07-18 08:23

    何在ESP8266運(yùn)行OTA升級?

    ESP8266ESP-12F) 運(yùn)行 OTA 升級
    發(fā)表于 07-10 06:13

    求助,請問如何在RTOS SDK 1.5的PlatformIO IDE ESP8266實(shí)現(xiàn)MQTT?

    在這里,我使用的開發(fā)板是 NodeMcu ESP8266 V3 Lua CH340 Wifi 開發(fā)板 Development Environment -> Platform IO
    發(fā)表于 07-08 06:22

    ESP8266網(wǎng)絡(luò)天氣時鐘OLED顯示

    基于ESP8266實(shí)現(xiàn)網(wǎng)絡(luò)獲取天氣和時鐘并OLED顯示
    的頭像 發(fā)表于 06-28 04:46 ?611次閱讀
    <b class='flag-5'>ESP8266</b>網(wǎng)絡(luò)天氣時鐘OLED顯示

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

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

    ESP8266使用MicroPython怎么查看無線信號強(qiáng)度?

    ESP8266使用MicroPython怎么查看無線信號強(qiáng)度
    發(fā)表于 11-10 07:40

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

    esp8266microPython如何簡單的調(diào)用Arduino庫,本人C++不是太熟練,想把ATmega328p的一個LCD屏驅(qū)動移植到esp8266 microPython ,不
    發(fā)表于 10-30 07:42

    nodemcuesp8266是什么關(guān)系?

    nodemcuesp8266是什么關(guān)系 nodemcuesp8266是什么關(guān)系?通俗理解就是nodemcu是一個開發(fā)板,基于
    的頭像 發(fā)表于 10-20 14:53 ?3317次閱讀
    <b class='flag-5'>nodemcu</b>和<b class='flag-5'>esp8266</b>是什么關(guān)系?