/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#include <WiFi.h> // Wifi.h library hozzáadása (Esp32)
#include "DHTesp.h" // DHT.h library hozzáadása
#include "ThingSpeak.h" // ThingSpeak.h library hozzáadása
const int DHT_PIN = 15; // állandó szenzor 15 láb beállítása
const int LED_PIN = 13; // állandó led 13 láb beállítása
const char* WIFI_NAME = "Wokwi-GUEST"; // wifi router SSID neve
const char* WIFI_PASSWORD = ""; // wifi router wifi jelszava
const int myChannelNumber = 2751374; // CH Number (ThingSpeak)
const char* myApiKey = "0TWLFS4VHGBYGYIQ"; // API Key (ThingSpeak)
const char* server = "api.thingspeak.com"; // ThingSpeak szerver neve
DHTesp dhtSensor; // DHT szenzor példányosítása
WiFiClient client; //
void setup() {
Serial.begin(115200); // sorosport sebesség beállítása
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); // dht láb/típus beállítás
pinMode(LED_PIN, OUTPUT); // led pint kimenetre állítása
WiFi.begin(WIFI_NAME, WIFI_PASSWORD); // wifi hálózatra csatlakozás jelszo,nev
while (WiFi.status() != WL_CONNECTED){ //felcsatlakozott e a wifi hálózatra?
delay(1000);
Serial.println("Wifi not connected"); // nem csatlakozott fel
}
Serial.println("Wifi connected !"); // felcsatlakozott
Serial.println("Local IP: " + String(WiFi.localIP())); // kiíratjuk az eszköz ip címét
WiFi.mode(WIFI_STA); // station üzemmódba állítása
ThingSpeak.begin(client); // fölcsatlakozik a shingspeak szerverre
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity(); // kiolvasuk a szenzorból a hőmérséklet és páratartalmat
ThingSpeak.setField(1,data.temperature); // TS fild beállítása hőm-re
ThingSpeak.setField(2,data.humidity); // TS fild beállítása pár.t-re
if (data.temperature > 35 || data.temperature < 12 || data.humidity > 70 || data.humidity < 40) {
digitalWrite(LED_PIN, HIGH);
}else{ // megadott tartományban lévő értékek esetén a led világít
digitalWrite(LED_PIN, LOW);
}
int x = ThingSpeak.writeFields(myChannelNumber,myApiKey); // elküldjük a thingspeak-ba a mért adatokat
Serial.println("Temp: " + String(data.temperature, 2) + "°C"); //kiírjuk soros portra a hömérsékletet
Serial.println("Humidity: " + String(data.humidity, 1) + "%"); //kiírjuk soros portra a páratartamat
if(x == 200){ // sikeres adatküldés történt a thingspeak felé
Serial.println("Data pushed successfull"); // adatküldés sikeres
}else{
Serial.println("Push error" + String(x)); // ha x nem egyenlő 200
}
Serial.println("---"); // adatokat elvászató jel kiírása
delay(15000); //15 másodpercnél nem lehet kisebb a késleletés javasolt a 30
}