kopia lustrzana https://github.com/martin-ger/esp_mqtt
58 wiersze
1.3 KiB
C
58 wiersze
1.3 KiB
C
#include "ets_sys.h"
|
|
#include "driver/uart.h"
|
|
#include "osapi.h"
|
|
#include "mqtt.h"
|
|
#include "wifi.h"
|
|
#include "config.h"
|
|
#include "debug.h"
|
|
#include "gpio.h"
|
|
#include "user_interface.h"
|
|
|
|
MQTT_Client mqttClient;
|
|
|
|
void wifiConnectCb(uint8_t status)
|
|
{
|
|
if(status == STATION_GOT_IP){
|
|
MQTT_Connect(&mqttClient);
|
|
|
|
MQTT_Subscribe(&mqttClient, "/test/topic");
|
|
MQTT_Subscribe(&mqttClient, "/test2/topic");
|
|
|
|
|
|
}
|
|
}
|
|
void mqttConnectedCb(uint32_t *args)
|
|
{
|
|
MQTT_Client* client = (MQTT_Client*)args;
|
|
INFO("MQTT: Connected\r\n");
|
|
}
|
|
|
|
void mqttDisconnectedCb(uint32_t *args)
|
|
{
|
|
MQTT_Client* client = (MQTT_Client*)args;
|
|
INFO("MQTT: Disconnected\r\n");
|
|
}
|
|
void mqttDataCb(uint32_t *args, const char* topic, uint32_t topic_len, const char *data, uint32_t lengh)
|
|
{
|
|
INFO("MQTT topic: %s, data: %s \r\n", topic, data);
|
|
}
|
|
|
|
|
|
void user_init(void)
|
|
{
|
|
uart_init(BIT_RATE_115200, BIT_RATE_115200);
|
|
os_delay_us(1000000);
|
|
|
|
CFG_Load();
|
|
|
|
MQTT_InitConnection(&mqttClient, sysCfg.mqtt_host, sysCfg.mqtt_port, SEC_SSL);
|
|
MQTT_InitClient(&mqttClient, sysCfg.device_id, sysCfg.mqtt_user, sysCfg.mqtt_pass, sysCfg.mqtt_keepalive);
|
|
MQTT_OnConnected(&mqttClient, mqttConnectedCb);
|
|
MQTT_OnDisconnected(&mqttClient, mqttDisconnectedCb);
|
|
MQTT_OnData(&mqttClient, mqttDataCb);
|
|
|
|
WIFI_Connect(sysCfg.sta_ssid, sysCfg.sta_pwd, wifiConnectCb);
|
|
|
|
INFO("\r\nSystem started ...\r\n");
|
|
}
|