6 changed files with 334 additions and 0 deletions
|
Can't render this file because it has a wrong number of fields in line 69.
|
@ -0,0 +1,21 @@ |
|||||
|
import csv |
||||
|
import datetime |
||||
|
import random |
||||
|
|
||||
|
# definice senzorů |
||||
|
senzory = ["DHT11 vlhkost", "DHT11 teplota","HC-SR04 vzdálenost"] |
||||
|
|
||||
|
#otevření souboru |
||||
|
with open("data.csv","a",newline="") as csvfile: |
||||
|
writer = csv.writer(csvfile) #zapisovatel |
||||
|
now = datetime.datetime.now() #aktualni datum a cas |
||||
|
if csvfile.tell() == 0: |
||||
|
writer.writerow(["Datum a cas"]+[senzor for senzor in senzory]) |
||||
|
|
||||
|
hodnoty = [ |
||||
|
random.randint(30,80), #vlhkost |
||||
|
random.randint(20,28), #teplota |
||||
|
random.randint(20,200) #vzdalenost |
||||
|
] |
||||
|
#zapis dat |
||||
|
writer.writerow([now.strftime("%Y-%m-%d %H:%M:%S")] + hodnoty) |
||||
@ -0,0 +1,52 @@ |
|||||
|
import csv |
||||
|
import matplotlib.pyplot as plt |
||||
|
import datetime |
||||
|
import art |
||||
|
from termcolor import colored |
||||
|
|
||||
|
art.tprint("CSV reader") |
||||
|
with open("data.csv","r") as csvfile: |
||||
|
print(colored("Otevírám data.csv","blue")) |
||||
|
reader = csv.reader(csvfile) |
||||
|
next(reader,None) #kvůli hlavičce |
||||
|
data_cas = [] |
||||
|
data_vlhkost = [] |
||||
|
data_teplota = [] |
||||
|
data_vzdalenost = [] |
||||
|
|
||||
|
for row in reader: |
||||
|
datum_cas = row[0] |
||||
|
|
||||
|
try: |
||||
|
datetime_object = datetime.datetime.strptime(datum_cas,"%Y-%m-%d %H:%M:%S") |
||||
|
|
||||
|
except ValueError: |
||||
|
print(f"Chybný formát data a času: {datum_cas}") |
||||
|
|
||||
|
data_cas.append(datetime_object) |
||||
|
data_vlhkost.append(float(row[1])) |
||||
|
data_teplota.append(float(row[2])) |
||||
|
data_vzdalenost.append(float(row[3])) |
||||
|
|
||||
|
#print(data_teplota) #test jestli máme nějaké hodnoty |
||||
|
print(colored("Data úspěšně načteny","yellow")) |
||||
|
print(colored("Vytvářím grafy","green")) |
||||
|
plt.subplot(311) # 3 řádky, 1 sloupec, 1.graf |
||||
|
plt.plot(data_cas,data_vlhkost, label="vlhkost") |
||||
|
plt.legend() |
||||
|
plt.xticks(visible=False) #skrýt čas na X axis (necháme jen u vzdálenosti at víme čas) |
||||
|
plt.title("Vlhkost") |
||||
|
|
||||
|
plt.subplot(312) # 3 řádky, 1 sloupec, 2.graf |
||||
|
plt.plot(data_cas,data_teplota, label="teplota") |
||||
|
plt.legend() |
||||
|
plt.xticks(visible=False) |
||||
|
plt.title("teplota") |
||||
|
|
||||
|
plt.subplot(313) # 3 řádky, 1 sloupec, 3.graf |
||||
|
plt.plot(data_cas,data_vzdalenost, label="vzdalenost") |
||||
|
plt.legend() |
||||
|
plt.title("vzdalenost") |
||||
|
|
||||
|
plt.show() |
||||
|
print(colored("Děkujeme za použití naší aplikace","red")) |
||||
@ -0,0 +1,15 @@ |
|||||
|
art==6.5 |
||||
|
colorama==0.4.6 |
||||
|
contourpy==1.3.3 |
||||
|
cycler==0.12.1 |
||||
|
fonttools==4.61.1 |
||||
|
kiwisolver==1.4.9 |
||||
|
matplotlib==3.10.8 |
||||
|
numpy==2.4.1 |
||||
|
packaging==25.0 |
||||
|
pillow==12.1.0 |
||||
|
pyparsing==3.3.1 |
||||
|
python-dateutil==2.9.0.post0 |
||||
|
six==1.17.0 |
||||
|
termcolor==3.3.0 |
||||
|
tqdm==4.67.1 |
||||
@ -0,0 +1,22 @@ |
|||||
|
import csv |
||||
|
import datetime |
||||
|
import random |
||||
|
import time |
||||
|
|
||||
|
pocet_iteraci = 30 |
||||
|
senzory = ["DHT11 vlhkost", "DHT11 teplota","HC-SR04 vzdálenost"] |
||||
|
with open("data.csv","a",newline="") as csvfile: |
||||
|
writer = csv.writer(csvfile) |
||||
|
if csvfile.tell() == 0: |
||||
|
writer.writerow(["Datum a čas"] + [senzor for senzor in senzory]) |
||||
|
|
||||
|
for i in range(pocet_iteraci): |
||||
|
now = datetime.datetime.now() |
||||
|
hodnoty = [ |
||||
|
random.randint(30,80), #vlhkost |
||||
|
random.randint(20,28), #teplota |
||||
|
random.randint(20,200) #vzdalenost |
||||
|
] |
||||
|
writer.writerow([now.strftime("%Y-%m-%d %H:%M:%S")] + hodnoty) |
||||
|
print(f"{i+1}/{pocet_iteraci}") |
||||
|
time.sleep(1) |
||||
@ -0,0 +1,130 @@ |
|||||
|
# Přehled příkazů - Python knihovny a venv |
||||
|
|
||||
|
## 🌐 Virtuální prostředí (venv) |
||||
|
|
||||
|
### Vytvoření venv |
||||
|
```cmd |
||||
|
python -m venv .venv |
||||
|
``` |
||||
|
- `.venv` - je název složky, do které vytvoří virtuální prostředí |
||||
|
- Můžeš použít i jiný název, ale `.venv` je standard |
||||
|
|
||||
|
### Aktivace venv |
||||
|
```cmd |
||||
|
.venv\Scripts\activate |
||||
|
``` |
||||
|
- Po aktivaci uvidíš `(.venv)` před příkazovou řádkou |
||||
|
- **Všechny následující příkazy pip budou fungovat jen pro toto prostředí!** |
||||
|
|
||||
|
### Deaktivace venv |
||||
|
```cmd |
||||
|
deactivate |
||||
|
``` |
||||
|
- Vrátí tě zpět do globálního Pythonu |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 📦 Instalace knihoven (pip) |
||||
|
|
||||
|
### Instalace jedné knihovny |
||||
|
```cmd |
||||
|
pip install <balíček> |
||||
|
``` |
||||
|
|
||||
|
### Instalace více knihoven najednou |
||||
|
```cmd |
||||
|
pip install matplotlib numpy |
||||
|
``` |
||||
|
|
||||
|
### Příklady z hodiny |
||||
|
```cmd |
||||
|
pip install termcolor |
||||
|
pip install matplotlib numpy |
||||
|
``` |
||||
|
|
||||
|
### Instalace konkrétní verze |
||||
|
```cmd |
||||
|
pip install termcolor==1.1.0 |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 📋 Správa nainstalovaných knihoven |
||||
|
|
||||
|
### Výpis všech nainstalovaných knihoven |
||||
|
```cmd |
||||
|
pip list |
||||
|
``` |
||||
|
|
||||
|
### Zobrazení info o konkrétní knihovně |
||||
|
```cmd |
||||
|
pip show termcolor |
||||
|
``` |
||||
|
|
||||
|
### Aktualizace knihovny |
||||
|
```cmd |
||||
|
pip install --upgrade termcolor |
||||
|
``` |
||||
|
|
||||
|
### Odinstalování knihovny |
||||
|
```cmd |
||||
|
pip uninstall termcolor |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 💾 Práce s requirements.txt |
||||
|
|
||||
|
### Vytvoření seznamu knihoven (export) |
||||
|
```cmd |
||||
|
pip freeze > requirements.txt |
||||
|
``` |
||||
|
- Uloží seznam všech nainstalovaných knihoven do souboru |
||||
|
- Užitečné pro sdílení projektu s jinými |
||||
|
|
||||
|
### Instalace ze seznamu (import) |
||||
|
```cmd |
||||
|
pip install -r requirements.txt |
||||
|
``` |
||||
|
- Nainstaluje všechny knihovny ze souboru najednou |
||||
|
- Použiješ, když někdo sdílí projekt s tebou |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🔍 Další užitečné příkazy |
||||
|
|
||||
|
### Kontrola verze pip |
||||
|
```cmd |
||||
|
pip --version |
||||
|
``` |
||||
|
|
||||
|
### Aktualizace pip samotného |
||||
|
```cmd |
||||
|
python -m pip install --upgrade pip |
||||
|
``` |
||||
|
|
||||
|
### Vyhledání knihovny |
||||
|
```cmd |
||||
|
pip search <název> |
||||
|
``` |
||||
|
*(Poznámka: tento příkaz je momentálně vypnutý na PyPI, používej [pypi.org](https://pypi.org))* |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🎯 Typický workflow |
||||
|
|
||||
|
1. Vytvoř projekt (složku) |
||||
|
2. Vytvoř venv: `python -m venv .venv` |
||||
|
3. Aktivuj venv: `.venv\Scripts\activate` |
||||
|
4. Nainstaluj knihovny: `pip install termcolor` |
||||
|
5. Programuj! 💻 |
||||
|
6. Před koncem práce: `pip freeze > requirements.txt` |
||||
|
7. Deaktivuj: `deactivate` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## ⚠️ Důležité |
||||
|
|
||||
|
- **Vždy aktivuj venv před instalací knihoven!** |
||||
|
- Složku `.venv` **NIKDY** nepřidávej do Gitu (dej ji do `.gitignore`) |
||||
|
- Místo toho sdílej `requirements.txt` |
||||
Loading…
Reference in new issue