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

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE 5.0+麦克风+OV2640摄像头视觉AI识别主控模组套装

在这里插入图片描述
在这里插入图片描述
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 和其他功能。

在这里插入图片描述
搜索:SoftwareSerial,安装Esp32-SoftwareSerial库
下载链接:https://github.com/junhuanchen/Esp32-SoftwareSerial

在这里插入图片描述

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

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

实验开源代码

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

#include <SoftwareSerial.h>

// 创建软件串口对象,指定引脚2为RX,3为TX
SoftwareSerial mySerial(2, 3); // RX, TX

void setup() {
  // 初始化硬件串口通信,波特率为9600
  Serial.begin(9600);
  while (!Serial) {
    ; // 等待串口连接
  }
  Serial.println("Serial started"); // 硬件串口启动成功

  // 初始化软件串口通信,波特率为9600
  mySerial.begin(9600);
  Serial.println("Software serial started"); // 软件串口启动成功
}

void loop() {
  // 向软件串口发送数据
  mySerial.print("Hello from Software Serial");
  Serial.println("Sent: Hello from Software Serial"); // 打印发送的数据

  // 检查软件串口是否有可用数据
  if (mySerial.available()) {
    char data = mySerial.read(); // 读取传入的数据
    Serial.print("Received data: ");
    Serial.println(data); // 打印接收到的数据
  } else {
    Serial.println("No data available"); // 没有可用数据
  }

  delay(1000); // 等待一秒钟后重复循环
}

实验串口返回情况

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

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

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

#include <SoftwareSerial.h>

// 创建软件串口对象,指定引脚2为RX,3为TX
SoftwareSerial mySerial(2, 3); // RX, TX

void setup() {
  // 初始化硬件串口通信,波特率为9600
  Serial.begin(9600);
  while (!Serial) {
    ; // 等待串口连接
  }
  Serial.println("串行已启动"); // 硬件串口启动成功

  // 初始化软件串口通信,波特率为9600
  mySerial.begin(9600);
  Serial.println("软件串行启动"); // 软件串口启动成功
}

void loop() {
  mySerial.print("来自软件串行的问候");
  Serial.println("发送: 来自软件串行的问候");

  delay(100); // 添加延迟

  if (mySerial.available()) {
    char data = mySerial.read();
    Serial.print("接收到的数据:");
    Serial.println(data);
  } else {
    Serial.println("软件串行中没有可用数据");
  }

  delay(1000); // 等待一秒钟后重复循环
}

实验串口返回情况

在这里插入图片描述

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

实验开源代码

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

#include <SoftwareSerial.h>

// 创建软件串口对象,指定引脚2为RX,3为TX
SoftwareSerial mySerial(2, 3); // RX, TX

void setup() {
  // 初始化硬件串口通信,波特率为9600
  Serial.begin(9600);
  while (!Serial) {
    ; // 等待串口连接
  }
  Serial.println("硬件串行启动"); // 硬件串口启动成功

  // 初始化软件串口通信,波特率为9600
  mySerial.begin(9600);
  Serial.println("软件串行启动"); // 软件串口启动成功
}

void loop() {
  // 向软件串口发送数据
  mySerial.print("测试软件串行");
  Serial.println("发送: 测试软件串行");

  // 等待一秒钟后重复循环
  delay(1000);
}

实验串口返回情况

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值