Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EdgeSync Arduino Library

Industrial IoT library for ESP32. Eliminates boilerplate for WiFi, MQTT, encrypted dashboard connectivity, Modbus RTU, digital I/O, OTA updates, and structured logging.

Quick Start

#include <EdgeSync.h>
EdgeSyncLib edge;

void setup() {
    Serial.begin(115200);
    edge.begin();
}

void loop() {
    edge.loop();
    edge.client.sendReading("temperature", 25.4, "C");
    edge.client.flush();
}

Configure at runtime via Serial Monitor:

set wifi_ssid YourNetwork
set wifi_pass YourPassword
set srv_host 192.168.0.101
set dev_token YOUR_DEVICE_TOKEN
reboot

Modules

Each module lives in its own subfolder under src/ with a dedicated README:

Folder Class Purpose
config/ EdgeConfig NVS-backed config + serial CLI
wifi/ EdgeWiFi WiFi with static IP, auto-reconnect, SoftAP fallback
mqtt/ EdgeMQTT MQTT wrapper with auto-reconnect + topic routing
client/ EdgeClient WebSocket + HTTP client for EdgeSync dashboard
crypto/ EdgeCrypto AES-256-CBC encryption (matches server protocol)
modbus/ EdgeModbus Modbus RTU master for RS485 industrial sensors
io/ EdgeInput, EdgeOutput Digital I/O debouncing + relay interlocks
sensor/ EdgeSensor Sensor data accumulation (avg/min/max)
ota/ EdgeOTA HTTP firmware update with progress UI
log/ EdgeLog Logging to Serial + SD card + MQTT

You can include individual modules without the master header:

#include <config/EdgeConfig.h>
#include <mqtt/EdgeMQTT.h>

Dependencies

Install via Arduino Library Manager:

  • PubSubClient by Nick O'Leary
  • WebSockets by Markus Sattler
  • ArduinoJson by Benoit Blanchon
  • Crypto by Rhys Weatherley
  • base64 by Densaugeo

Config Keys

Key Description Example
wifi_ssid WiFi network name MyNetwork
wifi_pass WiFi password secret123
wifi_ip Static IP (optional) 192.168.0.100
wifi_gw Gateway (optional) 192.168.0.1
wifi_sub Subnet (optional) 255.255.255.0
mqtt_host MQTT broker address 192.168.0.193
mqtt_port MQTT broker port 1883
mqtt_user MQTT username device1
mqtt_pass MQTT password pass
srv_host EdgeSync server host 192.168.0.101
srv_port EdgeSync server port 8000
dev_token Device auth token XWDWdQ...
dev_name Device display name EnergyMeter_01

Examples

  1. 01_BasicWiFi — WiFi + config CLI (simplest possible)
  2. 02_MQTTPublish — WiFi + MQTT sensor publishing
  3. 03_EdgeSyncDashboard — Full encrypted dashboard connection
  4. 04_ModbusEnergyMeter — RS485 energy meter → MQTT
  5. 05_DigitalIO_Andon — 8-switch + 4-relay andon system
  6. 06_FullIndustrialNode — All modules together

Architecture

src/
├── EdgeSync.h              ← master include
├── config/
│   └── EdgeConfig.h/.cpp   NVS storage — foundation
├── wifi/
│   └── EdgeWiFi.h/.cpp     Station + SoftAP
├── log/
│   └── EdgeLog.h/.cpp      Serial + SD + MQTT logging
├── mqtt/
│   └── EdgeMQTT.h/.cpp     PubSubClient wrapper
├── crypto/
│   └── EdgeCrypto.h/.cpp   AES-256-CBC
├── client/
│   └── EdgeClient.h/.cpp   WebSocket + HTTP → dashboard
├── modbus/
│   └── EdgeModbus.h/.cpp   RS485 Modbus RTU
├── io/
│   ├── EdgeInput.h/.cpp    Debounced digital inputs
│   └── EdgeOutput.h/.cpp   Relay control + interlocks
├── sensor/
│   └── EdgeSensor.h/.cpp   Reading accumulator
└── ota/
    └── EdgeOTA.h/.cpp      HTTP firmware update

License

MIT

About

Industrial IoT library for ESP32. Eliminates boilerplate for WiFi, MQTT, encrypted dashboard connectivity, Modbus RTU, digital I/O, OTA updates, and structured logging.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages