Potentiometer mit ESP-M3

Also grad nochmal getestet. Meßintervall alle 5 Sek.

Ein Wemos D1 mini mit WiFi, OTA und Webserver sowie eingebautem LDR an A0 ergibt keine Auswertung des analogen Pins. Anzeige serieller Monitor ständig auf 65535.

Ein Wemos D1 mini mit einfachem Sketch zur Auswertung des analogen Pins mit LDR funktioniert einwandfrei.

Werde demnächst nochmal weiter testen, was genau den analogen Pin blockiert.

kann ich mit meinen ESP8266/NodeMCUs nicht nachvollziehen. Hab da welche mit Wifi, OTA und ein LDR beeinflusst die Helligkeit von LED Anzeigen.
Wie ein aktivierter Webserver jetzt da noch negativ auffallen würde kann ich mir nicht vorstellen. Im verlinkten Dokument steht eigentlich auch nur, dass man den ADC nicht zu häufig abfragen soll, Ich lese den ADC eigentlich nur am Beginn einer neuen Ausgabe um die Helligkeit zu stellen, also in der Regel etwa alle 5 Sekunden. Wenn ich die interne Spannungsmessung verwende, dann ist der Interval auch meist > 1 Sekunde. Gab noch nie ein Problem damit.

Das sehe ich immernoch als notwendige Information an.
Grüße Uwe

In dem Link ist das Problem, dass analogRead manchmal doppelt so lange dauert wie normal, ein delayMicroseconds aber nicht.
Das sollte selten auffallen.

Ich hab übrigens auch einen ESP8266 mit WLAN (AP), OTA, LittleFS, Webserver und analogRead, bei dem ich in 2 Jahren noch keinen unplausiblen Analogwert bemerkt habe, immerhin ein RESET aus unbekannter Ursache in der Logdatei.
Meine Genauigkeitsanforderungen und Vergleichsmöglichkeiten sind allerdings gering:
2 .. 5% Genauigkeit reicht mir.

[Nachtrag]: Mein Webserver entspricht dem von fips, und reagiert auch auf fetch-Anfragen.
Aber der Analog-Eingang wird unabhängig von http-Anfragen gelesen und steuert ein Relais an auch wenn keiner guckt. Dabei kommt es nicht auf Millisekunden an, aber diese Steuerung funktioniert auch, während ein Client alle paar Sekunden den aktuellen Zustand wissen will.

Danke @noiasca und @michael_x ,
ich habe es nochmal mit einem "WiFiClient" getestet, und da funktioniert auch der analoge Pin, so wie ich es erwarte. Mit dem WebServer def. nicht. Ich verwende da den WebServer von fips. Werde es aber bei Gelegenheit noch weiter testen, um heraus zu finden, wo das Problem liegt.

Update:
Mit dem "einfachen" Beispiel in der IDE "HelloServer" funktioniert es auch mit dem Auslesen des analogen Pins.

Fazit:
Der WebServer in den Beispielen von Fips macht da Probleme. Welche das sind, muss ich noch untersuchen.

Leider wird das immer noch zu oft ignoriert.
Allerdings hier erübrigt sich das, da der ESP-M3 keinen Analogen Pin besitzt.

Den Poti habe ich auf +3.3V ,GND und A0 angeschlossen.

In meinem gesamten Projekt geht es um eine Heizungssteurung auf die ich im WLan zugreifen kann.
Mit 1 Schaltrelay und einem DHT22 für Temperatur, sowie Feuchtigkeit.
Der Poti ist nur für schnelle Temperatureinstellung zwischen 10 und 30 grad gedacht.
So genau muß das also nicht sein.
Probleme mit der Auswertung des Analogen Signals während der verwendung von Wlan hatte ich bisher nicht.

Auf dem Nodemcu läuft alles problemlos.
Mir fehlt auf dem ESP-M3 lediglich der A0.
Ich habe mir deshalb gleich mal einen ESP8266-12F bestellt.

Das kann ja nicht sein. Der ESP-M3 hat ja kein A0.

Und evtl. solltest du dir für die Temperatureinstellung mal Gedanken über ein "digitales Poti" Drehencoder machen. Da hast du eine bessere Einstellgenauigkeit.

Der basiert aber auf dem gleichen Webserver aus dem Core, wie der Hello Server.

Gruß Tommy

Nur merkwürdigerweise funktioniert es (analogRead) damit nicht.
Der Unterschied ist aber, die Webseite beim fips-Webserver liegt im FS.
Irgendwo muss es da ja einen Konflikt geben. Ich werde da weiter suchen und noch mal einen einfachen "fips"-Webserver aufbauen.
Evtl. kann ja @fips etwas dazu beitragen. Aktuell kann ich in seinen ESP8266-Beispielen keinen Webserver mit Nutzung des analogen Pins finden.

Da müsste man evtl. die einzelnen Teile (z.B. LittleFS) jeweils auskommentieren.
Evtl. ist es das Zusammenspiel LittleFS mit dem Webserver.
Falls es das ist, würde ich aber eher auf den einen analogen Eingang verzichten, als auf LittleFS.

Gruß Tommy

du könntest ja mal ein komplettes Beispiel geben das bei dir nicht funktioniert, dann kann man sich das vieleicht ansehen.

So sehen wir noch immer nicht was BEI DIR nicht funktioniert.

Genau das habe ich bisher auch so gelöst und den ADS1115 oder BH1750 eingesetzt. Das hat immer sicher funktioniert.
Jetzt hat mich aber die "Neugier" gepackt. :wink:

Ja, ich werde ein einfaches, fehlerbehaftetes Projekt zusammenstellen.
Evtl. finde ich dabei ja schon den Fehler. :wink:

Wobei das def. keine Priorität hat, da es für mich nicht "wichtig" ist. Nur eine Befriedigung der Neugierde.

Update:
Fehler Analoger Pin bei Webserver == der keiner ist !!

Wie sagt man so schön: Das Problem sitzt vor dem Monitor ! :wink:

Meine Sketche für den ESP8266 mit WebServer basieren alle auf den Beispielen von Fips.
Und allesamt mit dem "Admin-Tab-Sketch", der von mir auf Messung der Boardspannung gestellt wurde.
Analoge Messung wurde zu der Zeit nicht gebraucht, dachte ich.

Damit war die externe analoge Messung ausgeschaltet.

Code aus dem Admin-Tab

// Jetzt aktiv
//Es kann entweder die Spannung am ADC-Pin oder die Modulversorgungsspannung (VCC) ausgegeben werden.
void handlerenew() {    // Um die am ADC-Pin anliegende externe Spannung zu lesen, verwende analogRead (A0)
  server.send(200, "application/json", "[\"" + runtime() + "\",\"" + WiFi.RSSI() + "\",\"" + analogRead(A0) + "\"]");     // Json als Array
} 

/* Jetzt deaktiviert
ADC_MODE(ADC_VCC);
void handlerenew() {   // Zum Lesen der Modulversorgungsspannung (VCC), verwende ESP.getVcc()
  server.send(200, "application/json", "[\"" + runtime() + "\",\"" + WiFi.RSSI() + "\",\"" + ESP.getVcc() / 1024.0 + " V" + "\"]");
}
*/

Das wurde jetzt zurück gedreht und es funktioniert.

Danke für die zahlreichen stubser. :wink:

Gratuliere Dir. Das hast Du gut aufgelöst.

Gruß Tommy

Danke Dir.
Das war mir jetzt auch wichtig und ich kann endlich meine zahlreichen LDR's unterbringen. :wink: