İçindekiler:

DT11 Sıcaklık Sensörlü Web Sunucusu için ESP8266 NodeMCU Erişim Noktası (AP) ve Tarayıcıda Yazdırma Sıcaklığı ve Nemi: 5 Adım
DT11 Sıcaklık Sensörlü Web Sunucusu için ESP8266 NodeMCU Erişim Noktası (AP) ve Tarayıcıda Yazdırma Sıcaklığı ve Nemi: 5 Adım

Video: DT11 Sıcaklık Sensörlü Web Sunucusu için ESP8266 NodeMCU Erişim Noktası (AP) ve Tarayıcıda Yazdırma Sıcaklığı ve Nemi: 5 Adım

Video: DT11 Sıcaklık Sensörlü Web Sunucusu için ESP8266 NodeMCU Erişim Noktası (AP) ve Tarayıcıda Yazdırma Sıcaklığı ve Nemi: 5 Adım
Video: UZAKTAN SICAKLIK VE NEM OKUYORUZ! - Nodemcu ESP8266, DHT11 / BLYNK #3 2024, Temmuz
Anonim
DT11 Sıcaklık Sensörlü Web Sunucusu için ESP8266 NodeMCU Erişim Noktası (AP) ve Tarayıcıda Yazdırma Sıcaklığı ve Nem
DT11 Sıcaklık Sensörlü Web Sunucusu için ESP8266 NodeMCU Erişim Noktası (AP) ve Tarayıcıda Yazdırma Sıcaklığı ve Nem

Merhaba arkadaşlar, projelerin çoğunda ESP8266 kullanıyoruz ve projelerin çoğunda web sunucusu olarak ESP8266 kullanıyoruz, böylece ESP8266 tarafından barındırılan Web sunucusuna erişerek wifi üzerinden herhangi bir cihazdan verilere erişilebilir ancak tek sorun bunun için çalışan bir yönlendiriciye ihtiyacımız olmasıdır. bu ve cihazımızın da yönlendiriciye bağlanması gerekiyor ve wifi kimlik bilgilerimizi koda koymamız gerekiyor, bu nedenle eğer wifi değiştiriyorsanız, koddaki kimlik bilgilerini değiştirmeniz ve yeniden yüklemeniz gerekir. Yani temelde burada iki sorunumuz var.:1- web sunucusunu (yönlendiriciyi) barındırmak için bir wifi bağlantısına ihtiyacımız var 2- her seferinde wifi bağlantısının değişmesi gerekiyorsa kimlik bilgilerini girip kodu yeniden yüklememiz gerekiyor. wifi erişimi ESP8266'yı kendi başına bir wifi bağlantısı oluşturmak için yapabiliriz, böylece bu wifi bağlantısına bağlanırsak ESP8266'nın web sunucusuna erişebiliriz. Yani temel olarak erişim noktası olan ESP8266 ile bir web sunucusuna ev sahipliği yapacağız. Yani bu talimatta biz yaratacak ESP8266 ile Erişim Noktası kullanan bir web sunucusu ve bir DHT11 sensörü bağlayacağız ve web sunucusu sayfasına sıcaklık ve nemi yazdıracağız.

Adım 1: İhtiyacınız Olan Şeyler

İhtiyacın olan şeyler
İhtiyacın olan şeyler
İhtiyacın olan şeyler
İhtiyacın olan şeyler

1x ESP 8266 Nodemcu: 1x DHT11: 1x breadboard:.: Birkaç jumper:

2. Adım: DHT11 Kitaplıklarını Alın

DHT11 Kitaplıklarını Alın
DHT11 Kitaplıklarını Alın
DHT11 Kitaplıklarını Alın
DHT11 Kitaplıklarını Alın

Arduino IDE'nizi açın ve Sketch > Include Library > Manage Libraries'e gidin. Kütüphane Yöneticisi açılmalıdır. Arama kutusunda “DHT” araması yapın ve Adafruit'ten DHT kütüphanesini kurun. Adafruit'ten DHT kütüphanesini kurduktan sonra, arama kutusuna “Adafruit Unified Sensor” yazın. Kütüphaneyi bulmak ve kurmak için sonuna kadar kaydırın. Kütüphaneleri kurduktan sonra Arduino IDE'nizi yeniden başlatın.

3. Adım: Bağlantılar

Bağlantılar
Bağlantılar

Devre çok kolay şemada gösterildiği gibi her şeyi bağlayın

4. Adım: Erişim Noktası Kodu

Erişim Noktası Kodu
Erişim Noktası Kodu

Önceki talimatlarımdan bu talimatların web sunucusu kodunu değiştireceğim:

Ve bunu erişim noktası web sunucusu koduna çevirin. Lütfen aşağıda verilen kodu kopyalayın:

#include "Arduino.h"#include "ESP8266WiFi.h"

#include "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#include "DHT.h"

const char* ssid = "ESP8266";const char* password = "password";#define DHTPIN 5 // DHT sensörüne bağlı dijital pin// Kullanılan sensör tipinin açıklamasını kaldırın://#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301)DHT dht(DHTPIN, DHTTYPE);// mevcut sıcaklık ve nem, döngüde güncellendi()float t = 0.0; float h = 0.0;// 80AsyncWebServer server(80) portunda AsyncWebServer nesnesi oluştur;// Genellikle, zamanı tutan değişkenler için "unsigned long" kullanmalısınız// Değer, bir int'nin unsigned uzun öncekini depolaması için hızla çok büyük olur. = 0; // DHT'nin en son güncellendiği zamanı kaydeder// DHT okumalarını her 10 saniyede bir güncellerconst uzun aralık = 10000; const char index_html PROGMEM = R"rawliteral(ESP8266 DHT Sunucusu)

Sıcaklık %SICAKLIK% °C

Nem %NEMİ % %)rawliteral";// Yer tutucuyu DHT değerleriyle değiştirirString işlemci(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "NEM"){ return String(h); } return String();}void setup(){ // Hata ayıklama amacıyla seri port Serial.begin(115200); dht.begin(); Serial.print("AP Ayarı (Erişim Noktası)…"); // AP'nin (Erişim Noktası) açık olmasını istiyorsanız şifre parametresini kaldırın WiFi.softAP(ssid, password); IPAdresi IP = WiFi.softAPIP(); Serial.print(" AP IP adresi: "); Serial.println(IP); // ESP8266 Yerel IP Adresini Yazdır Serial.println(WiFi.localIP()); // Kök / web sayfası sunucusu için rota.on("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, işlemci); }); server.on("/temperature", HTTP_GET, (AsyncWebServerRequest *request){ request- >send_P(200, "text/plain", String(t).c_str()); }); server.on("/humidity", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "metin/düz", String(h).c_str()); }); // server server.begin();}void loop(){ unsigned long currentMillis = millis(); if (currentMillis - öncekiMillis >= interval) { // DHT değerlerini en son ne zaman güncellediğinizi kaydedin öncekiMillis = currentMillis; // Sıcaklığı Celsius olarak oku (varsayılan) float newT = dht.readTemperature(); // Sıcaklığı Fahrenhayt olarak oku (isFahrenheit = true) //float newT = dht.readTemperature(true);// sıcaklık okuma başarısız olursa, t değerini değiştirme if (isnan(newT)) { Serial.println("Failed DHT sensöründen okumak için!"); } başka { t = yeniT; Seri.println(t); } // Nem değerini oku float newH = dht.readHumidity(); // nem okuması başarısız olursa, h değerini değiştirmeyin if (isnan(newH)) { Serial.println("DHT sensöründen okunamadı!"); } başka { h = yeniH; Seri.println(h); } }}Kodu yüklemeden önce aşağıdakileri koyduğunuzdan emin olun: const char* ssid = "ESP8266"; // wifi ssid'si ne olursa olsunconst char* password = "password"; //yukarıdaki ssidSet'e bağlanmak için geçiş ESP8266'yı Erişim Noktası Olarak Ayarlayın: esp8266'yı erişim noktası olarak ayarlamak için aşağıda gösterildiği gibi softAP komutunu kullanacağız; bir erişim noktası oluşturmak için. WiFi.softAP(ssid, password);softAP() yöntemine iletebileceğiniz başka isteğe bağlı parametreler de vardır. İşte tüm parametreler: Seri monitörü açarsanız, erişim noktasının IP'sini görebilirsiniz.. IPAddress IP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(IP);Varsayılan olarak IP adresi: 192.168.4.1 kodunun bir kısmı takip edilerek yapılır.

Adım 5: Son Adım: Test Etme

Son Adım: Test Etme
Son Adım: Test Etme

Kodu yükledikten sonra mobil/pc wifi'nizi açın ve esp8266 wifi'ye bağlanın (koda girdiğiniz ssid ve şifre onu kullanır). Bağlandıktan sonra seri monitörden aldığımız IP'yi tarayıcınızda açın (https://192.168.4.1.) ve tarayıcınızda benimki gibi sıcaklık ve nemi görebileceksiniz. Bunu yapmak için herhangi bir wifi ağı kullanmadık, bu yüzden esp8266 erişim noktası bu şekilde çalışıyor.

Önerilen: