在百忙之中抽出时间给大家写一个 ESP32的烧录固件的方法,我先给大家看看我购买的 ESP32模块长啥样子:
价格有点儿小贵, 但是听一个老外说不错,我就被老外忽悠下了海, 买回来后发现的确很精致.
网上还有很多,你们自己看着买.
这些都可以满足你的需求,就是要看看是否他们把所有引脚都引出来了.
这个板子的特点是:
1. 支持 wifi 和蓝牙
2. 240Mhz 双核 520KB SRAM 如果你选择的是 WROOM 可能没有 WROVER 屌, 但是都可以用.
3. 超级低功耗, Ultra LOW POWER CONSUMPTION 不是哪个厂家都敢挂的.哈哈
4. ADC, DAC, 加密, PWM, TOUCH 一应俱全, 估计可以满足你装 X 的所有需要吧.
更让我觉得很爽的是, micropython 直接可以支持它...那就舒服很多了, Arduino IDE? 你给我坐下, 复杂? 不存在的,喜欢的朋友来刷一波关注.
看看大蟒蛇, 就感觉一阵舒爽~来吧.
接驳方法super 简单,只需要一根 usb 转 microUSB 线就可以搞定了,插入树莓派就可以识别了.
然后树莓派去官方站点下载最新的镜像,通过 win32imager 工具或者 etcher 工具烧录到 TF 卡上,插入树莓派 TF 卡槽,然后记得用一个5v2.5A 足量的电源供电,第一启动最好接个显示器,如果没有显示器就接家里的电视机, 通过 HDMI 线连上去,再找一个键盘和鼠标,插 usb 口上,启动后,连接 wifi. 当然得先设置一下 wifi 国家,通过打开一个终端,然后输入:
sudo apt-get update && sudo apt-get upgrade
这里更新仓库和软件包升级的时间可能会根据网络的环境不同时间有所不同,这个时候你就可以去泡杯咖啡,调戏一下前台的小姐姐.
然后回来继续:
sudo raspi-config
然后再跳出来的画面里面选择:
然后选择 wifi
然后就点击 wifi 图标去连接你的 wifi 吧,这里我就不想写用命令行连接 wifi 的方法了,虽然也是非常简单,如果有想知道的,给我评论的时候写出来哦.
再然后,记得开启 ssh 服务,不然远程连不上来操作非常不方便,我习惯了直接开 ssh 连接, 通过我 Mac 直接 ssh Pi@IP 地址 就可以访问树莓派是最方便的.
就是选择 interfacing OpTIons 然后选择 ssh 服务开启就好了.这里不再赘述了.
设置好,就可以通过 pi 用户远程登录到树莓派了.接下来,是我在 mac 上的操作,如果你是用 windows, 那么请去找个 putty.exe 的软件,或者 rshell, 或者 xshell, 或者 SecureCRT,只要是支持 ssh 协议的终端工具都行.
-----------------------------------------------------------------------这是我华丽的分割线---------------------------------------------------------------------------------
下面的操作是我通过 ssh 远程登录到树莓派以后在树莓派上完成的操作.
安装完 esptool 就完成了一大半了,这个是为了方便我们烧录的工具, esptool 一看名字你就应该猜出了个大概.
然后接着接好了 esp32的模块后,通过下面的命令检测一下是否识别了你的模块.
dmesg | grep ttyUSB
如果看到如下内容就说明 ok 的.
竟然用是 CP210x 的串口芯片...这个比起 FTDI真的是差了很远,不过看上去是识别出来了,可以用就好.哈哈
EPS32模块被识别到/dev/ttyUSB0设备.
接下来可以尝试检查一下你的 ESP32的设备信息.
通过使用:
esptool.py --port /dev/ttyUSB0 flash_id
看看效果是这样的:
好吧,啥信息都给你们看到了. mac地址,芯片ID, 还检测到4MB flash, 恩,不错,最后提示硬件重置要按下 RTS 引脚.也就是要下载程序的时候要按一下 boot 按键, 是不是 so easy?
接下来,我要刷一下flash, 就是类似格式化一下硬盘.哈哈
esptool.py --port /dev/ttyUSB0 erase_flash
然后看到这样的效果:
接下来就去 micropython.org 下载最新的固件呗...
选择 Download, 然后再找esp32...
接下来可以看看你是否支持 SPIRAM, 如果支持选择下面的固件,如果不支持选择标准固件.我不在我电脑上下载,所以我只是右击复制了连接,然后到树莓派的终端上用 wget 直接下载就好,我尝试的是支持 SPIRAM 固件的版本发现刷了固件后,无法进入 REPL 的环境,所以我又刷了标准的固件.
连接如下:http://micropython.org/resources/firmware/esp32-20180628-v1.9.4-225-gd8dc918d.bin利用 wget 下载到树莓派上,然后再 erase_flash 后在 write_flash, 不知道我这样说你们能否看懂,看不懂就自己尝试一下.
接下来就是直接烧录到你的 ESP32上去.
耐心等待1分钟左右, 可以看到我高亮标注的内容,自动检测到 flash 就好了.
再接下来就要进入一个 Read-Eval-Print-Loop 里面了,在 micropython 里面这个叫 repl, 一旦进去了就像是进入了一个 python 的 IDLEshell 环境, 交互式输入输出的状态.就像你在你的机器上输入 python 回车后进入的环境一样.
网上有个叫 webREPL 的东西,可以让你访问的时候通过网页进入到编辑器里面,我觉得要如果有点儿逼格,必须直接命令行执行啊!就可以用 putty 或者 linux 下面的 screen 命令进入,或者也可以使用 rshell 工具.
我是树莓派上操作,所以直接安装 rshell 比较方便,应为它可以让我在树莓派上直接管理 esp32的文件系统,例如上传下载啥的,比较方便:安装直接:
sudo pip3 install rshell
接下来让我们连一下 esp32吧,命令很简单哦:
rshell --buffer-size=40 -p /dev/ttyUSB0
看看效果:
然后可以输入 boards, help 等命令来查看接驳的状态,和启动文件/boot.py
1. boards 看到连接的板子, 以及目录中的 boot.py 文件
2. help 可以查看在这里能够使用的命令.
3. boot.py 就是esp32启动时候读取的配置,可以把你想加入的加入这里,但是要加错了就凉凉了..
4. 输入 repl 就可以进入 python 的 IDLE 的 loop 里面...就无法退出了.哈哈~
然后就是通过 ESP32去点灯了,花式点 ws2812以后有机会再给大家呈现吧~