Mohamed Nehad Shalabi's Scheduler Is an API and Web App Designed to Ease GPIO Automation

Designed for surprising flexibility in the creation and scheduling of GPIO sequences, Scheduler is now available on 64-bit OSes.

Developer Mohamed Nehad Shalabi has built a handy tool designed to make it easier to work with the Raspberry Pi's general-purpose input/output (GPIO) header, by providing a scheduler and web app.

"I created a GPIO Scheduler Web app for the Raspberry Pi that lets you define GPIO channels, create complex sequences with them, and link schedules to trigger those sequences," Shalabi explains. "Both the frontend and the backend are containerized with Docker, and the frontend repo contains a Docker compose file to run both together."

The scheduler portion of the system, which is simply called Scheduler, provides a handy application programming interface (API) for GPIO pin control. Based on the cron scheduling system, the Scheduler allows for any one of the Raspberry Pi's GPIO pins to be toggled on a schedule β€” while providing a means to define sequences for more complex projects.

The frontend, meanwhile, is a NextJS-based web app that offers a simple network-accessible user interface. A password-protected dashboard provides confirmation of the host Raspberry Pi's clock setting, allows for status checking of pins β€” accessible under aliases to make things easier β€” and shows which, if any, sequences are defined or running.

The web interface for sequencing shows off its flexibility. One or more GPIO "channel" can be switched on or off using draggable bars on a timeline, with the overall length and step time up to the user. Sequences can then be linked and triggered based on a schedule or by sensor inputs β€” enabling irrigation systems when dry weather is detected, for example.

The Scheduler backend and the web-app frontend are both available in their respective GitHub repositories, under the permissive MIT license, along with full instructions on installing and using them β€” though Shalabi warns that the software is only compatible with 64-bit operating systems, leaving older-model Raspberry Pi units with 32-bit CPUs out in the cold.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles