Inspiration

The idea for this project came from my village and farms. With the development in technologies, agricultural drones have been introduced and are useful, but they often follow fixed paths without considering changing wind conditions. That inspired me to think about a system that could use wind information to plan a smarter and safer path before the drone flies.

What it does

To counter this problem, we created AeroPath, an attachable wind-aware system for agricultural drones that measures wind speed and direction, enables smarter route planning, and recommends the safest, most energy-efficient path for field coverage under dynamic real-world conditions. It consists of two components: a ground-based wind sensing station and a drone-mounted computational unit. The wind sensor component measures wind speed and direction continuously using a 3-cup anemometer and a wind vane. This data feeds into a Raspberry Pi 4 running a Python-based path optimization algorithm. The algorithm generates over several candidate flight paths, including straight-line patterns at multiple angles, zigzag paths, curved paths, spirals, and smart paths optimized with 2-opt improvement. Each path is scored based on total energy consumption, accounting for headwind, tailwind, and crosswind components at every segment. The path with the lowest energy cost is recommended as the optimal route. For our simulation, we created a real-time visualization using Pygame that displays the field, all candidate paths, wind vectors, and the optimized path.

How we built it

The Arduino Nano reads input from the 3-cup anemometer as the wind hits the anemometer cups, causing them to spin. A magnet on the shaft triggers a reed switch once per rotation. The Arduino counts these pulses via hardware interrupt on pin D2. Every second, the pulse count is converted to wind speed in km/h using the calibration factor. The Arduino nano also reads from the KY-040 rotary encoder (wind direction, 15° per click). The Arduino transmits the data to the OLED display, which shows the current readings locally. The three LEDs indicate status: green for safe, yellow for high wind warning, red for shutdown. The Arduino sends the data over USB serial to the Raspberry Pi 4. The RPi runs a Python algorithm that generates several (12+) candidate paths like straight lines at multiple angles, zigzag, curved, spiral, and more. Each path is scored using the dot product of wind vector and movement direction, with spatial wind variation modelled across 16 field zones. On the visual display, segments are color-coded green (tailwind), yellow (crosswind), red (headwind). The lowest-energy path is recommended, which results in around 20-30% energy savings.

Challenges we ran into

This was my first hardware project, so in the beginning I struggled with circuits, wiring, and understanding how different parts would work together. It took time to figure out the connections, power setup, and communication between the Arduino and Raspberry Pi, but by testing each part step by step, I was able to make progress. There were a few challenges: Wind Vane Unavailability: As we could not get a wind vane, we substituted it with a KY-040 rotary encoder as a manual direction dial for project demonstration. WiFi Devices Limit: Although the Raspberry Pi and Arduini will be connected over WiFi (ESP-32, as mentioned in Production Implementation), we used a wired connection for the purpose of this hackathon.

Accomplishments that we're proud of

Along with finishing my first hackathon, I am proud of the impact and the benefits this project gives: Energy Savings: By aligning flight paths with prevailing wind, the system can reduce energy consumption by 15-30% compared to fixed-pattern paths, extending flight time and coverage per battery charge. Complete Field Coverage: Every candidate path covers the entire field uniformly. Safety: Automatic shutdown recommendations when wind exceeds safe thresholds prevent crashes and crop damage. Accessibility: The module is designed to attach to any existing drone via Velcro straps, making wind-optimized path planning available to small-scale farmers without purchasing specialized equipment. Cost-Effective: Total hardware costs under $100 (excluding the drone itself), using readily available components. Scalability: Field dimensions, spray width, wind thresholds, and number of candidate paths are all configurable.

What we learned

Through this project, I learned how hardware and software come together to solve a real-world problem. I also learned that when building something for the first time, patience, testing, and simplifying the idea are just as important as the idea itself.

What's next for AeroPath

In production deployment, the system architecture separates into two components. The ground station, and the drone unit. The ground station consists of the anemometer, wind vane, and Arduino on a pole at the field edge and reads wind conditions. It transmits wind data wirelessly via WiFi (ESP32) or LoRa to the drone-mounted unit. The drone unit, consisting of the Raspberry Pi, GPS module, and portable power, receives the wind data, runs the path optimization algorithm, and converts the optimal waypoints from field coordinates (meters) to GPS coordinates (latitude/longitude). These GPS waypoints are then sent to the drone's flight controller (Pixhawk, ArduPilot, or similar) using the MAVLink protocol, the industry standard for drone communication. The operator can monitor the system remotely via a web dashboard or VNC, viewing the real-time path optimization on a tablet or laptop while the drone flies autonomously. The system continuously re-evaluates wind conditions and can update the mission mid-flight if wind shifts significantly.

Add WiFi connection between the two components. Replace the Ky-040 rotary encoder with a physical wind vane. Create a neat and space-efficient system box for both the units. Integrate the system with ArduPilot/PX4 flight controllers using MAVLink . Deploy multiple anemometers across large fields for better wind readings. Extend to non-rectangular fields using polygon-based path planning. Add machine learning to predict wind pattern changes based on historical data and weather APIs.

Built With

Share this project:

Updates