A modular, reusable, portable terminal for classroom IoT and AI demonstrations, built on a Raspberry Pi 4B with the official 5” touchscreen.
Students should follow the walkthrough on the Pi IoT Academy website. For anyone who just wants the commands:
# On a fresh Pi with Raspberry Pi OS 64-bit:
sudo mkdir -p /opt/iot-platform && sudo chown $USER:$USER /opt/iot-platform
cd /opt/iot-platform
git clone https://github.com/Computing-Hub/IoT_Master.git .
./scripts/bootstrap-pi.sh # installs Docker, adds user to docker group
# (log out + back in for the group change)
cp .env.example .env
nano .env # set MQTT_PASSWORD; ANTHROPIC_API_KEY can wait
./scripts/bootstrap-mqtt-passwd.sh
docker compose up -d
docker compose ps
When all five containers report healthy:
| URL | What |
|---|---|
http://<pi>/ |
Vue placeholder dashboard |
http://<pi>:1880/ |
Node-RED |
http://<pi>:8000/health |
API health check |
http://<pi>:8001/health |
AI service health check |
mqtt://<pi>:1883 (auth required) |
Mosquitto MQTT broker |
| Document | Purpose |
|---|---|
docs/architecture.md |
System architecture and Architecture Decision Records (ADRs). |
docs/hardware-runbook.md |
Step-by-step Phase 1 hardware setup (SD card, OS, touchscreen, networking, power). |
docs/folder-layout.md |
Target repository folder structure for code, modules, and infrastructure. |
docs/mqtt-conventions.md |
MQTT topic naming, payload schema, QoS, and retention rules. |
docs/database-design.md |
SQLite schema, repository abstraction, and migration path to Postgres / TimescaleDB / InfluxDB. |
docs/ai-integration.md |
Claude Haiku integration: user-triggered “Explain” button, prompt template, and persistence. |
docs/implementation-plan.md |
Phased delivery plan from hardware bring-up through to the first classroom module. |
| Phase | Title | Status |
|---|---|---|
| 1 | Core device (hardware, OS, touchscreen) | Runbook ready |
| 2 | Core services (Docker, MQTT, Node-RED, FastAPI, Vue) | Built |
| 3 | MQTT core | Built |
| 4 | Database core | Built |
| 5 | Dashboard core | Built |
| 6 | AI API integration (Claude Haiku, “Explain” button) | Built |
| 7 | First module — Classroom Sensor Hub | Built |
British English throughout (e.g. colour, organise, behaviour).