Funpack3-4:基于MCX N94设计的MQTT节点设备
该项目使用了MCX N94,实现了MQTT节点设备的设计,它的主要功能为:使用板卡上的以太网接口连接到电脑上并通过以太网和电脑通信,实现数据传输。要求电脑可以获取到板卡上的温度,触摸和按键信息,并可以通过电脑控制板卡上的RGB LED灯。
标签
Funpack活动
物联网
IoT
MQTT
MCX N94
FRDM-MCXN947
小熊熊
更新2024-09-09
57

项目描述

这个项目使用的板卡是FRDM-MCXN947。将板卡通过网线与路由器连接,实现网络数据传输。电脑作为上位机,可以获取到板卡上的温度,触摸和按键信息,并可以通过电脑控制板卡上的RGB LED灯。

软件流程图及各功能对应的主要代码片段及说明


image.png



FRDM-MCXN947板卡上集成了多个传感器,有触摸传感器,按键和温度传感器。其中温度传感器使用的是P3T1755,这个传感器与FRDM-MCXN947之间使用了I3C的方式进行通信。项目里我会将板卡通过网线连接到路由器,并通过MQTT协议将上述三个传感器的数据发送出来,用电脑作为另一个MQTT客户端去接收这些数据。同时,板上还有一颗LED,可以作为执行器使用,让电脑通过MQTT来控制这颗LED灯珠。MQTT 服务器架设在一台树莓派zero 2w上。


这个项目中对FRDM-MCXN947的开发我使用了官方的MCUXpresso IDE来完成。官方准备了非常多的示例程序。这个项目参考的示例程序如下:


MQTT使用:lwip_mqtt_freertos

温度传感器:i3c_master_read_sensor_p3t1755

触摸传感器:tsi_v6_self_cap

LED使用:gpio_led_output


项目是基于lwip_mqtt_freertos这个例程来修改的,在上面补充了传感器的读取及LED控制部分的代码。在修改代码前,首先需要修改一下项目包含的component,选中我们要修改的项目,然后点击上面的这个按钮:

image.png

接着在打开的窗口中,在Drivers-Device-SDK Drivers选项下新增勾选GPIO,I3C和TSI_V6,主要负责GPIO输入输出,温度传感器和触摸传感器的驱动。

image.png

另外,还需要在Board Components-Device-SDK Drivers下勾选p3t1755。这是温度传感器的驱动程序:

image.png

接下来,需要去修改一下引脚配置,点击下图这个按钮可以进去配置界面:

image.png


在这里需要增加板载传感器所需的引脚,最终的配置如下,增加部分里的B12和C14分别用作LED和按钮,D3,F4,F6用作和温度传感器通信的I3C接口,下面的B4用作触摸传感器。修改完成后点击上面的更新源代码,就可以完成配置。

image.png


由于这个项目使用的是freertos,因此我们的新增代码并不放在lwip_mqtt_freertos.c里的main函数中,而是放到mqtt_freertos.c中。增添完代码的完整mqtt_freertos.c,使用的话记得要修改一开始的ip,这个ip是MQTT服务器的地址。

#define EXAMPLE_MQTT_SERVER_HOST "192.168.x.x"


PC上我使用python写了一个上位机程序,基于Qt6和Paho MQTT实现,同样的,需要在运行前修改MQTT服务器地址。当然,也可以不做Hard Code默认值,而是在使用中手动填入也可以。代码如下:

server_info = {
"Server_Address": "192.168.x.x",
"Server_Port": "1883",
"Username": "",
"Password": ""
}


最后说一下MQTT服务器的搭建,在树莓派上使用apt指令安装mosquitto,然后修改配置文件/etc/mosquitto/mosquitto.conf为以下内容,重启就可以了。

listener 1883
allow_anonymous true

功能展示及说明

运行FRDM-MCXN947上的代码,然后用串口监视器连接,就可以看到以下内容打印出来。

image.png

运行电脑上的python代码,跳出如下窗口。不需要填入任何内容,只需要点击连接,就会以我们hard code的默认参数进行连接。接着就可以在下面读取出传感器信息来,也可以通过按钮来开关板子上的LED灯。

image.png



对本活动的心得体会

这次活动让我使用到了最新的恩智浦开发板,性能强大,也也能支持多种运用。如果开发环境可以支持更加友好的arduino,想必可以更快的得到更广泛的应用。


附件下载
mqtt_pjt.zip
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号