Use a robust asynchronous MQTT client

This commit is contained in:
2026-03-11 20:49:38 +01:00
parent 1dcd9c8f0a
commit 2620d05f49
8 changed files with 147 additions and 124 deletions

View File

@@ -2,15 +2,28 @@
#define WLAN_H
#include "config.h"
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <AsyncMqttClient.h>
#include <Ticker.h>
#include <WiFi.h>
static AsyncMqttClient mqtt_client;
static Ticker mqtt_connection_timer, wlan_connection_timer;
extern Config *config;
void initialize_wlan();
void initialize_mqtt();
void connect_wlan();
void connect_mqtt();
void wlan_connection_handler(WiFiEvent_t event);
void on_mqtt_disconnection(AsyncMqttClientDisconnectReason reason);
void initial_connection(const char *ssid, const char *psk);
void connect_wlan(Config *config);
void connect_mqtt(PubSubClient &client, Config *config);
void disconnect_mqtt(PubSubClient &client, const char *topic);
size_t construct_json(float *data, char *buffer, int buffer_size);
void mqtt_transfer(PubSubClient &client, Config *config, float *data);
void enter_deep_sleep(bool wifi_timeout, int sleep_time);
void mqtt_transfer(float *data);
#endif /* WLAN_H */