- Nepieciešamās sastāvdaļas:
- LM35 temperatūras sensors:
- LM35 savienošana ar NodeMCU:
- Koda skaidrojums:
- HTML kods, lai tīmekļa vietnē parādītu temperatūru:
- Darbs:
Iepriekšējā Darba sākšana ar NodeMCU apmācību mēs redzējām Kas ir NodeMCU un kā mēs to varam programmēt, izmantojot Arduino IDE . Kā jūs zināt, NodeMCU iekšpusē ir Wi-Fi mikroshēma, tāpēc tas var arī izveidot savienojumu ar internetu. Ir ļoti noderīgi veidot IoT projektus. Mēs iepriekš izmantojām ThingSpeak ar Arduino, lai izgatavotu IoT termometru, bet šeit mēs izveidosim savu tīmekļa vietni, lai parādītu temperatūru.
Šajā apmācībā mēs izpētīsim vairāk par šo interesanto MCU un lēnām ienirstam lietu interneta pasaulē, savienojot NodeMCU ar internetu. Šeit mēs izmantosim šo moduli, lai iegūtu tīmekļa temperatūru istabas pārlūkprogrammā, ti, izveidosim tīmekļa serveri, lai parādītu temperatūru, izmantojot temperatūras sensoru LM35.
Nepieciešamās sastāvdaļas:
- MezglsMCU - ESP12
- LM35 temperatūras sensors
- Maizes dēlis
- Vīriešu un sieviešu savienotāji
LM35 temperatūras sensors:
LM35 ir analogais lineārais temperatūras sensors. Tās jauda ir proporcionāla temperatūrai (grādos pēc Celsija). Darba temperatūras diapazons ir no -55 ° C līdz 150 ° C. Izejas spriegums mainās par 10mV, reaģējot uz katru o C temperatūras paaugstināšanos vai kritumu. To var darbināt no 5V, kā arī 3,3 V barošanas avota, un statīva strāva ir mazāka par 60uA.
Ņemiet vērā, ka LM35 ir pieejams 3 sērijas variantos, proti, LM35A, LM35C un LM35D sērijās. Galvenā atšķirība ir to temperatūras mērījumu diapazonā. LM35D sērija ir paredzēta mērīšanai no 0 līdz 100 grādiem pēc Celsija, kur kā LM35A sērija ir paredzēta mērīšanai plašākā diapazonā no -55 līdz 155 grādiem pēc Celsija. LM35C sērija ir paredzēta mērīšanai no -40 līdz 110 grādiem pēc Celsija.
Temperatūras mērīšanai mēs jau izmantojām LM35 kopā ar daudziem citiem mikrokontrolleriem:
- Digitālais termometrs, izmantojot mikrokontrolleru LM35 un 8051
- Temperatūras mērīšana, izmantojot LM35 un AVR mikrokontrolleru
- Digitālais termometrs, izmantojot Arduino un LM35 temperatūras sensoru
- Telpas temperatūras mērīšana ar Aveņu Pi
LM35 savienošana ar NodeMCU:
Ķēdes shēma LM35 savienošanai ar NodeMCU ir sniegta zemāk:
LM35 ir analogais sensors, tāpēc mums šī analogā izeja jāpārvērš ciparu formātā. Šim nolūkam mēs izmantojam NodeMCU ADC tapu, kas ir definēta kā A0. Mēs savienosim LM35 izvadi ar A0.
Mums ir 3,3 V kā izejas spriegums NodeMCU tapām. Tātad, LM35 kā Vcc izmantosim 3,3 V.
Koda skaidrojums:
Pilnīgs kods ar demonstrācijas video ir norādīts raksta beigās. Šeit mēs izskaidrojam dažas koda daļas. Mēs jau paskaidrojām, kā augšupielādēt kodu MCU, izmantojot Arduino IDE.
Pirmkārt, mums jāiekļauj ESP8266wifi bibliotēka, lai piekļūtu Wi-Fi funkcijām.
# iekļaut
Pēc tam laukā SSID un parole ievadiet savu Wi-Fi vārdu un paroli. Inicializējiet arī mainīgos un palaidiet serveri 80. portā ar datu pārraides ātrumu 115200.
const char * ssid = "*********"; // Jūsu ssid const char * password = "***********"; // Jūsu Parole peld temp_celsius = 0; pludiņa temp_fahrenheit = 0; WiFiServer serveris (80); void setup () { Serial.begin (115200);
Wi-Fi savienojums tiek izveidots, izsaucot šīs funkcijas.
Seriālais.println (); Seriālais.println (); Serial.print ("Savienojums ar"); Serial.println (ssid); WiFi.begin (ssid, parole);
Savienojuma izveide var ilgt dažas sekundes, tāpēc turpiniet rādīt “…”, līdz savienojums netiks izveidots. Tad sistēma turpinās gaidīt un pārbaudīt, vai klients izveido savienojumu…
while (WiFi.status ()! = WL_CONNECTED) { aizkave (500); Sērijas.druka ("."); } Serial.println (""); Serial.println ("WiFi ir izveidots savienojums"); server.begin (); Serial.println ("Serveris sākts"); Serial.println (WiFi.localIP ()); }
In cilpas sadaļā lasīt sensora vērtības un pārvērst to Celsija un Fārenheita un parādīt šīs vērtības sērijas monitoru.
void loop () { temp_celsius = (analogRead (A0) * 330,0) / 1023,0; // Lai konvertētu analogās vērtības uz Celsija, mūsu dēlī ir 3,3 V, un mēs zinām, ka LM35 izejas spriegums svārstās par 10 mV līdz katrai Celsija pakāpei. Tātad, (A0 * 3300/10 ) / 1023 = celsija temp_fārenheita = celsija * 1,8 + 32,0; Serial.print ("Temperatūra ="); Sērijas.druka (temp_celsius); Sērijas.druka ("Celsija");
HTML kods, lai tīmekļa vietnē parādītu temperatūru:
Mēs parādām temperatūru tīmekļa lapā, lai tā būtu pieejama no jebkuras vietas pasaulē, izmantojot internetu. HTML kods ir ļoti vienkāršs; mums vienkārši jāizmanto funkcija client.println, lai atbalsotu katru HTML koda rindiņu, lai pārlūkprogramma to varētu izpildīt.
Šajā daļā tiek parādīts HTML kods, lai izveidotu tīmekļa lapu, kurā parādīta temperatūras vērtība.
WiFiClient klients = serveris.pieejams (); client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type: text / html"); client.println ("Savienojums: aizvērt"); // savienojums tiks slēgts pēc atbildes klienta pabeigšanas.println ("Atsvaidzināt: 10"); // atjaunināt lapu pēc 10 sekundēm client.println (); klients.println (""); klients.println (""); client.print ("
Digitālais termometrs
"); client.print ("Temperatūra (* C) = "); client.println (temp_celsius); client.print ("
Temperatūra (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); aizkave (5000); }Darbs:
Pēc koda augšupielādes, izmantojot Arduino IDE, atveriet sērijas monitoru un nospiediet NodeMCU pogu Atiestatīt.
Tagad jūs varat redzēt, ka dēlis ir savienots ar Wi-Fi tīklu, kuru esat definējis savā kodā, un arī jūs saņēmāt IP. Kopējiet šo IP un ielīmējiet to jebkurā tīmekļa pārlūkprogrammā. Pārliecinieties, vai sistēmai, kurā izmantojat tīmekļa pārlūkprogrammu, jābūt savienotai ar to pašu tīklu.
Jūsu digitālais termometrs ir gatavs, un temperatūra ik pēc 10 sekundēm tiks automātiski atsvaidzināta tīmekļa pārlūkprogrammā.
Lai padarītu šo vietni pieejamu no interneta, jums maršrutētājā / modemā vienkārši jāiestata portu pārsūtīšana. Tālāk pārbaudiet visu kodu un videoklipu.
Pārbaudiet arī:
- Raspberry Pi meteostacija: Mitruma, temperatūras un spiediena monitorings internetā
- Tiešā temperatūras un mitruma monitorēšana internetā, izmantojot Arduino un ThingSpeak