【雷达灯控】ESP32 Arduino 测距Rd-03e 数码管显示

[复制链接]
查看1072 | 回复13 | 2024-3-26 17:47:44 | 显示全部楼层 |阅读模式
本帖最后由 dawei 于 2024-3-26 23:42 编辑

      有幸收到安信可的RD-03E 雷达模块;
一、模块熟悉;
      通过入门资料了解该模块的两种类型的功能:
     1、精准测距;
     2、手势识别;
     收到默认是手势识别功能;根据指导说明,从解析数据可以看见, 获取的数据中包含了距离和手势的数据;

                               
登录/注册后可看大图


     Rd-03e 模块是包含了MCU(GD32E230K8)+24G 雷达芯片 S3KM111L,MCU 通过解析24G 雷达的数据实现精准测距和手势识别的功能;

二、参数测试:
      24G雷达能实现的功能(测试和手势)在智能家居中应用非常广泛,与传统的PIR相比较,雷达的准确度和可靠性更好;
最常见的一个应用:
      智能电视中,通过检查人体与电视机的距离,防止儿童过近距离靠近电视剧导致视力下降,也可以通过手势控制来切换不同频道和音量控制等;
       测试硬件准备:
                  ESP32 Dev kit;
                  Rd-03E 雷达模组;
                  TM1668 显示模块;
           其他功能: 待加;
最终成本组装如下:
下载 (1).png    下载.png


开发环境采用Arduino 开发;
  1. /*****************************************************/
  2. #include <HardwareSerial.h>
  3. #include <WiFi.h>
  4. #include <TM1668.h>
  5. #include <TM16xxDisplay.h>
  6. /*****************************************************/

  7. /*****************************************************/
  8. unsigned char  led_dislay_num[10]={0xD7,0x12,0xCE,0x5e,0x1b,0x5d,0xDd,0x16,0xdf,0x5f};
  9. /*****************************************************/


  10. // 全局变量用来存储合数据
  11. volatile uint16_t g_rd03e_distance;
  12. volatile uint8_t g_rd03e_gesture;
  13. unsigned char g_rd03e_receive_date[5];
  14. unsigned char i= 0x00;  

  15. TM1668 module(19, 18, 5);               // DIO=8, CLK=9, STB=7
  16. TM16xxDisplay display(&module, 8);      // TM16xx object, 8 digits


  17. const char* ssid = "TP-LINK_C3608";
  18. const char* password = "Wifi@1jcsxd6";

  19. WiFiClient client;

  20. void ESP32_get_rd03e_value()
  21. {
  22.   if (Serial2.available()) {                                          // 当串口接收到信息后
  23.     Serial2.readBytesUntil(0x55, g_rd03e_receive_date, 5);            //读取串口信息直到遇到55或5个字节
  24.     if (g_rd03e_receive_date[0] == 0xAA) {                            //校验帧头是否为AA
  25.       g_rd03e_distance = (g_rd03e_receive_date[2] << 8) | g_rd03e_receive_date[1];
  26.       g_rd03e_gesture = g_rd03e_receive_date[3];
  27.       Serial.print("g_rd03e_distance=");
  28.       Serial.println(g_rd03e_distance);  //输出距离值
  29.       Serial.print("g_rd03e_gesture=");
  30.       Serial.print(g_rd03e_gesture);  //输出距离值
  31.     } else {
  32.       for (i = 0; i < 5; i++) {
  33.         g_rd03e_receive_date[i] = 0x00;
  34.       }
  35.     }
  36.   }
  37. }

  38. void TM1688_Display_distance(uint16_t s_distance)
  39. {
  40.   if(s_distance<999)
  41.   {
  42.     module.setSegments(led_dislay_num[s_distance/100], 1);        //BYTE1
  43.     module.setSegments(led_dislay_num[(s_distance%100)/10], 0);   //BYTE2
  44.     module.setSegments(led_dislay_num[s_distance%10], 2);         //BYTE3
  45.   }else{
  46.       Serial.print(" Date error");
  47.   }
  48. }


  49. void setup() {
  50.    Serial.begin(115200, SERIAL_8N1, 3, 1);      // 串口1初始化,用于调试输出
  51.    Serial2.begin(256000, SERIAL_8N1, 16, 17);   // 串口2初始化
  52.    pinMode(12, OUTPUT);                  // 初始化GPIO引脚为输出模式
  53.    digitalWrite(12, 1);


  54.   WiFi.begin(ssid, password);
  55.   while (WiFi.status() != WL_CONNECTED) {
  56.     delay(1000);
  57.     Serial.println("Connecting to WiFi...");
  58.   }

  59.   Serial.println("Connected to WiFi!");
  60.   Serial.print("IP address: ");
  61.   Serial.println(WiFi.localIP());
  62. }

  63. void loop() {
  64.     ESP32_get_rd03e_value();
  65.     TM1688_Display_distance(g_rd03e_distance);
  66.    
  67.     if(g_rd03e_distance != 0x00)
  68.     {
  69.         digitalWrite(12, 0);
  70.     }else{
  71.         digitalWrite(12, 1);
  72.     }

  73. }
复制代码


测试效果:

无人时显示距离:
下载 (2).png

无人不亮灯:
无人灯不亮.jpg

有人测试距离:
下载 (3).png

有人亮灯
感应亮灯.jpg

B站视频效果:
https://www.bilibili.com/video/B ... share_source=weixin



回复

使用道具 举报

爱笑 | 2024-3-26 17:50:01 | 显示全部楼层
附上效果视频,视频上传到B站,超链接至帖子里。
用心做好保姆工作
回复 支持 反对

使用道具 举报

1084504793 | 2024-3-26 18:22:46 | 显示全部楼层
回复

使用道具 举报

bzhou830 | 2024-3-27 08:33:44 | 显示全部楼层
手机支架大用处,哈哈
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

WT_0213 | 2024-3-27 08:44:03 | 显示全部楼层
很棒
回复

使用道具 举报

李白百 | 2024-3-27 09:26:48 | 显示全部楼层
回复

使用道具 举报

1055173307 | 2024-3-27 16:15:39 | 显示全部楼层
学习
回复

使用道具 举报

noonezero | 2024-4-4 09:54:56 | 显示全部楼层
回复

使用道具 举报

wukong50 | 2024-4-4 10:30:44 | 显示全部楼层
回复

使用道具 举报

sansui | 2024-4-4 12:52:03 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则