Hallo,
in meinem letzten Beitrag hier habe ich mich darüber informiert wie ich am besten eine Pooltemperaturüberwachung realisiere. Für die super Hilfe vielen Dank an alle!
Nun habe ich mir einen NodeMCU V3 mit ESP8266 und den wasserdichten Temperaturfühler DS18B20 gekauft und richtig angeschlossen. Ich wollte mir die Temperatur über Blynk anzeigen lassen.
Im Internet habe ich dann folgenden Quellcode gefunden:
#define BLYNK_PRINT Serial // startet den Serial Monitor
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
OneWire ds(2); // an pin 2, D4 in NodeMCU, (ein 4.7K resistor ist notwendig)
char auth[] = "e2a7c041c0d24d9fa59244bd472209bb"; // Name des Auth Token
char ssid[] = "xxx"; //WlAN Name
char pass[] = "xxx"; //WLAN Passwort
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
delay(10000);
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
if ( !ds.search(addr)) {
Serial.println("keine weiteren Adressen");
Serial.println();
ds.reset_search();
delay(250);
return;
}
Serial.print("ROM =");
for ( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return;
}
Serial.println();
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20");
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Gerät gehört nicht zur Famile der DS18x20 ");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1);
delay(1000);
present = ds.reset();
ds.select(addr);
ds.write(0xBE);
Serial.print(" Data = ");
Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) {
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3;
if (data[7] == 0x10) {
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw & ~7; //
else if (cfg == 0x20) raw = raw & ~3;
else if (cfg == 0x40) raw = raw & ~1;
}
celsius = (float)raw / 16.0;
Serial.print(" Temperature = ");
Serial.print(celsius);
Serial.print(" Celsius, ");
Blynk.virtualWrite(V5, celsius);
}
Alle Libaries sind eingebunden, Kompilieren sowie hochladen funktioniert.
Wenn ich mein Blynk Programm jetzt öffne sehe ich aber leider nichts
Ich kriege nur die Meldung : Programm xx is offline.
Wo könnten eventuelle Fehler liegen? Hat jemand zu diesem Projekt einen fertigen Sketch der funktioniert? Habe ich was vergessen, nicht beachtet oder schlichtweg falsch gemacht?
Gibt es die Möglichkeit die Verbindung zwischen meinem Router und dem ESP zu testen?
Ist mein erstes Projekt also bitte ich um ein wenig Mitleid.
Vielen Danke schonmal an alle!