Zusätzlich zu den anderen Kommentaren / Antworten, die Sie bisher erhalten haben, zeigt die Abbildung, die Sie Ihrem ursprünglichen Beitrag hinzugefügt haben, einen Konstruktionsfehler, der behoben werden muss. Wenn nach meinen Berechnungen die Nennspannung von VCC 3,3 V beträgt, gilt für Thermistortemperaturwerte von
T = [-40 0 25 40] (°C)
Die entsprechenden nominalen Ausgangsspannungen V_OUT von Ihrer Schaltung sind
V_OUT = [ 3.2667 3.0633 2.7211 2.4198 ] (VDC)
(nb V_OUT ist die Spannung, die an den ADC-Eingangspin angeschlossen ist.) Gemäß dem Datenblatt von Espressif für den ESP8266EX (S. 16):
Der Eingangsspannungsbereich [ADC] beträgt 0 bis 1,0 V, wenn TOUT an einen externen Stromkreis angeschlossen ist.
Diese V_OUT-Spannungen sind also zu hoch und können möglicherweise den ADC-Eingang beschädigen.
FWIW, wenn Sie die Positionen von Widerstand und Thermistor vertauschen, so dass die Schaltungstopologie wird
VCC -- thermistor --(V_OUT)-- resistor -- GND
Die resultierenden V_OUT-Nennspannungen, die an den ADC für die oben genannten Thermistortemperaturen angelegt werden, sind
V_OUT = [ 0.0333 0.2367 0.5789 0.8802 ] (VDC)
das wäre okay Diese Topologie stellt auch sicher, dass V_OUT mit zunehmender Thermistortemperatur ansteigt UND die Auflösung im ungünstigsten Fall (ohne Berücksichtigung anderer Fehlerquellen - z. B. Komponententoleranzen) am Ende von -40 ° C etwa 0,5 ° C / Bit beträgt ist nicht zu schrecklich.
In den FAQ von Espressif für den ESP8266 (scrollen Sie nach unten zum Abschnitt " Peripheriegeräte ") wird der Punkt " Wofür soll ich den internen ADC verwenden? " Angegeben (Hervorhebung hinzugefügt).
Der interne ADC kann zur Temperaturerfassung oder zur Erfassung des von externen Geräten aufgenommenen ungefähren Stroms verwendet werden. Da die ADC-Messwerte anfällig für Rauschen sind, sollten sie nur für Anwendungen verwendet werden, bei denen keine hohe Genauigkeit erforderlich ist. Zum Beispiel thermische Abschaltmechanismen usw.
Zusätzliche Überlegungen zu diesem Thema in Bezug auf Möglichkeiten zur Reduzierung der Fehler bei Ihren Messungen werden von den anderen Befragten in Ihrem Beitrag angesprochen - z. B. Verschärfung der Komponententoleranzen mithilfe einer ratiometrischen Messmethode (für die wahrscheinlich ein externer ADC-Chip erforderlich wäre mit mindestens zwei Eingängen zur Messung von VCC und V_OUT) usw.
Das FAQ-Thema mit dem Titel " Wie genau ist der interne ADC? " Heißt (Hervorhebung hinzugefügt):
Wenn eine hohe Genauigkeit erforderlich ist, verwenden Sie bitte die API system_adc_fast_read. Die HF-Schaltung sollte jedoch vor dem Messen abgeschaltet werden, und das WLAN wird getrennt. Für eine relativ geringere Genauigkeit, wenn Messwertunterschiede von 1 oder 2 toleriert werden können, empfehlen wir Benutzern, Wi-Fi für den Nicht-Schlafmodus wifi_set_sleep_type (NONE_SLEEP_T) zu konfigurieren.
Für eine geringere Genauigkeit kann der Benutzer in den Schlafmodus wechseln. Der Stromverbrauch ist in diesem Fall geringer.
Wenn der Wi-Fi-Sender HF-Energie heult, fügt die Leistung, die vom HF-Sender aus der Stromversorgung entnommen wird, und die vom HF-Sender + Antenne emittierte elektromagnetische Strahlung a) den Leistungsbussen der Platine (möglicherweise erhebliches) elektrisches Rauschen hinzu ( zB VCC-Spannungsabfall) und b) Ihren nahegelegenen Widerstand + Thermistor + Verbindungskabel. Beachten Sie, dass Ihre Komponentenleitungen und Anschlusskabel als Antennen fungieren und einen Teil der vom Wi-Fi-Sender abgegebenen HF-Energie empfangen. IOW, Spannungsabfälle des Leistungsbusses und unerwünschte Absorption von HF-Energie im Leistungsbus und in Ihren Komponenten sind weitere wichtige Rauschquellen, die verwaltet werden müssen, wenn Ihre Temperaturmessungen Reproduzierbarkeit, Präzision und Genauigkeit aufweisen sollen.