Linux下使用Arduino开发esp32

Linux下使用Arduino开发esp32

前言

esp32的开发环境有很多种选择,但配置起来最简单的估计就是使用Arduino IDE,尤其适用于用于学习的新手

Arduino IDE的下载和安装

Arduino IDE被包含在很多包管理器内,因此可以很方便地通过命令行进行安装,也可以去官网下载相应安装包

Ubuntu / Deepin

sudo apt update && sudo apt install arduino

本人已经有一段时间没使用Ubuntu了,印象里apt安装的不是最新版,建议使用snap

sudo snap install arduino

Manjaro / Archlinux

sudo pacman -S arduino

Arduino IDE的配置

Arduino IDE默认没有esp32的开发板,因此需要在软件里点击文件 -> 首选项(或者快捷键Ctrl + ,),点击附加开发版管理器网址,输入

https://dl.espressif.com/dl/package_esp32_index.json

在这里插入图片描述

回到主界面,依次点击工具 -> 开发板 -> 开发板管理器,进入管理器后等待索引下载完成后搜索esp32进行下载即可(过程比较慢,可以科学上网或者自行寻找其他解决方法),中间可能会失败,尤其是网络不好的时候,建议多尝试几次

在这里插入图片描述

安装好后选择相应的板子即可进行开发

其他问题解决

No module named ‘serial’

编译时可能会出现如下报错

Traceback (most recent call last):
  File "/home/xxxxxx/.arduino15/packages/esp32/tools/esptool_py/3.0.0/esptool.py", line 38, in <module>
    import serial
ModuleNotFoundError: No module named 'serial'
exit status 1
为开发板 ESP32 Dev Module 编译时出错。

这是因为没有serial的库导致的,安装好即可

pip install pyserial

没安装pip的可以先输入下面命令进行安装(本人使用manjaro, 其他linux系统自行百度安装)

sudo pacman -S python-pip

下载慢的话可以给pip换源

不存在或开发板没有连接

上传时可能会出现如下报错

serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
选择的串口 serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
 不存在或开发板没有连接

一般来讲,如果连接开发板后arduino界面中,工具 -> 端口选项中多出一个选项,基本可以确定电脑和开发板之间正确连接

本人电脑未连接之前只有/dev/ttyS4,连接后多了/dev/ttyUSB0

也可以通过如下命令检查电脑是否与开发版连接,命令中的ttyUSB0即为我多出来的端口选项

sudo dmesg | grep ttyUSB0

输出如下

[  995.534024] usb 1-1: cp210x converter now attached to ttyUSB0
[ 8577.290222] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[11669.557983] usb 1-1: cp210x converter now attached to ttyUSB0
[11669.655877] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[11670.130831] usb 1-1: cp210x converter now attached to ttyUSB0

可以看到,输出显示我的开发板已经跟我电脑连接上了,如果没连接上的话,检查电脑驱动是否有问题

如果已经连接且端口选择正确,但仍提示不存在开发板或没有连接,这种情况下很有可能是端口没有读写权限

Ubuntu在打开软件时会自动检测并提醒,但是arch或者manjaro不会,其他linux发行版我也没试过

在多数linux发行版中,可以输入下面命令

sudo usermod -a -G dialout $USER

在Archlinux中,可以输入下面命令

sudo usermod -a -G uucp $USER

然后重启电脑

在这里插入图片描述

详见https://docs.espressif.com/projects/esp-idf/zh_CN/v4.3.4/esp32/get-started/establish-serial-connection.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值