Add time display, set by NTP
This commit is contained in:
parent
6b11226ac0
commit
3083b7a383
|
@ -21,4 +21,5 @@ lib_deps =
|
|||
bblanchon/ArduinoJson@^6.19.4
|
||||
olikraus/U8g2@^2.34.4
|
||||
tzapu/WiFiManager@^0.16.0
|
||||
paulstoffregen/Time@^1.6.1
|
||||
monitor_speed = 115200
|
||||
|
|
|
@ -42,6 +42,8 @@ char* title_grid;
|
|||
|
||||
bool pv_charging = false;
|
||||
bool show_temp_outside;
|
||||
int time_hour;
|
||||
int time_minute;
|
||||
float temperature_outside;
|
||||
char* screenbuffer;
|
||||
|
||||
|
@ -54,6 +56,11 @@ void display_temp_outside(float mqtt_temp_outside) {
|
|||
temperature_outside = mqtt_temp_outside;
|
||||
}
|
||||
|
||||
void display_time(int hour, int minute) {
|
||||
time_hour = hour;
|
||||
time_minute = minute;
|
||||
}
|
||||
|
||||
void display_begin() {
|
||||
display.begin();
|
||||
}
|
||||
|
@ -107,11 +114,20 @@ void display_header(char* TEXT) {
|
|||
display.setFont(u8g2_font_6x10_tr);
|
||||
display.drawStr(2,7,TEXT);
|
||||
display.drawLine(0, 8, 128, 8);
|
||||
display.drawLine(94, 0, 94, 8);
|
||||
display.drawLine(62, 0, 62, 8);
|
||||
display.drawLine(93, 0, 93, 8);
|
||||
display.setCursor(97,7);
|
||||
if (time_hour < 10) {
|
||||
display.print("0");
|
||||
}
|
||||
display.print(time_hour); display.print(":");
|
||||
if (time_minute < 10) {
|
||||
display.print("0");
|
||||
}
|
||||
display.print(time_minute);
|
||||
if (show_temp_outside)
|
||||
{
|
||||
display.setCursor(70,7); display.print(temperature_outside,1); display.print("C");
|
||||
display.drawLine(58, 0, 58, 8);
|
||||
display.setCursor(67,7); display.print(temperature_outside,1); display.print("C");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
void display_setup(bool set_show_temp_outside,char lang[2]);
|
||||
void display_temp_outside(float temperature_outside);
|
||||
void display_time(int hour, int minute);
|
||||
void display_begin();
|
||||
void display_init(char* VERSION);
|
||||
void display_logo();
|
||||
|
|
23
src/main.cpp
23
src/main.cpp
|
@ -42,13 +42,16 @@
|
|||
#include <ArduinoJson.h>
|
||||
#include <Wire.h>
|
||||
#include <U8g2lib.h>
|
||||
#include "time.h"
|
||||
|
||||
//Program parts
|
||||
#include <pins.h>
|
||||
#include <lang.h>
|
||||
#include <display.h>
|
||||
|
||||
char VERSION[6] = "v0.7b";
|
||||
char VERSION[6] = "v0.8c";
|
||||
#define TimeZone "CET-1CEST,M3.5.0,M10.5.0/3"
|
||||
#define TimeServ "pool.ntp.org"
|
||||
|
||||
//Defaults
|
||||
char mqtt_server[15] = "";
|
||||
|
@ -96,6 +99,11 @@ void saveConfigCallback () {
|
|||
WiFiClient espClient;
|
||||
PubSubClient client(espClient);
|
||||
|
||||
//Time library setup
|
||||
time_t now;
|
||||
tm tm;
|
||||
|
||||
|
||||
//Globals
|
||||
long lastMsg = 0;
|
||||
char msg[50];
|
||||
|
@ -447,6 +455,17 @@ void setup() {
|
|||
//end save
|
||||
}
|
||||
|
||||
//NTP setup
|
||||
#ifdef ESP32
|
||||
configTime(0, 0, TimeServ);
|
||||
setenv("TZ", TimeZone, 1);
|
||||
tzset();
|
||||
#endif
|
||||
#ifdef ESP8266
|
||||
configTime(TimeZone, TimeServ);
|
||||
#endif
|
||||
|
||||
|
||||
delay(1000); //for screen display
|
||||
|
||||
//Generate mqtt topics from id and address
|
||||
|
@ -523,6 +542,8 @@ void loop() {
|
|||
{
|
||||
if(millis() - lastScreenChangeTime >= DISPLAY_SCREEN_INTERVAL)
|
||||
{
|
||||
time(&now); localtime_r(&now, &tm); //Get local time
|
||||
display_time(tm.tm_hour, tm.tm_min);
|
||||
display_screen++;
|
||||
lastScreenChangeTime += DISPLAY_SCREEN_INTERVAL;
|
||||
if (display_screen == display_last_screen + 1)
|
||||
|
|
Loading…
Reference in New Issue