RCM — ESP32 Room Controller
WT32-ETH01 firmware
Loading...
Searching...
No Matches
mqtt_app.c File Reference

MQTT-клиент: подключение к облачному брокеру и публикация тестового сообщения. More...

#include "mqtt_app.h"
#include <stdio.h>
#include "esp_check.h"
#include "esp_crt_bundle.h"
#include "esp_log.h"
#include "esp_mac.h"
#include "mqtt_client.h"

Go to the source code of this file.

Macros

#define MQTT_BROKER_URI   "mqtts://microtec-lab.ru:8883"
 URI облачного MQTT-брокера
 
#define MQTT_USERNAME   "ozlocks_mqtt"
 Учётные данные брокера
 
#define MQTT_PASSWORD   "Tr0cK's_57$Y74"
 
#define MQTT_CLIENT_ID_PREFIX   "ozl-mb"
 Префикс Client ID; суффикс — MAC Ethernet (уникален для каждого устройства)
 

Functions

static void build_client_id (void)
 Формирует Client ID вида wt32-eth02-AABBCCDDEEFF из MAC Ethernet.
 
const char * mqtt_app_get_client_id (void)
 Возвращает Client ID устройства (префикс + MAC Ethernet).
 
static void mqtt_event_handler (void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)
 Обработчик событий MQTT (подключение, ошибки, публикация).
 
esp_err_t mqtt_app_start (void)
 Запускает MQTT-клиент и подключается к брокеру.
 
esp_err_t mqtt_app_stop (void)
 Останавливает MQTT-клиент и освобождает ресурсы.
 
bool mqtt_app_is_connected (void)
 Проверяет, установлено ли соединение с MQTT-брокером.
 
esp_err_t mqtt_app_publish (const char *topic, const char *data, int qos, int retain)
 Публикует сообщение в MQTT, если клиент подключён.
 

Variables

static const char * TAG = "mqtt_app"
 
static esp_mqtt_client_handle_t s_mqtt_client
 
static bool s_mqtt_connected
 
static char s_client_id [24]
 

Detailed Description

MQTT-клиент: подключение к облачному брокеру и публикация тестового сообщения.

Definition in file mqtt_app.c.

Macro Definition Documentation

◆ MQTT_BROKER_URI

#define MQTT_BROKER_URI   "mqtts://microtec-lab.ru:8883"

URI облачного MQTT-брокера

Definition at line 19 of file mqtt_app.c.

Referenced by mqtt_app_start().

◆ MQTT_CLIENT_ID_PREFIX

#define MQTT_CLIENT_ID_PREFIX   "ozl-mb"

Префикс Client ID; суффикс — MAC Ethernet (уникален для каждого устройства)

Definition at line 26 of file mqtt_app.c.

Referenced by build_client_id().

◆ MQTT_PASSWORD

#define MQTT_PASSWORD   "Tr0cK's_57$Y74"

Definition at line 23 of file mqtt_app.c.

Referenced by mqtt_app_start().

◆ MQTT_USERNAME

#define MQTT_USERNAME   "ozlocks_mqtt"

Учётные данные брокера

Definition at line 22 of file mqtt_app.c.

Referenced by mqtt_app_start().

Function Documentation

◆ build_client_id()

static void build_client_id ( void )
static

Формирует Client ID вида wt32-eth02-AABBCCDDEEFF из MAC Ethernet.

Definition at line 35 of file mqtt_app.c.

References MQTT_CLIENT_ID_PREFIX, s_client_id, and TAG.

Referenced by mqtt_app_get_client_id().

◆ mqtt_app_get_client_id()

const char * mqtt_app_get_client_id ( void )

Возвращает Client ID устройства (префикс + MAC Ethernet).

Инициализируется при первом вызове, до подключения к брокеру.

Definition at line 45 of file mqtt_app.c.

References build_client_id(), and s_client_id.

Referenced by modbus_poll_task(), and mqtt_app_start().

◆ mqtt_app_is_connected()

bool mqtt_app_is_connected ( void )

Проверяет, установлено ли соединение с MQTT-брокером.

Definition at line 138 of file mqtt_app.c.

References s_mqtt_connected.

◆ mqtt_app_publish()

esp_err_t mqtt_app_publish ( const char * topic,
const char * data,
int qos,
int retain )

Публикует сообщение в MQTT, если клиент подключён.

Returns
ESP_OK при успешной постановке в очередь, ESP_ERR_INVALID_STATE если нет соединения.

Definition at line 143 of file mqtt_app.c.

References s_mqtt_client, s_mqtt_connected, and TAG.

Referenced by modbus_poll_task().

◆ mqtt_app_start()

esp_err_t mqtt_app_start ( void )

Запускает MQTT-клиент и подключается к брокеру.

Параметры брокера задаются в mqtt_app.c. После успешного подключения публикуется тестовое сообщение в тестовый топик.

Returns
ESP_OK при успешной инициализации клиента.

Definition at line 92 of file mqtt_app.c.

References mqtt_app_get_client_id(), MQTT_BROKER_URI, mqtt_event_handler(), MQTT_PASSWORD, MQTT_USERNAME, s_client_id, s_mqtt_client, and TAG.

Referenced by got_ip_event_handler().

◆ mqtt_app_stop()

esp_err_t mqtt_app_stop ( void )

Останавливает MQTT-клиент и освобождает ресурсы.

Returns
ESP_OK; если клиент не запущен — также ESP_OK без действий.

Definition at line 123 of file mqtt_app.c.

References s_mqtt_client, s_mqtt_connected, and TAG.

Referenced by eth_event_handler().

◆ mqtt_event_handler()

static void mqtt_event_handler ( void * handler_args,
esp_event_base_t base,
int32_t event_id,
void * event_data )
static

Обработчик событий MQTT (подключение, ошибки, публикация).

Definition at line 56 of file mqtt_app.c.

References s_mqtt_connected, and TAG.

Referenced by mqtt_app_start().

Variable Documentation

◆ s_client_id

char s_client_id[24]
static

Definition at line 30 of file mqtt_app.c.

Referenced by build_client_id(), mqtt_app_get_client_id(), and mqtt_app_start().

◆ s_mqtt_client

esp_mqtt_client_handle_t s_mqtt_client
static

Definition at line 28 of file mqtt_app.c.

Referenced by mqtt_app_publish(), mqtt_app_start(), and mqtt_app_stop().

◆ s_mqtt_connected

bool s_mqtt_connected
static

◆ TAG

const char* TAG = "mqtt_app"
static