#mqtt-client #mqtt #w5500 #wiznet

不使用 std w5500-mqtt

为 Wiznet W5500 网络卸载芯片提供的 MQTT 客户端

7 个不稳定版本 (3 个重大更改)

0.4.0 2024年6月9日
0.3.0 2023年10月2日
0.2.0 2023年8月6日
0.1.2 2022年8月1日
0.1.0-alpha.02022年3月20日

#166 in 嵌入式开发

Download history 78/week @ 2024-04-29 40/week @ 2024-05-06 21/week @ 2024-05-13 10/week @ 2024-05-27 116/week @ 2024-06-03 164/week @ 2024-06-10 46/week @ 2024-06-17 42/week @ 2024-06-24 17/week @ 2024-07-01 38/week @ 2024-07-08 17/week @ 2024-07-15 116/week @ 2024-07-22 57/week @ 2024-07-29 52/week @ 2024-08-05 13/week @ 2024-08-12

每月下载量 242

MIT 许可证

210KB
3K SLoC

w5500-mqtt

Wiznet W5500 SPI 网络卸载芯片提供的 MQTT v5 客户端。

局限性

目前功能非常基础,未来将会扩展。

  • 不支持密码保护的 MQTT 服务器。
  • 仅支持 QoS 0:最多一次投递。

示例

use w5500_mqtt::{
    ll::{
        net::{Ipv4Addr, SocketAddrV4},
        Sn,
    },
    Client, ClientId, Event, DST_PORT, SRC_PORT,
};

let mut client: Client = Client::new(
    Sn::Sn2,
    SRC_PORT,
    SocketAddrV4::new(Ipv4Addr::new(192, 168, 5, 6), DST_PORT),
);

// wait for a connection or die trying
while !matches!(client.process(&mut w5500, monotonic_secs())?, Event::None) {}

// publish to "duck" with a payload "quack"
client.publish(&mut w5500, "duck", b"quack")?;

// subscribe to "cow"
client.subscribe(&mut w5500, "cow")?;

相关规范

功能标志

默认情况下禁用所有功能。

  • eh0: 通过 w5500-hl 传递。
  • eh1: 通过 w5500-hl 传递。
  • defmt: 使用 defmt 启用日志记录。也是一个通过 w5500-hl 传递。
  • log: 使用 log 启用日志记录。
  • w5500-tls: 启用通过 TLS 的 MQTT。
  • p256-cm4: 通过 w5500-tls 传递。

依赖项

~0.3–1MB
~17K SLoC