第1步:什么是MicroPython?
MicorPython是我們可以用來(lái)編程ESP8266的眾多編程語(yǔ)言之一模塊。它是Python 3編程語(yǔ)言的精簡(jiǎn)版和快速版,與傳統(tǒng)的編程語(yǔ)言(如C和C ++)相比具有幾個(gè)優(yōu)勢(shì)。
MicroPython旨在盡可能地與普通Python兼容。它具有完整的Python編譯器和運(yùn)行時(shí),并提供稱為REPL(讀取 - 評(píng)估 - 打印循環(huán))的交互式提示。
MicorPython旨在支持幾種不同類型的微控制器。但是對(duì)于本教程,我將只使用一種模型:基于ESP8266的板(NodeMCU)。請(qǐng)注意,您可以使用相同的芯片購(gòu)買幾種不同的電路板。
第2步:要求
為了能夠?qū)W習(xí)本教程,您只需具備Python的基本編碼經(jīng)驗(yàn)。您不需要具備任何以前的微控制器知識(shí)。 ,電子產(chǎn)品,甚至是MicroPython。
您還需要一臺(tái)帶有免費(fèi)USB端口的Windows,Mac或Linux計(jì)算機(jī),因?yàn)槟鷮⑽⒖刂破鬟B接到計(jì)算機(jī)進(jìn)行編程。
所需部件:
1 x NodeMCU(或其他基于ESP8266的板)
1 x紅色5mm LED
1x220Ω1/4W電阻
1x10KΩ旋轉(zhuǎn)電位器
1 x面包板
1 x USB到MicroUSB電纜
跳線。
步驟3:為什么ESP8266基板?
通過(guò)使用MicroPython,您可以充分利用ESP8266的一種方法。此外,ESP8266模塊是學(xué)習(xí)如何使用MicroPython的最佳平臺(tái)之一。這是因?yàn)镋SP8266提供簡(jiǎn)單的GPIO引腳控制功能以及無(wú)線功能,允許您測(cè)試MicroPython編程語(yǔ)言的所有方面。
ESP8266芯片在開(kāi)源開(kāi)發(fā)行業(yè)很受歡迎。有許多來(lái)自不同制造商的開(kāi)發(fā)板使用ESP8266芯片。 MicroPython旨在提供可在大多數(shù)這些主板上運(yùn)行的通用端口,并盡可能減少限制。該端口基于Adafruit Feather HUZZAH板使用其他ESP8266板時(shí),請(qǐng)務(wù)必檢查其原理圖和數(shù)據(jù)表,以便確定它們與Adafruit Feather HUZZAH板之間的差異。這樣,您就可以適應(yīng)代碼中的差異。
閱讀和資源:
ESP8266
Adafruit Feather HUZZAH
步驟4:設(shè)置計(jì)算機(jī)
在使用MicroPython對(duì)ESP8266板進(jìn)行編程之前,您需要設(shè)置幾件事。
我們將在此步驟中完成設(shè)置過(guò)程。通過(guò)這種方式,您將了解如何配置與MicroPython一起使用的ESP8266板。
準(zhǔn)備好
從此步驟到步驟6所需的一切是你的ESP8266和USB線。將ESP8266板連接到計(jì)算機(jī)。
如何操作。..。..
第1步:安裝設(shè)備驅(qū)動(dòng)程序
如果你有一臺(tái)Linux計(jì)算機(jī),那么你不需要為驅(qū)動(dòng)程序安裝任何設(shè)備驅(qū)動(dòng)程序以便識(shí)別微控制器。但是你有Mac或Windows機(jī)器,需要一個(gè)驅(qū)動(dòng)程序來(lái)允許計(jì)算機(jī)將微控制器識(shí)別為串行設(shè)備。
《第2步:安裝Python
您將用于與ESP8266通信的工具是用Python編寫(xiě)的,因此您需要在計(jì)算機(jī)上安裝Python。
如果您的操作系統(tǒng)沒(méi)有提供預(yù)先打包的Python,您可以訪問(wèn)https://python.org下載任何支持的操作系統(tǒng)的官方版本。
STEP3:安裝esptool和rshell
安裝兩個(gè)軟件包,幫助您使用pip管理電路板。要打開(kāi)終端并運(yùn)行
pip install esptool rshell
STEP4 :下載MicroPython
當(dāng)我寫(xiě)這篇文章時(shí),當(dāng)前版本是1.11,固件文件名為esp8266-20190529-v1.11.bin
當(dāng)你這樣做時(shí),你可能會(huì)發(fā)現(xiàn)一個(gè)更新版本。
步驟5:使用Esptool.py閃爍MicroPython
在將新固件刷入電路板之前,最好先擦除以前的所有數(shù)據(jù)。這是您應(yīng)該始終做的事情,以便新固件從干凈的狀態(tài)運(yùn)行。
轉(zhuǎn)到放置 .bin 文件的位置。使用esptool.py擦除閃存。
對(duì)于Linux:
esptool.py --port /dev/ttyUSB0 erase_flash
對(duì)于Windows:
esptool.py --port COM3 erase_flash
您可能需要將命令中的串行端口更改為ESP8266板連接的串行端口。如果您不知道ESP8266的串口號(hào),可以查看Arduino IDE。只需打開(kāi)IDE,然后單擊工具|端口。你應(yīng)該看到那里列出的ESP8266板的串口。將命令(/dev/ttyUSB0)中的串口替換為電路板的串口。
現(xiàn)在電路板已完全擦除,您可以刷新剛剛下載的MicroPython構(gòu)建。這也是使用esptool.py命令完成:
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0 esp8266-20190529-v1.11.bin
此命令將把MicroPython .bin文件的內(nèi)容寫(xiě)入地址為0的電路板。
確保您將命令(esp82688-2019-080529-v1.11.bin)中固件.bin文件的名稱更改為您下載的固件的名稱。
在ESP8266上成功安裝固件后您可以通過(guò)有線連接(UART串口)或思想WiFi訪問(wèn)主板上的REPL。
步驟6:使用帶有Rshell的MicroPython REPL
您現(xiàn)在可以在ESP8266主板上啟動(dòng)MicroPython。
我將向您展示如何連接到Python提示在你的主板上運(yùn)行。這稱為REPL,代表“Read-Eval-Print-Loop”。這是您在使用常規(guī)Python解釋器時(shí)可能會(huì)看到的標(biāo)準(zhǔn)Python提示,但這次它將在您的主板上運(yùn)行,并與它進(jìn)行交互,您將使用與計(jì)算機(jī)的串行連接。準(zhǔn)備好了?
要連接到您的主板并打開(kāi)REPL會(huì)話,請(qǐng)輸入以下命令:
rshell --port
此命令將帶您進(jìn)入rshell提示符。請(qǐng)參閱上面的照片。
如果您在Windows上關(guān)注本教程,請(qǐng)注意rshell在Windows上運(yùn)行時(shí)有問(wèn)題的歷史記錄。
因此,為了修復(fù)該類型:
rshell -a --port COM3
在此提示符下,您可以執(zhí)行與您的微控制器板相關(guān)的管理任務(wù),還可以啟動(dòng)一個(gè)Python REPL,您可以使用它實(shí)時(shí)與電路板進(jìn)行交互。所以只需輸入以下命令:
repl
要確保一切正常,請(qǐng)鍵入一個(gè)簡(jiǎn)單的Python句子:
print(“Hello World”)
步驟7:控制引腳使用MicroPython
在這一步中,我們將學(xué)習(xí)如何使用MicroPython控制ESP8266引腳。為此,我們將設(shè)置一個(gè)設(shè)置,我們將切換連接到ESP8266板GPIO引腳的LED的狀態(tài)。這將幫助您了解如何使用MicoPython控制數(shù)字輸出。
準(zhǔn)備好
您將需要以下內(nèi)容來(lái)完成此步驟:
1 x NodeMCU
1 x紅色5mm LED
1 x220Ω電阻器
1 x面包板
跳線
構(gòu)建
首先將LED安裝到面包板上。將220Ω電阻的一端連接到LED的正極(LED的正極通常是兩條腿中較高的一條)。將電阻的另一端連接到ESP8266板的引腳D1。然后將LED的負(fù)極連接到ESP8266板的GND引腳。連接如上圖所示。
設(shè)置完成后,通過(guò)USB電纜將ESP8266板連接到計(jì)算機(jī)。
如何操作。 。.
在REPL中鍵入以下代碼:
# blink LED every 1 second
def blink(pin=5, time=1) # blink function by default pin=5, time=1s
import machine # the machine module holds the pin configurations and modes
from time import sleep # import sleep for some delay
LED = machine.Pin(led_pin, machine.PIN.OUT) # configure LED as OUTPUT
while True: # run forever
LED.value(1) # set LED to HIGH
sleep(time) # wait 1 second by default
LED.value(0) # set LED to LOW
sleep(time) # wait 1 second by default
在RPEL會(huì)話中鍵入blink()以測(cè)試此代碼。這將閃爍LED每隔1秒連接到GPIO5。
您可以通過(guò)調(diào)用以下命令更改引腳和/或時(shí)間:
blink(pin=, time=)
按ctrl + c退出運(yùn)行代碼。
您可以使用MicroPython讀取連接到ESP8266的輸入。繼續(xù)下一步,了解如何操作。
檢查視頻是否卡住了。
步驟8:淡化LED
在此步驟中,我們將學(xué)習(xí)如何使用旋轉(zhuǎn)電位計(jì)調(diào)節(jié)LED的亮度。我們將使用一種稱為脈沖寬度調(diào)制(PWM)的技術(shù),它允許我們使用最多256個(gè)設(shè)置調(diào)暗LED。
注意:除了GPIO16外,ESP8266的所有引腳都可以用作PWM引腳( D0)。
做好準(zhǔn)備:
您需要完成以下步驟:
1 x NodeMCU
1 x紅色5mm LED
1 x50KΩ旋轉(zhuǎn)電位計(jì)。
1 x面包板
跳線
構(gòu)建
連接如上圖所示圖:設(shè)置完成后,通過(guò)USB電纜將ESP8266板連接到計(jì)算機(jī)。
如何操作。..
鍵入跟隨REPL中的代碼:
# Fading LED every 0.5 by reading data from the Potentiometer
import machine
from time import sleep
led_pin = 5 # led pin
POT = machine.ADC(0) # ADC0 pin
LED = machine.Pin(led_pin) # create LED object
LED_pwm = machine.PWM(LED, freq=500) # create LED_pwm object and set frequency to 500Hz
while True:
LED_pwm.duty(POT.read()) # get the value from the Pot and set it to the duty cycle
sleep(0.5) # wait 0.5
這將通過(guò)更改電位計(jì)的值來(lái)改變連接到GPIO 5的LED的亮度。
按ctrl + c退出正在運(yùn)行的代碼。
檢查視頻是否卡住。
步驟9:從何處開(kāi)始?
到目前為止,我們已經(jīng)了解了如何在基于ESP8266的主板上配置和運(yùn)行MicroPython。我們學(xué)會(huì)了如何控制引腳使LED閃爍,然后我們添加了一個(gè)電位器,以便使用脈沖寬度調(diào)制技術(shù)控制LED的亮度。
現(xiàn)在我們可以從傳感器讀取數(shù)據(jù)并將其發(fā)送到云端,我們還可以創(chuàng)建一個(gè)HTTP服務(wù)器,您可以在一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)中打印我們的數(shù)據(jù)等。..
這讓我們了解物聯(lián)網(wǎng)(IoT)。
-
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45407 -
Micropython
+關(guān)注
關(guān)注
0文章
68瀏覽量
4815
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ESP8266 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制
![<b class='flag-5'>ESP8266</b> 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程<b class='flag-5'>控制</b>](https://file1.elecfans.com/web2/M00/08/AB/wKgaombykEOAJs4pAALJ0N47550043.png)
arduino(1)--ESP8266配置
esp32和esp8266代碼共用嗎
esp8266和esp32區(qū)別是什么
esp8266不燒錄可以使用嗎
esp8266wifi模塊怎么連接手機(jī)
機(jī)智云ESP8266開(kāi)發(fā)板RGB彩燈控件
![機(jī)智云<b class='flag-5'>ESP8266</b>開(kāi)發(fā)<b class='flag-5'>板</b>RGB彩燈控件](https://file.elecfans.com/web2/M00/40/03/pYYBAGJrSWqAb-nSAAAXmKtCFeo833.jpg)
ESP8266上加載micropython,文件的MD5與閃存中的數(shù)據(jù)不匹配怎么解決?
EspTouch for IOS V3.0為什么配置不了ESP8266?
求助,eclipse配置好esp32后怎么配置esp8266?
國(guó)產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片ESP8266與ESP8285對(duì)比差異
![國(guó)產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對(duì)比差異](https://file1.elecfans.com/web2/M00/E6/5C/wKgZomZG0KiASP_yAAELgTM0cRs433.png)
使用Wi-Fi ESP8266方案模組接入云平臺(tái)
![使用Wi-Fi <b class='flag-5'>ESP8266</b>方案模組接入云平臺(tái)](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
評(píng)論