In my copious free time, I’ve been working on what to do with my empty Line 2 from clock ver 4.2. I went looking for online weather information that I could scrape and display, and there are a few different sources. I picked one (the price was right) but they are all fairly similar so this should be adaptable to the others if you want to play around.
Here’s what my display looks like now:
As with V4.2, the time updates once per day with the online NTP pool. The weather info is refreshed and displayed every 10 minutes (user changeable, but the free service is limited in the number of inquiries per day.
Here’s what you have to do to sign up for the free weather info:
- Go to https://openweathermap.org/api and click “Please sign up”. You’ll have to enter and verify your email.
- After that, it should display your personal API key (a 32 character string) – save this key, you will need it.
- Once you open up the V4.3 code (attached), there will be a place in the customization header to paste the key.
- Don’t give out your API key – if your key exceeds the free lookup limit, they will shut off your access.
There’s one other library that is needed in 4.3 to parse the JSON data from the weather API:
- Inside the IDE, select “Tools -> Manage Libraries”
- In the search box, type “ArduinoJson” ** Make sure you select the Highest Version 5 (5.13.5) in the pick list, then Install. If you mistakenly select Version 6.X.X, your sketch won’t compile!)
There’s a customization for weather location as well. It’s set to Richardson, but if you want to change it, openweathermap.org has a download of thousands of city ID codes that you can substitute in (I’ve put the code for plano in a comment line for those of you up north). If you don’t want to download the list, ask me and I’ll find your city code if it’s available.
If you look at the raw JSON data, there’s lots of other information that could be extracted and displayed if you want to rearrange the display and dive into the JSON parsing logic. There’s also a separate forecast string available.
Raw:{"coord":{"lon":-96.73,"lat":32.95},"weather":[{"id":804,"main":"Clouds","description":"overcast clouds","icon":"04d"}],"base":"stations","main":{"temp":44.89,"feels_like":41.02,"temp_min":42.8,"temp_max":46.99,"pressure":1018,"humidity":87},"visibility":16093,"wind":{"speed":3.36,"deg":40},"clouds":{"all":90},"dt":1580421184,"sys":{"type":1,"id":4066,"country":"US","sunrise":1580390620,"sunset":1580428588},"timezone":-21600,"id":4722625,"name":"Richardson","cod":200}
Other than the weather inclusion, I’ve done some work for power management. This version shuts off the WiFi connection when not in use and adds a couple of other delay tweaks and uses about 65% of the current of Version 4.2. Mine draws around 80mA now. There may be some more tweaks to the backlight to cut the draw down further in the future.
That’s it for now, until I get my RTC chip in from China and can play with keeping the clock going through power outages.
Give it a try and let me know if you have questions.