Letní IoT: Den 1

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Řádka 92: Řádka 92:
 
  delay(cislo); počká to tolik, kolik je to číslo (když 1000 - tak sekundu)
 
  delay(cislo); počká to tolik, kolik je to číslo (když 1000 - tak sekundu)
 
  delay(2 * cislo); počká to dvojnásobek
 
  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 ===
 
=== Proměnná v delay ===
Řádka 173: Řádka 182:
 
=== Samostatný úkol ===
 
=== 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á
 
# 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á
 +
 +
== Podmínka ==
 +
 +
if(jeSplneno)
 +
{
 +
  toto se provede, pokud je podmínka splněna
 +
}
 +
else
 +
{
 +
  toto se provede, když podmínka není splněna
 +
}
 +
 +
Co může být v ''if()''?
 +
* boolean
 +
** if(spleno) { Serial.print("splneno"); } else { Serial.print("nesplneno"); }
 +
* int
 +
** if(teplota > 20) { ... rozsviť LEDku; }
 +
 +
== Tlačítko ==
 +
 +
[http://jurasek.wz.cz/index.php/iot1/15-ovladani-pres-tlacitko Tlačítko]

Verze z 9. 7. 2020, 09:11


Obsah

Vývojové prostředí

Instalace a nastavení desky

ESP: Nastavení IDE

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//

//popis zapojení

#define nazev číslo GPIO pinu;

Wemos pinout

takže my budeme mít....

#define modra 18;
#define cervena 17;

Toto dáme úplně na začátek dokumentu

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

  1. modrá i červená LEDka se rožne na 3 s a pak 3 s nebudou svítit
  2. 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á
  3. 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:

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

  1. Předělej úkoly na ledky za použití proměnné v delay();
  2. 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

  1. Vypište (Serial.println()) čísla od 0 do 10 (se sekundovou prodlevou)
  2. LEDka blikne (rozsvítí se na sekundu a pak zhasne na sekundu) a pak 3 sekundy nesvítí, 2 × blikne, 3 ... 10 × blikne
  3. 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

  1. 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á

Podmínka

if(jeSplneno)
{
  toto se provede, pokud je podmínka splněna
}
else
{
  toto se provede, když podmínka není splněna
}

Co může být v if()?

Tlačítko

Tlačítko

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