16#include <OWMAdafruit_ADS1015.h>
17#include <Adafruit_MAX1704X.h>
19#include <WiFiClientSecure.h>
21#include <NimBLEDevice.h>
22#include <NimBLEAddress.h>
23#include <NimBLEAdvertisedDevice.h>
99 Serial.print(
"[DEBUG] bytes free = ");
100 double perc =
ESP.getFreeHeap();
108 Serial.print(
"[DEBUG] bytes free after setting heap size = ");
109 double perc =
ESP.getFreeHeap();
120 Serial.print(
"Subscribing to ");
144 NimBLEDevice::init(
"datagator");
164 Serial.printf(
"Gator MAC address: %s\n",
WiFi.macAddress().c_str());
165 Serial.printf(
"FIRMWARE VERSION v%i.%i.%i\n", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH);
176 Serial.println(
"\n[WARNING] WIFI_TIMEOUT");
188 Serial.println(
"\nCONNECTED");
190 Serial.print(
"Gator connected @ ");
192 Serial.printf(
"Gator MAC address: %s\n",
WiFi.macAddress().c_str());
void begin(void)
Sets up the HW (reads coefficients values, etc.)
Definition OWMAdafruit_ADS1015.cpp:112
Definition OWMAdafruit_ADS1015.h:150
Definition TimeStamp.hpp:91
#define PSSWD
Definition config.hpp:11
#define MQTT_BROKER_ADDR
Definition config.hpp:13
#define MQTT_PORT
Definition config.hpp:15
#define WIFI_TIMEOUT
Definition config.hpp:19
#define DEBUG
Definition config.hpp:17
#define NETWORK
Definition config.hpp:9
bool logging_available
is some logging interface available?
Definition logging_util.cpp:35
TimeStampBuilder * tsb
builds timestamp strings
Definition logging_util.cpp:52
bool absolute_timestamp_available
is an exact/accurate timestamp available?
Definition logging_util.cpp:37
bool init_data_logger()
Initialize logging interfaces.
Definition logging_util.cpp:80
void callback(char *topic, byte *message, unsigned int length)
Called when MQTT message is passed to the device by the broker.
Definition mqtt_util.hpp:146
#define SD_PWR_EN
uSD card power enable pin
Definition pinout.hpp:47
#define PWR_EN
Power enable pin for sensors.
Definition pinout.hpp:48
#define DONE
Done pin, for watchdog timer.
Definition pinout.hpp:50
Utilities for scheduling tasks and saving persistent data.
bool task_is_scheduled(int reset_count)
Check if a task will run this time, NVS must be initialized first!
Definition scheduler.hpp:94
void setup_i2c_sensors()
Initialize ALL i2c bus dependent sensors.
Definition setup_util.hpp:80
Adafruit_MAX17048 maxlipo
MAX17048 battery Fuel Gauge.
Definition setup_util.hpp:28
void setup_fuel_gauge()
Initialize and set the state variable for the fuel gauge.
Definition setup_util.hpp:70
WiFiUDP ntpUDP
WiFi stack object to pass to the NTPClient.
Definition setup_util.hpp:31
void setup_wifi_connection()
Connect to WiFi, set flags, timeout, etc.
Definition setup_util.hpp:158
void setup_adc()
Initialize the analog to digital converter.
Definition setup_util.hpp:59
int reset_count
number of resets retrieved for NVS
Definition scheduler.hpp:31
void setup_mqtt_connection()
Configure mqtt client settings.
Definition setup_util.hpp:95
NTPClient timeClient(ntpUDP)
network time protocol object to get current time
Adafruit_ADS1115 ads
Analog to digital converter object (I2C)
Definition setup_util.hpp:26
void setup_wireless_connections()
Setup all wireless interfaces including WiFi, BLE.
Definition setup_util.hpp:200
void setup_ble()
Initialize BLE stack.
Definition setup_util.hpp:141
void setup_logging()
Initialize logging and get timestamp from network, if available, for logging.
Definition setup_util.hpp:214
bool maxlipo_attached
Fuel Gauge successfully initialized?
Definition setup_util.hpp:29
void setup_gpio()
Initialize pins as input/output and set default state (HIGH/LOW)
Definition setup_util.hpp:39
const bool USB_DEBUG
USB serial debugging enabled.
Definition main.cpp:62
PubSubClient mqtt_client
MQTT client object for logging.