Isi kandungan:

ESP8266 NodeMCU Access Point (AP) untuk Pelayan Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembapan dalam Penyemak Imbas: 5 Langkah
ESP8266 NodeMCU Access Point (AP) untuk Pelayan Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembapan dalam Penyemak Imbas: 5 Langkah

Video: ESP8266 NodeMCU Access Point (AP) untuk Pelayan Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembapan dalam Penyemak Imbas: 5 Langkah

Video: ESP8266 NodeMCU Access Point (AP) untuk Pelayan Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembapan dalam Penyemak Imbas: 5 Langkah
Video: How to use DHT11 DHT22 with NodeMCU ESP8266 to read temperature over WiFi - IoT 2024, November
Anonim
ESP8266 NodeMCU Access Point (AP) untuk Pelayan Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembapan dalam Penyemak Imbas
ESP8266 NodeMCU Access Point (AP) untuk Pelayan Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembapan dalam Penyemak Imbas

Hai rakan-rakan di kebanyakan projek yang kami gunakan ESP8266 dan di kebanyakan projek kami menggunakan ESP8266 sebagai pelayan web sehingga data dapat diakses pada mana-mana peranti melalui wifi dengan mengakses Pelayan Web yang dihoskan oleh ESP8266 tetapi satu-satunya masalah adalah kita memerlukan penghala yang berfungsi untuk itu dan peranti kami juga perlu disambungkan ke penghala dan kami perlu memasukkan kredensial wifi kami dalam kod jadi jika anda menukar wifi maka anda perlu mengubah kredensial dalam kod dan anda perlu memuatkannya semula. Oleh itu pada dasarnya kami mempunyai dua masalah di sini: 1- kita memerlukan sambungan wifi untuk menjadi tuan rumah pelayan web (penghala) 2- setiap kali jika sambungan wifi perlu diubah, kita perlu memasukkan bukti kelayakan dan memuat semula kod. Oleh itu untuk mengelakkan semua masalah ini, apa yang dapat kita lakukan adalah bukannya memberikan akses wifi kita boleh membuat ESP8266 untuk membuat sambungan wifi sendiri jadi jika kita menyambung ke sambungan wifi itu kita dapat mengakses pelayan web ESP8266. Oleh itu pada dasarnya kita akan menjadi tuan rumah pelayan web dengan ESP8266 dengan titik akses. Jadi dalam arahan ini kita akan mencipta pelayan web menggunakan Access Point dengan ESP8266 dan kami akan menyambungkan sensor DHT11 dan mencetak suhu dan kelembapan di halaman pelayan laman web.

Langkah 1: Perkara yang Anda Perlu

Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu

1x ESP 8266 Nodemcu: 1x DHT11: 1x papan roti:.: Beberapa penerjun:

Langkah 2: Dapatkan Perpustakaan DHT11

Dapatkan Perpustakaan DHT11
Dapatkan Perpustakaan DHT11
Dapatkan Perpustakaan DHT11
Dapatkan Perpustakaan DHT11

Buka Arduino IDE anda dan pergi ke Sketch> Include Library> Manage Libraries. Pengurus Perpustakaan harus dibuka. Cari "DHT" di kotak Cari dan pasang perpustakaan DHT dari Adafruit. Setelah memasang perpustakaan DHT dari Adafruit, ketik "Adafruit Unified Sensor" di kotak carian. Tatal ke bawah untuk mencari perpustakaan dan memasangnya. Selepas memasang perpustakaan, mulakan semula Arduino IDE anda.

Langkah 3: Sambungan

Sambungan
Sambungan

Litar ini sangat mudah menghubungkan segalanya Seperti yang ditunjukkan dalam skmatik

Langkah 4: Kod Titik Akses

Kod Titik Akses
Kod Titik Akses

Dari arahan sebelumnya saya akan mengubah kod pelayan laman web arahan ini:

Dan ubah menjadi kod pelayan web pusat akses. Sila salin kod yang disediakan di bawah:

#masuk "Arduino.h" #masuk "ESP8266WiFi.h"

#sertakan "Hash.h"

#sertakan "ESPAsyncTCP.h"

#sertakan "ESPAsyncWebServer.h"

#sertakan "Adafruit_Sensor.h"

#sertakan "DHT.h"

const char * ssid = "ESP8266"; const char * password = "password"; #efinisikan DHTPIN 5 // Pin digital yang disambungkan ke sensor DHT // Menanggalkan jenis sensor yang digunakan: // # define DHTTYPE DHT11 // DHT 11 # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // suhu & kelembapan semasa, dikemas kini dalam gelung () float t = 0.0; float h = 0.0; // Buat objek AsyncWebServer pada port 80AsyncWebServer server (80); // Secara amnya, anda harus menggunakan "unsigned long" untuk pemboleh ubah yang menahan masa // Nilai akan menjadi terlalu besar untuk int untuk menyimpan lama yang tidak ditandatanganiMillis = 0; // akan menyimpan kali terakhir DHT dikemas kini // Mengemas kini bacaan DHT setiap 10 saat selang waktu yang panjang = 10000; const char index_html PROGMEM = R "rawliteral (Pelayan DHT ESP8266

Suhu% SUHU% ° C

Kelembapan% HUMIDITY%%

rawliteral "; // Menggantikan placeholder dengan nilai DHT pemproses String (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} lain jika (var == "HUMIDITY") {return String (h);} return String ();} batal setup () {// Port bersiri untuk tujuan penyahpepijatan Serial.begin (115200); dht.begin (); Serial.print ("Setting AP (Titik Akses)… "); // Keluarkan parameter kata laluan, jika anda ingin AP (Titik Akses) terbuka WiFi.softAP (ssid, kata laluan); IPAddress IP = WiFi.softAPIP (); Serial.print (" Alamat IP AP: "); Serial.println (IP); // Cetak Alamat IP Tempatan ESP8266 Serial.println (WiFi.localIP ()); // Laluan untuk pelayan root / laman web.on (" / ", HTTP_GET, (AsyncWebServerRequest * request) {request-> send_P (200, "text / html", index_html, processor);}); server.on ("/ temperature", HTTP_GET, (AsyncWebServerRequest * request) {permintaan- > send_P (200, "text / plain", String (t).c_str ());}); server.on ("/ kelembapan", HTTP_GET, (permintaan AsyncWebServerRequest *) {request-> send_P (200, "teks / dataran", Rentetan (h).c_str ()); }); // Mulakan pelayan pelayan.begin ();} gelung kosong () {arus tidak panjang yang tidak ditandatanganiMillis = millis (); if (currentMillis - sebelumnyaMillis> = selang) {// simpan kali terakhir anda mengemas kini nilai DHT sebelumnyaMillis = currentMillis; // Baca suhu sebagai Celsius (lalai) mengapung newT = dht.readTemperature (); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // jika suhu dibaca gagal, jangan ubah nilai t jika (isnan (newT)) {Serial.println ("Gagal untuk membaca dari sensor DHT! "); } lain {t = baruT; Bersiri.println (t); } // Baca Kelembapan kelembapan baruH = dht.readHumidity (); // jika bacaan kelembapan gagal, jangan ubah nilai h jika (isnan (newH)) {Serial.println ("Gagal membaca dari sensor DHT!"); } lain {h = baruH; Bersiri.println (h); }}} Sebelum memuat naik kod pastikan anda memasukkan perkara berikut: const char * ssid = "ESP8266"; // apa sahaja wifi yang anda mahukanconst char * password = "password"; // lulus untuk menyambung ke atas ssidSet ESP8266 sebagai Titik Akses: Untuk menetapkan esp8266 sebagai titik akses kami akan menggunakan perintah softAP seperti yang ditunjukkan di bawah; untuk membuat titik akses. WiFi.softAP (ssid, password); Terdapat juga parameter pilihan lain yang boleh anda lalui ke kaedah softAP (). Inilah semua parameternya: Sekiranya anda membuka monitor bersiri, anda dapat melihat IP titik akses. Yang dilakukan dengan mengikuti bahagian kod. IP Alamat IP = WiFi.softAPIP (); Serial.print ("Alamat IP AP:"); Serial.println (IP); Secara lalai alamat Ip adalah: 192.168.4.1

Langkah 5: Langkah Akhir: Menguji

Langkah Akhir: Menguji
Langkah Akhir: Menguji

Setelah memuat naik kod, kemudian buka wifi telefon bimbit / pc anda dan sambungkan ke wifi esp8266 (apa sahaja ssid & kata laluan yang anda masukkan dalam kod itu gunakanlah). Setelah menyambung buka saja IP di penyemak imbas anda yang kami dapat dari monitor bersiri (https://192.168.4.1.) dan anda akan dapat melihat suhu & kelembapan di penyemak imbas anda sebagai milik saya. Dan kami tidak menggunakan rangkaian wifi untuk menyelesaikannya sehingga itulah jalan masuk esp8266 berfungsi.

Disyorkan: