当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]WIZio-RTU 是一款基于 WIZnet W55MH32Q 芯片打造的高性能工业控制板,专为工业应用而设计。它具备灵活的电源选项、多种接口以及可靠的控制核心,能够满足各种工业监控和自动化需求。

WIZio-RTU 是一款基于 WIZnet W55MH32Q 芯片打造的高性能工业控制板,专为工业应用而设计。它具备灵活的电源选项、多种接口以及可靠的控制核心,能够满足各种工业监控和自动化需求。

通过与 MicroPython 的集成,您可以轻松使用 HTTP 和 MQTT 等协议对板上的外设进行控制和监控。本项目展示了使用 HTTP 和 MQTT 实现的简单 LED 开关应用。

WIZio-RTU 引脚布局

上图展示了 WIZio-RTU 上的主要接口,包括:

•8 个数字输入

•8 个继电器输出

•4 个模拟输入

•2 个模拟输出

•以太网连接

•RS-232 和 RS-485 通信

•可选的 CAN 和 4G 支持

•内置 EEPROM

•可选的 PoE 供电支持

这些接口使该控制板适用于多种应用场景,从简单的开发项目到工业监控和自动化系统均可胜任。在这个简单的项目中,我将一个外部LED连接到RY1继电器的输出端。

另一块板(W55MH32L-EVB)用作外部电源。

项目结构

在接下来的部分中,我将首先介绍通过HTTP版本来切换继电器的方法,包括使用HTTP网页界面或调用HTTP端点;然后介绍MQTT版本,通过我们封装的MQTT仪表板或WSL终端实现相同功能。

对于本程序所需的大部分代码,通常只需修改http_app.py和mqtt_app.py这两个文件。这两个文件列出了HTTP的默认端点、MQTT订阅的默认主题,以及每个端点/主题的功能。

HTTP协议

关于HTTP版本,请访问WIZio-RTU HTTP配置服务器GitHub仓库获取代码,以及WIZio-RTU HTTP配置文档了解相关说明。

该仓库中的主要文件为http_app.py、device.py和server.py。

•device.py:WIZio-RTU的外设状态

•server.py:一个轻量级的HTTP服务器,用于管理WIZio-RTU的路由http_app.py:创建服务器和设备对象,并提供用户访问的端点。

在板子复位后,main.py 应自动启动程序。REPL 将显示一个IP地址,您可以使用该地址打开网页界面。

打开数字I/O标签页,点击 RY1 按钮以控制第一个继电器。当继电器开启时,通过RY1和COM端子连接的外部LED应亮起。

您还应该听到继电器发出“咔哒”声,并在WIZio-RTU板上看到对应的继电器指示灯亮起。

下方的数字输入部分显示设备当前的输入状态。JavaScript会定期向 http_app.py 中定义的 /din 端点发送请求,自动更新这些值。

您可以在文档页面查看其他标签页的使用方法,以及更深入的技术细节,了解服务器与设备如何协作。

MQTT协议

如需MQTT版本,请访问 WIZio-RTU MQTT设备GitHub仓库获取代码,以及WIZio-RTU MQTT设备配置文档以了解相关说明。

该仓库的核心文件包括 mqtt_app.py、device.py 和 device_mqtt.py。

•mqtt_app.py:注册您希望监听并执行操作的主题。

•device.py:WIZio-RTU 的外设状态。

•device_mqtt.py:设备与 MQTT 库之间的桥梁。

此外还有一个 tools/dashboard.py 文件,您可以在本地运行自定义的 MQTT 控制面板来管理 WIZio-RTU。

同样地,在板子复位后,main.py 应直接运行 MQTT 应用程序。如果成功,终端应显示请求 MQTT 消息的提示。

如果您使用其他 MQTT 控制面板工具,则需要修改 mqtt_app.py 中的主题名称,以便控制设备。

在本示例中,我将使用内置的 MQTT 控制面板。如果您在本地运行,需先安装 Eclipse Mosquitto,并允许本地计算机访问端口 1883。

要运行控制面板,请按照 ReadMe 文件说明操作,或在克隆后进入 tools/ 目录并运行以下命令。

打开控制面板后,点击“连接”以测试是否能连接到本地 Broker。如果成功,Broker 状态应变为“已连接”。

在 WIZio-RTU 上,设置 mqtt.将 JSON 发送到 MQTT 服务器的 IP 地址,然后重置板子。如果板子能够连接到服务器,你应该会在“连接”页面看到日志开始更新。

打开数字 I/O 部分,它使用与 HTTP 项目类似的界面,但仅使用不同的协议。

要开启 LED,只需点击 RY1 按钮,设备就会在 RY1 下的外部电路 LED 上亮起。同时,内置的 LED 也会亮起,并发出非常明显的咔哒声。

输入部分的工作方式与 HTTP 部分类似,但不再通过仪表盘调用端点,而是由设备持续向指定主题发送其输入状态,必要时会更新输入框内容。

访问文档页面,了解有关 MQTT 连接的更多详细信息以及如何操作其他标签页。

结论

WIZio-RTU 提供了多种实用的接口,可用于监控和控制工业设备,而 MicroPython 使该板的编程和实验变得更加简便。

在本简单的示例中,使用 HTTP 和 MQTT 协议分别控制了相同的继电器和 LED 电路,展示了该板支持不同协议进行控制的能力。

尽管本项目仅演示了基本的继电器控制功能,但相同的应用也可以用于处理数字输入、模拟信号、串行通信、EEPROM 存储以及其他 WIZio-RTU 的功能。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

工业现场大量设备还在跑Modbus RTU(RS485)或Modbus TCP,而上层平台(云、MES、SCADA)普遍走MQTT。嵌入式网关(ARM Cortex-A7/M4 + Linux/RTOS)做协议转换时,最...

关键字: Modbus MQTT 协议转换

当机器人在室内运行时,对指令的响应相当良好,但仍需保持在遥控器的直接视线范围内。然而,当机器人清洁窗户外部时,接收指令就会变得相当困难。有时我不得不站在玻璃旁边,反复按按钮,机器人才会做出反应。

关键字: 机器人 Wi-Fi MQTT Zigbee

一位自动化工程师站在PLC选型的十字路口,面前摆着的不再仅仅是I/O点数、CPU速度、内存大小这些传统指标。工业物联网的浪潮下,两个陌生的字母组合——MQTT和OPC UA——正悄然成为选型表单上的“必答题”。工厂需要将...

关键字: MQTT OPC

在万物互联的今天,物联网已经从概念走向落地,走进了我们生活生产的方方面面:从家中的智能灯泡到工厂流水线的传感器,从田间的土壤监测设备到共享单车上的定位装置,无数联网设备每时每刻都在交换着数据。要让这些计算能力有限、网络条...

关键字: 物联网 MQTT

大多数传统的街道照明系统依赖于简单的天文定时器或光敏传感器,本质上是“盲目的”和“呆板的”。当灯光熄灭或继电器故障时,维修人员只能通过市民投诉才能得知。

关键字: MQTT JSON 光敏传感器

机器对机器(M2M)通信场景,消息队列作为系统解耦的核心组件,通过异步传输机制提升系统吞吐量与容错能力。服务质量(QoS)保障机制则是确保消息可靠传递的关键技术。本文将从协议原理、QoS等级划分、技术实现及典型应用场景四...

关键字: MQTT CoAP AMQP

在资源受限的嵌入式场景中,RTOS的引入往往带来额外的内存开销和调度复杂性。以某智能电表项目为例,其主控芯片STM32F103仅配备20KB RAM,若采用FreeRTOS,仅内核就需占用8KB内存,导致剩余资源无法满足...

关键字: W5500 MQTT

智慧城市与工业物联网,超长待机设备的需求正以每年30%的速度增长。以杭州某独居老人火灾预警系统为例,其部署的2000台NB-IoT烟感报警器需在5号电池供电下持续工作3年以上,这对通信频率与功耗的平衡提出了严苛挑战。ST...

关键字: NB-IoT MQTT

在河南临颍县的智慧辣椒种植基地,一排排传感器正以每秒1次的频率采集土壤湿度数据。这些数据通过W5500以太网模块与LoRa无线模块的组合,经MQTT协议上传至云端。然而,当网络突然中断时,设备能否确保关键灌溉指令不丢失?...

关键字: MQTT QoS
关闭