Official V1.0 Release!
Demo Video-
Link to Repo.-
https://github.com/JohnnyG89/SeaDragon
Updates:
Put the Physical IO declarations and alarms (output scheduler) into "IO.h"
Pre-compile Macro for whether or not to use the PubSub.h library directly (prgMQTT, prgRPC) or use the ThingsBoard Wrapper (Thingsboard.h). Use one or the other.
Each task with network comms has its own EthernetClient() instance
Global "Fault Word" for transferring, recording machine faults
Put the IO modules into their own structure to make it easier to make functions for common functionality
Hourly alarms for the powerhead and wavemaker
Autofeeders and equipment now have their own tasks. (prgATO was replaced by prgEquipment)
2x SIM input modules for hard-button control
Re-initialization of hardware if power is lost
Raw, smooth, and scaled calculators for the analog sensors (pH, 2x Temp)
Lights now have their own task.
prgMQTT - sample and send telemetry values in chunks
prgRPC - catch RPC calls and manage the commensurate IO
New pre-compile macro's so you're not including tons of objects that aren't being used in your current configuration (i.e. including both prgMQTT/prgRPC and prgThingsBoard_Telemetry/prgThingsBoard_RPC will eat up all of the SRAM!)
StorageManager and CommManager are now wrapped into "program.ino" bc you can only fit so many tabs in the Arduino IDE before it gets clunky.
Some memory optimizations
Powerhead/wavemaker control
200 samples for smoothing average for analog sensors
Separate MQTT clients and topics for telemetry and RPC management