Request body
{
"spaceId": "sensor-test-bench",
"name": "Sensor test bench",
"building": "Bench",
"temperature": 21.4,
"humidity": 42,
"sound": 34,
"light": 520
}The same thing from a terminal, so you can check the board and the network separately:
curl -X POST /api/readings \
-H 'content-type: application/json' \
-d '{"spaceId":"sensor-test-bench","name":"Sensor test bench","building":"Bench","temperature":21.4,"humidity":42,"sound":34,"light":520}'Response
Nothing sent yet. A good post answers 201; a rejected one answers 400 and tells you which field it disliked.
Live from the hardware
Whatever the Arduino is actually posting, as it arrives. The board sends over WiFi to this server; the page listens to the server. Your browser never talks to the board directly — it can't.
Temperature
20.6°C
Humidity
38% RH
Noise
38dB
Light
894lux
Checking the last sweep… · 36 of 45 seats free full history
What the board has to do
- 1. Read the sensors — temperature and humidity over the DHT22's one-wire protocol, lux from the Modulino Light over I²C, and a one-second window of microphone samples reduced to a single peak.
- 2. Average a minute of samples (but keep the loudest noise peak, not the average — a room is judged by how loud it gets).
- 3. POST exactly the JSON on the left. Nothing else about the board matters to this server.
The line-by-line walkthrough of the firmware — why each sensor was chosen, how the mic becomes decibels, and how to calibrate it — is in hardware/HOW-IT-WORKS.md.

