回答

收藏

[原创] 11.ESP32-DevkitC教程之下载MicroPython&试玩

乐鑫ESP32 乐鑫ESP32 7870 人阅读 | 0 人回复 | 2018-01-20

本帖最后由 风之山谷 于 2018-1-20 14:53 编辑

Python是一个简洁快捷的语言,风靡于全球,其功能强大好用;而为微处理器优化的Micropython语言吸取了精华,对微处理器进行了优化。它是一种解释性语言,只需要解释器。ESP32刚好是支持Micropython语言的,可以安装来尝试一下。

1.下载MicropythonESP32 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 MicroPythonDoc的ESP32版本官网好像没有更新,但是可以有ESP8266版本的,因为两者都是相同架构,只是一些细微地方可能有些不同,可以在http://docs.micropython.org/en/latest/esp8266/参考。

5.尝试用MicroPython来实现LED灯吧~
MicroPython只是一个解释性语言,烧录进去的固件只是解释我们的语言,然后执行操作。如果要输入MicroPython语句的话,一般需要一条条地输入。
为了方便输入,我这里并不打算使用串口助手,这里推荐使用SecureCRT,这是一个非常好用的串口文本输入工具,使用方法也很简单,只需要配置好波特率和端口,点击连接即可,使用感觉跟使用Linux Shell差不多。

重启动板子之后,逐条输入以下语句,当然输入完一行记得回车
  1. from machine import Pin
  2. p5 = Pin(5, Pin.OUT) #将GPIO5设为输出模式
  3. p5.value(1) # 高电平
复制代码
看看P5的管脚LED是不是亮了。然后再接着输入以下语句。
  1. p5.value(0) # 低电平
复制代码
P5管脚的LED是不是灭了。
是不是感觉MicroPython特别简单,使用起来就想在用电脑编程~
接着玩一些复杂点的,写一个1S循环亮灭灯程序。

1s循环闪灯程序:
  1. from machine import Pin
  2. import time
  3. p5 = Pin(5, Pin.OUT) #将GPIO5设为输出模式
  4. state = 1
  5. for i in range(0,10):
  6.   p5.value(state) #高电平
  7.   state = 1 – state
  8.   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语句,代码如下:
  1. import dht  #导入dht库
  2. from machine import Pin #从machine库中导入Pin
  3. d = dht.DHT11(Pin(4)) #创建一个DHT11实例,其中信号引脚为4号引脚
  4. d.measure() #开始测量
  5. d.temperature() #读取温度
复制代码
把上面代码保存成txt文件或者py文件


8.然后在SecureCRT中点击Transfer -> Send ASCLL...,


9.选择刚才保存代码的文件,这里例子为DHT.py,点击Send即可


10.输入之后的效果,输出了17字样,这个就是读取DHT11得出的温度了~


11.接下来用MicroPython连接上wifi,输入以下代码:、
  1. import network
  2. sta_if = network.WLAN(network.STA_IF)
  3. sta_if.active(Ture)   #打开wifi
  4. sta_if.scan()  #搜索wifi,下面会列出搜到的wifi
  5. sta_if.connect("Name","Password")   #这里填入wifi SSID和密码,取代语句中的那两个英文单词
  6. sta_if.isconnected()   #检查是否连上
复制代码





DHT.txt

184 Bytes, 下载次数: 5

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条