mqtt ready to be implemented

This commit is contained in:
Priec
2025-09-29 22:52:48 +02:00
parent 1f7d35a6d3
commit c77f1f7696
4 changed files with 131 additions and 6 deletions

View File

@@ -3,6 +3,8 @@ runner = "espflash flash --monitor --chip esp32"
[env] [env]
ESP_LOG="info" ESP_LOG="info"
SSID = "nazov_wifi"
PASSWORD = "heslo"
[build] [build]
rustflags = [ rustflags = [

120
test1/Cargo.lock generated
View File

@@ -164,6 +164,47 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "defmt"
version = "0.3.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0963443817029b2024136fc4dd07a5107eb8f977eaf18fcd1fdeb11306b64ad"
dependencies = [
"defmt 1.0.1",
]
[[package]]
name = "defmt"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "548d977b6da32fa1d1fda2876453da1e7df63ad0304c8b3dae4dbe7b96f39b78"
dependencies = [
"bitflags 1.3.2",
"defmt-macros",
]
[[package]]
name = "defmt-macros"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d4fc12a85bcf441cfe44344c4b72d58493178ce635338a3f3b78943aceb258e"
dependencies = [
"defmt-parser",
"proc-macro-error2",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "defmt-parser"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e"
dependencies = [
"thiserror",
]
[[package]] [[package]]
name = "delegate" name = "delegate"
version = "0.13.4" version = "0.13.4"
@@ -279,7 +320,7 @@ dependencies = [
"embassy-time 0.5.0", "embassy-time 0.5.0",
"embedded-io-async", "embedded-io-async",
"embedded-nal-async", "embedded-nal-async",
"heapless", "heapless 0.8.0",
"log", "log",
"managed", "managed",
"smoltcp", "smoltcp",
@@ -302,7 +343,7 @@ dependencies = [
"embedded-io-async", "embedded-io-async",
"futures-sink", "futures-sink",
"futures-util", "futures-util",
"heapless", "heapless 0.8.0",
] ]
[[package]] [[package]]
@@ -316,7 +357,7 @@ dependencies = [
"embedded-io-async", "embedded-io-async",
"futures-core", "futures-core",
"futures-sink", "futures-sink",
"heapless", "heapless 0.8.0",
] ]
[[package]] [[package]]
@@ -368,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc55c748d16908a65b166d09ce976575fb8852cf60ccd06174092b41064d8f83" checksum = "dc55c748d16908a65b166d09ce976575fb8852cf60ccd06174092b41064d8f83"
dependencies = [ dependencies = [
"embassy-executor", "embassy-executor",
"heapless", "heapless 0.8.0",
] ]
[[package]] [[package]]
@@ -504,7 +545,7 @@ dependencies = [
"cfg-if", "cfg-if",
"esp-config", "esp-config",
"esp-println", "esp-println",
"heapless", "heapless 0.8.0",
"semihosting", "semihosting",
] ]
@@ -885,6 +926,16 @@ dependencies = [
"stable_deref_trait", "stable_deref_trait",
] ]
[[package]]
name = "heapless"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1edcd5a338e64688fbdcb7531a846cfd3476a54784dcb918a0844682bc7ada5"
dependencies = [
"hash32",
"stable_deref_trait",
]
[[package]] [[package]]
name = "heck" name = "heck"
version = "0.5.0" version = "0.5.0"
@@ -1089,6 +1140,28 @@ dependencies = [
"toml_edit", "toml_edit",
] ]
[[package]]
name = "proc-macro-error-attr2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
dependencies = [
"proc-macro2",
"quote",
]
[[package]]
name = "proc-macro-error2"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.101" version = "1.0.101"
@@ -1166,6 +1239,19 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "rust-mqtt"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f71160765f368fd9a84e0955e2ddb6d64ac9018fee1c5323354d6d08c816b40"
dependencies = [
"defmt 0.3.100",
"embedded-io",
"embedded-io-async",
"heapless 0.8.0",
"rand_core 0.6.4",
]
[[package]] [[package]]
name = "ryu" name = "ryu"
version = "1.0.20" version = "1.0.20"
@@ -1230,7 +1316,7 @@ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"byteorder", "byteorder",
"cfg-if", "cfg-if",
"heapless", "heapless 0.8.0",
"log", "log",
"managed", "managed",
] ]
@@ -1314,11 +1400,33 @@ dependencies = [
"esp-hal-embassy", "esp-hal-embassy",
"esp-println", "esp-println",
"esp-wifi", "esp-wifi",
"heapless 0.9.1",
"log", "log",
"rust-mqtt",
"smoltcp", "smoltcp",
"static_cell", "static_cell",
] ]
[[package]]
name = "thiserror"
version = "2.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "2.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "toml_datetime" name = "toml_datetime"
version = "0.7.2" version = "0.7.2"

View File

@@ -64,6 +64,8 @@ smoltcp = { version = "0.12.0", default-features = false, features = [
"socket-udp", "socket-udp",
] } ] }
static_cell = "2.1.1" static_cell = "2.1.1"
rust-mqtt = { version = "0.3.0", default-features = false, features = ["no_std"] }
heapless = "0.9.1"
[profile.dev] [profile.dev]

View File

@@ -0,0 +1,13 @@
# MQTT Implementation Notes
* WiFi connection runs in a separate task with auto-reconnect functionality
* Network stack operates in a dedicated packet processing task
* MQTT uses TCP socket connection (MqttClient wraps this socket)
* ClientConfig specifies: MQTT version, QoS levels, client ID
* Standard flow: connect_to_broker() → send_message() or subscribe()
## Implementation:
1. Perform DNS lookup for broker hostname
2. Establish TCP socket connection
3. Create MqttClient with configuration
4. Implement connect, publish, and subscribe logic