Sample Sensor Data CSV File — Free Download
An IoT sensor log at 15-minute intervals with temperature, humidity, a steadily declining battery percentage and a status flag that trips when the battery runs low — built for anomaly detection.
Download the sample file
CSV · 600 rows · 26.4 KB · synthetic data, free for any use
Download CSV samplePreview
| timestamp | sensor_id | temperature_c | humidity | battery_pct | status |
|---|---|---|---|---|---|
| 2026-01-01T00:00:00Z | SENS-08 | 9.4 | 74 | 100.5 | ok |
| 2026-01-01T00:15:00Z | SENS-03 | 18.5 | 79 | 98.1 | ok |
| 2026-01-01T00:30:00Z | SENS-04 | -8.1 | 44 | 100.6 | ok |
| 2026-01-01T00:45:00Z | SENS-12 | 3.2 | 29 | 99.4 | ok |
| 2026-01-01T01:00:00Z | SENS-07 | 21.4 | 64 | 97.7 | ok |
| 2026-01-01T01:15:00Z | SENS-06 | 4.3 | 62 | 98.8 | ok |
Showing the first 6 of 600 rows.
Columns
| Column | Type | Description |
|---|---|---|
timestamp | datetime (ISO 8601) | 15-minute cadence |
sensor_id | string | SENS-01 … SENS-12 |
temperature_c | decimal | Reading in °C |
humidity | integer | Relative humidity, % |
battery_pct | decimal | Battery level, trends downward over the file |
status | string | ok, low_battery (below 15%) or error (rare) |
What makes this file useful
- battery_pct decreases roughly linearly with noise, so it is a clean example for linear regression and trend extrapolation.
- status is derived from battery_pct, so you can validate a rule you write against the column that is already there.
- A small fraction of rows are error — realistic noise for testing anomaly filters.
Use cases
- Resample 15-minute data to hourly or daily averages
- Detect the point where battery_pct crosses 15% and status flips
- Flag error rows and measure how often they occur
- Practise parsing ISO 8601 timestamps
Open it in a tool
Load this sample — or your own file — into a real tool. Everything runs client-side.
Related guides
More sample datasets
Frequently asked questions
Is this from a real sensor?
No. Readings are generated. The battery decay and status logic are modelled, not measured.
What is the sampling interval?
One reading every 15 minutes, 600 rows total across 12 sensor IDs.
How do I get per-sensor series?
Filter by sensor_id first, then sort by timestamp.
Turn this into a saved workflow
Create a free account to save the steps from this guide as a reusable workflow and re-run it on any file, from any device.
Follow HowToCSV on Google
Add us as a preferred source on Google Search so our latest CSV guides and tutorials surface more often in your Top stories.