65 lines
1.2 KiB
C
65 lines
1.2 KiB
C
#ifndef GLOBALS_h
|
|
#define GLOBALS_h
|
|
|
|
#include "src/button.h"
|
|
#include "src/slowPWM.h"
|
|
#include "src/thermoControl.h"
|
|
#include "src/datatypes.h"
|
|
|
|
const byte ConfAddress = 0;
|
|
|
|
void ConnectMQTT();
|
|
static void SendSensorData();
|
|
void MessageReceived(char*, byte*, unsigned int);
|
|
|
|
char* ShowKettleState();
|
|
char* ShowKettleSetting();
|
|
void doEncoder();
|
|
void UpdateBoilKettle();
|
|
|
|
uint8_t KettleDuty = 0;
|
|
bool SettingChanged = false;
|
|
const int UpdateInterval = 5000;
|
|
unsigned long lastRun = 0;
|
|
|
|
// User I/O objects.
|
|
Button Enter;
|
|
MD_REncoder rotary = MD_REncoder(I_DT, I_CLK);
|
|
LiquidCrystal_I2C lcd(0x27,20,4);
|
|
|
|
// Internal I/O objects.
|
|
slowPWM boilPWM;
|
|
thermoControl KettleController;
|
|
|
|
// Network objects.
|
|
EthernetClient net;
|
|
PubSubClient mqtt_client;
|
|
|
|
// LCD menu setup.
|
|
LiquidLine kettle_state_line(0, 0, ShowKettleState);
|
|
LiquidLine kettle_power_line(0, 1, ShowKettleSetting);
|
|
LiquidScreen home_screen(kettle_state_line, kettle_power_line);
|
|
LiquidMenu menu(lcd);
|
|
|
|
// Pin Definitions
|
|
#ifndef I_CLK
|
|
#define I_CLK 2
|
|
#endif
|
|
#ifndef I_DT
|
|
#define I_DT 3
|
|
#endif
|
|
#ifndef I_BTN
|
|
#define I_BTN 4
|
|
#endif
|
|
#ifndef O_PWM
|
|
#define O_PWM 5
|
|
#endif
|
|
#ifndef I_CS1
|
|
#define I_CS1 47
|
|
#endif
|
|
#ifndef I_CS2
|
|
#define I_CS2 48
|
|
#endif
|
|
|
|
#endif
|