Letní IoT: Den 4
Z MiS
				
				
				
				
																
				
				
								
				
| Obsah | 
Opakování
- 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
- Na display se vypíše teplota v °C a v Kelvinech
Sériový vstup
 String vstup = "";
 Serial.println("Zadejte vstup");
 while(vstup == "")
 {
   vstup = Serial.readString();
 }
Samostatný úkol
Do konzole zadáte slovo a to se vypíše do konzole "Zadané slovo bylo: <SLOVO>"
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
#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("<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("");
}
Kontakt
Jirkův web cestmir.kolarik@seznam.cz
