Giter Site home page Giter Site logo

qrome / marquee-scroller Goto Github PK

View Code? Open in Web Editor NEW
320.0 42.0 156.0 12.42 MB

Marquee Scroller Clock News Weather and More

Home Page: https://www.thingiverse.com/thing:2867294

License: MIT License

C++ 97.29% C 2.57% CMake 0.14%
wifi wemos-d1-mini clock news weather 3d-printing

marquee-scroller's Introduction

Marquee Scroller (Clock, Weather, News, and More)

NOTICE

The latest version of Marquee Scroller 3.01 works with ESP8266 Core 3.0.2 -- if you are upgrading from Marquee Scroller 2.X version this may require you to enter in all your API Keys and settings. Always meake sure you have coppied all your API keys somewhere before updating. The ESP8266 Core 3.0.2 uses the newer FS (file system) that may require a fresh start on the configuration. Make sure you update to the latest version of WifiManager library (link below).

  • Removed Bitcoin features in 3.0

Features include:

  • Accurate Clock refresh off Internet Time Servers
  • Local Weather and conditions (refreshed every 10 - 30 minutes)
  • News Headlines from all the major sources
  • Configured through Web Interface
  • Display 3D print progress from your OctoPrint Server
  • Option to display Pi-hole status and graph (each pixel accross is 10 minutes)
  • Basic Authorization around Configuration web interface
  • Support for OTA (loading firmware over WiFi)
  • Update firmware through web interface
  • Configurable scroll speed
  • Configurable scrolling frequency
  • Configurable number of LED panels
  • Options of different types of Clock Displays (display seconds or temperature) -- only on 8 or more display panels
  • Video: https://youtu.be/DsThufRpoiQ
  • Build Video by Chris Riley: https://youtu.be/KqBiqJT9_lE

Required Parts:

Note: Using the links provided here help to support these types of projects. Thank you for the support.

Wiring for the Wemos D1 Mini to the Dot Matrix Display

CLK -> D5 (SCK)
CS -> D6
DIN -> D7 (MOSI)
VCC -> 5V+
GND -> GND-

Marquee Scroller Wiring

3D Printed Case by David Payne:

Original Single Panel version: https://www.thingiverse.com/thing:2867294
Double Wide LED version: https://www.thingiverse.com/thing:2989552

Upgrading from version 2.5 or Higher

In version 2.6 and higher, the 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.

  • marquee.ino.d1_mini_3.01.bin - compiled for Wemos D1 Mini and standard 4x1 LED (default)
  • marquee.ino.d1_mini_wide_3.01.bin - compiled for Wemos D1 Mini and double wide 8x1 LED display

Compiling and Loading to Wemos D1

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.

  • USB CH340G drivers: https://sparks.gogo.co.nz/ch340.html
  • 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.
  • Open Boards Manager from Tools > Board menu and install esp8266 Core platform version Latest 3.0.2
  • Select Board: "ESP8266 Boards (3.0.2)" --> "LOLIN(WEMOS) D1 R2 & mini"
  • Set Flash Size: 4MB (FS:1MB OTA:~1019KB) -- this project requires FS for saving and reading configuration settings.
  • Select the Port from the tools menu.

Loading Supporting Library Files in Arduino

Use the Arduino guide for details on how to installing and manage libraries https://www.arduino.cc/en/Guide/Libraries
Packages -- the following packages and libraries are used (download and install):
<WiFiManager.h> --> https://github.com/tzapu/WiFiManager (latest)
<TimeLib.h> --> https://github.com/PaulStoffregen/Time
<Adafruit_GFX.h> --> https://github.com/adafruit/Adafruit-GFX-Library
<Max72xxPanel.h> --> https://github.com/markruys/arduino-Max72xxPanel
<JsonStreamingParser.h> --> https://github.com/squix78/json-streaming-parser

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

Initial Configuration

Editing the Settings.h file is totally optional and not required. All API Keys are now managed in the Web Interface. It is not required to edit the Settings.h file before loading and running the code.

  • 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.
  • 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.
  • News API key (free): https://newsapi.org/ -- Optional if you want to get current news headlines.
  • Your OctoPrint API Key -- optional if you use the OctoPrint status.
  • Version 2.0 supports Chained 4x1 LED displays -- configure up to 16x1 in the Settings.h file.

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.

Web Interface

The Marquee Scroller uses the WiFiManager so when it can't find the last network it was connected to it will become a AP Hotspot -- connect to it with your phone and you can then enter your WiFi connection information.

After connected to your WiFi network it will display the IP addressed assigned to it and that can be used to open a browser to the Web Interface. You will be able to manage your API Keys through the web interface.
The default user / password for the configuration page is: admin / password

The Clock will display the time of the City selected for the weather.

Donation or Tip

Please do not feel obligated, but donations and tips are warmly welcomed. I have added the donation button at the request of a few people that wanted to contribute and show appreciation. Thank you, and enjoy the application and project.

paypal

Or -- you can buy me something from my Amazon Wishlist: https://www.amazon.com/hz/wishlist/ls/GINC2PHRNEY3

Contributors

David Payne
Nathan Glaus
Daniel Eichhorn -- Author of the TimeClient class (in older versions)
yanvigdev
nashiko-s
magnum129

Contributing to this software is warmly welcomed. You can do this basically by forking from master, committing modifications and then making a pulling requests against the latest DEV branch to be reviewed (follow the links above for operating guide). Detailed comments are encouraged. Adding change log and your contact into file header is encouraged. Thanks for your contribution.

When considering making a code contribution, please keep in mind the following goals for the project:

  • User should not be required to edit the Settings.h file to compile and run. This means the feature should be simple enough to manage through the web interface.
  • Changes should always support the recommended hardware (links above).

Marquee Scroller
Marquee Parts

marquee-scroller's People

Contributors

chrissearle avatar k7bbr avatar magnum129 avatar mgordon1964 avatar nashiko avatar qrome avatar yanvigdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

marquee-scroller's Issues

Weather Data Parsing failed!

I'm getting an error "Weather Data Parsing failed!" in both a singe wide and double wide setup.
Refreshing the data thru the web page doesn't fix the issue, but hitting the reset button does.

Any ideas of what could be the cause?

Display time to turn on/off not working

i have the time to turn on set to 8:00 AM and turn off at 10:00 PM. For some reason with the latest update the screen stays on past 10:00 PM.

Any thing i can try?

I'm having an issue with the Web interface.

Hello! Awesome Clock. Small issue. I've connected everything, and got the "hello" screen. Then it gives me the IP address, which does not appear to be valid. Then marquee sits with one dot indefinitely. I assume it's because I haven't gotten into the web interface yet.

Also, is there a way to reset the board to pick a new internet connection? I tried simply reuploading the code, but it keeps the same IP, and is no longer a hotspot. Any thoughts? Thanks!

NewsApi with option for location

Thanks for the clock! It is really nice to have a clock in my room that fits my needs.
I life in the Netherlands and I really like the news api. But I can't choose the news api as location. Which is provided by the API. So I could tap into the local news feed.

Thanks again.

Buzzer

Hi. I want to say that your work is formidable. Congratulation!!!

I saw that in main code you have some line for buzzer. In the future you considerate to make an alarm clock?

Slip advice do not display anything, where i can modify / activate this option?

Keep up the good work!

Add MQTT-to-text display?

This is a great little clock.

A enhancement request - it would be really nice to use MQTT to publish the text to be displayed as "advice" so that home automation systems, or other computers can send text messages to be displayed.

Issue with time

I used the OpenWeather site to find my 7 digit city ID. It works in the marquee to pull the weather but the time is off by 4hrs.

Rotation / Display orientation

For solving my problem with the wrong orientation of the matrix module, I made a few changes.
I´m not a coder and not familiar with contributions and pull requests, so I write it here:

In Settings.h I added:
/*

  • Define if and how the displays are rotated. The first display
  • (0) is the one closest to the Arduino. rotation can be:
  • 0: no rotation
  • 1: 90 degrees clockwise
  • 2: 180 degrees
  • 3: 90 degrees counter clockwise
  • If your matrix module is not right orientated try another setting
    */
    int rotationValue = 3;

In marquee.ino I changed :

matrix.setRotation(i, 3);
to
matrix.setRotation(i, rotationValue);

Please add Week Day Display.

Thanks Qrome, for this awesome idea. I made one for my Home Usages.
I have some issues or say Enhancement required.

  1. Add week days display while scrolling. i.e. Sunday, Monday.
  2. Add AM or PM/small symbol representation with Time.
  3. News/Weather Info. Updating in backgroung while time still showing. i.e you can add a progress bar on
    Main Screen
  4. If possible please Automate brightness of display using LDR/light sensor. or Lower the brightness of Display further

Please Please Please...

Multiple Octoprint server support

For those of us with more than one Octoprint instance supporting multiple printers it would be great to be able to support more than one status readout, for example one after another.

Is this a possibility?

Mqtt support

Thanks for the project. Is it possible to make this display other messages, like when my front door opens i get a notification on the marquee scroller, i would guess that it would need MQTT or IFTT support ?

marquee:1155: error: 'class Max72xxPanel'

Hello there.
I'm trying to build a marquee scroller, but i got stuck in the IDE with the following error :

marquee:1155: error: 'class Max72xxPanel' has no member named 'width'
   for ( int i = 0 ; i < width * msg.length() + matrix.width() - 1 - spacer; i++ ) {

I included the Max72xxPanel zip https://github.com/markruys/arduino-Max72xxPanel/archive/master.zip and all the others lib as told in the readme. (nicely done !!)

Don't know why there is an access to matrix.width as there is no width in the lib definition. Has there been any update to the lib ? (I looked into the history, and didn't found any width definition in the Max72xxPanel.h history....)

Manual time adjustment

I live in the UK where we have just switched over to daylight savings time (i.e. GMT -1) and the clock does not seem to adapt automatically no matter what, would it be possible to add an override function In to the settings or implement a fix?

Blank pages served after fully configuring.

Good afternoon,

Up until the point where I added all of the API keys to the web interface, I was able to load the main page, and make changes, however now that I've added the news and weather API keys to the web interface, I am no longer able to load the page.

Running some diagnostics with Curl show:
curl: (56) Illegal or missing hexadecimal sequence in chunked-encoding

But other times nothing loads.
The LED display is working, loading the time, weather and news.
I'm running a version pulled this morning, on a Node MCU esp8266

I tried to add the settings I want to change (news to cbc-news) to the config.h however I think that is ignored for the web stored values after setup.

Very cool project, cannot wait to see if MQTT will ever be added in.

Thank you

Version 2.6 causes all or most of matrix illuminated and hangs

Updated existing hardware (worked fine on 2.4) and flashed new hardware (Wavgat D1 Mini), Both clocks either display all LEDs lit or most lit (nonuniform unchanging unlit pixels). Cannot seem to find either clock or connect via wifi.

Flashed with Arduino IDE 1.8.8
LOLIN(WEMOS) D1 R2 & mini, 80MHz CPU speed, Flash size 4M (no SPIFFS) v2 lower memory, All Flash Contents (after trying other options)

New enhancment ideas

I have some ideas to improve your great project.

  1. setting a time slot to display headlines only during a certain time frame.
  2. a clock only time frame with no other scrolling.
  3. weather forecasts for a selectable number of days.
  4. to be able to select which weather data to scroll.
  5. to be able to turn off the city/town name.
  6. able to select multiple headline sources.
  7. show estimated time of print ending or time left to print.

Improvement Ideas

Hi,

Firstly thank you for the clock, great case and software. Its now my new bedside clock!

I have a few suggestions though and wondered if they were possible. No worries if it isnt.

Customise the weather options - Personally I'm not fussed about the humidity or wind speed, would it be possible to choose what weather options we wanted to see?

Different LED brightnesses - Basically brighter in the day and darker at night, either by a preset time or maybe even based on sunrise and sunset data?

Thanks

disable weather

Would it be possible to load this without weather data? The news works great, but as you know I am having issues with weather pulls - maybe because of my ISP or being in Canada... I don't know.

Error

error: espcomm_upload_mem failed

Issue tab configuration

When I press the configuration tab the screen inside the frame stays empty. Sometimes it appears and sometimes it shows only the half of the settings so I could not press the save button. I think it has something to do with handling multiple inputs at once. Like sending the html of the page and simultaneously keep the clock up to date.

Clock displays UTC until first refresh of data

The clock displays time in UTC until the weather data is refreshed the first time, vs the first time it loads.

As a work around I've added at line 291
handlePull();
which works, but is a bit of a hack.

Slip advice empty

Hi, the Slip advice displays nothing for about two weeks.
The server "api.adviceslip.com" is working
Thanks a lot for work. I like that scroller

DST corrections are wrong

UK time changed today, Easily corrected by seeking 'gmtOffset' instead of the fixed value of 'dstOffset'
In Geonameclient.cpp modifiy line 81 from:

String offset = (const char*)root["dstOffset"];
To:
String offset = (const char*)root["gmtOffset"]; //Now uses the varying gmtOffset value

This corrects the issue.

Using 1602 LCD display instead of LED matrix

First of all great project.
Thanks for sharing.
I'm trying to use 1602 display.
So far I manage to display weather details on one row.
I want to display news title , news description in another row.
I'm using following to display news but it only shows google news.
lcd.setCursor(0, 1);
lcd.println(NEWS_SOURCE);
what should be done to display news title + news description on display
Many thanks.

Celsius and mph ?

Hi is it possible to display Celsius and mph instead of Celsius and kph ?

Thanks Nikki

Some changes I made in the code

All changes I made are hardcoded for me.

  • I have made a change in the newsapi. This allows me to add country instead of sources, so I can see the news of my country.
  • I have made a change in the sync weather function. Now I am able to still see the time while updating. Maybe I will add a dot in every corner while syncing to see how far the syncing process is.
  • I have added lang=%language% inside the string of the openweathermap api to allow me to get the description in my own language. (See: https://openweathermap.org/current at Multilingual support)
  • Also changed the Humidity and Windspeed to my own language.

Thanks for this awesome arduino program!

Port the wemos board to wemos D1 Mini pro

Hello Qrome.
Everything just awesome.
Thanks for such a great work.

I have a request if you can port the whole thing to Wemos D1 Mini Pro module.
As you know it has more memory i.e. 16 MB. & Good wifi reception.

So that we can use a much complex tasks & programming on our Marquee- Scroller.
Please have a look at this board.

base64 call in OctoPrintClient.cpp - wouldn't compile

I don't know if this is a real issue or just my environment but I thought I'd mention it just in case.

With OctoPrintClient.cpp as is the base64 call:

encodedAuth = b64.encode(userpass, true);

Gives me

sketch/OctoPrintClient.cpp: In member function 'void OctoPrintClient::updateOctoPrintClient(String, String, int, String, String)':
OctoPrintClient.cpp:38: error: no matching function for call to 'base64::encode(String&, bool)'
     encodedAuth = b64.encode(userpass, true);
                                            ^
sketch/OctoPrintClient.cpp:38:44: note: candidates are:
In file included from sketch/OctoPrintClient.h:27:0,
                 from sketch/OctoPrintClient.cpp:24:
/Users/chris/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266/base64.h:30:23: note: static String base64::encode(uint8_t*, size_t)
         static String encode(uint8_t * data, size_t length);

                       ^
/Users/chris/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266/base64.h:30:23: note:   no known conversion for argument 1 from 'String' to 'uint8_t* {aka unsigned char*}'
/Users/chris/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266/base64.h:31:23: note: static String base64::encode(String)
         static String encode(String text);

                       ^
/Users/chris/Library/Arduino15/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266/base64.h:31:23: note:   candidate expects 1 argument, 2 provided
exit status 1
no matching function for call to 'base64::encode(String&, bool)'

If I change it to

encodedAuth = b64.encode(userpass);

then it compiles just fine and the unit runs but I can't tell if this is the correct fix since I'm not enabling the octoprint module.

LED orientation/rotation

Had an issue with the LED that I ordered from Ali express was not displaying correctly to fix the issue all i had to do is change in marquee.ino

matrix.setRotation(i, 3);
To
matrix.setRotation(i, 1);

Does the forget wifi work for you?

When I choose the forget wifi - I see the unit restart - but - it instantly reconnects to the old wifi.

I can see that this calls:

  WiFiManager wifiManager;
  wifiManager.resetSettings();
  ESP.restart();

In the current code for WifiManager I can see that the resetSettings method has a commented out delay(200).

I wonder if the restart is happening too soon for the removal of the stored credentials to actually take place?

Just wondered if this is a "Just Me" case or if it's actually not working in general - since it's not something that we'd need to do that often.

Scrolling message issue

Many Thanks for your reply and its a big help for a newbie like me.
I manged to display information on 16x2 display.
After that, my next goal was to scroll text.
I managed to find a scroll text code.
Tried only the scroll code with Nodemcu+LCD without including your program and it worked fine.
However when I Included scroll text code into your program scrolling function wasnt working properly.
scrolling wasnt happenning all the time, It will stop for few seconds. Then the scrolling starts again. While the display is scrolling, I noticed blinking of esp12e blue led.
I tried with another 2 scroll text codes and results were same.
Please assist me to solve this issue.
Thank you very much.

Day of the month

In the last version (2.3) the day of the month is not updated.
This number is correct only on the start-up day. I wonder if anyone else has the same problem.

Thanks, Eduardo

Problem with UTC

Hello
I verified a problem with UTCoffset but I cannot understand where the fix has to be made...

in this code, seeing on serial output, time is ok (1) (geonames client cpp)

datetime = (const char*)root["time"];
Serial.println("rawOffset for " + String((const char*)root["timezoneId"]) + " is: " + offset);
Serial.println("Geo Date & Time: " + getMonthName() + " " + getDay(false) + ", " + getHours() + ":" + getMinutes());
Serial.println();

but then when it is visualized in the matrix with this code I get the time + 1 hour....(2) (loop in the main code)

String hourMinutes = timeClient.getAmPmHours() + ":" + timeClient.getMinutes();
if (IS_24HOUR) {
hourMinutes = timeClient.getHours() + ":" + timeClient.getMinutes();
}
if (numberOfHorizontalDisplays >= 8) {
if (Wide_Clock_Style == "1") {
// On Wide Display -- show the current temperature as well
hourMinutes = geoNames.getMonthName() + " " + geoNames.getDay(false) + " - " + timeClient.getHours() + ":" + timeClient.getMinutes();
String currentTemp = weatherClient.getTempRounded(0);
String timeSpacer = " ";
if (currentTemp.length() >= 3) {
timeSpacer = " ";
}
hourMinutes += timeSpacer + currentTemp + getTempSymbol();
}
if (Wide_Clock_Style == "2") {
hourMinutes += ":" + timeClient.getSeconds();
matrix.fillScreen(LOW); // show black
}
if (Wide_Clock_Style == "3") {
// No change this is normal clock display
}
}
centerPrint(hourMinutes);

I tried to change offset variable to -1 but it is not the solution, it changes the time only on (1)... not in the matrix...

Matrix panel order

Hi. Is there a way to change the panel order? In my build everything compiles but I get the panel order mixed up. Here's a pic to explain better. Should say "hello"
hello
It's like instead of order 1234, I get 4321
Thanks in advanced

Link to the Ota updater

Normally the link to the update page is: xxx.xxx.xxx.xxx/update but this is redirected to homepage.
How can I wirelessly update?

Wrong Time Zone

In Switzerland it changes to Winter Time. Example: It is 9:20, Clock shows 10:20

webserver crashing?

I got everything to compile and upload, went into the Wifi Manager AP and set up the Wemos w/ my SSID/pass, but when I try to hit its IP, I can see the page render for just a second, and then I get a connection reset. From the commandline, that looks like

[21:29:37] tobyb:~ $ http 10.0.0.28
HTTP/1.1 200 OK
Content-Type: text/html

http: error: ChunkedEncodingError: ("Connection broken: ConnectionResetError(54, 'Connection reset by peer')", ConnectionResetError(54, 'Connection reset by peer'))

Cannot compile 2.5a from release source

Attempting to compile gives this error message:

Arduino: 1.8.8 (Windows Store 1.8.19.0) (Windows 10), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Enabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, All Flash Contents, 921600"

marquee:1:1: error: expected unqualified-id before numeric constant

 5a/** The MIT License (MIT)

 ^

In file included from C:\Users\Garrett\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi\src/WiFiClientSecure.h:41:0,

                 from C:\Users\Garrett\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi\src/WiFiServerSecure.h:20,

                 from C:\Users\Garrett\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi\src/ESP8266WiFi.h:41,

                 from sketch\Settings.h:38,

                 from C:\Users\Garrett\Desktop\marquee-scroller-Scroller_V2.5a\marquee\marquee.ino:28:

C:\Users\Garrett\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:140:28: error: expected declaration before end of line

 #pragma GCC diagnostic push

                            ^

sketch\TimeClient.cpp: In member function 'long int TimeClient::getCurrentEpochWithUtcOffset()':

TimeClient.cpp:151:67: error: invalid operands of types 'double' and 'long int' to binary 'operator%'

   return round(getCurrentEpoch() + 3600 * myUtcOffset + 86400L) % 86400L;

                                                                   ^

exit status 1
expected unqualified-id before numeric constant

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Decimal places in temp and wind speed

Great case and device, but my display is a little longer then the space in the case. I didn't buy the ones from Amazon you had the link too. I already had 4 of the quad displays from China sitting on my bench. Another 2mm on the long side next to the white edge of the LED's the part that touches the thin display would work for my displays. The PCB the LED's mount to fits ok, its just the LED module is a little bigger I guess from other mfgs.

Can you mod the code to make the temp read just 78F instead of 78.7F and the wind speed 9 instead of 9.77. No one can tell the difference with fractions of a degree and speed! I would make it easier to read as it scrolls by. I don't know why WU publishes it that way, but if you could fix it it would be a lot better!

Issues with Arduino Json library

Attempting to compile on Arduino IDE 1.8.7 yields this error message:


sketch\GeoNamesClient.cpp: In member function 'float GeoNamesClient::getTimeOffset()':

GeoNamesClient.cpp:80:3: error: 'DynamicJsonBuffer' was not declared in this scope

   DynamicJsonBuffer json_buf;

   ^

GeoNamesClient.cpp:80:21: error: expected ';' before 'json_buf'

   DynamicJsonBuffer json_buf;

                     ^

GeoNamesClient.cpp:81:22: error: 'json_buf' was not declared in this scope

   JsonObject& root = json_buf.parseObject(jsonArray);

                      ^

sketch\OctoPrintClient.cpp: In member function 'void OctoPrintClient::getPrinterJobResults()':

OctoPrintClient.cpp:114:3: error: 'DynamicJsonBuffer' was not declared in this scope

   DynamicJsonBuffer jsonBuffer(bufferSize);

   ^

OctoPrintClient.cpp:114:21: error: expected ';' before 'jsonBuffer'

   DynamicJsonBuffer jsonBuffer(bufferSize);

                     ^

OctoPrintClient.cpp:117:22: error: 'jsonBuffer' was not declared in this scope

   JsonObject& root = jsonBuffer.parseObject(printClient);

                      ^

OctoPrintClient.cpp:118:13: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'success'

   if (!root.success()) {

             ^

sketch\OpenWeatherMapClient.cpp: In member function 'void OpenWeatherMapClient::updateWeather()':

OpenWeatherMapClient.cpp:81:3: error: 'DynamicJsonBuffer' was not declared in this scope

   DynamicJsonBuffer jsonBuffer(bufferSize);

   ^

OpenWeatherMapClient.cpp:81:21: error: expected ';' before 'jsonBuffer'

   DynamicJsonBuffer jsonBuffer(bufferSize);

                     ^

OpenWeatherMapClient.cpp:84:22: error: 'jsonBuffer' was not declared in this scope

   JsonObject& root = jsonBuffer.parseObject(weatherClient);

                      ^

OpenWeatherMapClient.cpp:85:13: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'success'

   if (!root.success()) {

             ^

OpenWeatherMapClient.cpp:93:12: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'measureLength'

   if (root.measureLength() <= 150) {

            ^

OpenWeatherMapClient.cpp:94:86: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'measureLength'

     Serial.println("Error Does not look like we got the data.  Size: " + String(root.measureLength()));

                                                                                      ^

sketch\BitcoinApiClient.cpp: In member function 'void BitcoinApiClient::updateBitcoinData(String)':

BitcoinApiClient.cpp:92:3: error: 'DynamicJsonBuffer' was not declared in this scope

   DynamicJsonBuffer json_buf;

   ^

BitcoinApiClient.cpp:92:21: error: expected ';' before 'json_buf'

   DynamicJsonBuffer json_buf;

                     ^

BitcoinApiClient.cpp:93:22: error: 'json_buf' was not declared in this scope

   JsonObject& root = json_buf.parseObject(jsonArray);

                      ^

BitcoinApiClient.cpp:95:13: error: 'class ArduinoJson650_0_0::JsonObject' has no member named 'success'

   if (!root.success()) {

             ^

exit status 1
'DynamicJsonBuffer' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

RSS Feed for News

Would it be possible to use a RSS/XML feed for the news scroll rather than choosing a source from newsapi?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.