Posts with «arduino weather station» label

Porting a weather station app from the Arduino® GIGA™ R1 to the Arduino® UNO™ R4 boards

GIGA R1 WiFi is built as a powerful development board, thanks to its dual-core, 32-bit STM32H747XI microcontroller, designed to operate at clock speeds of up to 480 MHz and equipped with 1 MB of RAM. Arduino Forum users KurtE and Merlin513 developed a ZephyrOS-based weather station app for it, showcasing its capabilities. What’s more, they recently published a demonstration that it also works on the less powerful UNO R4 WiFi.

The original project with GIGA

ZephyrOS is an RTOS (Real-Time Operating System), which we chose as a replacement following the end of active Mbed development in 2024. With the Arduino Core on Zephyr 0.90.0 now officially stable, it provides a foundation for applications designed to support process management, task scheduling, and real-time operation.

KurtE and Merlin513 built their weather app for ZephyrOS on the GIGA R1 WiFi with a paired touchscreen (like the GIGA Display Shield). That app is engineered to show the local weather through a nice GUI, with touch-selectable detailed information on specific days.

The result was relatively resource-intensive for a microcontroller, but the GIGA R1 WiFi’s processing and memory resources were designed to support the application.

The new, limit-stretching version

The UNO R4 WiFi is a more resource-constrained board, featuring a single-core Renesas RA4M1 microcontroller operating at 48 MHz and 32 kB of RAM. It also includes 256 kB of flash storage, compared with the GIGA R1 WiFi’s 2 MB.

This translates into two challenges: shaving the package size down to fit in the available flash storage and reducing resource usage for the available RAM. Fortunately, solving the first challenge also eliminated the second. KurtE did that by switch display libraries and simplifying the GUI elements. Most of that came down to reducing the color palette and minimizing image sizes where possible.

With these optimizations in place, KurtE demonstrated that the weather application could run on the UNO R4 WiFi and described the result as operating “reasonably well.”

The great challenge of smaller platforms

Optimizing software for constrained hardware isn’t just an exercise in trimming code – it’s a mindset that encourages thoughtful engineering. While high-spec boards give you room to dream big, figuring out how to squeeze a full RTOS, graphical interface, and real-time data onto a board with 32 kB of RAM demonstrates how practical constraints can inspire creative solutions.

Porting projects like this weather station down to smaller platforms helps make complex applications more accessible, showing that with the right optimizations, you don’t always need massive compute power to build impressive, responsive systems.

Have a similar project to share? Add it to your next post on the Arduino Forum, or document it on Arduino Project Hub so the entire community can benefit from your experience and build on it!

Arduino, GIGA, and UNO are trademarks or registered trademarks of Arduino S.r.l.

The post Porting a weather station app from the Arduino® GIGA™ R1 to the Arduino® UNO™ R4 boards appeared first on Arduino Blog.

Stream weather conditions to the cloud!

Weather reports on the news, your computer, or smartphone are very good—something that people 100 years ago could only dream of—but what if you want to know the exact weather in a fixed location from anywhere in the world? One solution would be Jakub Nagy’s excellent cloud-connected station.

It uses an Arduino Uno to collect data from temperature, humidity, pressure, and UV index sensors, along with a Nano to read a rain gauge. The data, with images from a webcam, are passed along to a service called Weathercloud, where this report out of the Slovak Republic can be viewed remotely. 

If you’d like to assemble a similar device to measure conditions in your area, instructions are available in his write-up, including a parts list that will run around $130.

A 3D-printed personal weather station

If you need to know the forecast, generally you can look outside, listen to a weather report, or take advantage of the wide range of online services available. For something local to your dwelling place, however, this 3D-printed weather measurement device gives a great way to see what’s going on.

The system features a 3D-printed rain gauge, anemometer, and weather vane, along with a barometer and temperature sensor. Information from these sensors is piped to an Arduino Uno and displayed on a 4×20 character LCD.

While meant as a demonstration for an arts/science exhibition and would need to be calibrated for real world use, it is a perfect starting point if you’d like to build your own personal station!

The thrust bearings should be a tight fit and not require glue. The 5mm brass tube for the axles though will benefit from some cyanoacrylate on the ABS to hold them in place. Rough the tube up a bit with sandpaper or a file to help adhesion. The temperature and barometric pressure does not need calibrating. However rainfall (it is fairly close) and wind speed will need calibration. As long as the magnet in the wind direction sensor is close enough to trigger two adjacent reed switches when half way between the two reeds, it will allow 8 reed switches to reliably indicate 16 directions.

The reed switches in the direction indicator are vertical and are not trimmed, just the top end curled over to allow easy soldering to the common earth wire ring. Extra spacing maybe required, eg a small ring of heat shrink tubing to keep the moving parts of the anemometer and wind speed separated and seated on the bearings in the stationary base. This was too fine to print.

All the magnets N-S poles should be aligned along the line of the reed switch. The magnet lines of force between N-S have the best switching effect, not one of the poles, N or S, on its own. This also helps eliminate bounce, or multiple triggering.

More details on the project can be found on Thingiverse.