Rust开发ESP32S3物联网应用(一)-- 环境搭建(STD)

B站影视 港台电影 2025-10-14 11:26 1

摘要:开发板,我们使用易芯联的YC-AIS(https://item.taobao.com/item.htm?id=925144665908&skuId=5803566756266),带个LCD屏、扬声器、麦克、按键,还有3个扩展口,基本上各种应用都可以用了,尤其带

今天正式开始Rust嵌入式开发物联网平台的系列,从零构建一个包括嵌入式、云平台、手机APP的一体化平台,实践一下rust的全栈开发。

我们基于ESP32S3芯片来开发,因为它既全面,性能又强悍,是一款全能的SoC:

主频最高240MHz支持WiFi,连接云平台支持蓝牙,连接手机16M的Flash,无需片外扩展可以干很多事儿支持I2S,我们可以实现多媒体应用

开发板,我们使用易芯联的YC-AIS(https://item.taobao.com/item.htm?id=925144665908&skuId=5803566756266),带个LCD屏、扬声器、麦克、按键,还有3个扩展口,基本上各种应用都可以用了,尤其带一个RS-485的串口,这样就可以扩展接很多传感器之类的,后面的可玩性比较强。

首先要搭下环境,ESP32S3的SDK其实是C语言的,带一个FreeRTOS操作系统,支持no_std和std两种开发方式,使用STD的开发方式就可以使用线程、异步,跟在PC上开发一样,就比较方便,尤其是在开发多媒体和处理网络的时候,异步编程比较方便,我们这里全用std模式,基本在std模式下也完全可以使用no_std模式下的所有API。因为16M的Flash也不用考虑尺寸问题。

ESP32的Rust开发环境要在Linux类系统下,Windows下支持不好,当然也可以用Windows的WSL,但不建议,会有两个大坑:

一是路径问题,由于ESP-IDF的各种包含,路径会比较长,超过了Windows上支持的路径长度极限,工程目录只能放在某个盘的根目录,而且目录名的长度不能超过10个字符,这样很不实用,不好组织工程;

二是驱动问题:有些驱动安装比较麻烦。

所以强烈建议直接使用Linux虚拟机,安装干净的Linux操作系统,而且要新一些的,因为最新版的ESP-IDF的某些组件用到了glclib 2.39版本,我就是在Deepin23上安装了一半装不下去了,还需要改环境变量,比较麻烦,但如果重新编译进行系统升级就会有问题,我是试了Deepin25社区版,升级的Deepin23,然后就进不去桌面了,然后就重新装了。

直接装Deepin25是可以的,Ubuntu的话装最新的就行了,别折腾。有时间的可以试下Ubuntu,Deepin25被VMWare支持的还不好,无法启用网络磁盘的映射,这样虚拟机跟主机拷东西比较麻烦。

虚拟机的磁盘空间留得大一些,ESP32的开发环境安装完再加上编译时的各种包还是相当大的,虚拟机的磁盘空间最少留够80G,否则你啥也干不了,否则请安装操作系统的时候启用LVM,后面可以再扩展,要不就难了。

想系统了解下ESP32的Rust开发环境的请参考电子书:

系统默认应该是已经安装了Python 3.12,还需要装env

sudo apt install python3.12-venv

这是ESP-32的Rust开发基础环境,包括了各种工具和库

sudo apt install build-essential libssl-dev libuv1-dev pkg-config libudev-dev cargo install cargo-generate ldproxy espupcargo install cargo-espflash espflashespup install

因为这一步安装的时候会有很多是从github上下载的,中间可能失败,要么用代理,要么你就多试几次,github不是不能访问,应该是限制访问了。

我的连上之后可以用lsusb查看USB设备是否连接成功,

Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 004: ID 0e0f:0008 VMware, Inc. Virtual Bluetooth Adapter
Bus 001 Device 005: ID 303a:1001 Espressif USB JTAG/serial debug unit
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

对应的设备是/dev/ttyACM0

使用该设备时我的显示是`dev`出厂时芯片里都烧了程序,会输出日志,其实都不用啥设备工具,直接用cat命令即可:

cat /dev/ttyACM0创建工程

从模板创建项目:

cargo install esp-generate

然后根据提示创建项目就可以了,然后跟标准的rust用法就一样的,编译并运行hello-world:

cargo run

基本平台就搭好了,后面我们再一块儿一块儿地驱动硬件

来源:物联一尘

相关推荐