Repozitář pro studenty 3.ročníku zaměření IVE
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

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()