Letní IoT: Den 1
Obsah |
Úvod
Co je to IoT
začínáme s IoT Jak udělat z "blbé" věci tu "chytrou"
Základy elektrotechniky
Používáme zde USB napájení - tedy 5V - GPIO piny poskytují 3.3V (3V3). Než cokoliv zapojíte, tak si dobře zkontrolujte 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
- Návod na instalaci
- Instalační soubory: složka s instalačními soubory
Základní seznámení
Letní IoT : Vývojové prostředí
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//
//popis zapojení//
#define nazev číslo GPIO pinu;
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
Každá LEDka musí být zapojena zvlášť.
- 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
Inicializuju sériovou komunikaci - zvolím si rychlost
Serial.begin(9600);
K vypsání do konzole se používá
Serial.print("Text"); - vypíše text v uvozovkách Serial.println(cislo); - vypíše proměnou číslo a udělá nový řádek (následující výpis bude na novém řádku)