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.
Sample rows
preview · 8 of 120 rows · all 15 columns| reading_idstring | device_statusstring | device_battery_levelfloat | is_occupiedboolean | sensor_locationstring | timestampdatetime | classroom_idstring | sensor_idstring | sensor_typestring | valuefloat | unitstring | school_idstring | building_namestring | floor_numberinteger | classroom_namestring |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| R0001 | active | 96.3 | blank | ceiling | 2024-06-08T08:01:00 | CLS101 | SEN-01A | temperature | 21.7 | Celsius | SCH1001 | West Hall | 2 | Room 101 |
| R0002 | active | 87.1 | blank | wall | 2024-06-08T08:06:00 | CLS102 | SEN-02B | humidity | 44.8 | % | SCH1001 | West Hall | 1 | Room 102 |
| R0003 | active | 90.7 | blank | desk | 2024-06-08T08:11:00 | CLS201 | SEN-03C | co2 | 749 | ppm | SCH1002 | East Wing | 1 | Lab A |
| R0004 | active | 99.9 | blank | ceiling | 2024-06-08T08:16:00 | CLS202 | SEN-04D | noise | 63.2 | dB | SCH1002 | East Wing | 2 | Lab B |
| R0005 | active | 87.6 | blank | desk | 2024-06-08T08:21:00 | CLS103 | SEN-05E | light | 12034.5 | lux | SCH1001 | West Hall | 0 | Room 103 |
| R0006 | active | 92.2 | true | entrance | 2024-06-08T08:26:00 | CLS301 | SEN-06F | occupancy | 1 | count | SCH1003 | South Block | 3 | Room 301 |
| R0007 | active | 82.4 | blank | wall | 2024-06-08T08:31:00 | CLS104 | SEN-07G | air_quality | 77 | AQI | SCH1001 | West Hall | 2 | Room 104 |
| R0008 | active | 84.1 | blank | desk | 2024-06-08T08:36:00 | CLS302 | SEN-08H | temperature | 69.8 | Fahrenheit | SCH1003 | South Block | 3 | Room 302 |
| R0009 | active | 92.6 | blank | ceiling | 2024-06-08T08:41:00 | CLS203 | SEN-09I | humidity | 53.7 | % | SCH1002 | East Wing | 2 | Lab C |
| R0010 | active | 82 | blank | wall | 2024-06-08T08:46:00 | CLS401 | SEN-10J | co2 | 1320.5 | ppm | SCH1004 | North Tower | 1 | Room 401 |
| R0011 | active | 78.3 | blank | wall | 2024-06-08T08:51:00 | CLS104 | SEN-11K | light | 37500.8 | lux | SCH1001 | West Hall | 2 | Room 104 |
| R0012 | active | 94.8 | false | entrance | 2024-06-08T08:56:00 | CLS402 | SEN-12L | occupancy | 0 | count | SCH1004 | North Tower | 1 | Room 402 |
| R0013 | active | 88.2 | blank | ceiling | 2024-06-08T09:01:00 | CLS101 | SEN-13M | air_quality | 210 | AQI | SCH1001 | West Hall | 2 | Room 101 |
| R0014 | active | 93.3 | blank | desk | 2024-06-08T09:06:00 | CLS103 | SEN-14N | temperature | 68.2 | Fahrenheit | SCH1001 | West Hall | 0 | Room 103 |
| R0015 | active | 85.9 | blank | wall | 2024-06-08T09:11:00 | CLS202 | SEN-15O | humidity | 42.1 | % | SCH1002 | East Wing | 2 | Lab B |
| R0016 | active | 100 | blank | ceiling | 2024-06-08T09:16:00 | CLS301 | SEN-16P | noise | 59.7 | dB | SCH1003 | South Block | 3 | Room 301 |
| R0017 | active | 89.5 | blank | ceiling | 2024-06-08T09:21:00 | CLS302 | SEN-17Q | co2 | 1950.4 | ppm | SCH1003 | South Block | 3 | Room 302 |
| R0018 | active | 90.1 | blank | desk | 2024-06-08T09:26:00 | CLS104 | SEN-18R | light | 80244.6 | lux | SCH1001 | West Hall | 2 | Room 104 |
| R0019 | active | 85 | blank | wall | 2024-06-08T09:31:00 | CLS203 | SEN-19S | air_quality | 412 | AQI | SCH1002 | East Wing | 2 | Lab C |
| R0020 | active | 98.7 | blank | wall | 2024-06-08T09:36:00 | CLS401 | SEN-20T | temperature | 20.2 | Celsius | SCH1004 | North Tower | 1 | Room 401 |
What the 120 rows show
from the 120-row sampleError (device status) stands out: mean device_
- 60%is_
occupied = true - 82.0median device_
battery_ level - 7sensor types
- 8units
- 19schools
- 21building names
Median 82.0, from 0.0 to 100.0.
- string 10
- integer 1
- float 2
- datetime 1
- boolean 1
Columns
15 columns in four groups| column | type | description | example |
|---|---|---|---|
| Text 10 columns | |||
reading_id | string | Unique identifier for each sensor reading record.unique | R0001 |
classroom_id | string | Unique identifier for the classroom where the sensor is located. | CLS101 |
sensor_id | string | Unique identifier for the IoT sensor device. | SEN-01A |
sensor_type | string | Type of sensor (e.g., temperature, humidity, CO2, noise, light, occupancy, air_quality).7 values | temperature |
sensor_location | string | Physical location of the sensor within the classroom (e.g., ceiling, wall, desk).4 locations · optional | ceiling |
unit | string | Unit of measurement for the sensor value (e.g., Celsius, %, ppm, dB, lux, count, AQI).8 values | Celsius |
device_status | string | Operational status of the sensor device (e.g., active, inactive, maintenance, error).active · inactive · maintenance · error · optional | active |
school_id | string | Unique identifier for the school or educational institution.optional | SCH1001 |
building_name | string | Name of the building where the classroom is located.optional | West Hall |
classroom_name | string | Human-readable name or code for the classroom (e.g., Room 101, Lab A).optional | Room 101 |
| Numbers 3 columns | |||
value | float | Measured value from the sensor (unit depends on sensor_type). | 21.7 |
device_battery_level | float | Current battery level of the sensor device as a percentage (0-100).0 to 100 · optional | 96.3 |
floor_number | integer | Floor number where the classroom is located.0 or more · optional | 2 |
| Dates and times 1 column | |||
timestamp | datetime | Date and time when the sensor reading was recorded. | 2024-06-08T08:01:00 |
| True or false 1 column | |||
is_occupied | boolean | Indicates if the classroom is currently occupied (true) or not (false), based on occupancy sensor.optional | true |
Use it for
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.
- Readings120R000692.2activeR001294.8activeR002290.8active
A software demo
Believable readings with timestamp, classroom_
id and sensor_ id to fill a screen in front of a buyer.
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.
- 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.
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