FastBond3挑战部分-家庭老人跌倒监控
该项目使用了该项目使用了DFRobot生产的C1001 60GHz毫米波人体检测传感器,实现了家庭老年人跌倒监控的设计,它的主要功能为:及时发现独自在家的老年人发生跌倒意外的情况,及时发现,及时处理。
标签
嵌入式系统
Arduino
毫米波雷达
FastBond3
aramy
更新2024-10-25
117

一、项目思路

老年人身体机能逐渐下降,当老年人独自在家时,如若发生跌倒等意外,不能及时发现,则可能引起生命生命危险。安装摄像头又有隐私方面的顾虑。本项目使用毫米波雷达传感器,用来监控室内老人的活动,当发生老人跌倒的情况时,通过物联网发出警报,让老人及时得到救助。

二、硬件介绍

传感器:C1001 毫米波人体检测传感器是一款高精度 60GHz 毫米波雷达传感器,专为精准人体检测而设计。与仅能检测存在、速度和距离的标准 24GHz 毫米波传感器不同,C1001 传感器具备增强的检测功能,包括跌倒检测和睡眠检测。它能够使用点云成像算法识别人体姿势,可以检测某人是否躺下,并精确监测生命迹象。该传感器不仅可以检测运动,甚至还可以在人保持静止时进行检测,这使得 C1001 传感器在不需要移动的情况下也能检测存在,优于 PIR 等传统传感器。C1001 传感器的综合检测功能可准确、详细地了解人类活动,从而改善安全和健康监测,同时增强整体用户体验。 该传感器兼容 ESP32、micro:bit 和 Arduino UNO 开发板,可以轻松配置并与 Arduino IDE 一起使用。

  • 工作电压:5V
  • 工作电流:≤100mA
  • 工作频率:61~61.5GHz
  • 发射功率:6dBm
  • 最远探测距离:11m
  • 雷达探测角度:100×100度
  • 工作温度:-20~60℃
  • 睡眠探测距离(胸腔):0.4-2.5m
  • 呼吸心跳探测距离(胸腔):0.4-1.5m
  • 呼吸测量精度:90%
  • 呼吸测量范围:10-25次/分钟
  • 心跳测量精度:80%
  • 心跳测量范围:60-100次/分钟


接口介绍

主控:主控我选择了M5CoreS3。CoreS3是M5Stack开发套件系列的第三代主机,其核心主控采用ESP32-S3方案,双核Xtensa LX7处理器,主频240MHz,自带WiFi功能,板载16MFLASH和8M-PSRAM,可通过TYPE-C接口下载程序,支持OTG和CDC功能,方便外接usb设备和烧录固件,正面搭载一块2.0寸电容触摸IPS屏,面板采用高强度玻璃材质,屏幕下方内置一个30万像素的摄像头GC0308,整体采用低功耗设计,并且外壳附带DinBase底座,方便实现Din导轨、挂墙以及螺丝固定,可外部DC 12V(支持9~24V)或内部500mAh锂电池供电,很方便安装接电。
img-96063e2a-637a-4d11-ac47-1ce4f1cdfd3e.webp

三、系统设计

C1001毫米波人体检测传感器可以通过点云成像算法实现人体姿态识别,对平躺状态有准确探知;并进行精准生命探测,对跌倒状态、停留时间,身体静止驻留状态都有准确上报。传感器提供串口通讯,CoreS3使用串口与传感器相连接,获取数据。

系统分为两个部分:下位机部分,通过传感器加单片机,用来实时监控感知指定范围内人员跌倒情况,通过mqtt上传告警信息。上位机部分,通过mqtt获取信息,当获取到有人跌倒的信息时,发出警告声音,并发送短信或拨打电话(尚未实现)。

物联网mqtt这里使用的是百度iot提供的免费物联网。

image.png

四、硬件设计

C1001毫米波人体检测传感器,在跌倒模式对安装有要求。参考官方提供的文档使用顶装模式。雷达模块波束覆盖范围如下图所示。雷达覆盖范围为水平100°、俯仰100°的立体扇形区域。

接口介绍

确保雷达探测准确性,请置顶安装!如下图所示。

接口介绍

注意:需要避开房间内排风扇/金属百叶窗/遮光涂层窗帘等容易晃动的物体

C1001毫米波人体检测传感器使用四芯线缆与主控CoreS3连接,由主控负责供电,连接到CoreS3的蓝色串口上(G18/G17)。为便于安装调试,使用铰链将传感器与CoreS3固定在一起,方便传感器在一定角度内旋转。

image.png

五、软件设计

软件使用arduino编程。编程工具Vscode+platformio。DFRobot官方提供了C1001毫米波人体检测传感器读取的库文件和例子,所以直接拿来库文件就可以使用了。

下位机系统启动后,首先是初始化。需要初始化WIFI和物联网,这里需要使用互联网校时和使用物联网。初始化屏幕,使用屏幕展示当前机器状态。初始化串口,使用串口与雷达通讯,最后将雷达设置为检测跌倒模式。

void setup()
{
    M5.begin();                                // Init M5CoreS3.  初始化 M5CoreS3
    Serial1.begin(115200, SERIAL_8N1, 18, 17); // RX TX
    canvas.setColorDepth(1);                   // mono color
    canvas.createSprite(M5.Lcd.width(), M5.Lcd.height());
    canvas.setTextSize((float)canvas.width() / 160);
    canvas.setTextScroll(true);
    delay(1000);
    init_wifi_ntp();                         //初始化wifi
    mqttClient.setServer(MQTT_SERVER, 1883); //设定MQTT服务器与使用的端口,1883是默认的MQTT端口
    mqttClient.setCallback(callback);        //设定回调方式,当收到订阅消息时会调用此方法
    init_radar();                            //初始化雷达
}

使用轮询的方式查询雷达状态,查看当前是否有人存在,如果有人存在,是否存在跌倒情况。当查询到有人活动时,就将活动信息上送给mqtt。

void loop()
{
    uint8_t isfall = 0;
    char timestr[30];
    if (!mqttClient.connected())
    {
        reconnect();
    }
    mqttClient.loop();
    getTimeSystem(0,timestr);


    switch (hu.smHumanData(hu.eHumanPresence)) //检查是否有人出现
    {
    case 0:
        // Serial.println("No one is present");
        break;
    case 1: //有人存在
        Serial.print(timestr);
        Serial.print("    Someone is present.");
        canvas.printf("%s: %s", timestr, "Someone is present.");
        isfall = hu.getFallData(hu.eFallState);
        getTimeSystem(1,timestr);
        snprintf(msg, 80, "{\"date\":\"%s\",\"human\":%d,\"fallen\":%d}", timestr,1,isfall);
        mqttClient.publish(TOPIC, msg); //发送该主题消息
        if (isfall == 0) //没有摔倒
        {
            Serial.println("Not fallen.");
            canvas.printf("%s\r\n", "Not fallen.");
        }
        if (isfall == 1) //有人摔倒
        {
            Serial.println("fallen!");
            canvas.printf("%s\r\n", "fallen!");
        }
        canvas.pushSprite(0, 0);
        break;
    default:
        Serial.println("Read error");
    }
    delay(5000);
}

上位机使用python编程,界面部分使用pyqt设计。告警提示部分由上位机实现,目前是由电脑音箱发出警告声。电脑端比较容易扩展,一会可以扩展到短信、电话通知指定用户。

image.png

六、效果展示

image.png

image.png

放到高出,将雷达旋转对准地面。

image.png

image.png

七、心得体会
感谢FastBond活动。对微波雷达充满了好奇。微波雷达使用较短波长的电磁波来感知世界,我总是在想象微波雷达看见的世界是怎样的。这款60GHz工作频率的毫米波雷达能够感知人的呼吸、心跳、跌倒,非常神奇,感谢电子森林,让我有机会接触、学习到这神奇的雷达。

附件下载
cores3_human.zip
下位机
上位机.zip
团队介绍
单片机业余爱好者,瞎捣鼓小能手。
团队成员
aramy
单片机业余爱好者,瞎捣鼓小能手。
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号