Stud-Bud

Ingest playground

Sensor test bench

Four numbers, no room to pick and no seat counts — exactly what a bare Arduino sends before you wire up people counting. Use it to prove your ingest token, your JSON and your calibration one at a time — then scroll down to watch the real board once it’s posting.

Live rooms

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.

stream closed

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. 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. 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. 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.