Letní IoT: Den 4

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (→Sériový vstup)
(→WiFi lampička)
Řádka 31: Řádka 31:
 
= WiFi lampička =
 
= WiFi lampička =
  
−
#include <ESP8266WiFi.h>
+
[[Letní IoT: WiFi lampička| WiFi lampička]]
−
+
−
''// Nazev Wi-Fi site, do ktere se mam pripojit''
+
−
const char* ssid = "TypeYourWifiSSID";
+
−
+
−
''// Heslo Wi-Fi site, do ktere se mam pripojit''
+
−
const char* password = "typeYourWiFiPassword";
+
−
+
−
''// Je LEDka zapnuta''
+
−
bool LEDState = false;
+
−
+
−
''//pin na který je připojena LED''
+
−
const char ledka = 5;
+
−
+
−
''// Webovy server pobezi na portu 80 (HTTP komunikace)''
+
−
WiFiServer server(80);
+
−
+
−
''// Promenna s HTTP pozadavkem z prohlizece''
+
−
String request;
+
−
+
−
void setup() {
+
−
    ''// Nastartuj seriovou linku, do ktere budu vypisovat provozni informace''
+
−
    Serial.begin(9600);
+
−
+
−
    ''// Na pin ledka je pripojene LEDState, nastavim jej tedy na vystup
+
−
    // Zaroven nastavim logickou nulu, aby se LEDState po startu nesepnulo''
+
−
    pinMode(ledka, OUTPUT);
+
−
    digitalWrite(ledka, LOW);
+
−
+
−
    ''// Pripojeni k Wi-Fi''
+
−
    Serial.println();
+
−
    Serial.print("Pripojuji k ");
+
−
    Serial.println(ssid);
+
−
    WiFi.begin(ssid, password);
+
−
+
−
    ''// Dokud nejsem pripojeny k Wi-Fi,zapisuj do seriove linky tecky progressbaru''
+
−
    while (WiFi.status() != WL_CONNECTED) {
+
−
      delay(100);
+
−
      Serial.print(".");
+
−
    }
+
−
+
−
    ''// Jsem pripojeny k Wi-Fi a mohu pokracovat''
+
−
    Serial.println();
+
−
    Serial.println("WiFi pripojena!");
+
−
+
−
    ''// Spusteni serveru''
+
−
    server.begin();
+
−
    Serial.println("Server spusten");
+
−
+
−
    ''// Napis IP adresu, kterou mikropocitac dostal''
+
−
    Serial.print("Pouzij k pripojeni tuto adresu: ");
+
−
    Serial.print("http://");
+
−
    Serial.println(WiFi.localIP());
+
−
}
+
−
+
−
''// Smycka loop se opakuje stale dokola''
+
−
void loop() {
+
−
    ''// Pokud ma promenna LEDState hodnotu pravda, posli na pin ledka logickou jedničku''
+
−
    if (LEDState == true) digitalWrite(ledka, HIGH);
+
−
    else digitalWrite(ledka, LOW);
+
−
+
−
    ''// Cekej, dokud se nepripoji nejaky klient''
+
−
    WiFiClient client = server.available();
+
−
    if (!client) {
+
−
      return;
+
−
    }
+
−
+
−
    ''// Cekej, dokud klient neposle nejaka data''
+
−
    Serial.println("Novy klient!");
+
−
    while (!client.available()) {
+
−
      delay(1);
+
−
    }
+
−
+
−
    ''// Precti a vypis prvni radek od klienta s URL dotazem''
+
−
    request = client.readStringUntil('\r');
+
−
    Serial.println(request);
+
−
    client.flush();
+
−
+
−
    ''// Pokud je v radku vyraz ON, nastav promennou LEDState na pravdu''
+
−
    if (request.indexOf("ON") > -1) LEDState = true;
+
−
    ''// Pokud je v radku vyraz OFF, nastav promennou LEDState na nepravdu''
+
−
    if (request.indexOf("OFF") > -1) LEDState = false;
+
−
+
−
    ''// Posli pripojenemu klientu HTML kod stranky s tlacitky''
+
−
    client.println("HTTP/1.1 200 OK");
+
−
    client.println("Content-Type: text/html");
+
−
    client.println("");
+
−
    client.println("&lt;!DOCTYPE html>");
+
−
    client.println("&lt;html>&lt;body>");
+
−
    client.print("&lt;h1>Moje WiFi lampicka&lt;/h2>");
+
−
    ''// Tlacitko pro sepnuti LEDState vede na adresu /ON''
+
−
    client.println("&lt;a href=\"/ON\">&lt;button>Zapnout LEDku&lt;/button>&lt;/a>");
+
−
    ''// Tlacitko pro odpojeni LEDState vede na adresu /OFF''
+
−
    client.println("&lt;a href=\"/OFF\">&lt;button>Vypnout LEDku&lt;/button>&lt;/a>&lt;br />");
+
−
    client.println("&lt;/body>&lt;/html>");
+
−
+
−
    ''// To je vse, ted jeste 1 ms pockam a cela smycka se muze zopakovat''
+
−
    delay(1);
+
−
    Serial.println("Klient odpojen");
+
−
    Serial.println("");
+
−
}
+
  
 
= Kontakt =
 
= Kontakt =

Verze z 2. 2. 2021, 11:11


Obsah

Opakování

  1. Když bude více než 30°C, rozsvítí se červená LEDka, jinak se rozsvítí modrá, bude se to aktualizovat každých 6 sekund (výpis teploty do konzole)
  2. Na display se vypíše teplota v °C a v Kelvinech

Sériový vstup

Sériový vstup

Sériový IO


Samostatný úkol

Do konzole zadáte slovo a to se vypíše do konzole "Zadané slovo bylo: <SLOVO>"

Sériový vstup

RGB dioda

Vytvoříme si vlastní metodu s 3 parametry (R, G, B) - viz. 3. den

analogWrite() má 1024 stavů ... 0 - 1023 RGB modul má 256 barev ... 0 - 255

Thingspeak

thingspeak - webová prezentace

WiFi lampička

WiFi lampička

Kontakt

Jirkův web

cestmir.kolarik@seznam.cz

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