• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

【代码库】FRDM-RW612 门铃演示,带有 Wi-Fi 上的 MQTT 和 I2S 音频输出

09/30 10:41
760
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

dm-rw612frdm-door-chime-demo-main.zip

共1个文件

FRDM-RW612 门铃演示,带有 Wi-Fi 上的 MQTT 和 I2S 音频输出

本演示展示了如何使用 RW612-FRDM 开发板实现无线门铃。

门铃通过 Wi-Fi 和 MQTT 应用协议进行控制。门铃声音数据通过 RW612-FRDM Arduino 接口的 I2S 引脚传输。需要外部编解码器放大器才能在外部扬声器上播放声音。

主板:FRDM-RW612

类别:音频、网络、实时操作系统 (RTOS)、无线连接

外设:I2S

工具链:MCUXpresso IDE

目录

  1. 软件
  2. 硬件
  3. 设置
  4. 结果
  5. 常见问题解答
  6. 支持
  7. 发行说明

1.软件

2.硬件

带 I2S 接口/放大器的扬声器

扬声器

音箱配置:

将扬声器的正极和负极插入 I2S Amp(ADAFRUIT MAX98357A)的 + 和 - 输出

ADAFRUIT MAX98357A

MAX98357A配置:

增益引脚可以保持未连接状态以获得 9dB 的默认增益,请参阅数据表以了解不同的增益配置

Wi-Fi 接入点和 MQTT 服务器。此演示默认连接到开放的 MQTT 代理“HiveMQ”,但用户可以使用 Raspberry PI 3B+ 配置自己的接入点和 MQTT 代理。您可以按照以下指南进行操作:

Wi-Fi 接入点和 MQTT 服务器设置指南

FRDM RW612 开发板

FRDM RW612

3. 设置

带有 I2S 接口/放大器的扬声器:

  • 将扬声器板的 Vin 引脚连接到接头 J3 的引脚 10(5V)
  • 将扬声器板的 GND 引脚连接到接头 J3 的引脚 12(GND)
  • SD 引脚可以保持未连接状态
  • 增益引脚可以保持悬空
  • 将扬声器板的 Din 引脚连接到接头 J1 的引脚 2
  • 将扬声器板的 BCLK 引脚连接到接头 J2 的 12 号引脚
  • 将扬声器板的 LRC 引脚连接到接头 J1 的引脚 4

闪存 Wi-Fi 固件

除非擦除,否则必须烧录一次 Wi-Fi 固件。固件存储在指定地址。请确保在运行任何 Wi-Fi 演示应用程序之前,已烧录 Wi-Fi 固件。

在 Windows 上打开 J-Link 命令器,并使用 uUSB 线缆连接主机 PC 和 RW61x 开发板的 MCU-link 端口。J-Link 命令器是J-Link 软件和文档包的一部分。J ?-Link 工具 V7.92c 版本已添加对 RW61x 的支持?。

J-Link>con
Device>RW612
TIF>
SSpeed><Enter>

您可以在 FRDMRW612SDK 中找到 Wi-Fi 安全固件二进制文件。请使用MCUXpresso SDK Builder下载(请查看本文档第 1 部分“SW”以确认 SDK 版本)。解压 SDK 文件,并在SDKxxxxxxFRDM-RW612/components/connfwloader/fwbin/rw61xwrawcpu1a2.bin中找到 Wi-Fi 固件。

这是将 Wi-Fi 安全固件加载到 RW61x 闪存中的 J-Link 指令。

J-Link>loadbin rw61xw_raw_cpu1_a2.bin,0x08400000

J-Flash Lite 工具也可以用于此目的:

J-Flash Lite

Wi-Fi 接入点和 MQTT 代理

可以在wifi_mqtt.c中的定义部分配置演示的 Wi-Fi 凭证、用户和密码。

```c

ifndef AP_SSID

define APSSID "mynetwork"

endif

ifndef AP_PASSWORD

define APPASSWORD "mypassword"

endif

define WIFINETWORKLABEL "my_wifi"

```

可以在mqtt_freertos.c中的定义部分配置演示的 MQTT 代理地址/URL 和端口号。

```c
/*! @brief MQTT server host name or IP address. */

ifndef EXAMPLEMQTTSERVER_HOST

define EXAMPLEMQTTSERVER_HOST "broker.hivemq.com"

endif

/*! @brief MQTT server port number. */

ifndef EXAMPLEMQTTSERVER_PORT

define EXAMPLEMQTTSERVER_PORT 1883

```

使用默认配置,开发板会通过已配置的 Wi-Fi 网络连接到 HievMQ 代理,但您也可以在基于 Raspberry PI 的自定义接入点中使用其他代理。Raspberry PI 的设置说明可在此处找到。

要连接到基于自定义 Raspberry PI 的代理,您需要将mqtt_freertos.c中的以下行替换为 Raspberry PI 中设置的接入点的 IP(请注意,以下 IPv4 地址只是一个示例)。

```c

define EXAMPLEMQTTSERVER_HOST "10.2.14.25"

```


如何运行:

  1. 将项目导入 MCUXpresso IDE(检查本文档的第 1 部分SW以确认所使用的 MCUXpresso IDE 版本)并使用按钮进行构建 建造
  2. 使用调试器按钮 调试 来刷新应用程序。
  3. 使用 Windows 的设备管理器,查找为 FRDM-RW612 板中嵌入的 MCULink 创建的 COM 端口,并以 115200 kbps、1 个停止位、无奇偶校验打开串行终端。(可选)
  4. 运行演示。
  5. 连接电路板时门铃响起
  6. 使用 MQTT 应用程序或脚本发布到rw612/doorbell/sound主题。
  7. 每次发布主题时都会播放门铃的声音。

测试 Python 脚本

这里有一份 Python 脚本可以用来测试门铃。脚本可以在scripts文件夹中找到。

  • doorbell_pub.py - 此脚本连接到 MQTT 代理并发布到门铃/声音。

这些脚本需要 Paho-mqtt。以下步骤是在 Raspberry PI 中安装 Paho-mqtt。

```shell
$ sudo apt install python3-paho-mqtt

Run the publisher test script

$ python ./doorbell_pub.py
```

4.结果

一旦应用程序在 FRDM 上运行,串行终端上就会出现一条消息,其中包含有关网络和连接状态的信息,一旦成功连接,您就可以通过 IoT MQTT Panel 应用程序发布消息,您的手机必须连接到同一网络才能发布消息

[i] 成功初始化 Wi-Fi 模块 [i] 作为客户端连接到 ssid:piap,密码为 austin00 PKG_TYPE:BGA 设置 BGA tx 功率表数据 [i] 已连接到 Wi-Fi - ssid:piap 密码:austin00

IPv4 地址:10.42.0.21 IPv4 子网掩码:255.255.255.0 IPv4 网关:10.42.0.1

正在连接到 10.42.0.1 的 MQTT 代理... MQTT 客户端“nxp_cc44fb9c3138f7a14c8dcfc5098e3e31”已连接。正在订阅主题“rw612/doorbell/#”,QoS 级别为 1... 播放 已订阅主题“rw612/doorbell/#”。

使用APP发布

按照MqttAppSetup.md指南中的说明进行设置并使用智能手机应用程序将 MQTT 消息发送到 RW612 板。

物联网 MQTT 面板

24 位音频流

本演示通过 I2S 在 FRDM-RW612 和 I2S 扬声器之间传输 24 位音频。由于本演示使用 DMA,因此样本需要填充至 32 位。例如,像这样的 24 位样本:[0xaa, 0xbf, 0xfe] 需要在末尾添加一个额外的字节 0,如下所示:[0xaa, 0xbf, 0xfe, 0x00]。

内存使用情况(发布配置-Os)

| 内存区域 | 使用尺寸 | 区域大小 | 使用百分比 |
| ------------------------------ | ---------------- | -------------- | ------------ |
| QSPI_闪存: | 1,630,675 字节 | 8 MB | 19.44% |
| 静态随机存取存储器(SRAM): | 271,652 字节 | 1,216 千字节 | 21.82% |

门铃声音数组长度为 1,150,624 字节

当通过应用程序成功发布后,扬声器将播放门铃声,并且 FRDM 将在其串行端口输出以下消息:


Received 4 bytes from the topic "rw612/doorbell/sound": "Play
play"

5. 常见问题解答

尚未发现针对该项目的常见问题解答。

6. 支持

项目元数据

董事会徽章

类别徽章 类别徽章 类别徽章 类别徽章

周边徽章

工具链徽章

有关此示例的内容/正确性的问题可以作为此 GitHub 存储库中的问题输入。

来源:恩智浦appcodehub

  • dm-rw612frdm-door-chime-demo-main.zip
    下载
恩智浦

恩智浦

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。收起

查看更多

相关推荐