822浏览
查看: 822|回复: 0

[ESP8266/ESP32] Beetle ESP32 C6 步数与温度记录器

[复制链接]
本帖最后由 林与安年 于 2024-4-17 10:52 编辑

开篇
非常荣幸获得了此次esp32-c6的开发板测试机会,自己也秉持着物尽其用的功能,想要好好用开发板做一些有趣的东西。
ESP32-C6是一款功能强大的低功耗微控制器,适用于各种物联网(IoT)应用。

1. **双核处理器**:
   - ESP32-C6搭载了一个高性能的RISC-V 32位处理器和一个低功耗的RISC-V 32位处理器,两者可以协同工作,以实现高性能处理和低功耗运行。
2. **Wi-Fi和蓝牙功能**:
   - 支持2.4 GHz Wi-Fi 6 (802.11ax)和Bluetooth 5 (LE),适用于需要无线数据传输的项目。
3. **丰富的外设接口**:
   - 提供多个GPIO引脚,可用于连接各种传感器和外部设备。
   - 集成了UART、SPI、I2C等接口,方便与外部设备通信。
4. **内置传感器**:
   - 内置12位SAR ADC,可用于模拟信号的采集。
   - 集成温度传感器,可直接用于温度监测。
5. **低功耗管理**:
   - 支持多种低功耗模式,包括Active、Modem-sleep、Light-sleep和Deep-sleep模式,有助于延长电池寿命。
6. **安全特性**:
   - 提供安全启动、Flash加密、数字签名等安全机制,确保数据安全。
7. **丰富的软件支持**:
   - 乐鑫提供了ESP-IDF开发框架,以及大量的示例代码和文档,便于开发者快速上手。

我申请的是Beetle ESP32 C6迷你开发板。上面的这些功能对我来开发出一个既能够准确记录步数和温度,又能够无线传输数据的智能控制板十分有帮助。

开发思路
- 使用内置的温度传感器直接测量温度。
- 通过GPIO引脚连接MPU6050传感器来检测步数。可以使用外部中断功能来检测每一步的振动或运动。
- 利用Wi-Fi或蓝牙功能将步数和温度数据发送到智能手机或其他设备上。
- 使用低功耗模式来延长设备的电池使用时间。
- 通过安全特性保护记录的步数和温度数据不被未授权访问。

硬件介绍
1.esp32-c6
2.MPU6050
3.3.7V电池
4.0.96寸OLED显示屏

软件开发平台
Arduino IDE

开发流程
1.环境配置:因为开发板为最新型号,所以需要在Github里面下载3.0.0版本esp才支持C6系列:
Beetle ESP32 C6 步数与温度记录器图1
在文件—首选项里面输入开发板地址:https://github.com/espressif/arduino-esp32/releases/download/3.0.0-rc1/package_esp32_dev_index.json
在板里面就可以开到3.0.0版本的esp32了。注:如果下载缓慢,可以使用群里老师发的国内镜像网站,速度很快(亲测):https://djzrs.github.io/picx-images-hosting/package_esp32_dev_index.json
2.下载好后就根据原理图确定选用开发板的引脚进行代码编写:由esp c6引脚图可知连接方向
Beetle ESP32 C6 步数与温度记录器图2
引脚连接方式:
esp32 c6——MPU6050
3V3        ——VCC
GND      ——GND
19          ——SDA
20          ——SCL

esp32 c6——OLED显示屏
3V3        ——VCC
GND      ——GND
19          ——SDA
20          ——SCL


代码:
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <Adafruit_MPU6050.h>
  5. #include <Adafruit_Sensor.h>
  6. Adafruit_MPU6050 mpu;
  7. #define SCREEN_WIDTH 128 // OLED屏幕宽度
  8. #define SCREEN_HEIGHT 64 // OLED屏幕高度
  9. #define OLED_RESET 4
  10. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  11. // 定义加速度变化的阈值
  12. const float ACCELERATION_THRESHOLD = 10.0;
  13. // 定义步数变量
  14. int stepCount = 0;
  15. void setup() {
  16.   // 初始化I2C通信
  17.   Wire.begin(/*SDA=*/19, /*SCL=*/20);
  18.   Serial.begin(115200);
  19.   // 初始化MPU6050传感器
  20.   if (!mpu.begin()) {
  21.     Serial.println("Sensor init failed");
  22.     while (1) {
  23.       delay(10); // 保持在失败状态,防止程序继续执行
  24.     }
  25.   }
  26.   Serial.println("Found a MPU-6050 sensor");
  27.   // 初始化OLED显示屏
  28.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  29.   // 清除屏幕内容
  30.   display.clearDisplay();
  31.   delay(500); // 等待半秒
  32.   display.setTextSize(1);
  33.   display.setTextColor(WHITE);
  34.   display.setRotation(0);
  35.   display.display();
  36. }
  37. void loop() {
  38.   sensors_event_t a, g, temp;
  39.   mpu.getEvent(&a, &g, &temp);
  40.   // 检测步数
  41.   if (abs(a.acceleration.x) > ACCELERATION_THRESHOLD || abs(a.acceleration.y) > ACCELERATION_THRESHOLD) {
  42.     stepCount++; // 步数增加
  43.   }
  44.   display.clearDisplay();
  45.   display.setCursor(0, 0);
  46.   // 显示加速度数据
  47.   display.print("Accel: ");
  48.   display.print(a.acceleration.x, 2); // 显示加速度X值,保留两位小数
  49.   display.print(", ");
  50.   display.print(a.acceleration.y, 2); // 显示加速度Y值,保留两位小数
  51.   display.print(", ");
  52.   display.print(a.acceleration.z, 2); // 显示加速度Z值,保留两位小数
  53.   display.println();
  54.   // 显示陀螺仪数据
  55.   display.setCursor(0, 20);
  56.   display.print("Gyro: ");
  57.   display.print(g.gyro.x, 2); // 显示陀螺仪X值,保留两位小数
  58.   display.print(", ");
  59.   display.print(g.gyro.y, 2); // 显示陀螺仪Y值,保留两位小数
  60.   display.print(", ");
  61.   display.print(g.gyro.z, 2); // 显示陀螺仪Z值,保留两位小数
  62.   display.println();
  63.   // 显示温度数据
  64.   display.setCursor(0, 40);
  65.   display.print("Temp: ");
  66.   display.print(temp.temperature, 1); // 显示温度值,保留一位小数
  67.   display.println("C");
  68.   // 显示步数
  69.   display.setCursor(0, 55);
  70.   display.print("Steps: ");
  71.   display.println(stepCount);
  72.   display.display();
  73.   delay(100); // 等待100毫秒再次更新数据
  74. }
复制代码




3.上传测试
Beetle ESP32 C6 步数与温度记录器图3

测试情况良好,可以实现数据显示

4总结与展望
Beetle ESP32 C6迷你开发板本身尺寸十分精巧,同时具备低功耗与WiFi与蓝牙功能,制作一个可穿戴设备十分合适,可惜本人能力有限,目前还不能集成可穿戴功能,同时因为时间有限,未能完成电路板设计与打板,希望在之后的时间里可以继续完善可穿戴功能。






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

本版积分规则

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

硬件清单

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

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

mail