Building personal weather stations has become easier now than ever before, thanks to all the improvements in sensors, electronics, and prototyping techniques. The availability of cheap networking modules allows us to make sure these IoT devices can transmit their information to public databases, thereby providing local communities with relevant weather data about their immediate surroundings.
[Manolis Nikiforakis] is attempting to build the Weather Pyramid — a completely solid-state, maintenance free, energy and communications autonomous weather sensing device, designed for mass scale deployment. Typically, a weather station has sensors for measuring temperature, pressure, humidity, wind speed and rainfall. While most of these parameters can be measured using solid-state sensors, getting wind speed, wind direction and rainfall numbers usually require some form of electro-mechanical devices.
The construction of such sensors is tricky and non-trivial. When planning to deploy in large numbers, you also need to ensure they are low-cost, easy to install and don’t require frequent maintenance. Eliminating all of these problems could result in more reliable, low-cost weather stations to be built, which can then be installed in large numbers at remote locations.
[Manolis] has some ideas on how he can solve these problems. For wind speed and direction, he plans to obtain readings from the accelerometer, gyroscope, and compass in an inertial sensor (IMU), possibly the MPU-9150. The plan is to track the motion of the IMU sensor as it swings freely from a tether like a pendulum. He has done some paper-napkin calculations and he seems confident that it will provide the desired results when he tests his prototype. Rainfall measurement will be done via capacitive sensing, using either a dedicated sensor such as the MPR121 or the built-in touch capability in the ESP32. The design and arrangement of the electrode tracks will be important to measure the rainfall correctly by sensing the drops. The size, shape and weight distribution of the enclosure where the sensors will be installed is going to be critical too since it will impact the range, resolution, and accuracy of the instrument. [Manolis] is working on several design ideas that he intends to try out before deciding if the whole weather station will be inside the swinging enclosure, or just the sensors.
If you have any feedback to offer before he proceeds further, let him know via the comments below.
There’s an old proverb algebra teachers often recite: You have to use what you know to find out what you don’t know. The same could be said about sensors. For example, analog to digital converters use something computers are good at finding (like time) and use it to determine something they aren’t good at finding (like voltage). So how do you detect rainfall? If you are [lowflyerUK], you use the microphone in your web camera and a Raspberry Pi.
The idea was to reduce irrigation usage based on rainfall, so an exact measurement isn’t necessary. The Python code that analyzes the audio input is calibrated with three configuration parameters and attempts to remove wind noise. Even so, it needs to be in a room that gets a lot of noise from rainfall and ambient noise can throw the reading off.
The weather service is never going to adopt this system. Still, it is a great example of taking something you know and using it to get something you don’t know. If you want a more complete weather station, we have a few options for you.
There are many different ways to keep your plants watered on a schedule. [Luca Dentella] just created a new one by building the irrighino watering system. He used standard off the shelf, hardware to keep it simple. Irrighino is a complete watering system based on the Arduino Yun, featuring a user friendly AJAX interface. This allows scheduling in a manner similar to creating appointments in Outlook. It’s also possible to manually control the various water solenoids. The code is fully customizable and open source, with code available from [Luca’s] github repository. The web interface is divided in to three tabs – “runtime” for manual control, “setup” to configure the scheduling, and “events” to view system logs.
The Arduino Yun activates solenoid valves via a relay shield. A switch panel has indicator Status LED’s and three position switches. These allow the outputs to be switched off or on manually, or controlled via the Yun when in auto mode. [Luca] describes how to read three states of the switch (On-Off-On) when connected to a single analog input of the Arduino. He’s also got another tutorial describing how to connect a USB WiFi adapter to the Yun. This is handy since the Yun is mounted inside an enclosure where the signal strength is very weak. While the Yun has on-board WiFi, there is no possibility to attach an external antenna directly to the test SMA socket.
One interesting part is the commercial rain sensor. It’s a switch surrounded by a spongy material. When this material absorbs rain water, it begins to expand and triggers the switch. The Arduino sees the sensor as a simple digital input.
Check a short demo of his system in the video after the break.
Continue reading “Irrighino, an Arduino Yun Based Watering System”