ESP32/8266

使用Arduino IDE开发ESP32与ESP8266虽然方便快捷、资源丰富,但Arduino 平台隐藏了太多底层代码,对于初学者来说十分友好,用户不需要关心底层做了什么,只需要拿到接口使用接口,若想深入了解该单片机,请使用ESP-IDF工具开发。

对于ESP32/8266你需要掌握:

1.GPIO

2.外部中断

3.PWM

4.IIC

5.SPI

6.BLE(低功耗蓝牙)

网络协议篇(在此之前你需要掌握基本的HTML语言以看懂前端代码,若想基于该单片机部署前端界面以及界面的数据交互还需要掌握VUE,js等语言 推荐前往[ 菜鸟教程]进行学习)

7.ESP-NOW

8.Web Server

9.Asynsc Web Server

10.WebSocket

11.MQTT

12.ESP-MESH

参考教程:

下列教程均需要科学上网
250+ ESP32 Projects, Tutorials and Guides with Arduino IDE​
200+ ESP8266 NodeMCU Projects, Tutorials and Guides with Arduino IDE​
感兴趣的可以看看ESP32-CAM https://randomnerdtutorials.com/projects-esp32-cam/

ESP-IDF

使用VSCode搭建环境,简单跑了官方给的示例代码,使用库函数编写,网络协议提供相应的API接口,需要学习新的库函数,暂时不打算深究。
24年7月25日:

​ 经过两周系统的学习基于OpenHarmony系统使用海思3861芯片,主要学习过程:LiteOS内核的开发(Thread多线程、定时器、事件标志、互斥锁、信号量、消息队列)、外设开发(GPIO、ADC、PWM、I2C、UART)、网络开发(连接WIFI、WIFI AP热点、TCP通信、UDP通信、MQTT),最终将一些传感器数据上传到华为云,因为实验箱被学校回收了,该小项目也就到此结束了,唯一保留的一张图如下:

file

​ 有个自己搭建的模块是因为他给的模块有问题,某传感器信号经过比较器进行一级放大后延时一段时间传入二级放大电路,按理来说应该直接输出给芯片的引脚,但是不知道为什么又把比较器输出的二级信号又送回给一级,导致传感器一经触发后信号就会一直连续触发不会停止,还有就是所有的板子为了美观,滤波电容离主芯片很远,有些电源芯片的滤波电容还不接地,我也是服了抄板的,为什么说是抄?我看了他们给的源码,在编译文件里发现了小熊派开源社区的字样,后续看了看他们的模块的原理图和小熊派的一模一样。
​ 这篇文章本来是写ESP32的,为什么上面写了一大堆OpenHarmony呢?因为它们都是IOT芯片,开发流程基本都一样,只是一个是华为的芯片一个是乐鑫的芯片,后续学习了ESP-IDF框架的开发ESP32系列的芯片。

搭建中会遇到的问题:

跟着学的博主:宸芯IOT

链接:ESP32教程(基于ESP-IDF)

搭建过程

​ 跟着博主配,或者看乐鑫的官方文档,乐鑫的文档已经很详细了

串口权限问题

对于esp32:

1. 每次插拔esp32都给串口权限:sudo chmod 777 /dev/ttyUSB0
2. 将用户加入到dialout组:sudo usermod -a -G dialout user_name

对于esp32 S3:

某些串口不是ttyUSB0,需要自己去看看串口名字,然后给该串口权限

工程配置(配置部分参数 保证你的esp32模块能用)

修改\选择芯片型号:

查看当前 ESP-IDF 版本支持的所有目标芯片:idf.py --list-targets
设置目标芯片:idf.py set-target <target>

idf.py set-target 将清除 build 目录,并重新生成 sdkconfig 文件,原来的 sdkconfig 文件保存为 sdkconfig.old

idf.py menuconfig 

主频:

component config->ESP system setting->CPU frequency ->改为240M Hz

Flash(根据你的模块修改):

Serial flasher config->Flash size

psram:

component config->ESP PSRAM

配置完毕:

按S键->回车->回车->按Q键->重新编译

更多命令请查看:IDF 前端工具 – idf.py – ESP32 – — ESP-IDF 编程指南 latest 文档 (espressif.com)

新建工程

idf.py create-project project_name

添加idf路径到工程:ESP-IDF:Add vscode Configuration Folder

可以开始写代码了

剩下的看博主的视频吧

我觉得乐鑫的部分代码和功能都挺抽象的,至少和华为的OpenHarmony对比来说