IoT Classroom Environment Monitoring

This dataset captures real-time, granular IoT sensor readings from classrooms, including temperature, humidity, air quality, occupancy, and more, along with device health and precise location metadata. It enables analysis and optimization of educational environments for health, comfort, and energy efficiency, supporting EdTech innovation and smart building solutions.

  • last updated 20 Jan 2026
  • by GoMask
The brief that made it

Optimizing classroom environmental conditions for student health and learning outcomes

Sample rows

preview · 8 of 120 rows · all 15 columns
reading_idstringdevice_statusstringdevice_battery_levelfloatis_occupiedbooleansensor_locationstringtimestampdatetimeclassroom_idstringsensor_idstringsensor_typestringvaluefloatunitstringschool_idstringbuilding_namestringfloor_numberintegerclassroom_namestring
R0001active96.3blankceiling2024-06-08T08:01:00CLS101SEN-01Atemperature21.7CelsiusSCH1001West Hall2Room 101
R0002active87.1blankwall2024-06-08T08:06:00CLS102SEN-02Bhumidity44.8%SCH1001West Hall1Room 102
R0003active90.7blankdesk2024-06-08T08:11:00CLS201SEN-03Cco2749ppmSCH1002East Wing1Lab A
R0004active99.9blankceiling2024-06-08T08:16:00CLS202SEN-04Dnoise63.2dBSCH1002East Wing2Lab B
R0005active87.6blankdesk2024-06-08T08:21:00CLS103SEN-05Elight12034.5luxSCH1001West Hall0Room 103
R0006active92.2trueentrance2024-06-08T08:26:00CLS301SEN-06Foccupancy1countSCH1003South Block3Room 301
R0007active82.4blankwall2024-06-08T08:31:00CLS104SEN-07Gair_quality77AQISCH1001West Hall2Room 104
R0008active84.1blankdesk2024-06-08T08:36:00CLS302SEN-08Htemperature69.8FahrenheitSCH1003South Block3Room 302

What the 120 rows show

from the 120-row sample

Error (device status) stands out: mean device_battery_level is 0.45, against 74.5 for the rest.

  • 60%is_occupied = true
  • 82.0median device_battery_level
  • 7sensor types
  • 8units
  • 19schools
  • 21building names
Mean device_battery_level by device_status115 rows
05010086.2active81 rows0.0inactive6 rows45.2maintena…17 rows0.45error11 rows
device_battery_level115 rows, in bands of 10
0204017113677122734050100device_battery_level →

Median 82.0, from 0.0 to 100.0.

sensor_location111 rows with a value · 9 left blank
  1. wall39
  2. ceiling38
  3. desk25
  4. entrance9
15 columns by typefrom the column list below
  • string 10
  • integer 1
  • float 2
  • datetime 1
  • boolean 1

Columns

15 columns in four groups
blueprint · 15 columns
columntypedescriptionexample
Text 10 columns
reading_idstringUnique identifier for each sensor reading record.uniqueR0001
classroom_idstringUnique identifier for the classroom where the sensor is located.CLS101
sensor_idstringUnique identifier for the IoT sensor device.SEN-01A
sensor_typestringType of sensor (e.g., temperature, humidity, CO2, noise, light, occupancy, air_quality).7 valuestemperature
sensor_locationstringPhysical location of the sensor within the classroom (e.g., ceiling, wall, desk).4 locations · optionalceiling
unitstringUnit of measurement for the sensor value (e.g., Celsius, %, ppm, dB, lux, count, AQI).8 valuesCelsius
device_statusstringOperational status of the sensor device (e.g., active, inactive, maintenance, error).active · inactive · maintenance · error · optionalactive
school_idstringUnique identifier for the school or educational institution.optionalSCH1001
building_namestringName of the building where the classroom is located.optionalWest Hall
classroom_namestringHuman-readable name or code for the classroom (e.g., Room 101, Lab A).optionalRoom 101
Numbers 3 columns
valuefloatMeasured value from the sensor (unit depends on sensor_type).21.7
device_battery_levelfloatCurrent battery level of the sensor device as a percentage (0-100).0 to 100 · optional96.3
floor_numberintegerFloor number where the classroom is located.0 or more · optional2
Dates and times 1 column
timestampdatetimeDate and time when the sensor reading was recorded.2024-06-08T08:01:00
True or false 1 column
is_occupiedbooleanIndicates if the classroom is currently occupied (true) or not (false), based on occupancy sensor.optionaltrue

Use it for

  • is occupied60%6 of 10 rowsmean device battery l…86.2acti…0.0inac…45.2main…0.45error

    An education dashboard

    The is_occupied rate, device_battery_level by device_status and a breakdown of sensor_location. Excel, Power BI or Tableau.

  • Why do the 11 error rows have a mean device_battery_level of 0.45?

    A root-cause class exercise

    Hand out the rows and one question. The answer is in the data, not in the brief.

  • A software demo

    Believable readings with timestamp, classroom_id and sensor_id to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 15 columns, your size and your rules. See 20 rows before you pay.

Preview 20 rows free

10,000 rows of yours: $12.99One-time. No subscription. All prices

This dataset120 rows15 columns
Yours10,000 rows15 columnssensor_location: UK only

blueprint · iot-classroom-environment-monitoring

Behind this dataset

Same schema. As many rows as you need.

These 120 rows came out of a blueprint — 15 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.

Rules it was built with
  • Each row represents a 10-minute interval for a single classroom.
  • Sensors capture temperature (°C), humidity (%), CO2 (ppm), light (lux), and noise (dB).
  • Anomalous readings (e.g., CO2 > 1500 ppm or noise > 65 dB) must trigger a 'Flag' field.
  • Classrooms are spread across different floor levels and building types.
  • Missing sensor readings (up to 5% of records) are marked as 'null' to reflect real-world IoT behavior.
Rows
Open the blueprint in Data Factory

1 credit per row. New accounts start with 25 free credits.

Exports
CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
Licence
yours to use, including commercially
API slug
iot-classroom-environment-monitoring

What should your data show?

Preview 20 rows free
No signup. No card.