本帖最后由 风之山谷 于 2018-1-20 14:53 编辑
Python是一个简洁快捷的语言,风靡于全球,其功能强大好用;而为微处理器优化的Micropython语言吸取了精华,对微处理器进行了优化。它是一种解释性语言,只需要解释器。ESP32刚好是支持Micropython语言的,可以安装来尝试一下。
1.下载Micropython的ESP32 bin固件。地址为: https://micropython.org/download#esp32
2.使用之前介绍的下载器ESP FLASH TOOL来下载到ESP32-DevkitC上面。打开软件之后选择ESP32。在SPIDownload窗口中,点击… 选择刚下载的Micropython bin固件,把前面的复选框勾上,@后面的框中输入偏移值,为0x1000。选择晶振频率、SPI速度、SPI模式和Flash大小,可参考如图。最后选择ESP32-DevkitC板连接的COM口和波特率。点击START按键开始下载。
3.完成之后重新上电,打开串口调试工具,如下图则成功。
4.有关ESP32 MicroPython的Doc的ESP32版本官网好像没有更新,但是可以有ESP8266版本的,因为两者都是相同架构,只是一些细微地方可能有些不同,可以在http://docs.micropython.org/en/latest/esp8266/参考。
5.尝试用MicroPython来实现LED灯吧~ MicroPython只是一个解释性语言,烧录进去的固件只是解释我们的语言,然后执行操作。如果要输入MicroPython语句的话,一般需要一条条地输入。 为了方便输入,我这里并不打算使用串口助手,这里推荐使用SecureCRT,这是一个非常好用的串口文本输入工具,使用方法也很简单,只需要配置好波特率和端口,点击连接即可,使用感觉跟使用Linux Shell差不多。
重启动板子之后,逐条输入以下语句,当然输入完一行记得回车- from machine import Pin
- p5 = Pin(5, Pin.OUT) #将GPIO5设为输出模式
- p5.value(1) # 高电平
复制代码看看P5的管脚LED是不是亮了。然后再接着输入以下语句。 P5管脚的LED是不是灭了。
是不是感觉MicroPython特别简单,使用起来就想在用电脑编程~
接着玩一些复杂点的,写一个1S循环亮灭灯程序。
1s循环闪灯程序: - from machine import Pin
- import time
- p5 = Pin(5, Pin.OUT) #将GPIO5设为输出模式
- state = 1
- for i in range(0,10):
- p5.value(state) #高电平
- state = 1 – state
- time.sleep(1) #延迟1s
复制代码注意在输入了for之后,它自动空了一个TAB键,在留空TAB键内输入的就是for语句执行的循环部分。效果是LED 1s亮,1s灭,这只是加了一个for循环语句就可以实现了。
6.MicroPython内置了对DHT11支持的库,十分方便。刚好手头上有一个,把DHT11的DATA接到GPIO4引脚。
在SecureCRT中可以支持TXT文件输入,这样就不用一句一句地输入了,可以写好了再输入到ESP32-DevkitC板上。
7.这是DHT11读取温度的MicroPython语句,代码如下:- import dht #导入dht库
- from machine import Pin #从machine库中导入Pin
- d = dht.DHT11(Pin(4)) #创建一个DHT11实例,其中信号引脚为4号引脚
- d.measure() #开始测量
- d.temperature() #读取温度
复制代码 把上面代码保存成txt文件或者py文件
8.然后在SecureCRT中点击Transfer -> Send ASCLL...,
9.选择刚才保存代码的文件,这里例子为DHT.py,点击Send即可
10.输入之后的效果,输出了17字样,这个就是读取DHT11得出的温度了~
11.接下来用MicroPython连接上wifi,输入以下代码:、- import network
- sta_if = network.WLAN(network.STA_IF)
- sta_if.active(Ture) #打开wifi
- sta_if.scan() #搜索wifi,下面会列出搜到的wifi
- sta_if.connect("Name","Password") #这里填入wifi SSID和密码,取代语句中的那两个英文单词
- sta_if.isconnected() #检查是否连上
复制代码
|