144浏览
查看: 144|回复: 7

[项目] 【花雕学编程】Arduino动手做(231)---测试软件串行功能

[复制链接]
【花雕学编程】Arduino动手做(231)---测试软件串行功能图1

XIAO ESP32S3 Sense 是 Seeed Studio 推出的一个强大的迷你型开发板,它集成了多种传感器和丰富的接口,非常适合用于物联网(IoT)、AI人工智能、智能家居、工业自动化、数据采集、教育和娱乐等领域的项目开发。

1、 硬件概述
处理器:ESP32-S3R8 Xtensa LX7 双核 32 位处理器,运行频率高达 240 MHz。
无线通信:支持 2.4GHz Wi-Fi 和蓝牙 5.0(包括蓝牙网状网络)。
内存:片上 8MB PSRAM 和 8MB 闪存。
引脚:共有26个可编程GPIO引脚,包括 1x UART, 1x IIC, 1x IIS, 1x SPI, 11x GPIOs (PWM), 9x ADC, 1x 用户 LED, 1x 充电 LED, 1x 复位按钮, 1x 启动按钮。

2、内置传感器
数字麦克风:用于音频输入。
摄像头传感器:OV2640,分辨率为 1600x1200。
LED:内置一个RGB LED,可编程控制颜色和亮度。
SD 卡支持:板载 SD 卡插槽,支持最大 32GB 的 FAT 文件系统。

3、功耗模式
调制解调器睡眠模式:3.8V/25 mA。
轻度睡眠模式:3.8V/2 mA。
深度睡眠模式:3.8V/14 μA。

4、功能特性
嵌入式 ML 计算能力:结合摄像头和麦克风,适用于智能语音和视觉 AI 应用。
低功耗设计:支持多种低功耗模式,适用于电池供电的应用。
紧凑设计:尺寸仅为 21 x 17.5 mm,非常适合空间有限的项目。

5、 应用场景
智能家居:利用摄像头和麦克风进行语音控制和图像识别。
可穿戴设备:由于其小巧的尺寸和低功耗设计,非常适合用于可穿戴设备。
物联网(IoT):通过 Wi-Fi 和蓝牙连接,可以轻松集成到各种 IoT 应用中。

6、开发支持
编程语言:支持 Arduino 和 MicroPython。
开发工具:提供丰富的开发工具和库,方便快速上手。

7、其他特性
电源管理:支持锂电池充电管理,提供稳定的电源供应。
扩展性:通过 B2B 连接器,可以扩展更多的 GPIO 和其他功能。


【花雕学编程】Arduino动手做(231)---测试软件串行功能图2

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 10:00:18

【花雕学编程】Arduino动手做(231)---测试软件串行功能

搜索:SoftwareSerial,安装Esp32-SoftwareSerial库
下载链接:https://github.com/junhuanchen/Esp32-SoftwareSerial

【花雕学编程】Arduino动手做(231)---测试软件串行功能图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 11:09:45

【花雕学编程】Arduino动手做(231)---测试软件串行功能

如果觉得一个硬件串行端口不够,还可以使用ESP32的软件串行功能将一些引脚设置为软件串行,以扩大串行端口的数量。当然,这里建议使用第二种映射硬件串行端口的方法,因为这是ESP32的独特功能。

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  视觉AI识别主控模组套装
  {花雕动手做}实验五:XIAO ESP32S3 Sense 软件串行功能的测试

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  4.   视觉AI识别主控模组套装
  5.   {花雕动手做}实验五:XIAO ESP32S3 Sense 软件串行功能的测试
  6. */
  7. #include <SoftwareSerial.h>
  8. // 创建软件串口对象,指定引脚2为RX,3为TX
  9. SoftwareSerial mySerial(2, 3); // RX, TX
  10. void setup() {
  11.   // 初始化硬件串口通信,波特率为9600
  12.   Serial.begin(9600);
  13.   while (!Serial) {
  14.     ; // 等待串口连接
  15.   }
  16.   Serial.println("Serial started"); // 硬件串口启动成功
  17.   // 初始化软件串口通信,波特率为9600
  18.   mySerial.begin(9600);
  19.   Serial.println("Software serial started"); // 软件串口启动成功
  20. }
  21. void loop() {
  22.   // 向软件串口发送数据
  23.   mySerial.print("Hello from Software Serial");
  24.   Serial.println("Sent: Hello from Software Serial"); // 打印发送的数据
  25.   // 检查软件串口是否有可用数据
  26.   if (mySerial.available()) {
  27.     char data = mySerial.read(); // 读取传入的数据
  28.     Serial.print("Received data: ");
  29.     Serial.println(data); // 打印接收到的数据
  30.   } else {
  31.     Serial.println("No data available"); // 没有可用数据
  32.   }
  33.   delay(1000); // 等待一秒钟后重复循环
  34. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 11:11:19

【花雕学编程】Arduino动手做(231)---测试软件串行功能

实验串口返回情况

【花雕学编程】Arduino动手做(231)---测试软件串行功能图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 12:05:48

【花雕学编程】Arduino动手做(231)---测试软件串行功能


看起来软件串口没有接收到数据。这里尝试以下几个步骤来进一步调试:

1、硬件连接检查:
确保mySerial的RX(引脚2)连接到设备的TX引脚,TX(引脚3)连接到设备的RX引脚。
确保所有连接牢固,没有松动。
2、设备配置:
确保连接到软件串口的设备也在9600波特率下工作,并且能够发送数据。
3、代码调整:
尝试在loop()函数中添加更多的调试信息,以确认代码是否正确执行。



  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  4.   视觉AI识别主控模组套装
  5.   {花雕动手做}实验五:XIAO ESP32S3 Sense 软件串行功能的测试之二
  6. */
  7. #include <SoftwareSerial.h>
  8. // 创建软件串口对象,指定引脚2为RX,3为TX
  9. SoftwareSerial mySerial(2, 3); // RX, TX
  10. void setup() {
  11.   // 初始化硬件串口通信,波特率为9600
  12.   Serial.begin(9600);
  13.   while (!Serial) {
  14.     ; // 等待串口连接
  15.   }
  16.   Serial.println("串行已启动"); // 硬件串口启动成功
  17.   // 初始化软件串口通信,波特率为9600
  18.   mySerial.begin(9600);
  19.   Serial.println("软件串行启动"); // 软件串口启动成功
  20. }
  21. void loop() {
  22.   mySerial.print("来自软件串行的问候");
  23.   Serial.println("发送: 来自软件串行的问候");
  24.   delay(100); // 添加延迟
  25.   if (mySerial.available()) {
  26.     char data = mySerial.read();
  27.     Serial.print("接收到的数据:");
  28.     Serial.println(data);
  29.   } else {
  30.     Serial.println("软件串行中没有可用数据");
  31.   }
  32.   delay(1000); // 等待一秒钟后重复循环
  33. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 14:09:30

【花雕学编程】Arduino动手做(231)---测试软件串行功能

实验串口返回情况

【花雕学编程】Arduino动手做(231)---测试软件串行功能图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 14:28:05

【花雕学编程】Arduino动手做(231)---测试软件串行功能

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  视觉AI识别主控模组套装
  {花雕动手做}实验五:XIAO ESP32S3 Sense 软件串行功能的测试之简化版

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  4.   视觉AI识别主控模组套装
  5.   {花雕动手做}实验五:XIAO ESP32S3 Sense 软件串行功能的测试之简化版
  6. */
  7. #include <SoftwareSerial.h>
  8. // 创建软件串口对象,指定引脚2为RX,3为TX
  9. SoftwareSerial mySerial(2, 3); // RX, TX
  10. void setup() {
  11.   // 初始化硬件串口通信,波特率为9600
  12.   Serial.begin(9600);
  13.   while (!Serial) {
  14.     ; // 等待串口连接
  15.   }
  16.   Serial.println("硬件串行启动"); // 硬件串口启动成功
  17.   // 初始化软件串口通信,波特率为9600
  18.   mySerial.begin(9600);
  19.   Serial.println("软件串行启动"); // 软件串口启动成功
  20. }
  21. void loop() {
  22.   // 向软件串口发送数据
  23.   mySerial.print("测试软件串行");
  24.   Serial.println("发送: 测试软件串行");
  25.   // 等待一秒钟后重复循环
  26.   delay(1000);
  27. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-20 18:25:23

【花雕学编程】Arduino动手做(231)---测试软件串行功能

实验串口返回情况

【花雕学编程】Arduino动手做(231)---测试软件串行功能图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail