发帖
13 0 1

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

dawei
注册会员

1

主题

6

回帖

142

积分

注册会员

积分
142
雷达灯控教程 1564 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



──── 0人觉得很赞 ────

使用道具 举报

2024-3-26 17:50:01
附上效果视频,视频上传到B站,超链接至帖子里。
2024-3-26 18:22:46
2024-3-27 08:33:44
手机支架大用处,哈哈
2024-3-27 08:44:03
很棒
2024-3-27 09:26:48
2024-3-27 16:15:39
学习
2024-4-4 09:54:56
2024-4-4 10:30:44
2024-4-4 12:52:03
您需要登录后才可以回帖 立即登录
高级模式
12下一页
统计信息
  • 会员数: 28296 个
  • 话题数: 40290 篇