Expand description

MQTT v5 client for the Wiznet W5500 SPI internet offload chip.

Limitations

This is very basic at the moment, and will be expanded in the future.

  • Does not support password protected MQTT servers.
  • Only supports QoS 0: At most once delivery.

Example

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")?;

Relevant Specifications

Feature Flags

All features are disabled by default.

  • embedded-hal: Passthrough to w5500-hl.
  • std: Passthrough to w5500-hl.
  • defmt: Enable logging with defmt. Also a passthrough to w5500-hl.
  • log: Enable logging with log.
  • w5500-tls: Enable MQTT over TLS.
  • p256-cm4: Passthrough to w5500-tls.

Re-exports

pub use w5500_tls;
pub use w5500_hl as hl;
pub use w5500_hl::ll;

Modules

tlsw5500-tls

MQTT over TLS

Structs

W5500 MQTT client.

MQTT client identifier

Reader for a published message on a subscribed topic.

SUBSCRIBE acknowledgment.

UNSUBSCRIBE acknowledgment.

Enums

MQTT client errors.

MQTT events.

Internal MQTT client state.

Subscribe scknowledgment codes.

Unsubscribe acknowledgment codes.

Constants

Default MQTT destination port.

Default MQTT source port.