Smart Campus

3D render of the Smart Campus sensor node enclosure with the electronics inside

How many times has a classroom been left with its lights on all night, or a door left open over the weekend? Problems like these waste energy and affect comfort and safety, yet nobody notices them unless someone walks through every building. Smart Campus makes this information available remotely and continuously: an Internet of Things system that monitors the environment and use of our university classrooms in real time.

What it monitors

Every classroom gets a small sensor node that measures:

  • Temperature and humidity, plus the felt temperature (heat index),
  • Light level in lux,
  • Door state — open or closed,
  • Human presence, even when people are sitting still.

How it works

The system is built in four layers, each talking to the next through a well-defined protocol:

  1. Sensing — one ESP32-S3 node per classroom reads its sensors every few seconds.
  2. Transport — each reading is published as an MQTT message over the campus Wi-Fi to an Eclipse Mosquitto broker.
  3. Processing — Node-RED collects the messages, combines them into one state per classroom and pushes updates instantly over WebSockets.
  4. Presentation — a web dashboard built with Next.js and React shows every room live, with one tab per classroom.

Because MQTT is publish/subscribe, new services — a history database, or an alert when a door is left open after hours — can be added later without touching the sensor firmware.

Smart hardware choices

  • DHT11 for temperature and humidity, BH1750 for calibrated light readings in lux, and a magnetic reed switch on the door.
  • A 24 GHz mmWave radar for presence. A typical motion (PIR) sensor would see a class sitting quietly during an exam as an empty room; the radar picks up the tiny movements of breathing, so it can tell a full room from an empty one.
  • Inexpensive, widely available parts powered over USB, so many rooms can be equipped at low cost.
Smart Campus sensor node wiring diagram (Fritzing)
Wiring of the sensor node around the ESP32-S3 (Fritzing).
3D render of the Smart Campus sensor node enclosure
3D design of the sensor node enclosure.

Built to run unattended

The firmware, written in C++ with PlatformIO, is split into one module per sensor and designed to recover on its own: a failed sensor never stops the others, invalid readings are never published, and lost connections are restored automatically. Wi-Fi credentials are kept out of the public repository. The backend starts with a single docker compose up, and the code is documented with Doxygen and released under the MIT license, so other universities can reuse it.

The dashboard

Each room has widgets that turn raw numbers into something an administrator understands at a glance: temperature with a live chart of actual vs. felt temperature, door Open/Closed, Occupied/Vacant, humidity zones from Dry to Humid, and light levels from Dim to Very Bright. It works on phones too, so staff can check rooms while walking around campus.

What it reveals

Combining sensors gives answers no single sensor can:

  • Forgotten lights: bright room + nobody present.
  • Unsecured rooms: door open outside teaching hours.
  • Comfort: rising temperature and humidity in a full lecture hall mean ventilation should be adjusted.
  • Room usage: which rooms are really in use, to inform booking and cleaning schedules.

Smart Campus grew out of our earlier SmartLab project and was presented at IEEE Day 2025.

Read the full report

📄 Smart Campus — Design and Implementation Report (PDF, 11 pages): architecture, hardware, firmware, MQTT topics, Node-RED flows, dashboard and deployment.

📥 Download the report (PDF)

The team

  • Dimitrios Papakonstantinou — Project Lead / Software Developer
  • George Tingos — Hardware Design
  • Panagiotis Kavakopoulos — Software/Hardware Developer
  • Themelis Kokovidis — Software/Hardware Developer

Links