|   |   | 
| (Není zobrazeno 6 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]][[Category:Učebnice IoT]] | 
|  |  |  |  | 
| − | '''Doplním zdroj'''
 | + | Zdroj: https://www.zive.cz/clanky/pojdme-programovat-elektroniku-vyrobime-wi-fi-svetylko-s-nastavitelnym-jasem/sc-3-a-184579/default.aspx | 
|  |  |  |  | 
| − |  #include <ESP8266WiFi.h>
 | + | Na tento úkol použijeme kód z žive.cz, jen jsem ho musel upravit kvůli fungování WiFi, u tohoto se mi nepodařilo připojit. | 
| − |  
 | + |   | 
| − |  ''// Nazev Wi-Fi site, do ktere se mam pripojit''
 | + | <div class="Priklad"> | 
| − |  const char* ssid = "TypeYourWifiSSID";
 | + | [https://github.com/CestmirKolarik/IoTucebnice/blob/main/ArduinoIDE/WiFi_lampicka/WiFi_lampicka.ino Kód.] | 
| − |  
 | + | </div> | 
| − |  ''// 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 zprohlizece''
 | + |  | 
| − |  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 seopakuje 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("<!DOCTYPE html>");
 | + |  | 
| − |     client.println("<html><body>");
 | + |  | 
| − |     client.print("<h1>Moje WiFi lampicka</h2>");
 | + |  | 
| − |     ''//Tlacitko pro sepnuti LEDState vede na adresu /ON''
 | + |  | 
| − |     client.println("<a href=\"/ON\"><button>Zapnout LEDku</button></a>");
 | + |  | 
| − |     ''// Tlacitko pro odpojeni LEDState vede na adresu /OFF''
 | + |  | 
| − |     client.println("<a href=\"/OFF\"><button>Vypnout LEDku</button></a><br />");
 | + |  | 
| − |     client.println("</body></html>");
 | + |  | 
| − |  
 | + |  | 
| − |     ''// To je vse, ted jeste 1 ms pockam a cela smycka se muze zopakovat''
 | + |  | 
| − |     delay(1);
 | + |  | 
| − |     Serial.println("Klient odpojen");
 | + |  | 
| − |     Serial.println("");
 | + |  | 
| − |  }
 | + |  | 
Na tento úkol použijeme kód z žive.cz, jen jsem ho musel upravit kvůli fungování WiFi, u tohoto se mi nepodařilo připojit.