Blynk und Lüfter und Luftbefeuchter steuerung

Hallo,

ich habe einen NodeMCU esp8266 mit einem DHT22 Sensor daran und blynk darauf laufen.

Ich habe mir selber ein sketch zusammen kopiert und ein wenig bearbeitet. blynk meldet jetzt immer mal wieder das es offline wäre, der luftbefeuchter funktioniert so wie er soll, aber die Lüfter schalten gar nicht bzw die Relais.Ich kann mir denken das irgendwas mit dem code in dem Temperatur bereich nicht stimmt. Aber ich hatte das ganze vorher auf einem Rp3 und NodeRed laufen aber da ist Blynk leider aller 2 tage abgestürzt und jetzt wollte ich gerne Arduino umgesteigen weil ich dachte es läuft vielleicht runder. Sozusagen hab ich nicht viel ahnung davon und würde mich freuen wenn mir vielleicht jemand hilft bzw sagen kann das die probleme sind zum einem warum blynk immer abstürzt und warum die lüfter nicht schalten.

Ich hab alles auf dem Blynk Sketch aufgebaut weil der rund lief und es dann mit 2 verschieden varianten versucht aber ich weis nicht ob überhaupt eins im ansatz richtig ist?! :o :o :o :confused: :confused:

  1. Sketch
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define luftbefeuchter 4
#define fan1 5
#define fan2 12

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

int maxHum = 80;
int minHum = 50;
int maxTemp = 26.5;
int minTemp = 26.0;
int maxTemp2 = 27.0;
int minTemp2 = 26.0;

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "RjDHoUAB7S4_oBf02Ee";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";


// Uncomment whatever type you're using!
//#define DHTTYPE DHT11     // DHT 11
#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  dht.begin();

  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
      pinMode(luftbefeuchter, OUTPUT);
      Serial.begin(9600);
      dht.begin();}

void loop() {
      
      
      // Wait a few seconds between measurements.
      delay(2000);
     
      // Reading temperature or humidity takes about 250 milliseconds!
      // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
      float h = dht.readHumidity();
      // Read temperature as Celsius
      float t = dht.readTemperature();
     
      // Check if any reads failed and exit early (to try again).
      if (isnan(h) || isnan(t)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }

if (h > maxHum) {
          digitalWrite(luftbefeuchter, HIGH);
      } else if (h < minHum) {
         digitalWrite(luftbefeuchter, LOW);
      };

if (t > maxTemp) {
          digitalWrite(fan1, HIGH);
      } else if (t < minTemp) {
         digitalWrite(fan1, LOW);
      };

if (t > maxTemp2) {
          digitalWrite(fan2, HIGH);
      } else if (t < minTemp2) {
         digitalWrite(fan2, LOW);
      };


      Serial.print("Humidity: ");
      Serial.print(h);
      Serial.print(" % ");
      Serial.print("Temperature: ");
      Serial.print(t);
      Serial.println(" *C ");
    
{
  Blynk.run();
  timer.run();
}

}
  1. Sketch
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define luftbefeuchter 4
#define fan1 5
#define fan2 12

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

int maxHum = 80;
int minHum = 50;
int maxTemp = 26.5;
int minTemp = 26.0;
int maxTemp2 = 27.0;
int minTemp2 = 26.0;

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "RjDHoUAB7Sp6He";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";


// Uncomment whatever type you're using!
//#define DHTTYPE DHT11     // DHT 11
#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  dht.begin();

  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
      pinMode(luftbefeuchter, OUTPUT);
      Serial.begin(9600);
      dht.begin();}

void loop() {
      
      
      // Wait a few seconds between measurements.
      delay(2000);
     
      // Reading temperature or humidity takes about 250 milliseconds!
      // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
      float h = dht.readHumidity();
      // Read temperature as Celsius
      float t = dht.readTemperature();
     
      // Check if any reads failed and exit early (to try again).
      if (isnan(h) || isnan(t)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }

if (h > maxHum) {
          digitalWrite(luftbefeuchter, HIGH);
      } else if (h < minHum) {
         digitalWrite(luftbefeuchter, LOW);
      };

if (t > maxTemp;maxTemp2) {
          digitalWrite(fan1;fan2, HIGH);
      } else if (t < minTemp;minTemp2) {
         digitalWrite(fan1;fan2, LOW);
      }

      Serial.print("Humidity: ");
      Serial.print(h);
      Serial.print(" % ");
      Serial.print("Temperature: ");
      Serial.print(t);
      Serial.println(" *C ");
    
{
  Blynk.run();
  timer.run();
}

}

Mein Tipp dazu.
Bringe deinen Sketch erst so mit deinen Sensoren und Lüftern zu Laufen und baue danach Blynk ein.

Dann wird es für dich einfacher.

Danke,

Werde ich versuchen aber kannst du mir vll sagen wo auch das problem liegt das er die lüfter nicht schaltet weil der luftbefeuchter geht ja irgendwas wird da ja nicht stimmen

skylord1989:
Danke,

Werde ich versuchen aber kannst du mir vll sagen wo auch das problem liegt das er die lüfter nicht schaltet weil der luftbefeuchter geht ja irgendwas wird da ja nicht stimmen

Kannst du denn mitteilen, welche Werte aus deinen Sensoren übergeben werden ?

Auch ist interessant, wie du deine Lüfter angeschlossen hast.

Wie meinst du welche werte? Also grad zahl und luftfeuchte falls du das meinst was ich nicht denke. Und die lüfter steuer ich über relais an genauso wie den Luftbefeuchter. Sorry falls ich mich blöd anstelle.

Ja, diese Werte meine ich.
Und was für ein Relais verwendest du ?

skylord1989:
Sorry falls ich nicht falls ich mich blöd anstelle

Macht ja nix. Was'n echter Maker ist, traut sich was :slight_smile:

Dein größtes Problem ist meinem Eindruck nach (!), dass Du überhaupt keine Ahnung vom Programmieren zu haben scheinst. Ein kleines Bisschen brauchst Du aber leider. Etwas zusammenkopieren und hinfrickeln ist etwas Anderes und macht keinen Spaß.

Sieh Dir z. B. an, was ein PAP ist und aus welchen Strukturen ein Programm besteht.

Gruß

Gregor

@HotSystems

Elegoo 8 Kanal DC 5V Relaismodul mit Optokoppler für Arduino UNO R3 MEGA 2560 1280 DSP ARM PIC AVR STM32 Raspberry Pi

https://www.amazon.de/dp/B01M61VVGV/ref=cm_sw_r_cp_api_i_fRUXEbH135V7W

@gregorss

Ja leider nicht aber ich nutz es gern weil es preiswert ist und gut funktioniert wenn man ein wenig ahnung hat. Am liebsten hätt ich es wenn es jemand schreibt und ich ihn bezahle :smiley: aber das wird nicht passieren. Danke da werd ich mir das mal durchlesen