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
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
.
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!
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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.