Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Përshëndetje djema sot ne do të bëjmë një sistem të monitorimit të lagështisë dhe temperaturës duke përdorur sensorin e temperaturës ESP 8266 NODEMCU & DHT11. Temperatura dhe lagështia do të merren nga Sensori DHT11 dhe mund të shihet në një shfletues i cili faqe në internet do të menaxhohet nga esp 8266 duke e pritur atë në një server në internet.
Hapi 1: Gjërat që ju nevojiten
Ju duhen gjërat e mëposhtme për këtë projekt: 1x ESP 8266 Nodemcu:
1x DHT11: https://www.utsource.net/itm/p/8831706.html1x panxhar:.:
Disa kërcyes:
Hapi 2: Qarku
Qarku është shumë i lehtë lidhni gjithçka Siç tregohet në skmatikë
Hapi 3: Merrni Bibliotekat
Hapni IDE tuaj Arduino dhe shkoni te Skica> Përfshirja e Bibliotekës> Menaxhoni Bibliotekat. Menaxheri i Bibliotekës duhet të hapet. Kërkoni për "DHT" në kutinë e Kërkimit dhe instaloni bibliotekën DHT nga Adafruit. Pas instalimit të bibliotekës DHT nga Adafruit, shkruani "Adafruit Unified Sensor" në kutinë e kërkimit. Shkoni deri në fund për të gjetur bibliotekën dhe instaloni atë. Pas instalimit të bibliotekave, rinisni Arduino IDE tuaj.
Hapi 4: Kodi
Pasi të keni bërë gjërat e mësipërme, ngarkoni kodin e mëposhtëm në ESP8266 nodemcu (ju lutemi zgjidhni portin dhe tabelën e duhur) dhe para se të ngarkoni kodin ju lutemi vendosni ssid dhe fjalëkalimin e wifi -t tuaj në kodin: // Përfshirë bibliotekën WiFi ESP8266 #përfshini #përfshini "DHT". h "// Mos komentoni një nga rreshtat më poshtë për çfarëdo lloji të sensorit DHT që përdorni! #define DHTTYPE DHT11 // DHT 11 //#përcaktoni DHTTYPE DHT21 // DHT 21 (AM2301) //#përcaktoni DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // Zëvendësoni me të dhënat e rrjetit tuajconst char* ssid = "YOUR_NETWORK_NAME"; const char* password = "YOUR_NETWORK_PASSWORD"; // Web Server në portin 80WiFiServer server (80); // DHT Sensorconst int DHTPin = 5; // Filloni sensorin DHT. DHT dht (DHTPin, DHTTYPE); // Ndryshore të përkohshme char celsiusTemp [7]; char fahrenheitTemp [7]; lagështia statike e ngarkesësTemp [7]; // funksionon vetëm një herë në konfigurimin bootvoid () { // Fillimi i portit serik për qëllime të korrigjimit Serial.begin (115200); vonesa (10); dht.filloj (); // Lidhja me rrjetin WiFi Serial.println (); Serial.print ("Lidhu me"); Serial.println (ssid); WiFi.filloni (ssid, fjalëkalim); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi i lidhur"); // Fillimi i serverit të uebit server.begin (); Serial.println ("Web serveri po funksionon. Duke pritur IP ESP …"); vonesë (10000); // Shtypja e adresës IP të ESP Serial.println (WiFi.localIP ());} // kalon pa pushim lak evoid () {// Dëgjimi për klientët e rinj klienti WiFiClient = serveri i disponueshëm (); if (klienti) {Serial.println ("Klient i ri"); // bolean për të gjetur kur përfundon kërkesa http boolean blank_line = true; ndërsa (client.connected ()) {if (client.available ()) {char c = client.read (); nëse (c == '\ n' && blank_line) {// Leximet e sensorit mund të jenë gjithashtu deri në 2 sekonda 'të vjetra' (është një sensor shumë i ngadalshëm) noton h = dht.readHumidity (); // Lexoni temperaturën si Celsius (parazgjedhja) noton t = dht.readTemperature (); // Lexoni temperaturën si Fahrenheit (isFahrenheit = e vërtetë) notoni f = dht.readTemperatura (e vërtetë); // Kontrolloni nëse ndonjë lexim dështoi dhe dilni herët (për të provuar përsëri). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Leximi nuk u lexua nga sensori DHT!"); strcpy (celsiusTemp, "Dështoi"); strcpy (fahrenheitTemp, "Dështoi"); strcpy (Lagështia Temp, "Dështoi"); } else {// Llogarit vlerat e temperaturës në Celsius + Fahrenheit dhe Humidity noton hic = dht.computeHeatIndex (t, h, false); dtostrf (hic, 6, 2, celsiusTemp); noton hif = dht.computeHeatIndex (f, h); dtostrf (hif, 6, 2, fahrenheitTemp); dtostrf (h, 6, 2, lagështia Temp); // Ju mund të fshini Serial.print -in e mëposhtëm, është vetëm për qëllime korrigjimi Serial.print ("Lagështia:"); Serial.print (h); Serial.print (" %\ t Temperatura:"); Serial.print (t); Serial.print (" *C"); Serial.print (f); Serial.print (" *F / t Indeksi i nxehtësisë:"); Serial.print (hic); Serial.print (" *C"); Serial.print (hif); Serial.print (" *F"); Serial.print ("Lagështia:"); Serial.print (h); Serial.print (" %\ t Temperatura:"); Serial.print (t); Serial.print (" *C"); Serial.print (f); Serial.print (" *F / t Indeksi i nxehtësisë:"); Serial.print (hic); Serial.print (" *C"); Serial.print (hif); Serial.println (" *F"); } client.println ("HTTP/1.1 200 OK"); client.println ("Lloji i Përmbajtjes: tekst/html"); client.println ("Lidhja: mbyll"); klient.println (); // uebfaqja juaj aktuale që shfaq klientin e temperaturës dhe lagështisë
Hapi 5: Merrni IP
Ju shikoni temperaturën dhe lagështinë që na duhen për të marrë IP -në e faqes në internet. Kështu që për këtë sigurohuni që esp8266 juaj të jetë i lidhur me kompjuterin tuaj dhe më pas hapni monitorin serik dhe në monitorin serik mund të shihni IP -në e faqes suaj të internetit ESP8266.
Hapi 6: Kontrolloni temperaturën dhe lagështinë tuaj në shfletues
Pra, pasi të keni marrë IP -në e ESP8266 nodemcu, thjesht hapni shfletuesin në PC ose Mobile, por sigurohuni që kompjuteri/celulari juaj të jetë i lidhur me të njëjtin rrjet si Nodemcu/ESP8266 dhe më pas shkoni te shfletuesi juaj (nëse përdorni celular, përdorni shfletuesin e paracaktuar dmth për Android përdorni krom) dhe më pas shtypni IP -në që kemi marrë në hapin e mëparshëm dhe uebfaqja lokale do të shfaqet me lagështi dhe temperaturë siç tregohet në imazh. Kështu që argëtohuni duke bërë monitorues të temperaturës dhe lagështisë së dhomës tuaj.