- Erforderliche Komponenten:
- LM35 Temperatursensor:
- LM35 mit NodeMCU verbinden:
- Code Erläuterung:
- HTML-Code zur Anzeige der Temperatur auf der Webseite:
- Arbeiten:
Im vorherigen Tutorial Erste Schritte mit NodeMCU haben wir gesehen, was NodeMCU ist und wie wir es mit Arduino IDE programmieren können . Wie Sie wissen, verfügt NodeMCU über einen Wi-Fi-Chip, sodass auch eine Verbindung zum Internet hergestellt werden kann. Es ist sehr nützlich, IoT-Projekte zu erstellen. Wir haben zuvor ThingSpeak mit Arduino verwendet, um ein IoT-Thermometer herzustellen, aber hier werden wir unsere eigene Webseite erstellen, um die Temperatur anzuzeigen.
In diesem Tutorial werden wir mehr über diese interessante MCU erfahren und langsam in die Welt des Internets der Dinge eintauchen, indem wir NodeMCU mit dem Internet verbinden. Hier werden wir dieses Modul verwenden, um die Raumtemperatur im Webbrowser zu ermitteln, dh wir werden einen Webserver erstellen, um die Temperatur unter Verwendung von LM35 als Temperatursensor anzuzeigen.
Erforderliche Komponenten:
- NodeMCU - ESP12
- LM35 Temperatursensor
- Steckbrett
- Stecker-Buchsen
LM35 Temperatursensor:
LM35 ist ein analoger linearer Temperatursensor. Seine Leistung ist proportional zur Temperatur (in Grad Celsius). Der Betriebstemperaturbereich reicht von -55 ° C bis 150 ° C. Die Ausgangsspannung variiert von 10 mV in Reaktion auf jeden o C steigen oder fallen in der Temperatur. Es kann sowohl mit 5 V als auch mit 3,3 V betrieben werden und der Standby-Strom beträgt weniger als 60 uA.
Beachten Sie, dass LM35 in drei Serienvarianten erhältlich ist, nämlich in den Serien LM35A, LM35C und LM35D. Der Hauptunterschied liegt in ihrem Bereich der Temperaturmessungen. Die LM35D-Serie misst 0 bis 100 Grad Celsius, während die LM35A-Serie einen größeren Bereich von -55 bis 155 Grad Celsius misst. Die LM35C-Serie misst zwischen -40 und 110 Grad Celsius.
Wir haben LM35 bereits mit vielen anderen Mikrocontrollern verwendet, um die Temperatur zu messen:
- Digitales Thermometer mit Mikrocontroller LM35 und 8051
- Temperaturmessung mit LM35 und AVR Microcontroller
- Digitales Thermometer mit Arduino und LM35 Temperatursensor
- Raumtemperaturmessung mit Raspberry Pi
LM35 mit NodeMCU verbinden:
Der Schaltplan für den Anschluss des LM35 an die NodeMCU ist unten angegeben:
Da der LM35 ein analoger Sensor ist, müssen wir diesen analogen Ausgang in einen digitalen umwandeln. Hierzu verwenden wir den ADC-Pin der NodeMCU, der als A0 definiert ist. Wir werden den Ausgang von LM35 mit A0 verbinden.
Wir haben 3,3 V als Ausgangsspannung an den Pins der NodeMCU. Wir werden also 3,3 V als Vcc für LM35 verwenden.
Code Erläuterung:
Der vollständige Code mit Demonstrationsvideo finden Sie am Ende des Artikels. Hier erklären wir einige Teile des Codes. Wir haben bereits erklärt, wie Sie mit Arduino IDE Code in die MCU hochladen können.
Zuerst müssen wir die ESP8266-WLAN-Bibliothek einbinden, um auf die Wi-Fi-Funktionen zugreifen zu können.
#einschließen
Geben Sie dann Ihren Wi-Fi-Namen und Ihr Passwort in das Feld ssid und password ein. Initialisieren Sie auch die Variablen und starten Sie den Server an Port 80 mit der Baudrate 115200.
const char * ssid = "*********"; // Dein ssid const char * password = "***********"; // Dein Passwort float temp_celsius = 0; float temp_fahrenheit = 0; WiFiServer Server (80); void setup () { Serial.begin (115200);
Durch Aufrufen dieser Funktionen wird eine Wi-Fi-Verbindung hergestellt.
Serial.println (); Serial.println (); Serial.print ("Herstellen einer Verbindung zu"); Serial.println (ssid); WiFi.begin (ssid, Passwort);
Der Verbindungsaufbau kann einige Sekunden dauern. Zeigen Sie daher weiterhin '…' an, bis die Verbindung nicht mehr hergestellt werden kann. Dann wartet das System weiter und prüft, ob ein Client eine Verbindung herstellt.
while (WiFi.status ()! = WL_CONNECTED) { delay (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi ist verbunden"); server.begin (); Serial.println ("Server gestartet"); Serial.println (WiFi.localIP ()); }}
Lesen Sie im Schleifenabschnitt die Sensorwerte, konvertieren Sie sie in Celsius und Fahrenheit und zeigen Sie diese Werte auf dem seriellen Monitor an.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Analoge Werte in Celsius umwandeln Wir haben 3,3 V auf unserer Platine und wissen, dass die Ausgangsspannung von LM35 um 10 mV pro Grad Celsius steigt / fällt. Also, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Temperature ="); Serial.print (temp_celsius); Serial.print ("Celsius");
HTML-Code zur Anzeige der Temperatur auf der Webseite:
Wir zeigen die Temperatur auf einer Webseite an, damit sie von überall auf der Welt über das Internet zugänglich ist. HTML-Code ist sehr einfach; Wir müssen nur die Funktion client.println verwenden, um jede Zeile des HTML-Codes wiederzugeben , damit der Browser ihn ausführen kann.
Dieser Teil zeigt HTML-Code zum Erstellen einer Webseite, auf der der Temperaturwert angezeigt wird.
WiFiClient client = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Inhaltstyp: text / html"); client.println ("Verbindung: schließen"); // Die Verbindung wird nach Abschluss der Antwort geschlossen client.println ("Refresh: 10"); // aktualisiere die Seite nach 10 Sekunden client.println (); client.println (""); client.println (""); client.print ("
Digitales Thermometer
"); client.print ("Temperatur (* C) = "); client.println (temp_celsius); client.print ("
Temperatur (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }Arbeiten:
Öffnen Sie nach dem Hochladen des Codes mit Arduino IDE den seriellen Monitor und drücken Sie die Reset-Taste auf NodeMCU.
Jetzt können Sie sehen, dass die Karte mit dem Wi-Fi-Netzwerk verbunden ist, das Sie in Ihrem Code definiert haben, und Sie haben auch die IP erhalten. Kopieren Sie diese IP und fügen Sie sie in einen beliebigen Webbrowser ein. Stellen Sie sicher, dass Ihr System, auf dem Sie den Webbrowser ausführen, mit demselben Netzwerk verbunden ist.
Ihr digitales Thermometer ist bereit und die Temperatur wird alle 10 Sekunden automatisch im Webbrowser aktualisiert.
Um diese Webseite über das Internet zugänglich zu machen, müssen Sie lediglich die Portweiterleitung in Ihrem Router / Modem einstellen. Überprüfen Sie den vollständigen Code und das Video unten.
Überprüfen Sie auch:
- Raspberry Pi Weather Station: Überwachung von Luftfeuchtigkeit, Temperatur und Druck über das Internet
- Live-Temperatur- und Feuchtigkeitsüberwachung über das Internet mit Arduino und ThingSpeak