首页 > 评测 > 快捷开发 任性连接 :ESP32 Thing开发板评测

快捷开发 任性连接 :ESP32 Thing开发板评测

  • 作者:zhanzr21
  • 来源:21ic
  • [导读]
  • ESP32 Thing是SparkFun推出的一款针对物联网无线应用的开发板,它的体积较小,具备WiFi与蓝牙的双重连接方式,并且可以通过Arduino IDE来开发。

此处注意当有USB电源与电池双电源的时候,Q1管子的Gate极被拉高,而导致DS截止.这样只使用USB进行供电.当没有USB连接,Gate极被R7拉低而使得DS导通,这样电池电压通过Q1与VIN连接.这是一种典型的低成本USB/电池电源设计, 当然如果有稍稍智能一点的电源管理芯片则不必如此费事.

12.png

 

图 充电部分原理图

此处使用充电片MCP73831的PROG脚的下拉电阻来设置充电电流: I = 1000/Rprog. 板子上原来使用2K电阻,则充电电流为500mA.这个电流对大多数主板来讲应该还是嫌高了一些.故此本人把这里改成了2.55K的电阻.

另外提一句, 如果大家想自己制作这个板子的话.电源部分的LDO与充电片MCP73831都有很多国产的替代型号. 比如LDO使用RT9193或者ME6211系列替代, MCP73831的话,国产的TP4054,FM4054替代型号也非常多. 这里说的替代都是管脚兼容的.

2.3 串口下载部分

13.png

 

图 串口下载逻辑

这里使用串口的DTR与RTS两个信号比较聪明地做了个自动下载的逻辑. 具体这样的: 如果DTR为低,RTS的下降沿将SOC切换到运行状态.如果RTS为高,DTR的上升沿将SOC切换到bootloader状态.这个逻辑在Arduino类的使用串口下载的板子设计中用得很广泛.

3.开发环境建立与第一个程序-Arduino方式

准备工作(篇幅原因只写Windows环境,Mac,Linux的请参考后面的连接):

1. 安装好标准的Arduino IDE, 作者使用1.8.1

2. 找到扩展包的路径,如果没有改过就应该在这个路径: C:/Users/[YOUR_USER_NAME]/Documents/Arduino/. 作者电脑上是这个路径: D:\Documents\Arduino. 打开一个命令行窗口,运行下面命令创建目录:

mkdir hardware

cd hardware

mkdir espressif

cd espressif

3. 安装好git工具,作者使用cygwin环境的git命令, 其他版本应该都差不多.

3.1 下载扩展包

用这个git路径下载:

git clone https://github.com/espressif/arduino-esp32.git esp32

14.png

 

图 下载扩展包

3.2 下载SDK

下载好扩展包后, 用扩展包中的一个集成工具来下载SDK.

15.png

 

图 下载SDK

这两个步骤下载都非常快.

3.3 设置Arduino IDE

现在就可以使用Arduino IDE来开发程序了.插入ESP32 Thing开发板, 刚开始会有一个安装驱动的过程. 成功后, 设备与打印机中显示一个FTDI虚拟串口.

16.png

 

图 开发板子驱动安装成功

右键点这个串口可以查看其串口号,后面下载程序要用,作者电脑上是COM6.

打开Arduino IDE,选板子:

17.png

 

图 选择ESP32 Thing开发板子

再选择下载串口, 就是上面说的那个串口号:

18.png

 

图 选择下载串口

到这一步就可以写代码了.

根据使用经验,下载程序有时不成功(超时). 这时需要按下用户按钮再试一次.

下载的波特率最高可以设置为921600, 但是经过试验115200下载成功率最高.

这是官方的说明:

## Hint

Sometimes to program ESP32 via serial you must keep GPIO0 LOW during the programming process

3.4 第一个程序:闪灯与串口

开发板子上的默认LED连接在Pin5上,类似于Uno板子上面的Pin13上的LED. 这个程序驱动LED闪烁并且定时发送串口字符串.

建立一个Sketch,输入如下代码:

int ledPin = 5;

void setup()

{

pinMode(ledPin, OUTPUT);

Serial.begin(115200);

}

void loop()

{

Serial.println("Hello, My first ESP32 Thing program!");

Serial.println(__DATE__" "__TIME__);

digitalWrite(ledPin, HIGH);

delay(800);

digitalWrite(ledPin, LOW);

delay(800);

}

下载成功打开串口窗口:

19.png

 

图 第一个程序输出

  • 本文系21ic原创,未经许可禁止转载!

网友评论