IoT · Solar irrigation
Smart Solar Irrigation
An IoT control panel for a solar-powered field irrigation system. The device in the field reports every few seconds, and the panel decides which valves open and how fast the pump runs.
- Role
- Personal project · Full-stack development and deployment
- Year
- 2026
- Stack
- Laravel
- Livewire
- Filament
- Tailwind CSS
- Chart.js
- Docker
- Pest
Context
A solar-powered irrigation system needs its pump, inverter and valves to run in the right order and within a safe pressure range. I wanted a control centre that collects data from the field hardware, runs irrigation on schedule and stops the system by itself when something goes wrong. I built it end to end and deployed it on my own server, where it receives data from real devices around the clock.
What I built
Device API
The field device posts pressure, temperature, humidity, inverter frequency, current and status to a sync API I wrote in Laravel. Every reply tells the device what to do: a run or force-stop command, the target frequency and which valves stay open. The device authenticates with a token in the request header, and requests are rate-limited.
Safety and schedules
The safety logic runs on the server. When pressure goes above a configurable limit (4 bar by default), every valve closes, the device gets a stop command and the event is kept as a latched fault; automation only resumes once an operator acknowledges it on the dashboard. There is also an emergency stop, manual and automatic modes, and a drain mode that runs the pump at 0 Hz. Schedules can follow days of the week or a cycle that rotates through the valves every N days, and the resolver handles windows that cross midnight in Istanbul time.
Dashboard and deployment
The Livewire dashboard shows the field's four zones on a live map that refreshes every few seconds, and the app installs on a phone as a PWA. The same system has two more modules: lighting, where motion sensors trigger floodlight relays, and wind analysis, which converts measured wind speed into energy on a 500 W turbine's power curve to show whether the investment makes sense. It ships as a Docker image behind nginx and Let's Encrypt, and 29 Pest tests cover the core logic.
Contact
Have a project in mind?