- Vereiste componenten:
- LM35 temperatuursensor:
- LM35 verbinden met NodeMCU:
- Code Verklaring:
- HTML-code om temperatuur op webpagina weer te geven:
- Werken:
In de vorige tutorial Aan de slag met NodeMCU hebben we gezien wat NodeMCU is en hoe we het kunnen programmeren met Arduino IDE . Zoals u weet, heeft NodeMCU een Wi-Fi-chip, zodat deze ook verbinding kan maken met internet. Het is erg handig om IoT-projecten te bouwen. We gebruikten eerder ThingSpeak met Arduino om een IoT-thermometer te maken, maar hier zullen we onze eigen webpagina maken om de temperatuur weer te geven.
In deze tutorial zullen we meer ontdekken over deze interessante MCU en langzaamaan duiken we in de wereld van Internet of Things door NodeMCU met internet te verbinden. Hier zullen we deze module gebruiken om de kamertemperatuur op de webbrowser te krijgen, dwz we zullen een webserver maken om de temperatuur weer te geven met LM35 als temperatuursensor.
Vereiste componenten:
- NodeMCU - ESP12
- LM35 temperatuursensor
- Breadboard
- Man-vrouw connectoren
LM35 temperatuursensor:
LM35 is een analoge lineaire temperatuursensor. De output is evenredig met de temperatuur (in graden Celsius). Het bedrijfstemperatuurbereik is van -55 ° C tot 150 ° C. De uitgangsspanning varieert met 10mV als reactie op elke stijging of daling van de temperatuur o C. Hij kan zowel op 5V als op 3,3 V worden gevoed en de stand-bystroom is minder dan 60uA.
Merk op dat de LM35 beschikbaar is in 3 serie variaties namelijk de LM35A, LM35C en LM35D serie. Het belangrijkste verschil zit in hun reeks temperatuurmetingen. De LM35D-serie is ontworpen om 0 tot 100 graden Celsius te meten, terwijl de LM35A-serie is ontworpen om een breder bereik van -55 tot 155 graden Celsius te meten. De LM35C-serie is ontworpen om te meten van -40 tot 110 graden Celsius.
We hebben LM35 al met veel andere microcontrollers gebruikt om de temperatuur te meten:
- Digitale thermometer met LM35 en 8051 Microcontroller
- Temperatuurmeting met behulp van LM35 en AVR Microcontroller
- Digitale thermometer met Arduino en LM35 temperatuursensor
- Kamertemperatuurmeting met Raspberry Pi
LM35 verbinden met NodeMCU:
Het schakelschema voor het verbinden van LM35 met NodeMCU wordt hieronder gegeven:
LM35 is een analoge sensor, dus we moeten deze analoge uitgang naar digitaal converteren. Hiervoor gebruiken we de ADC-pin van NodeMCU die is gedefinieerd als A0. We zullen de uitgang van LM35 verbinden met A0.
We hebben 3,3 V als uitgangsspanning op de pinnen van NodeMCU. We gebruiken dus 3,3 V als Vcc voor LM35.
Code Verklaring:
De volledige code met demonstratievideo wordt aan het einde van het artikel gegeven. Hier leggen we enkele delen van de code uit. We hebben al uitgelegd om code te uploaden naar MCU met Arduino IDE.
Ten eerste moeten we de ESP8266wifi-bibliotheek opnemen om toegang te krijgen tot de Wi-Fi-functies.
# omvatten
Voer vervolgens uw Wi-Fi-naam en wachtwoord in het veld ssid en wachtwoord in. Initialiseerde ook de variabelen en start de server op poort 80 met baudrate 115200.
const char * ssid = "*********"; // Uw ssid const char * wachtwoord = "***********"; // Uw wachtwoord float temp_celsius = 0; zweven temp_fahrenheit = 0; WiFiServer-server (80); ongeldige setup () { Serial.begin (115200);
Verbinding met Wi-Fi wordt tot stand gebracht door deze functies aan te roepen.
Serial.println (); Serial.println (); Serial.print ("Verbinden met"); Serial.println (ssid); WiFi.begin (ssid, wachtwoord);
Het kan enkele seconden duren voordat de verbinding tot stand is gebracht, dus blijf '…' weergeven totdat de verbinding niet tot stand komt. Dan blijft het systeem wachten en controleren of een client verbinding maakt…
while (WiFi.status ()! = WL_CONNECTED) { vertraging (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi is verbonden"); server.begin (); Serial.println ("Server gestart"); Serial.println (WiFi.localIP ()); }
In loop gedeelte beschreven sensorwaarden en omzetten in Celsius en Fahrenheit en deze waarden worden weergegeven seriële monitor.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Om analoge waarden om te zetten naar Celsius We hebben 3,3 V op ons bord en we weten dat de uitgangsspanning van LM35 varieert met 10 mV voor elke graad Celsius stijging / daling. Dus (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1.8 + 32.0; Serial.print ("Temperatuur ="); Serial.print (temp_celsius); Serial.print ("Celsius");
HTML-code om temperatuur op webpagina weer te geven:
We geven de temperatuur weer op een webpagina, zodat deze overal ter wereld via internet toegankelijk is. HTML-code is heel eenvoudig; we hoeven alleen de client.println- functie te gebruiken om elke regel van de HTML-code te echoën, zodat de browser het kan uitvoeren.
Dit deel toont HTML-code om een webpagina te maken die de temperatuurwaarde weergeeft.
WiFiClient-client = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type: text / html"); client.println ("Verbinding: sluiten"); // de verbinding wordt verbroken na voltooiing van de reactie client.println ("Vernieuwen: 10"); // update de pagina na 10 sec client.println (); client.println (""); client.println (""); client.print ("
Digitale thermometer
"); client.print ("Temperatuur (* C) = "); client.println (temp_celsius); client.print ("
Temperature (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }Werken:
Na het uploaden van de code met Arduino IDE, opent u de seriële monitor en drukt u op de Reset-knop op NodeMCU.
Nu kun je zien dat het bord is verbonden met het Wi-Fi-netwerk dat je in je code hebt gedefinieerd en dat je ook het IP-adres hebt. Kopieer dit IP-adres en plak het in een webbrowser. Zorg ervoor dat uw systeem waarop u de webbrowser gebruikt, verbinding heeft met hetzelfde netwerk.
Uw digitale thermometer is klaar en de temperatuur wordt na elke 10 seconden automatisch ververst in de webbrowser.
Om deze webpagina toegankelijk te maken vanaf internet, hoeft u alleen maar Port Forwarding in uw router / modem in te stellen. Controleer de volledige code en video hieronder.
Controleer ook:
- Raspberry Pi-weerstation: bewaking van vochtigheid, temperatuur en druk via internet
- Live temperatuur- en vochtigheidsbewaking via internet met Arduino en ThingSpeak