Massive changes. Added a quite nice webinterface with live data using WebSockets. Removed the FTP server (wasn't that useful anyways). JSON creating using ArduinoJson instead of String concatenation. Ans, and, and.
This commit is contained in:
32
src/main.cpp
32
src/main.cpp
@ -2,6 +2,7 @@
|
||||
#include <SPI.h>
|
||||
#include <SD.h>
|
||||
#include <WiFi.h>
|
||||
#include <ESPmDNS.h>
|
||||
#include "config.h"
|
||||
#include "controller.h"
|
||||
#include "player.h"
|
||||
@ -9,14 +10,13 @@
|
||||
#include "http_server.h"
|
||||
#include "mqtt_client.h"
|
||||
#include "playlist_manager.h"
|
||||
#include <ESP8266FtpServer.h>
|
||||
|
||||
Controller* controller;
|
||||
Player* player;
|
||||
PlaylistManager* pm;
|
||||
//HTTPServer* http_server;
|
||||
FtpServer* ftp_server;
|
||||
HTTPServer* http_server;
|
||||
MQTTClient* mqtt_client;
|
||||
|
||||
unsigned long last_mqtt_report = 0;
|
||||
|
||||
void setup() {
|
||||
@ -65,18 +65,28 @@ void setup() {
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
}
|
||||
INFO("WiFi connected.\n");
|
||||
INFO("WiFi connected. IP address: %s\n", WiFi.localIP().toString().c_str());
|
||||
|
||||
mqtt_client = new MQTTClient();
|
||||
//MDNS.begin("esmp3");
|
||||
MDNS.begin("esmp3");
|
||||
|
||||
controller->set_mqtt_client(mqtt_client);
|
||||
|
||||
DEBUG("Setting up WiFi and web server...\n");
|
||||
//http_server = new HTTPServer(player, controller);
|
||||
DEBUG("Setting up HTTP server...\n");
|
||||
http_server = new HTTPServer(player, controller);
|
||||
controller->register_http_server(http_server);
|
||||
|
||||
ftp_server = new FtpServer();
|
||||
ftp_server->begin("user", "pass");
|
||||
DEBUG("Starting NTP client...\n");
|
||||
// Taken from https://github.com/esp8266/Arduino/blob/master/cores/esp8266/TZ.h
|
||||
configTzTime("CET-1CEST,M3.5.0,M10.5.0/3", "europe.pool.ntp.org");
|
||||
struct tm time;
|
||||
if (getLocalTime(&time, 10000)) {
|
||||
char buffer[100];
|
||||
strftime(buffer, 100, "%Y-%m-%d %H:%M:%S", &time);
|
||||
DEBUG("Got time: %s\n", buffer);
|
||||
} else {
|
||||
INFO("Could not fetch current time via NTP.\n");
|
||||
}
|
||||
|
||||
INFO("Initialization completed.\n");
|
||||
}
|
||||
@ -86,11 +96,9 @@ void loop() {
|
||||
if (more_data_needed) return;
|
||||
|
||||
controller->loop();
|
||||
//http_server->loop();
|
||||
ftp_server->handleFTP();
|
||||
mqtt_client->loop();
|
||||
if ((last_mqtt_report + 10000 < millis()) || last_mqtt_report > millis()) {
|
||||
last_mqtt_report = millis();
|
||||
mqtt_client->publish_status(controller->get_status_json());
|
||||
mqtt_client->publish_status(controller->json());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user