IoT Comment
This commit is contained in:
parent
9a0f02fcd9
commit
d75d098247
2 changed files with 287 additions and 20 deletions
|
@ -15,6 +15,7 @@
|
|||
#include <FRAM.h>
|
||||
#include <map>
|
||||
|
||||
// MQTT Connection Parameters
|
||||
#define TCP_TIMEOUT_SEC 5
|
||||
#define MQTT_RECONNECT_INTERVAL 30000
|
||||
|
||||
|
@ -24,31 +25,48 @@
|
|||
// Total of 267 bytes
|
||||
#define IOT_FRAM_ADDRESS 34
|
||||
|
||||
/**
|
||||
* @brief The network configuration struct
|
||||
* @note This struct will be saved to FRAM when calling saveNetworkConfig
|
||||
*/
|
||||
struct NetworkConfig
|
||||
{
|
||||
IPAddress ip;
|
||||
IPAddress gateway;
|
||||
IPAddress subnet;
|
||||
IPAddress dns1;
|
||||
IPAddress dns2;
|
||||
char hostname[32];
|
||||
bool useStaticIp;
|
||||
bool useWifi;
|
||||
bool wifiUseAuth;
|
||||
char ssid[32];
|
||||
char password[32];
|
||||
IPAddress ip; ///< The IP address
|
||||
IPAddress gateway; ///< The gateway address
|
||||
IPAddress subnet; ///< The subnet mask
|
||||
IPAddress dns1; ///< The primary DNS server
|
||||
IPAddress dns2; ///< The secondary DNS server
|
||||
char hostname[32]; ///< The hostname
|
||||
bool useStaticIp; ///< Whether to use a static IP, if false, DHCP will be used
|
||||
bool useWifi; ///< Whether to use WiFi or Ethernet, if false, Ethernet will be used
|
||||
bool wifiUseAuth; ///< Whether to use WiFi authentication, if false, ssid and password will be ignored
|
||||
char ssid[32]; ///< The WiFi SSID, even if wifiUseAuth is false, this should be set
|
||||
char password[32]; ///< The WiFi password, even if wifiUseAuth is false, this should be set
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief The MQTT configuration struct
|
||||
* @note This struct will be saved to FRAM when calling saveMqttConfig
|
||||
*/
|
||||
struct MqttConfig
|
||||
{
|
||||
char mqtt_server[32];
|
||||
uint16_t mqtt_port;
|
||||
char mqtt_user[32];
|
||||
char mqtt_password[32];
|
||||
bool mqtt_useauth;
|
||||
char base_topic[32];
|
||||
char mqtt_server[32]; ///< The MQTT server address
|
||||
uint16_t mqtt_port; ///< The MQTT server port
|
||||
char mqtt_user[32]; ///< The MQTT username, even if mqtt_useauth is false, this should be set
|
||||
char mqtt_password[32]; ///< The MQTT password, even if mqtt_useauth is false, this should be set
|
||||
bool mqtt_useauth; ///< Whether to use MQTT authentication, if false, mqtt_user and mqtt_password will be ignored
|
||||
char base_topic[32]; ///< The base topic for the MQTT messages
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief The ESPMegaIoT class is a class that is used to interface with the ESPMegaPRO IoT module
|
||||
*
|
||||
* This class allows you to register IoT components and interface with them through MQTT.
|
||||
* This class also manages the network and MQTT connections for you.
|
||||
* Supports both WiFi and Ethernet.
|
||||
* Also allows you to save and load network and MQTT configurations to and from FRAM.
|
||||
* Also provides MQTT helpers for publishing and subscribing to topics.
|
||||
*/
|
||||
class ESPMegaIoT
|
||||
{
|
||||
public:
|
||||
|
@ -63,7 +81,7 @@ public:
|
|||
void publishRelative(char *topic, char *payload);
|
||||
// Subscribe topic appended with base topic
|
||||
void subscribeRelative(char *topic);
|
||||
void subscribeToTopic(char *topic);
|
||||
void subscribe(char *topic);
|
||||
void unsubscribeFromTopic(char *topic);
|
||||
void connectToWifi(char *ssid, char *password);
|
||||
void connectToWifi(char *ssid);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue