base stack

This commit is contained in:
2018-11-17 15:26:07 +01:00
commit 52113e4fb8
91 changed files with 22150 additions and 0 deletions

74
src/main.cpp Normal file
View File

@@ -0,0 +1,74 @@
#include <config.h>
#include <WiFiNet.h>
#include <Sprocket.h>
#include <DisplayPlugin.h>
#include <WebServerConfig.h>
#include <WebServerPlugin.h>
#include <WebConfigPlugin.h>
#include <WebApiPlugin.h>
#include <MqttPlugin.h>
WiFiNet *network;
Sprocket *sprocket;
DisplayPlugin *displayPlugin;
WebServerPlugin *webServerPlugin;
WebConfigPlugin *webConfigPlugin;
WebApiPlugin *webApiPlugin;
MqttPlugin *mqttPlugin;
void enableOled()
{
pinMode(16, OUTPUT);
digitalWrite(16, LOW); // set GPIO16 low to reset OLED
delay(50);
digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high
}
void setup()
{
delay(3000);
enableOled();
sprocket = new Sprocket({STARTUP_DELAY, SERIAL_BAUD_RATE});
displayPlugin = new DisplayPlugin({0x3c, 4, 15, 12, 4, 0});
mqttPlugin = new MqttPlugin({MQTT_CLIENT_NAME, MQTT_HOST, MQTT_PORT, MQTT_TOPIC_IN, MQTT_TOPIC_OUT});
webServerPlugin = new WebServerPlugin({WEB_CONTEXT_PATH, WEB_DOC_ROOT, WEB_DEFAULT_FILE, WEB_PORT});
webConfigPlugin = new WebConfigPlugin(webServerPlugin->server);
webApiPlugin = new WebApiPlugin(webServerPlugin->server);
sprocket->addPlugin(displayPlugin);
sprocket->addPlugin(webServerPlugin);
sprocket->addPlugin(webConfigPlugin);
sprocket->addPlugin(webApiPlugin);
sprocket->addPlugin(mqttPlugin);
displayPlugin->display->init();
displayPlugin->display->flipScreenVertically();
displayPlugin->splashScreen("Wibbly", "Wobbly", "0.0.1", "Sprocket");
network = new WiFiNet(
SPROCKET_MODE,
STATION_SSID,
STATION_PASSWORD,
AP_SSID,
AP_PASSWORD,
HOSTNAME,
CONNECT_TIMEOUT);
network->init();
if (network->connect())
{
sprocket->activate();
displayPlugin->display->flipScreenVertically();
sprocket->publish("ui/clear", "");
sprocket->publish("ui/print",
"Heap: " + String(ESP.getFreeHeap()) + "\n" +
"Host: " + String(network->config.hostname) + "\n" +
"AP: " + String(network->config.stationSSID) + "\n" +
"IP: " + WiFi.localIP().toString() + "\n" +
"Gateway: " + WiFi.gatewayIP().toString());
}
}
void loop()
{
sprocket->loop();
yield();
}