Hallo zusammen
benoetige mal hilfe da ich mich bischen wunder wieso aber keinen Fehler finden kann.
Hab einen esp 8266 mit Capacitive Soil Moisture Sensor V1.2 am laufen.
Laeuft soweit aber irgendwas stimmt nicht so richtig der esp sendet seine daten wie er soll nur wernn ich einen mqtt client aufrufe sind die daten zu sehen nur werden sie nicht aktuallisiert wenn ich den sensor aus dem Wasser nehme oder in wasser tauche.
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const int echoPin = A0; //D3
int Feuchtigkeit;
// Netzwerkeinstellungen.
const char* ssid = "Funkwelle_Kloosterburen";
const char* password = "T30h19A76l";
const char* mqtt_server = "192.168.1.6";
const char* SensorName = "Pflanze_01";
const int dry = 677;
const int wet = 348;
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;
void setup_wifi() {
delay(100);
// Starte WiFi Verbindung
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi Verbindung");
Serial.println("IP Adresse: ");
Serial.println(WiFi.localIP());
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected())
{
Serial.print("Verbindung zu mqtt ...");
if (client.connect(SensorName))
{
Serial.println("Verbindung");
client.subscribe("OsoyooCommand");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
//Warten
delay(100);
}
}
}
void setup() {
pinMode(echoPin, INPUT);
Serial.begin(9600);
setup_wifi();
client.setServer(mqtt_server, 1883);
if (!client.connected()) {
reconnect();
}
client.loop();
String msg="";
pinMode(A0,INPUT);
delay(200);
// Lese Sensor Daten
int Bodenfeuchtigkeit = analogRead(A0);
int percentageHumidity = map(Bodenfeuchtigkeit, wet, dry, 100, 0);
// Sende Sensordaten an mqtt-Server
delay(10);
client.publish("Garten/Pflanze_01", String(percentageHumidity).c_str(),true);
//delay(100);
// Gehe schlafen fuer 15 minutes
//ESP.deepSleep( 15 * 60 * 1000000);
//delay(100);
}
void loop() {
}
vielleicht ist doch ein Fehler drinne ich weis es nicht. Haenge mit dem ding schon so lange rum.
vielleicht weis jemand rat.
grtuss Hitman