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