Letní IoT: Den 4
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				|  (→WiFi lampička) |  (→WiFi lampička) | ||
| Řádka 7: | Řádka 7: | ||
| = WiFi lampička = | = WiFi lampička = | ||
| − | #include <ESP8266WiFi.h> | + |  #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() { | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | // Promenna s HTTP pozadavkem z prohlizece | + | |
| − | String request; | + | |
| − | + | ||
| − | void setup() { | + | |
|   // Nastartuj seriovou linku, do ktere budu vypisovat provozni informace |   // Nastartuj seriovou linku, do ktere budu vypisovat provozni informace | ||
|   Serial.begin(9600); |   Serial.begin(9600); | ||
| − | + | ||
|   // Na pin ledka je pripojene LEDState, nastavim jej tedy na vystup |   // Na pin ledka je pripojene LEDState, nastavim jej tedy na vystup | ||
|   // Zaroven nastavim logickou nulu, aby se LEDState po startu nesepnulo |   // Zaroven nastavim logickou nulu, aby se LEDState po startu nesepnulo | ||
|   pinMode(ledka, OUTPUT); |   pinMode(ledka, OUTPUT); | ||
|   digitalWrite(ledka, LOW); |   digitalWrite(ledka, LOW); | ||
| − | + | ||
|   // Pripojeni k Wi-Fi |   // Pripojeni k Wi-Fi | ||
|   Serial.println(); |   Serial.println(); | ||
| Řádka 41: | Řádka 41: | ||
|   Serial.println(ssid); |   Serial.println(ssid); | ||
|   WiFi.begin(ssid, password); |   WiFi.begin(ssid, password); | ||
| − | + | ||
|   // Dokud nejsem pripojeny k Wi-Fi,zapisuj do seriove linky tecky progressbaru |   // Dokud nejsem pripojeny k Wi-Fi,zapisuj do seriove linky tecky progressbaru | ||
|   while (WiFi.status() != WL_CONNECTED) { |   while (WiFi.status() != WL_CONNECTED) { | ||
| Řádka 47: | Řádka 47: | ||
|   Serial.print("."); |   Serial.print("."); | ||
|   } |   } | ||
| − | + | ||
|   // Jsem pripojeny k Wi-Fi a mohu pokracovat |   // Jsem pripojeny k Wi-Fi a mohu pokracovat | ||
|   Serial.println(); |   Serial.println(); | ||
|   Serial.println("WiFi pripojena!"); |   Serial.println("WiFi pripojena!"); | ||
| − | + | ||
|   // Spusteni serveru |   // Spusteni serveru | ||
|   server.begin(); |   server.begin(); | ||
|   Serial.println("Server spusten"); |   Serial.println("Server spusten"); | ||
| − | + | ||
|   // Napis IP adresu, kterou mikropocitac dostal |   // Napis IP adresu, kterou mikropocitac dostal | ||
|   Serial.print("Pouzij k pripojeni tuto adresu: "); |   Serial.print("Pouzij k pripojeni tuto adresu: "); | ||
|   Serial.print("http://"); |   Serial.print("http://"); | ||
|   Serial.println(WiFi.localIP()); |   Serial.println(WiFi.localIP()); | ||
| − | } | + |  } | 
| − | + | ||
| − | // Smycka loop se opakuje stale dokola | + |  // Smycka loop se opakuje stale dokola | 
| − | void loop() { | + |  void loop() { | 
|   // Pokud ma promenna LEDState hodnotu pravda, posli na pin ledka logickou jedničku |   // Pokud ma promenna LEDState hodnotu pravda, posli na pin ledka logickou jedničku | ||
|   if (LEDState == true) digitalWrite(ledka, HIGH); |   if (LEDState == true) digitalWrite(ledka, HIGH); | ||
|   else digitalWrite(ledka, LOW); |   else digitalWrite(ledka, LOW); | ||
| − | + | ||
|   // Cekej, dokud se nepripoji nejaky klient |   // Cekej, dokud se nepripoji nejaky klient | ||
|   WiFiClient client = server.available(); |   WiFiClient client = server.available(); | ||
| Řádka 73: | Řádka 73: | ||
|   return; |   return; | ||
|   } |   } | ||
| − | + | ||
|   // Cekej, dokud klient neposle nejaka data |   // Cekej, dokud klient neposle nejaka data | ||
|   Serial.println("Novy klient!"); |   Serial.println("Novy klient!"); | ||
| Řádka 79: | Řádka 79: | ||
|   delay(1); |   delay(1); | ||
|   } |   } | ||
| − | + | ||
|   // Precti a vypis prvni radek od klienta s URL dotazem |   // Precti a vypis prvni radek od klienta s URL dotazem | ||
|   request = client.readStringUntil('\r'); |   request = client.readStringUntil('\r'); | ||
|   Serial.println(request); |   Serial.println(request); | ||
|   client.flush(); |   client.flush(); | ||
| − | + | ||
|   // Pokud je v radku vyraz ON, nastav promennou LEDState na pravdu |   // Pokud je v radku vyraz ON, nastav promennou LEDState na pravdu | ||
|   if (request.indexOf("ON") > -1) LEDState = true; |   if (request.indexOf("ON") > -1) LEDState = true; | ||
|   // Pokud je v radku vyraz OFF, nastav promennou LEDState na nepravdu   |   // Pokud je v radku vyraz OFF, nastav promennou LEDState na nepravdu   | ||
|   if (request.indexOf("OFF") > -1) LEDState = false; |   if (request.indexOf("OFF") > -1) LEDState = false; | ||
| − | + | ||
|   // Posli pripojenemu klientu HTML kod stranky s tlacitky |   // Posli pripojenemu klientu HTML kod stranky s tlacitky | ||
|   client.println("HTTP/1.1 200 OK"); |   client.println("HTTP/1.1 200 OK"); | ||
| Řádka 102: | Řádka 102: | ||
|   client.println("<a href=\"/OFF\"><button>Vypnout LEDku</button></a><br />"); |   client.println("<a href=\"/OFF\"><button>Vypnout LEDku</button></a><br />"); | ||
|   client.println("</body></html>"); |   client.println("</body></html>"); | ||
| − | + | ||
|   // To je vse, ted jeste 1 ms pockam a cela smycka se muze zopakovat |   // To je vse, ted jeste 1 ms pockam a cela smycka se muze zopakovat | ||
|   delay(1); |   delay(1); | ||
|   Serial.println("Klient odpojen"); |   Serial.println("Klient odpojen"); | ||
|   Serial.println(""); |   Serial.println(""); | ||
| − | } | + |  } | 
Verze z 15. 7. 2020, 19:23
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("