/esp32-no-std-async-mqtt-demo

Primary LanguageRustApache License 2.0Apache-2.0

esp32-no-std-async-mqtt-demo

This is a simple demo that we will use on the upcoming Espressif DevCon23.

WARN: MSRV: 1.72

ESP32C3 variant: https://github.com/JurajSadel/esp32c3-no-std-async-mqtt-demo

ESP32S3 variant: https://github.com/JurajSadel/esp32s3-no-std-async-mqtt-demo

What it does

The application measures temperature (BMP180) and sends the results to MQTT via WiFi - everything is done asynchronously.

It's async no_std application that uses esp-hal, esp-wifi, and rust-mqtt crates. The main skeleton is made of [embassy_dhcp](https://github.com/esp-rs/esp-wifi/blob/68dc11bbb2c0efa29c4acbbf134d6f142441065e/examples-esp32 /examples/embassy_dhcp.rs) and no_std_temperature_logger with a bunch of changes.

The first change is MQTT part added. We are using MQTTv5. As a broker, we usepublic-mqtt-broker and websocket-client to see the results.

As a next change, we had to make bmp180.rs async.

Build and run

You have to set the SSID and PASSWORD environment variables before building/running the program

cargo run --release

WARN: Be sure you are using release mode!

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.