- Komponenter som krävs:
- LM35 temperatursensor:
- Anslutning av LM35 med NodeMCU:
- Kodförklaring:
- HTML-kod för att visa temperatur på webbsidan:
- Arbetssätt:
I tidigare Komma igång med NodeMCU-handledning såg vi Vad är NodeMCU och hur vi kan programmera det med Arduino IDE . Som du vet har NodeMCU Wi-Fi-chip inuti så att det också kan ansluta till internet. Det är mycket användbart att bygga IoT-projekt. Vi använde tidigare ThingSpeak med Arduino för att göra IoT-termometer, men här skapar vi vår egen webbsida för att visa temperatur.
I den här handledningen kommer vi att utforska mer om denna intressanta MCU och långsamt dyker vi i Internet of Things World genom att ansluta NodeMCU till Internet. Här använder vi den här modulen för att få rumstemperatur i webbläsaren, dvs vi skapar en webbserver för att visa temperaturen med LM35 som temperatursensor.
Komponenter som krävs:
- NodeMCU - ESP12
- LM35 temperatursensor
- Bakbord
- Man-kvinnliga kontakter
LM35 temperatursensor:
LM35 är en analog linjär temperatursensor. Dess effekt är proportionell mot temperaturen (i grader Celsius). Driftstemperaturområdet är från -55 ° C till 150 ° C. Utgångsspänningen varierar med 10mV som svar på varje temperaturstegring eller o- temperatur. Den kan manövreras från en 5V- och 3,3 V-matning och standby-strömmen är mindre än 60uA.
Observera att LM35 finns i tre serievarianter, nämligen LM35A, LM35C och LM35D-serierna. Huvudskillnaden är i deras temperaturmätningsområde. LM35D-serien är utformad för att mäta 0 till 100 grader Celsius, där LM35A-serien är utformad för att mäta ett större intervall på -55 till 155 grader Celsius. LM35C-serien är utformad för att mäta från -40 till 110 grader Celsius.
Vi har redan använt LM35 med många andra mikrokontroller för att mäta temperaturen:
- Digital termometer med LM35 och 8051 mikrokontroller
- Temperaturmätning med LM35 och AVR Microcontroller
- Digital termometer med Arduino och LM35 temperatursensor
- Rumstemperaturmätning med Raspberry Pi
Anslutning av LM35 med NodeMCU:
Kretsschema för anslutning av LM35 med NodeMCU ges nedan:
LM35 är en analog sensor så vi måste konvertera denna analoga utgång till digital. För detta använder vi ADC-stift av NodeMCU som definieras som A0. Vi ansluter utgången från LM35 till A0.
Vi har 3,3 V som utspänning på NodeMCU: s stift. Så vi kommer att använda 3.3V som Vcc för LM35.
Kodförklaring:
Komplett kod med demonstrationsvideo ges i slutet av artikeln. Här förklarar vi några delar av koden. Vi har redan förklarat att ladda upp kod till MCU med Arduino IDE.
Först måste vi inkludera ESP8266wifi-biblioteket för att komma åt Wi-Fi-funktionerna..
#omfatta
Ange sedan ditt Wi-Fi-namn och lösenord i ssid och lösenordsfält . Initierade också variablerna och starta servern på port 80 med överföringshastighet 115200.
const char * ssid = "*********"; // Ditt ssid const char * lösenord = "***********"; // Ditt lösenord float temp_celsius = 0; float temp_fahrenheit = 0; WiFiServer-server (80); ogiltig installation () { Serial.begin (115200);
Anslutning av Wi-Fi upprättas genom att anropa dessa funktioner.
Serial.println (); Serial.println (); Serial.print ("Ansluter till"); Serial.println (ssid); WiFi.begin (ssid, lösenord);
Anslutningen kan ta några sekunder att upprätta så fortsätt att visa '…' tills anslutningen inte upprättas. Då kommer systemet att vänta och kontrollera att en klient ansluter…
medan (WiFi.status ()! = WL_CONNECTED) { fördröjning (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi är ansluten"); server.begin (); Serial.println ("Server startad"); Serial.println (WiFi.localIP ()); }
I loop- avsnittet, läs sensorvärdena och konvertera dem till Celsius och Fahrenheit och visa dessa värden på seriell bildskärm.
tomrumslinga () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Att konvertera analoga värden till Celsius Vi har 3,3 V på vårt kort och vi vet att utspänningen på LM35 varierar med 10 mV till varje grad Celsius stiger / faller. Så, (A0 * 3300/10) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Temperatur ="); Serial.print (temp_celsius); Serial.print ("Celsius,");
HTML-kod för att visa temperatur på webbsidan:
Vi visar temperaturen på en webbsida så att den kan nås var som helst i världen via internet. HTML-kod är mycket enkel; vi måste bara använda client.println- funktionen för att echo varje rad i HTML-koden, så att webbläsaren kan köra den.
Denna del visar HTML-kod för att skapa en webbsida som visar temperaturvärdet.
WiFiClient-klient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Innehållstyp: text / html"); client.println ("Connection: close"); // anslutningen stängs efter att svarsklienten har slutförts.println ("Uppdatera: 10"); // uppdatera sidan efter 10 sek client.println (); client.println (""); client.println (""); client.print ("
Digital termometer
"); client.print ("Temperatur (* C) = "); client.println (temp_celsius); client.print ("
Temperatur (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); fördröjning (5000); }Arbetssätt:
Efter att ha laddat upp koden med Arduino IDE, öppna seriell bildskärm och tryck på Återställ-knappen på NodeMCU.
Nu kan du se att kortet är anslutet till Wi-Fi-nätverket som du har definierat i din kod och du har också IP. Kopiera denna IP och klistra in den i valfri webbläsare. Se till att ditt system som du använder webbläsaren ska anslutas till samma nätverk.
Din digitala termometer är klar och temperaturen uppdateras automatiskt i webbläsaren efter var tionde sekund.
För att göra denna webbsida tillgänglig från internet behöver du bara ställa in Port Forwarding i din router / modem. Kontrollera hela koden och videon nedan.
Kontrollera även:
- Raspberry Pi Weather Station: Övervakning av luftfuktighet, temperatur och tryck via Internet
- Övervakning av levande temperatur och luftfuktighet via Internet med Arduino och ThingSpeak