Skip to content

Commit 8f2957f

Browse files
authored
Merge pull request #98 from Qrome/2.10
2.10
2 parents 5fa87de + e00f3f5 commit 8f2957f

13 files changed

+212
-469
lines changed

README.md

+10-9
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ Double Wide LED version: https://www.thingiverse.com/thing:2989552
6161

6262
## Upgrading from version 2.5 or Higher
6363
Version 2.5 introduced the ability to upgrade pre-compiled firmware from a binary file. In version 2.6 and on you should find binary files that can be uploaded to your marque scrolling clock via the web interface. From the main menu in the web interface select "Firmware Update" and follow the prompts.
64-
* **marquee.ino.d1_mini_2.6.bin** - compiled for Wemos D1 Mini and standard 4x1 LED (default)
65-
* **marquee.ino.d1_mini_wide_2.6.bin** - compiled for Wemos D1 Mini and double wide 8x1 LED display
64+
* **marquee.ino.d1_mini_2.10.bin** - compiled for Wemos D1 Mini and standard 4x1 LED (default)
65+
* **marquee.ino.d1_mini_wide_2.10.bin** - compiled for Wemos D1 Mini and double wide 8x1 LED display
6666

6767
## Compiling and Loading to Wemos D1
6868
It is recommended to use Arduino IDE. You will need to configure Arduino IDE to work with the Wemos board and USB port and installed the required USB drivers etc.
6969
* USB CH340G drivers: https://wiki.wemos.cc/downloads
7070
* Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas. This will add support for the Wemos D1 Mini to Arduino IDE.
7171
* Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
7272
* Select Board: "WeMos D1 R2 & mini" or "LOLIN(WEMOS) D1 R2 & mini"
73-
* Set 1M SPIFFS -- this project uses SPIFFS for saving and reading configuration settings.
73+
* Set 1M SPIFFS -- **this project requires SPIFFS for saving and reading configuration settings.**
7474

7575
## Loading Supporting Library Files in Arduino
7676
Use the Arduino guide for details on how to installing and manage libraries https://www.arduino.cc/en/Guide/Libraries
@@ -80,19 +80,20 @@ Use the Arduino guide for details on how to installing and manage libraries http
8080
<WiFiManager.h> --> https://github.com/tzapu/WiFiManager
8181
"FS.h"
8282
<SPI.h>
83-
<Adafruit_GFX.h> --> https://github.com/adafruit/Adafruit-GFX-Library
83+
<TimeLib.h> --> https://github.com/PaulStoffregen/Time
84+
<Adafruit_GFX.h> --> https://github.com/adafruit/Adafruit-GFX-Library
8485
<Max72xxPanel.h> --> https://github.com/markruys/arduino-Max72xxPanel
8586
<JsonStreamingParser.h> --> https://github.com/squix78/json-streaming-parser
8687

8788
Note ArduinoJson (version 5.13.1) is now included as a library file in version 2.7 and later.
8889

8990
## Initial Configuration
9091
Starting with version 2.0 editing the **Settings.h** file is optional. All API Keys are now managed in the Web Interface except for the GeoNames Key. It is not required to edit the Settings.h file before loading and running the code.
91-
* Open Weather Map API Key: http://openweathermap.org/
92-
* News API Key: https://newsapi.org/
93-
* GeoNames Key (optional as you can use mine or create your own) http://www.geonames.org/ -- this key is only managed in the Settings.h file.
94-
* Your OctoPrint API Key (optional if you use the OctoPrint status)
95-
* Version 2.0 supports Chained 4x1 LED displayes -- configure in the Settigns.h file.
92+
* Open Weather Map free API key: http://openweathermap.org/ -- this is used to get weather data and the latitude and longitude for the current time zone. Weather API key is required for correct time.
93+
* TimeZoneDB free registration for API key: https://timezonedb.com/register -- this is used for setting the time and getting the correct time zone as well as managing time changes due to Day Light Savings time by regions. This key is set and managed only through the web interface and added in version 2.10 of Marquee Scroller. TimeZoneDB key is required for correct time display.
94+
* News API key (free): https://newsapi.org/ -- Optional if you want to get current news headlines.
95+
* Your OctoPrint API Key -- optional if you use the OctoPrint status.
96+
* Version 2.0 supports Chained 4x1 LED displays -- configure in the Settings.h file.
9697

9798
NOTE: The settings in the Settings.h are the default settings for the first loading. After loading you will manage changes to the settings via the Web Interface. If you want to change settings again in the settings.h, you will need to erase the file system on the Wemos or use the “Reset Settings” option in the Web Interface.
9899

marquee.ino.d1_mini_2.10.bin

436 KB
Binary file not shown.

marquee.ino.d1_mini_2.9.bin

-569 KB
Binary file not shown.

marquee.ino.d1_mini_wide_2.10.bin

436 KB
Binary file not shown.

marquee.ino.d1_mini_wide_2.9.bin

-570 KB
Binary file not shown.

marquee/GeoNamesClient.h

-54
This file was deleted.

marquee/NewsApiClient.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ String NewsApiClient::cleanText(String text) {
151151
text.replace("", "\"");
152152
text.replace("`", "'");
153153
text.replace("", "'");
154+
text.replace("", "'");
154155
text.replace("\\\"", "'");
155156
text.replace("", "-");
156157
text.replace("é", "e");
@@ -184,5 +185,6 @@ String NewsApiClient::cleanText(String text) {
184185
text.replace("ü", "ue");
185186
text.replace("Ä", "Ae");
186187
text.replace("ä", "ae");
188+
text.replace("ß", "ss");
187189
return text;
188190
}

marquee/NewsApiClient.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ SOFTWARE.
2525
#include <ESP8266WiFi.h>
2626
#include <ESP8266HTTPClient.h>
2727
#include <JsonListener.h>
28-
#include <JsonStreamingParser.h>
28+
#include <JsonStreamingParser.h> // --> https://github.com/squix78/json-streaming-parser
2929

3030
class NewsApiClient: public JsonListener {
3131

marquee/Settings.h

+8-10
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,16 @@ SOFTWARE.
3838
#include <ESP8266WiFi.h>
3939
#include <ESP8266WebServer.h>
4040
#include <ESP8266HTTPUpdateServer.h>
41-
#include <WiFiManager.h>
41+
#include <WiFiManager.h> // --> https://github.com/tzapu/WiFiManager
4242
#include <ESP8266mDNS.h>
4343
#include <ArduinoOTA.h>
4444
#include "FS.h"
4545
#include <SPI.h>
46-
#include <Adafruit_GFX.h>
47-
#include <Max72xxPanel.h>
46+
#include <Adafruit_GFX.h> // --> https://github.com/adafruit/Adafruit-GFX-Library
47+
#include <Max72xxPanel.h> // --> https://github.com/markruys/arduino-Max72xxPanel
4848
#include <pgmspace.h>
4949
#include "OpenWeatherMapClient.h"
50-
#include "GeoNamesClient.h"
51-
#include "TimeClient.h" // Using updated lib by Qrome
50+
#include "TimeDB.h"
5251
#include "NewsApiClient.h"
5352
#include "OctoPrintClient.h"
5453
#include "BitcoinApiClient.h"
@@ -57,21 +56,22 @@ SOFTWARE.
5756
// Start Settings
5857
//******************************
5958

59+
String TIMEDBKEY = ""; // Your API Key from https://timezonedb.com/register
6060
String APIKEY = ""; // Your API Key from http://openweathermap.org/
6161
// Default City Location (use http://openweathermap.org/find to find city ID)
6262
int CityIDs[] = { 5304391 }; //Only USE ONE for weather marquee
6363
String marqueeMessage = "";
6464
boolean IS_METRIC = false; // false = Imperial and true = Metric
6565
boolean IS_24HOUR = false; // 23:00 millitary 24 hour clock
66-
boolean IS_DST = true; // Does your TimeZone use Daylight Savings Time (DST)?
66+
boolean IS_PM = true; // Show PM indicator on Clock when in AM/PM mode
6767
const int WEBSERVER_PORT = 80; // The port you can access this device on over HTTP
6868
const boolean WEBSERVER_ENABLED = true; // Device will provide a web interface via http://[ip]:[port]/
69-
boolean IS_BASIC_AUTH = true; // Use Basic Authorization for Configuration security on Web Interface
69+
boolean IS_BASIC_AUTH = false; // Use Basic Authorization for Configuration security on Web Interface
7070
char* www_username = "admin"; // User account for the Web Interface
7171
char* www_password = "password"; // Password for the Web Interface
7272
int minutesBetweenDataRefresh = 15; // Time in minutes between data refresh (default 15 minutes)
7373
int minutesBetweenScrolling = 1; // Time in minutes between scrolling data (default 1 minutes and max is 10)
74-
int displayScrollSpeed = 25; // In milliseconds -- Configurable by the web UI (slow = 35, normal = 25, fast = 15)
74+
int displayScrollSpeed = 25; // In milliseconds -- Configurable by the web UI (slow = 35, normal = 25, fast = 15, very fast = 5)
7575
boolean flashOnSeconds = true; // when true the : character in the time will flash on and off as a seconds indicator
7676

7777
boolean NEWS_ENABLED = true;
@@ -97,8 +97,6 @@ int ledRotation = 3;
9797
String timeDisplayTurnsOn = "06:30"; // 24 Hour Format HH:MM -- Leave blank for always on. (ie 05:30)
9898
String timeDisplayTurnsOff = "23:00"; // 24 Hour Format HH:MM -- Leave blank for always on. Both must be set to work.
9999

100-
const String GEONAMES_USER = "qrome"; // user account for http://www.geonames.org/ -- this service is used to lookup TimeZone Offsets
101-
102100
// OctoPrint Monitoring -- Monitor your 3D printer OctoPrint Server
103101
boolean OCTOPRINT_ENABLED = false;
104102
boolean OCTOPRINT_PROGRESS = true;

marquee/TimeClient.cpp

-154
This file was deleted.

0 commit comments

Comments
 (0)