Inspiriert vom Golem.de Temperatur im Büro-Projekt habe ich einen NodeMCU genutzt um die Temperatur zu messen. Auf der Teileliste stehen dabei folgende Bauteile:
- NodeMCUv3-Board
- Temperatursensor DS18B20
- Widerstand (4,7 kOhm)
- Verbindungskabel (6x)
Diese Teile müssen nun wie folgt auf dem Board angebracht werden:
Anschließend kann das NodeMCU-Board mit dem passenden Programmcode bestückt werden:
#include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(D2); DallasTemperature sensors(&oneWire); DeviceAddress thermometer; void setup(void) { Serial.begin(115200); sensors.begin(); sensors.getAddress(thermometer, 0); sensors.setResolution(thermometer, 12); } void loop() { Serial.println("Read temperature...\n"); sensors.requestTemperatures(); float temperature = sensors.getTempC(thermometer); Serial.println(temperature); delay(5000); }
In dem Programm wird zuerst eine One-Wire-Verbindung definiert und in der setup-Methode die Verbindung konfiguriert. Anschließend wird in der loop-Methode alle fünf Sekunden die Temperatur ausgelesen und in die serielle Konsole geschrieben.
Hallo,
habe obigen Sketch eingegeben, aber es kommt die Meldung ‚D2‘ was not declared in this scope. Wo liegt der Fehler. Ich bin blutiger Anfänger.
Gruß
Hallo,
D2 ist einer der PINs des NodeMCU-Boards. Das NodeMCU wiederum ist ein Entwicklerboard für den ESP8266. Was hier wahrscheinlich fehlt ist die Einrichtung des NodeMCU-Boards in der Arduino-IDE. In einem anderen Artikel (https://seeseekey.net/archive/118843/) hatte ich das Ganze mal beschrieben. Nach der Einrichtung des Boards, sollte die Konstante D2 bekannt sein und das Programm kompilieren.