|
|
(Není zobrazeno 5 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 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("<!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.