ESP32单片机与STM32单片机协同完成工业控制智能化改造
笔者作为使用过STM32单片机、ESP32S3单片机的用户,在这里说一说这两块单片机的优缺点,以及如何结合它们的优点,为工业控制智能化改造助力。
一、ESP32优缺点
众所周知,ESP32单片机内置有WIFI、蓝牙功能,它的优势就是联网便捷方便,而且开源项目较多,比如流行的xiaozhi-esp32框架,能够语音识别,通过快速接入大语言生成模型API,比如deepseek、qwen等模型,使得非常方便使用大语言模型;
它的缺点也非常明显,IO口资源有限,虽然一些ESP32模组IO口较多,它的ADC、DAC、PWM等外设,相比STM32单片机来说,要差的多。
案例一:比如说,笔者在使用ESP32S3单片机的IO口外部中断时,总是会遇到当发送MQTT消息时,IO口外部中断总是会被误触发的情况,无论是设置下降沿触发、还是低电平触发,还是增加消抖时间都会误触进入到IO口外部中断中。
为什么会出现这种情况?笔者也怀疑过是否是因为当发送MQTT消息时,需要较大的电流,导致IO口电压被拉低,从而引起下降沿触发外部中断。但经过实际测试,并不是这个原因;也为IO口增加了外部上拉电阻,但还是不能解决问题。
没办法,经过询问AI助手, 更改了触发方式,按键长按2秒,进入外部中断,才消除了 发送MQTT消息时,误触进入IO口外部中断的情况。
案例二: ESP32S3单片机,这款单片机它的GPIO口,并不是每一个IO口都可以作为通用输出端口,输入端口,如果你使用的某个IO口,刚好被用来作为内部PSRAM的话,那么ESP32S3单片机会因为这个原因,反复重启。
这些,都会耽误项目进度,因此在项目设计之初,如果你没有用过ESP32S3单片机,一定要真实的使用它,在使用的过程中,避免这些坑。
还有比如ADC、PWM等外设功能,感觉也弱于STM32单片机。
二、STM32单片机优缺点
STM32单片机优点是,内置定时器、IO、ADC、DAC、PWM等外设资源非常丰富且功能强大,而且软件开发方便,使用STM32CubeMx软件能精确根据项目需求使用外设资源。
STM32单片机它的缺点,也比较明显,常用的STM32单片机,无内置WIFI、无蓝牙模块,虽然有些型号,具有以太网接口和蓝牙接口,但价格较贵。相关的开源项目也较少。
三、结合ESP32、STM32优点助力工业智能化改造
那么通过上述分析,我们可以综合这两款单片机的优点,助力工业智能化改造。ESP32的优点,联网方便,快速接入AI大模型。利用STM32单片机控制准确、数据采集精确的优点。
ESP32直接采用开源xiaozhi-esp32软件框架,快速实现用户自然语言指令识别、WIFI接入云平台、使用AI大模型;STM32单片机使用STM32CubeMx软件快速生成代码,完成数据采集、执行器控制。这两款单片机,它们之间通过串口进行数据通信。
ESP32识别到用户指令之后,发送串口数据给STM32单片机,控制各类执行器。
STM32单片机定时完成传感器数据采集,并通过串口传输给ESP32单片机,ESP32单片机再通过MQTT协议上传到云服务器。
这样的结合,节约硬件成本,提高了开发效率,不仅能把传感器数据快速上传到云服务器,而且允许用户通过自然语言控制各种执行器。