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

共1条 1/1 1 跳转至

【e起DIY】本地获取温湿度值

菜鸟
2026-06-13 09:48:44     打赏

【环境创建】

操作系统:win11

zephyr版本号:

PS D:\luglZephyrproject> west -V
West version: v1.5.0
PS D:\luglZephyrproject> west status
=== status of manifest (zephyr):
HEAD detached at v4.4.0

【传感器连接】

首先从老师的提供的教料学习dht11的驱动。但是老师的DAT引脚与蓝牙驱动有突冲,因此需要修改引脚,我这里选择了D4。

image.png

但是这个脚连到了开发板的RGB灯上,刚好有上位电阻,满足了DHT11需要上拉电阻的条件。

image.png

【工程创建】

1、在zephyrproject下面创建app\mcx_w71_dht11空目录:

image.png

2、创建zephyr所需要的prj.conf、CmakeLists.txt等必要的工程。按照老师的工程添加dht11.c/h等。建好后目录如下:

mcx_w71_dht11/
├── CMakeLists.txt                     # target_sources 包含 src/main.c + src/dht11.c
├── prj.conf                           # BLE / SENSOR / DHT / settings / nvs
├── boards/
│   └── frdm_mcxw71.overlay            # dht11 节点 + &gpioa enable + &tpm0 disabled
├── src/
│   ├── main.c                         # zephyr 主程序:DHT11 + BLE peripheral
│   ├── dht11.c                         # bit-bang driver (DWT cycle counter, no syscalls)
│   └── dht11.h                         # dht11_init / dht11_read

3、修改ovarlay为GPA19

/ {
    aliases {
        dht11 = &dht11_node;
    };

    dht11_node: dht11 {
        compatible = "aosong,dht";
        dio-gpios = <&gpioa 19 GPIO_ACTIVE_HIGH>;
        status = "okay";
    };
};

/* DHT11 DATA on PTA19 (D4): GPIO-A port, pin 19. */
&gpioa {
    status = "okay";
};

/* Release PTA19 from the RGB-LED PWM. */
&tpm0 {
    status = "disabled";
};

&pinctrl {
    pinmux_dht11_data: pinmux_dht11_data {
        group0 {
            pinmux = <PTA19>;
            drive-strength = "low";
            slew-rate = "fast";
        };
    };
};

【编译下载】

在CmakeLists.txt添加对mculink的下载支持:

# ------------------------------------------------------------------
# Flash / debug runner pinning (west flash)
# ------------------------------------------------------------------
# Board.cmake already chooses `linkserver` as default flasher+debugger
# for frdm_mcxw71, but we pin the device string explicitly so
# `west flash` works without a probe/board dialog when more than one
# NXP MCU-Link is plugged in.
board_runner_args(linkserver "--device=MCXW716CxxxA:FRDM-MCXW71")
board_runner_args(jlink     "--device=MCXW716CxxxA"        "--reset-after-load")
board_finalize_runner_args(linkserver "--dt-flash=y")
board_finalize_runner_args(jlink     "--dt-flash=y")

编译后下载到开发板,打印日志如下:

image.png

到些获取DHT11的数据就完成了。

【总结】

在工程创建中,根据【e起DIY】活动的教材,以及eepw论坛前辈们的经验非常轻松的就完成了初步任务,感受到了zephyr的开发的便捷性。

当然需要对原理图与蓝牙相关知识的一些深入的了解。





关键词: Zephyr     温湿度     e起DIY    

共1条 1/1 1 跳转至

回复

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