这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【e起DIY】低功耗蓝牙温湿度计

共1条 1/1 1 跳转至

【e起DIY】低功耗蓝牙温湿度计

菜鸟
2026-06-14 13:07:23     打赏

实现通过微信小程序和APP获取xw71的温湿度数据

硬件部分

FRDM-MCXW71   
dht20
杜邦线

软件部分

实现获取dht20的温湿度数据通过串口和蓝牙显示出来,(连接蓝牙需要烧录蓝牙固件)

dht20连接xw71的PTB5,PTB4上,下面是硬件连接图

image.png

软件方面参考了peripheral_hr历程,下面是获取dht20的温湿度数据,通过

ths_service_update(temp_val, hum_val);上报温湿度
static void ths_notify(void)
{
    struct sensor_value temp, hum;
    int ret;

    if (!device_is_ready(dht20)) {
        return;
    }

    ret = sensor_sample_fetch(dht20);
    if (ret < 0) {
        printk("Failed to fetch DHT20 sample (%d)\n", ret);
        return;
    }

    ret = sensor_channel_get(dht20, SENSOR_CHAN_AMBIENT_TEMP, &temp);
    if (ret < 0) {
        printk("Failed to get temperature (%d)\n", ret);
        return;
    }

    ret = sensor_channel_get(dht20, SENSOR_CHAN_HUMIDITY, &hum);
    if (ret < 0) {
        printk("Failed to get humidity (%d)\n", ret);
        return;
    }

    float temp_val = sensor_value_to_double(&temp);
    float hum_val = sensor_value_to_double(&hum);

    printk("test\n");
    printk("Temperature: %.2f C, Humidity: %.2f %%RH\n", (double)temp_val, (double)hum_val);

    ths_service_update(temp_val, hum_val);
    ths_service_notify();
}

下面是设备树的配置,采用了i2c1,和zephyr自带的dht20驱动

&lpi2c1 {
    dht20: dht20@38 {
        compatible = "aosong,dht20";
        reg = <0x38>;
    };
};


下图是串口与app接收到的数据,APP采用的是nrf connect

image.png


image.png

下图是微信小程序界面,我才用trae进行ai编程,点击start scan会自动连接xw71开发板,然后把获取到的数据显示到界面上,点击disconnect取消和板子的连接

image.png


代码

peripheral_hr2.zip











关键词: 功耗     湿度计    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]