A complete web-based remote GPIO controller for Raspberry Pi with real-time monitoring, PWM control, and a modern interface.
Run the following command in your Raspberry Pi terminal
curl -sL https://raw.githubusercontent.com/SiddhantSilwal/RaspberryPi-GPIO-Web-Controller/refs/heads/main/webinstaller.sh | bash
For custom installation to review and change python scripts as per your setup, clone and install the git repo as follows
git clone https://github.com/SiddhantSilwal/RaspberryPi-GPIO-Web-Controller.git
cd RaspberryPi-GPIO-Web-Controller/
chmod +x ./install.sh
./install.sh
- Python 3.7 or higher
- Curl
- Packages listed in
requirements.txt
For default installation the script will autostart on boot
If autostart is disabled at installation type the following command to start the server
$ webgpio
- Open a web browser
- Navigate to
http://localhost:5000
(local) orhttp://[PI_IP_ADDRESS]:5000
(network)
/usr/share/RaspiWebGPIO/
├── app.py # Flask backend application
├── requirements.txt # Python dependencies
├── templates/
│ └── index.html # Main HTML template
└── static/
├── css/
│ └── styles.css
└── js/
└── app.js
- Visual GPIO Grid: Real-time status display of all GPIO pins
- Input Monitoring: Live monitoring with event logging for input pins with pull-resistor options
- Output Control: Set Output signal to HIGH, LOW or send a pulse
- PWM Control: Hardware and software PWM with frequency and duty cycle control
- Real-time Updates: Server-Sent Events for live status updates
- Activity Logging: Comprehensive logging of all user actions and system events
- Modern Interface: User friendly design that works on desktop, tablet, and mobile devices
GET /api/pins
- Get status of all GPIO pinsPOST /api/mode
- Configure pin mode (input/output)POST /api/write
- Set output values or send pulsesPOST /api/pwm
- Control PWM (start/stop/configure)POST /api/monitor
- Toggle input pin monitoringPOST /api/reset
- Reset all pins to safe defaultsGET /api/events
- Server-Sent Events stream for real-time updates
Ctrl+D
(orCmd+D
on Mac) - Toggle dark modeCtrl+R
(orCmd+R
on Mac) - Reset all pinsEnter
/Space
on GPIO pins - Select for configurationTab
- Navigate between controls