Letní IoT: Den 4
Z MiS
RGB dioda
Thingspeak
WiFi lampička
- include <ESP8266WiFi.h>
// 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("<!DOCTYPE html>"); client.println("<html><body>");client.print("