Skip to content

Commit a27f84f

Browse files
committed
Add name config entry
1 parent 10b229a commit a27f84f

File tree

4 files changed

+26
-245
lines changed

4 files changed

+26
-245
lines changed

esp8266-ledclock/esp8266-ap.ino

Lines changed: 0 additions & 234 deletions
This file was deleted.

esp8266-ledclock/esp8266-ledclock.ino

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <WiFiServer.h>
99
#include <WiFiClient.h>
1010
#include <ESP8266WebServer.h>
11-
#include <ESP8266mDNS.h>
1211

1312
#include "mainPage.h"
1413

@@ -23,8 +22,8 @@ int clockMode;
2322
time_t syncInterval = 3600;
2423

2524
ESP8266WebServer server (80);
26-
MDNSResponder mdns;
2725

26+
String clockName = "";
2827
String w_ssid;
2928
String w_psk;
3029
long timezone;
@@ -41,6 +40,7 @@ void handleRoot() {
4140
s.replace("@@NTPSRV@@", ipToString(timeServer));
4241
s.replace("@@NTPINT@@", String(syncInterval));
4342
s.replace("@@SYNCSTATUS@@", timeStatus() == timeSet ? "OK" : "Overdue");
43+
s.replace("@@CLOCKNAME@@", clockName);
4444
server.send(200, "text/html", s);
4545
}
4646

@@ -69,6 +69,9 @@ void handleForm() {
6969
syncInterval = syncInt.toInt();
7070
response += "The NTP sync interval is: " + syncInt + "s\r\n";
7171

72+
clockName = server.arg("clockname");
73+
response += "Clock name is: " + clockName;
74+
7275
server.send(200, "text/plain", response);
7376
saveSettings();
7477
if (update_wifi == "1") {
@@ -86,14 +89,12 @@ void setup() {
8689
server.on("/", handleRoot);
8790
server.on("/form", handleForm);
8891
server.begin();
89-
mdns.begin(CLOCK_NAME, WiFi.localIP());
9092
}
9193

9294
void loop() {
9395
server.handleClient();
9496
if (displayIP()) return;
9597
if (clockMode == MODE_CLOCK) {
96-
mdns.update();
9798
if (timeStatus() != timeNotSet) {
9899
if (now() != prevDisplay) { //update the display only if time has changed
99100
prevDisplay = now();
@@ -131,6 +132,8 @@ void setupWiFi() {
131132
#define EEPROM_TIMESERVER_LENGTH 4
132133
#define EEPROM_INTERVAL_OFFSET EEPROM_TIMESERVER_OFFSET + EEPROM_TIMESERVER_LENGTH
133134
#define EEPROM_INTERVAL_LENGTH 2
135+
#define EEPROM_NAME_OFFSET EEPROM_INTERVAL_OFFSET + EEPROM_INTERVAL_LENGTH
136+
#define EEPROM_NAME_LENGTH 32
134137

135138
void readSettings() {
136139
EEPROM.begin(EEPROM_WIFI_SIZE);
@@ -166,6 +169,15 @@ void readSettings() {
166169
syncInterval;
167170
syncInterval = time_t(EEPROM.read(EEPROM_INTERVAL_OFFSET)) << 8;
168171
syncInterval |= EEPROM.read(EEPROM_INTERVAL_OFFSET+1);
172+
173+
clockName = "";
174+
for (int i = 0 ; i < EEPROM_NAME_LENGTH ; i++) {
175+
char c = EEPROM.read(EEPROM_NAME_OFFSET + i);
176+
if (c) {
177+
clockName += c;
178+
}
179+
}
180+
clockName.replace("+", " ");
169181
EEPROM.end();
170182
}
171183

@@ -197,6 +209,10 @@ void saveSettings() {
197209
// Write the interval.
198210
EEPROM.write(EEPROM_INTERVAL_OFFSET, (syncInterval >> 8) & 0xff);
199211
EEPROM.write(EEPROM_INTERVAL_OFFSET+1, syncInterval & 0xff);
212+
// Write the clock name.
213+
for (int i = 0 ; i < clockName.length() ; i++) {
214+
EEPROM.write(EEPROM_NAME_OFFSET + i, clockName.charAt(i));
215+
}
200216
EEPROM.end();
201217
}
202218

esp8266-ledclock/mainPage.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const char MAIN_page[] PROGMEM = R"=====(
1616
<tr><td colspan=2 class=heading>Status</td></tr>
1717
<tr><td>Current time:</td><td><b>@@HOUR@@:@@MIN@@</b></td></tr>
1818
<tr><td>Sync Status:</td><td>@@SYNCSTATUS@@</td></tr>
19+
<tr><td>Name:</td><td><input type=text name="clockname" value="@@CLOCKNAME@@"></td></tr>
1920

2021
<tr><td colspan=2 class=heading>WiFi Setup</td></tr>
2122
<tr><td>SSID:</td><td><input type=text name="ssid" value="@@SSID@@"></td></tr>

esp8266-ledclock/ntp.ino

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ void setupTime() {
5656

5757
time_t getNtpTime()
5858
{
59-
time_t recvTime = 0;
6059
while (udp.parsePacket() > 0) ; // discard any previously received packets
61-
for (int i = 0 ; i < 5 && recvTime == 0 ; i++) { // 5 retries.
60+
for (int i = 0 ; i < 5 ; i++) { // 5 retries.
6261
sendNTPpacket(timeServer);
6362
uint32_t beginWait = millis();
6463
while (millis() - beginWait < 1500) {
@@ -68,14 +67,13 @@ time_t getNtpTime()
6867
unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
6968
unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
7069
unsigned long secSince1900 = highWord << 16 | lowWord;
71-
recvTime = secSince1900 - 2208988800UL + timezone * SECS_PER_HOUR;
72-
break;
70+
udp.flush();
71+
return secSince1900 - 2208988800UL + timezone * SECS_PER_HOUR;
7372
}
74-
yield();
73+
delay(10);
7574
}
7675
}
77-
timeRet:
78-
return recvTime; // return 0 if unable to get the time
76+
return 0; // return 0 if unable to get the time
7977
}
8078

8179

0 commit comments

Comments
 (0)