Smartphones are portals to an overwhelming torrent of information. Yes, they’re a great way to find out the time, your bus schedule, and the weather, but they’re also full of buzzers and bells going off every three minutes to remind you that your uncle has reposted a photo of the fish he caught ten years ago. Sometimes, it’s better to display just the essentials, and that’s what Weather Note does.
It’s built around the Adafruit Feather Huzzah, a devboard built around the venerable ESP8266. It’s a great base for an Internet of Things project like this one, with WiFi built-in and ready to go. The Weather Note talks to a variety of online platforms to scrape weather data and helpful reminders, with the assistance of If This Then That, or IFTTT. Reminders to walk the dog or get some milk are displayed on a small OLED screen, while there’s also a bunch of alphanumeric displays for other information. WS2812 LEDs are used behind a shadowbox to display weather conditions, with cute cloud, rain, and sun icons. It’s all wrapped up in a tidy frame perfect for the mantlepiece or breakfast table.
To date, e-paper technology has been great for two things, displaying static black and white text and luring hackers with the promise of a display that is easy on the eyes and runs forever. But poor availability of bare panels has made the second (we would say more important) goal slow to materialize. One of the first projects that comes to mind is using such a display to show ambient information like a daily summary weather, train schedules, and calendar appointments. Usually this means rolling your own software stack, but [Christopher Mullins] has put together a shockingly complete toolset for designing and updating such parameterized displays called epaper_templates.
To get it out of the way first, there is no hardware component to epaper_templates. It presupposes you have an ESP32 and a display chosen from a certain list of supported models. A quick search on our favorite import site turned up a wide variety of options for bare panels and prebuilt devices (ESP32 and display, plus other goodies) starting at around $40 USD, so this should be a low threshold to cross.
Once you have the device, epaper_templates provides the magic. [Christopher]’s key insight is that an ambient display is typically composed of groups of semi-static data displayed in a layout that never changes. The only variation is updates to the data which is fully parameterized: temperature is always integer Fahrenheit, train schedules are lists of minutes and hours, etc. Layouts like this aren’t difficult to make, but require the developer to reimplement lots of boilerplate. To make them easy to generate, epaper_templates provides a fully featured web UI to let the user freely customize a layout, then exports it as JSON which the device consumes.
The web UI is shockingly capable, especially for by the standards of the embedded web. (Remember it’s hosted on the ESP32 itself!) The user can place text and configure fonts and styles. Once placed, the text can be set to static strings or tied to variables, and if the string is a timestamp it can be formatted with a standard strftime format string.
To round out the feature set, the user can place images and lines to divide the display. Once the display is described, everything becomes simple to programmatically update. The ESP can be configured to subscribe to certain MQTT topics from which it will receive updates, or if that is too much infrastructure there is a handy REST API which accepts JSON objects containing variables or bitmaps to update on device.
We’re totally blown away by the level of functionality in epaper_templates! Check out the repo for more detail about its capabilities. For a full demo which walks through configuration of a UI with train arrival times, weather, both instant temperature and forecast with icons, and date/time check out the video after the break. Source for the example is here, but be sure to check out examples/ in the repo for more examples.
Volos Projects educator [Danko Bertović] had a TTGO ESP32 board looking for a project, so he implemented a surprisingly functional weather station for such a small screen. Presumably that was too boring for him, so he decided to write a version of the classic Atari game Breakout instead. [Danko] prefers using the Arduino IDE for ESP32 projects, and has made the Breakout software available as an Arduino sketch. We hope the weather station sketch will be released soon, too. The TTGO is a small ESP32 board with an ST7789V 1.14 in (29 mm) TFT color display, available from your favorite Shenzhen market supplier. This platform is perfect for all kinds of niche applications. We’d love to hear how you are using, or plan to use, these modules in your projects.
We wrote about one such project last summer, where a similar TTGO module was used to display 50-year broadcast delayed transcripts of the Apollo 11 mission. [Danko] is no stranger to Hackaday — he has made several Arduino-based calculator projects. Perhaps the most remarkable being the circuit sculpture binary number calculator from last year, another project that morphed into a computer game (Pong).
We love getting our weather in a flurry of different methods, but have you tried building your own sensor suite to harvest the data for you? [Giovanni ‘CyB3rn0id’ Bernardo] needed to monitor isolated locations outside the reach of WiFi. His ray of hope is an ESP32 controller coupled with a LoRa module to beam data to a remote station that can access the cloud.
At the base station, live readings are shown on an OLED screen, but you can also connect to the ESP32 through your phone like a hotspot. If you keep a memory card installed, it will cache the readings in a perpetually-updated CSV file. In regular operation, the LoRa module overcasts the telemetry to its sister unit that acts as a Wifi/LoRa bridge so anyone can view gauges and graphs in real-time on ThingSpeak.
As drone capability and flight time increase, the missions they will fly are getting more and more complex. [Justin] uses a service called ClimaCell which has real-time, forecast, and historical weather data available across the globe. The service isn’t totally free, but if you make fewer than 1,000 calls a day you might be able to use a developer account which doesn’t cost anything.
According to [Justin], weather data can help with pre-flight planning, in-flight operations, and post-flight analysis. The value of accurate forecasting is indisputable. However, a drone or its ground controller could certainly understand real-time weather in a variety of ways and record it for later use, so the other two use cases maybe a little less valuable.
While on the subject, it seems to us that accurate forecasting could be important for other kinds of projects. Will you have enough sun to catch a charge on your robot lawnmower tomorrow? If your beach kiosk is expecting rain, it could deploy an umbrella or close some doors and shutdown for a bit.
If you insist on using a free service, the ClimaCell blog actually lists their top 8 APIs. Naturally, their service is number one, but they do have an assessment of others that seems fair enough. Nearly all of these will have some cost if you use it enough, but many of them are pretty reasonable unless you’re making a huge number of calls.
How would you use accurate micro weather data? Let us know in the comments. Then again, sometimes you want to know the weather right from your couch. Or maybe you’d like your umbrella to tell you how long the storm is going to last.
It’s hurricane season in the northern hemisphere right now, and plenty of news and weather organizations remain dedicated to alerting people if a storm is about to impact their area. There’s no shortage of ways to receive this information, either. We all have our favorite weather app or forecasting site, and there are emergency alerts to cell phones, TV, and radio stations as well. If none of that suits you, though, you can also roll out your own weather alert readerboard.
[Damaged Dolphin] built a weather alert readerboard using a Raspberry Pi and a 64×128 LED matrix. The Raspberry Pi runs Raspbian and uses a HAT from Adafruit, and once connected to the internet pulls down weather information for a specific area using custom python code. From there it can display any emergency weather alerts instantly on the readerboard screen including alerts for hurricanes. It does rely on data from the National Weather Service though, so if that is not available in your area some modifications will need to be made to the code.
While he notes that you probably shouldn’t rely on his non-professional python code exclusively when getting weather information, it would still be a good way of retrieving information about weather events without having to refresh a browser all the time. Once the storms have passed though, be sure you’re prepared for the days following.
Whatever his motives are, we have to admit that the end result is very nice. Especially when you find out that there’s no complex hardware or software at work here. An original Raspberry Pi is doing all the heavy lifting by pulling a frame from the external IP camera using ffmpeg, polling the I2C-connected BME280 temperature and humidity sensor with a Python script, and then producing a final snapshot with the environmental data laid over top using ImageMagick.
[Danilo] gives the exact commands he’s using for each step of the process, making it easy to follow along and see how everything comes together in the end. That also makes it much easier to adapt for your own purposes should you feel so inclined. Once you see how all the pieces fit together, where the data and images come from is up to you.