Letní IoT: Den 1

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m
 
(Není zobrazeno 34 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
−
[[Category:VSE]][[Category:Informatika]][[Category:Letní IoT]]
+
[[Category:VSE]][[Category:Informatika]][[Category:Letní IoT]][[Category:IoT]]
−
 
+
−
= Úvod =
+
  
 
== Co je to IoT ==
 
== Co je to IoT ==
−
[http://jurasek.wz.cz/index.php/iot1/7-getstarted začínáme s IoT]
+
[[IoT: Co je to IoT| Co je to IoT?]] — Řekneme si co je to IoT a k čemu nám to je.
−
[http://jurasek.wz.cz/index.php/iot1/8-how-to-get-smart Jak udělat z "blbé" věci tu "chytrou"]
+
  
 
== Základy elektrotechniky ==
 
== Základy elektrotechniky ==
−
Používáme zde USB napájení - tedy 5V - GPIO piny poskytují 3.3V (3V3).
+
[[IoT: Základy elektrotechniky | Základy elektrotechniky ]] — Jak správně zapojit el. obvod? Co vše musíme vědět? Co je to LED dioda a jak ji zapojit?
−
Než cokoliv zapojíte, tak si dobře zkontrolujte
+
−
[http://jurasek.wz.cz/index.php/iot1/9-electrotechnics Základy elektrotechniky]
+
−
 
+
−
== Samostatné úkoly ==
+
−
'''POZOR, NEŽ ZAPNEŠ NAPÁJENÍ, ZAVOLEJ LEKTORA, ABY TI TO ZKONTROLOVAL'''
+
−
# Obvod s LEDkou (3V3 - rezistor - LEDka - GND)
+
−
# Obvod 2 LEDky sériově za sebou
+
−
# Obvod 2 LEDky paralelně
+
−
# Obvod LEDka s tlačítkem
+
−
 
+
−
= Vývojové prostředí =
+
−
 
+
−
== Instalace a nastavení desky ==
+
−
 
+
−
* [[ESP: Nastavení IDE|Návod na instalaci]]
+
−
* Instalační soubory: [https://oauh-my.sharepoint.com/:f:/g/personal/simunek_oauh_cz/EqVd0y8VqdxGsVGRapXnI0EB64byG95Cu-mBGxS04ESBbw?e=mFcdPP složka s instalačními soubory]
+
−
 
+
−
== Základní seznámení ==
+
−
 
+
−
Při vytvoření nového souboru tam máte dvě metody.
+
−
 
+
−
//zde se definují proměnné, importují knihovny, apod:
+
−
+
−
void setup() {
+
−
  // put your setup code here, to run once:
+
−
  // zde napište to, co se má spustit na začátku:
+
−
}
+
−
+
−
void loop() {
+
−
  // put your main code here, to run repeatedly:
+
−
  // zde napište to, co má běžet pořád dokola:
+
−
}
+
−
 
+
−
 
+
−
= LEDka =
+
−
 
+
−
Jako první věc si zkusíme rozsvítit a zhasnout LEDku.
+
−
 
+
−
Budeme potřebovat:
+
−
Vývojovou desku, USB kabel, nepájivé pole,
+
−
2 LEDky (červenou a modrou), 5 káblíků, 2 rezistory
+
−
 
+
−
//obrázek//
+
−
 
+
−
[https://www.hranol.cz/storage/201102052109_led.png]
+
−
 
+
−
//popis zapojení//
+
−
 
+
−
#define ''nazev'' ''číslo GPIO pinu'';
+
−
 
+
−
[https://www.iotwithus.com/wp-content/uploads/2018/11/esp8266-wemos-d1-mini-nodemcu-pinout.png Wemos pinout]
+
−
 
+
−
takže my budeme mít....
+
−
 
+
−
#define modra 18;
+
−
#define cervena 17;
+
−
 
+
−
Toto dáme úplně na začátek dokumentu
+
−
 
+
−
Toto je ale jen jeden ze způsobů, můžete se setkat i s
+
−
#define modra 5;
+
−
#define modra D1;
+
−
const char modra = 5;
+
−
char modra 5;
+
−
int modra = D1;
+
−
const char modra = 5;
+
−
 
+
−
Způsobů zápisu je více, každý má své výhody i nevýhody - #define zabírá méně místa, Dněco vidíte na desce...
+
−
 
+
−
v void setup() musíme říct, že je to výstupní
+
−
 
+
−
pinMode(modra, OUTPUT);
+
−
pinMode(cervena, OUTPUT);
+
−
 
+
−
a teď nám jen rozsvítit a zhasnout LEDku
+
−
 
+
−
k tomu používáme metodu "digitalWrite(název, HIGH - zapnuto / LOW - vypnuto);"
+
−
 
+
−
digitalWrite(modra, HIGH); - modrá LEDka se rozsvítí
+
−
digitalWrite(modra, LOW); - modrá LEDka zhasne
+
−
 
+
−
jelikož tyto věci trvají velmi krátkou dobu - lidské oko si toho nevšimne, dáme tam nějakou prodlevu
+
−
k tomu se využívá delay(čas v milisekundách);
+
−
 
+
−
takže si kód doplníme o 2s prodlevy
+
−
 
+
−
digitalWrite(modra, HIGH);
+
−
delay(2000);
+
−
digitalWrite(modra, LOW);
+
−
delay(2000);
+
−
 
+
−
== Samostatný úkol ==
+
−
# modrá i červená LEDka se rožne na 3 s a pak 3 s nebudou svítit
+
−
# modrá ledka se rozsvítí na 4 s, pak zhasne a zároveň se rozsvítí červená ledka, ta zhasne po 4s a znovu se rozsvítí modrá
+
−
# modrá LEDka bude svítit 5 sekund a dvě a půl svítit nebude
+
−
 
+
−
 
+
−
= Proměnné =
+
−
 
+
−
== Obecně ==
+
−
 
+
−
Jsou různé datové typy, my budeme využívat nejvíce:
+
−
* čísla - int
+
−
* text - String
+
−
* ano / ne - boolean
+
−
 
+
−
== Práce s intem ==
+
−
 
+
−
int cislo; definuji proměnnou s názvem číslo
+
−
ins cislo = 6; definuji proměnnou s názvem číslo a dám ji číslo 6
+
−
cislo = 8; proměnné cislo dám číslo 8
+
−
cislo++; proměnná cislo se zvýší o 1
+
−
cislo--; proměnná cislo se sníží o 1
+
−
delay(cislo); počká to tolik, kolik je to číslo (když 1000 - tak sekundu)
+
−
delay(2 * cislo); počká to dvojnásobek
+
−
 
+
−
== Práce s booleanem ==
+
−
boolean je datový typ, který má 2 stavy, 0 / 1, ne / ano, false / true
+
−
 
+
−
boolean splneno = true;
+
−
boolean splneno = false;
+
−
spleno = true;
+
−
spleno = false
+
−
spleno = !splneno; //nastaví se to na opak
+
−
 
+
−
== Proměnná v delay ==
+
−
 
+
−
V některých případech máme prodlevu vždy stejnou a opakuje se nám tam vícekrát - když se rozhodneme, že ji změníme, tak to musíme celé přepisovat.
+
−
To je vcelku nepraktické, co?... Takže využijeme proměnné. Chceme, aby se proměnná jmenovala prodleva a byla na 2 sekudny - tj. 2000 ms.
+
−
 
+
−
int prodleva = 2000;
+
−
 
+
−
== Samostatný úkol ==
+
−
# Předělej úkoly na ledky za použití proměnné v delay();
+
−
# LEDka se rozsvítí na 1 s, 1 s nebude svítit, LEDka se rozsvítí na 2 s, 2 s nebude svítit, LEDka se rozsvítí na 3 s ... a tak dále
+
−
 
+
−
= Sériový výstup =
+
−
 
+
−
K vypsání do konzole se používá
+
−
 
+
−
Serial.print("Text"); - vypíše text v uvozovkách
+
−
Serial.println(cislo); - na nový řádek vypíše proměnnou cislo
+
−
 
+
−
 
+
−
= Cykly =
+
−
 
+
−
Cykly nám slouží k tomu, že se něco opakuje dokud není něco splněno...
+
−
 
+
−
 
+
−
== For cyklus ==
+
−
 
+
−
for(int i = 0; i < 10; i++)
+
−
{
+
−
  ...kód...
+
−
}
+
−
+
−
for(int i - proměnná i; i < 10 - dokud je i menší než 10; i++ - pokaždé se i zvýší o jedno)
+
−
 
+
−
buď tam dáme i < 10, nebo i <= 9
+
−
můžeme dát také
+
−
 
+
−
for(int i = 10; i > 1; i--)
+
−
{
+
−
  ...kód...
+
−
}
+
−
 
+
−
V některých případech se to může hodit
+
−
 
+
−
== Samostatný úkol ==
+
−
# Vypište (Serial.println()) čísla od 0 do 10 (se sekundovou prodlevou)
+
−
# LEDka blikne (rozsvítí se na sekundu a pak zhasne na sekundu) a pak 3 sekundy nesvítí, 2 × blikne, 3 ... 10 × blikne
+
−
# LEDka se rozsvítí na sekundu, zhasne na sekundu, rozsvítí se na dvě sekundy, zhasne na dvě sekundy, rozsvítí se na 3... zhasne na 10 sekund, rozsvítí se na sekundu
+
−
 
+
−
= LEDka =
+
−
 
+
−
Metodu ''digitalWrite();'' jsme si již ukázali. Ta je k rožnutí, či zhasnutí LEDky.
+
−
Ale co když chceme LEDku rožnout jen částečně? ... či aby se postupně rozžíhala?
+
−
 
+
−
K tomu nám slouží metoda ''analogWrite(nazevLedky, cislo);''
+
−
nazevLedky - ten název, co jsme dali u ''#define nazevLedky 15''
+
−
cislo - jak má svítit - v našem případě je to v rozmezí 0 - 1024
+
−
 
+
−
takže, chceme rozsvítit LEDku napůl jen - ''analogWrite(ledka, 512);''
+
−
 
+
−
== Příklad ==
+
−
 
+
−
LEDka se během 5ti sekund rožne.
+
−
 
+
−
#define ledka 15
+
−
+
−
void setup() {
+
−
+
−
pinMode(ledka, OUTPUT);
+
−
}
+
−
+
−
void loop() {
+
−
+
−
for(int i = 0; i < 1024; i++)
+
−
{
+
−
  analogWrite(ledka, i);
+
−
  delay(5);
+
−
}
+
−
}
+
−
 
+
−
== Samostatný úkol ==
+
−
# Během pěti sekund se LEDka rožne, sekundu zůstane rožnutá na maximum, 5 sekund se bude zhasínat a sekundu zůstane zhasnutá
+
  
 +
== Vývojové prostředí ==
 +
[[IoT: Vývojové prostředí | Vývojové prostředí]] — jeho zprovoznění.
  
−
= Podmínka =
+
[[IoT: Seznámení | Seznámení]] — se s vývojovým prostředím.
  
−
if(jeSplneno)
+
== LED dioda ==
−
{
+
[[IoT: LED dioda | LED dioda ]] — rožnutí pomocí GPIO pinů.
−
  toto se provede, pokud je podmínka splněna
+
Zkusíme si samostatné úkoly.
−
}
+
−
else
+
−
{
+
−
  toto se provede, když podmínka není splněna
+
−
}
+
  
−
Co může být v ''if()''?
+
== Proměnné ==
−
* boolean
+
−
** if(spleno) { Serial.print("splneno"); } else { Serial.print("nesplneno"); }
+
−
* int
+
−
** if(teplota > 20) { ... rozsviť LEDku; }
+
  
 +
[[IoT: Seznámení #Proměnné | Proměnné]] — co je to proměnná a jak s nimi pracujeme.
  
−
= Tlačítko =
+
== Sériová komunikace ==
 +
[[IoT: Sériová komunikace | Sériová komunikace]] — jak vypsat něco do konzole.
  
−
[http://jurasek.wz.cz/index.php/iot1/15-ovladani-pres-tlacitko Tlačítko]
+
== Závěrečné opakování ==
 +
Na závěr dnešního dne si zkusme tento krátký
 +
[https://forms.gle/LwteaRwchMSZdD6U6 testík].

Aktuální verze z 17. 3. 2021, 13:47


Obsah

Co je to IoT

Co je to IoT? — Řekneme si co je to IoT a k čemu nám to je.

Základy elektrotechniky

Základy elektrotechniky — Jak správně zapojit el. obvod? Co vše musíme vědět? Co je to LED dioda a jak ji zapojit?

Vývojové prostředí

Vývojové prostředí — jeho zprovoznění.

Seznámení — se s vývojovým prostředím.

LED dioda

LED dioda — rožnutí pomocí GPIO pinů. Zkusíme si samostatné úkoly.

Proměnné

Proměnné — co je to proměnná a jak s nimi pracujeme.

Sériová komunikace

Sériová komunikace — jak vypsat něco do konzole.

Závěrečné opakování

Na závěr dnešního dne si zkusme tento krátký testík.

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje