WIZnet W5300-TOE MQTT 使用 Nucleo-f429zi 发布和订阅
转发: WIZnet W5300-TOE MQTT publish and Subscribe (micropython)
项目介绍
这些部分将指导您完成一系列步骤,从配置开发环境到使用 STM32f429zi (nuleo-f429zi) 和 W5300-TOE 运行以太网示例 基本设置请参阅“入门”指南
https://github.com/Wiznet/W5300-TOE-MicroPython/blob/main/static/GettingStart.md
硬件要求
以太网示例使用基于 STM32 MCU 构建的 NUCLEO-F429ZI 和 WIZnet 的 W5300 以太网芯片。 如果您使用其他STM板,LIST中支持STMicroelectronics micropython的板,并检查该板是否支持FMC 16位数据
W5300-TOE
* W5300-TOE Shield产品页面尚不支持,提供后我会添加。 W5300产品页面是 Here
NUCLEO-F429ZI
STM32F429ZI 本文档基于 STM32F429ZI。 如果您使用其他STM板,请将其编辑到您的硬件配置中。
- FMC 数据引脚(0-8 或 0-16)
- FMC 地址引脚 (0-10)
- FMC 控制 GPIO 引脚(NE、NWE、NOE)
- WIZChip 控制 GPIO 引脚(INT、RST)
- UART3 引脚(连接到 ST-LINK)——更改为使用 Nucleoboard 上的 FMC。
- 引脚 D8、D9 -> 引脚 C10、C11
===================================================================
Wiznet5K(wiznet 产品的 micropython 库)
W5300 不包含在 microthon 提供的固件中。 所以你必须使用WIZnet提供的FW。
W5300 WIZNET5K FW的下载和编辑请参考官网入门指南(点击这里)
===================================================================
第1步:准备软件
MQTT Publish 测试需要以下串行终端程序,请从以下链接下载并安装。
在 2.0 之前的 Mosquitto 版本中,默认情况下允许客户端无需身份验证即可连接。 在 2.0 及更高版本中,您必须在客户端连接之前明确选择身份验证选项。 因此,如果您使用的是 2.0 或更高版本,请参阅以下链接在 Mosquitto 安装目录中设置“mosquitto.conf”。
步骤 2: 准备硬件
- 结合 WIZnet W5300-TOE 以太网扩展板和 NUCLEO-F429ZI STM 板
- 将以太网电缆连接到 W5300-TOE 以太网端口。
- 使用 5 针微型 USB 电缆将 NUCLEO-F429ZI 连接到台式机或笔记本电脑。
步骤 3:设置 MQTT 发布示例
要测试 MQTT 发布示例,应在代码中完成细微设置。
在这里获取基本代码:https://github.com/Wiznet/W5300-TOE-MicroPython/tree/main/example/MQTT
检查 [‘配置解释器…] 中的 COMport,然后打开 Thonny Python IDE。
- 将 umqttsimple 库代码复制到其中。 您可以通过以下链接访问 umqttsimple 库代码 (点击这里)
- 如果MicroPython官方开放的[umqttsimple.py]不起作用,请使用链接中的代码 (点击这里)
初始化以太网接口和配置。 打开示例代码以在 main() 中设置[网络信息]
nic.ifconfig(('IP Address', 'Netmask', 'Gateway', 'DNS'))
from wiznet_conf import wiznet5k_w5300
...
def main():
w5300=wiznet5k_w5300()
w5300.w5300_set_ip('192.168.11.104','255.255.255.0','192.168.11.1','8.8.8.8')
...
- 在 MQTT 配置中,[代理 IP] 地址是[您桌面的 IP]。
#mqtt config
mqtt_server = '192.168.1.11'
client_id = 'wiz'
topic_pub = b'hello'
topic_msg = b'Hello Wiznet'
last_message = 0
message_interval = 5
counter = 0
def mqtt_connect():
client = MQTTClient(client_id, mqtt_server, keepalive=60)
client.connect()
print('Connected to %s MQTT Broker'%(mqtt_server))
return client
- 将使用 MQTT 发布。
#MQTT Publish
def main():
try:
client = mqtt_connect()
except OSError as e:
reconnect()
while True:
client.publish(topic_pub, topic_msg)
time.sleep(3)
client.disconnect()
步骤 4 :上传并运行 MQTT 发布
通过执行以下命令使用 mosquitto 创建代理。 如果代理正常创建,代理的IP地址是您的台式机或笔记本电脑的当前IP,端口默认为1883。
mosquitto -c mosquitto.conf -p 1883 -v
如果 MQTT 发布示例在带有 W5300-TOE 的 NUCLEO-F429ZI 上正常运行,您可以看到 W5300-TOE 的网络信息,连接到代理并发布消息。
使用上述命令订阅代理。 订阅者将收到来自经纪人的消息。
mosquitto_sub -h 192.168.1.11 -t hello
步骤 5:设置MQTT订阅示例
要测试 MQTT 订阅示例,应在代码中完成细微设置。
*** thonny 设置和 main() 与发布相同
将使用 MQTT 订阅。
#subscribe
def main():
try:
client = mqtt_connect()
except OSError as e:
reconnect()
while True:
client.subscribe(topic_sub)
time.sleep(1)
client.disconnect()
文件