MQTT-based system for distributing Islamic prayer times.
Includes a Raspberry Pi publisher and ESP32/ESP8266 MicroPython client.
- Publishes daily prayer times as JSON via MQTT
- ESP client parses data and shows countdown to next prayer
- Automatic Wi-Fi and MQTT reconnect
- Modular: config, Wi-Fi, MQTT, and time utilities in separate files
- Raspberry Pi script can be run automatically via cron every day at midnight
mqtt-prayer-info/
├── esp/ # MicroPython ESP client
│ ├── config.py
│ ├── wifi_service.py
│ ├── mqtt_service.py
│ ├── time_utils.py
│ ├── time_sync.py
│ └── main.py
├── pi/ # Raspberry Pi publisher
│ ├── config.json
│ ├── main.py
│ └── ressources/
│ └── times_sampleCity.json
- Install requirements:
pip install paho-mqtt
- Configure
pi/config.json. - (Optional) Set up cronjob to run daily at 00:00:
Add the following line:
crontab -e
0 0 * * * /usr/bin/python3 /path/to/mqtt-prayer-info/pi/main.py - Run manually if needed:
cd pi python3 main.py
- Flash MicroPython firmware (download).
- Edit
esp/config.pywith Wi-Fi & MQTT settings. - Upload:
cd esp mpremote connect /dev/ttyUSB0 cp -r ./ :
- Reset board —
main.pyruns automatically.
mqtt-prayer-info/times/todaymqtt-prayer-info/times/tomorrow
Example payload:
{
"imsak": "03:15",
"fajr": "03:35",
"sunrise": "06:05",
"dhuhr": "13:42",
"asr": "17:44",
"maghrib": "21:09",
"isha": "23:27",
"date": "2025-08-10"
}Wi-Fi connected: 192.168.178.45
MQTT connected
Next: fajr at 03:35 in 4h 12m 15s