Letní IoT: Den 4
Z MiS
(Rozdíly mezi verzemi)
m (Opraveno formátování HTML.) |
(→Opakování: - úprava) |
||
Řádka 3: | Řádka 3: | ||
= Opakování = | = 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 | # 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 | + | # Na display se vypíše teplota v °C a v kelvinech |
= Sériový vstup = | = Sériový vstup = |
Verze z 16. 7. 2020, 06:03
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
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
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(""); }