You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
import sqlite3
|
|
import random
|
|
from datetime import datetime, timedelta
|
|
|
|
DB_FILE = "iot_data.sqlite"
|
|
POCET_MERENI = 50
|
|
|
|
conn = sqlite3.connect(DB_FILE)
|
|
cursor = conn.cursor()
|
|
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS mereni (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
cas TEXT NOT NULL,
|
|
teplota REAL NOT NULL,
|
|
vlhkost REAL NOT NULL
|
|
)
|
|
""")
|
|
conn.commit()
|
|
print("Tabulka mereni vytovřena (nebo již existuje).☺")
|
|
|
|
#Generovani dat - začínáme od aktualního času, měření probíha každých 5 vteřin
|
|
cas_start = datetime.now() - timedelta(seconds=POCET_MERENI*5)
|
|
zakladni_teplota = 22.0 #píšeme .0 z důvodu toho aby se počítalo s FLOAT dat.typem
|
|
zakladni_vlhkost = 50.0
|
|
|
|
data= []
|
|
for i in range(POCET_MERENI):
|
|
cas = cas_start + timedelta(seconds=i*5)
|
|
#Simulace realistickych hodnot s mírným kolísáním
|
|
teplota = round(zakladni_teplota + random.uniform(-3.0,5.0),1)
|
|
vlhkost = round(zakladni_vlhkost + random.uniform(-20.0,15.0),1)
|
|
data.append((cas.strftime("%Y-%m-%d %H:%M:%S"),teplota,vlhkost))
|
|
|
|
cursor.executemany(
|
|
"INSERT INTO mereni (cas, teplota, vlhkost) VALUES (?, ?, ?)",
|
|
data
|
|
)
|
|
conn.commit()
|
|
print(f"Vygenerováno {POCET_MERENI} měření do {DB_FILE}")
|
|
print(f"Časový rozsah: {data[0][0]} - {data[-1][0]}")
|
|
print(f"Ukázka prvních 5 záznamů:")
|
|
for cas, t, v in data[:5]:
|
|
print(f"{cas} | {t}°C | {v}%")
|
|
conn.close()
|