Letní IoT: Den 4

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(WiFi lampička)
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Informatika]][[Category:Letní IoT]]
 
[[Category:VSE]][[Category:Informatika]][[Category:Letní IoT]]
 +
 +
= 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, °F a v kelvinech
 +
 +
= Sériový vstup =
 +
  
 
= RGB dioda =
 
= 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 =

Verze z 16. 7. 2020, 05:12


Obsah

Opakování

  1. 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
  2. Na display se vypíše teplota v °C, °F 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("

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>
"); 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(""); } </code>

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje