include #include #include #include #define DHTTYPE DHT22 #define DHTPIN 2 // vytvoření proměnné s naším API klíčem z Thingspeak - viz návod String apiKlic = "******"; // vytvoření proměnné s názvem serveru Thingspeaku const char* server_ths = "api.thingspeak.com"; const char* ssid = "mojewifi"; const char* password = "******"; WiFiClient client; ESP8266WebServer server(80); DHT dht(DHTPIN, DHTTYPE, 22); float humidity, temp_f; String webString=""; unsigned long previousMillis = 0; const long interval = 2000; void handle_root() { gettemperature(); webString="Teplota:"+String(temp_f)+"C | Vlhkost:"+String((int)humidity)+"%"; server.send(200, "text/plain", webString); delay(100); } void setup(void) { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(57600); dht.begin(); WiFi.softAPdisconnect(true); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); if (WiFi.status() == WL_CONNECTED) {digitalWrite(LED_BUILTIN, LOW);digitalWrite(LED_BUILTIN, HIGH);} if (WiFi.status() == WL_DISCONNECTED) {digitalWrite(LED_BUILTIN, HIGH);digitalWrite(LED_BUILTIN, LOW);} } server.on("/", handle_root); server.begin(); } void loop(void) { server.handleClient(); // připojení na server Thingspeak pro odeslání dat if (client.connect(server_ths,80)) { String zprava = apiKlic; zprava +="&field5="; zprava += String(temp_f); zprava +="&field6="; zprava += String(humidity); zprava += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: "+apiKlic+"\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(zprava.length()); client.print("\n\n"); client.print(zprava); } client.stop(); delay(30000); } void gettemperature() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= interval) { previousMillis = currentMillis; humidity = dht.readHumidity(); temp_f = dht.readTemperature(); } }