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