ESP8266-NodeMCU-Lua-V3 MicroPython固件烧写及与1.44''-ST7735-128x128-TFT屏连接
30 Dec 2021
Reading time ~1 minute
材料清单
名称 | 型号 | 尺寸 |
---|---|---|
ESP8266 | NodeMCU Lua V3 | - |
TFT屏 | MAR1441 | 1.44” |
Micropython固件的刷入
访问MicroPython 官方网站,点击MCU版本为esp8266的链接,选择相应flash闪存的版本,最后下载对应固件;下载完成后刷入固件,具体方法见官方文档説明。
下载命令行烧写工具(桌面版烧录工具 ESP8266 DownloadTool请参考其他教程)
pip install esptool
将ESP8266通过USB数据线连接电脑,进入电脑设备管理器,点击“端口”,找到ESP8266所在端口(一般为COM3或COM4)。
转到固件下载后位置,右键“在Windows终端中打开”,进入固件所在文件夹目录,通过如下命令依次完成原有flash闪存擦除及MicroPython固件的刷入。
esptool.py --port COM4 erase_flash
esptool.py --port COM4 --baud 115200 write_flash --flash_size=detect 0 esp8266-20210902-v1.17.bin
注意:COM4需要改为开发板连接电脑后的实际端口号
利用Putty通过串口连接开发板
打开Putty,选择Serial,Serial line填入开发板端口号,Speed=115200;点击Putty——Category界面左下角的Serial选项;
- Serial line to connect to: 端口号
- Speed(baud): 115200
- Data bits: 默认为8
- Stop bits: 默认为1
- Parity: None
- Flow control: None
设置完成后,点击右下角“Open”,进入MicroPython命令行。
ESP8266连接无线网
import network
wlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(True) # activate the interface
wlan.scan() # scan for access points
wlan.isconnected() # check if the station is connected to an AP
wlan.connect('essid', 'password') # connect to an AP
wlan.config('mac') # get the interface's MAC address
wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses
详细代码参照 ESP8266快速指引。
ESP8266配置webrepl客户端并连接
import webrepl_setup
按照提示,输入密码并选择开机自启。打开 https://micropython.org/webrepl 并将ESP8266 IP地址修改为试验机IP,点击connect,输入密码后进入micropython命令行,即可上传和下载脚本文件。
st7735——TFT屏与ESP8266连接方式
TFT屏 | 连接 | ESP8266 | 对应ESP8266引脚 | 对应引脚值 |
---|---|---|---|---|
VCC (电源正) | $\longrightarrow$ | 3V | - | - |
GND (电源地) | $\longrightarrow$ | G | - | - |
GND | $\longrightarrow$ | - | - | - |
NC(无定义) | $\longrightarrow$ | - | - | - |
NC(无定义) | $\longrightarrow$ | - | - | - |
LED(背光控制输入) | $\longrightarrow$ | 3V | - | - |
CLK(SPI时钟输入) | $\longrightarrow$ | D5 | GPIO14 | 14 |
SDI(SPI数据输入) | $\longrightarrow$ | D7 | GPIO13 | 13 |
RS | $\longrightarrow$ | D4 | GPIO2 | 2 |
RST(屏的复位) | $\longrightarrow$ | D2 | GPIO4 | 4 |
CS(SPI片选输入) | $\longrightarrow$ | D8 | GPIO15 | 15 |
st7735——TFT屏 MicroPython驱动模块
st7735 TFT屏的驱动模块为MicroPython编写,具体参考: st7735-esp8266-micropython。 将驱动脚本文件通过webrepl客户端上传至开发板,随后才可实现导入模块并调用相关函数。
from st7735 import TFT, TFTColor
from sysfont import sysfont
from machine import SPI,Pin
#hardware SPI, HSPI
dc=2
rst=4
cs=15
spi = SPI(1, baudrate=8000000, polarity=0, phase=0)
tft=TFT(spi,dc,rst,cs)
tft.init_7735(tft.GREENTAB128x128)
tft.rotation(3)
tft.fill(TFT.BLACK)
注意: dc=2,rst=4,cs=15是通过连接ESP8266的引脚值得出,且为st7735模块所需参数,具体代码详st7735-esp8266-micropython文档。
st7735——TFT屏 MicroPython显示图片
st7735-esp8266-micropython源代码已给出相应参考代码,支持的图片格式为BMP,其他格式需要先转换BMP格式;对于128x128屏来説,修改后的BMP图片尺寸不宜超过128x160,但也勿将BMP图片尺寸保持为128x128(经试验,该尺寸无法显示),最佳BMP图片尺寸为128x120~128x130;
最终成果
若要 ESP8266 开机通电即可运行某程序,需将程序保存在 main.py 中并通过webrepl上传到开发板,重启后即可实现自启动运行。
关注公众号“Guitarliu”,并回复“st7735屏驱动”获取main.py文件。