Daftar Isi:

ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah
ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah

Video: ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah

Video: ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah
Video: ESP8266 Internet of Things Web Server Kontrol LED dan Monitoring Suhu Kelembaban DHT11 2024, Desember
Anonim
ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Pencetakan Suhu & Kelembaban di Browser
ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Pencetakan Suhu & Kelembaban di Browser

Hai teman-teman di sebagian besar proyek kami menggunakan ESP8266 dan di sebagian besar proyek kami menggunakan ESP8266 sebagai server web sehingga data dapat diakses di perangkat apa pun melalui wifi dengan mengakses server Web yang dihosting oleh ESP8266 tetapi satu-satunya masalah adalah kami memerlukan router yang berfungsi untuk itu dan perangkat kami juga perlu terhubung ke router dan kami perlu memasukkan kredensial wifi kami ke dalam kode jadi jika Anda mengubah wifi maka Anda perlu mengubah kredensial dalam kode dan Anda perlu mengunggahnya kembali. Jadi pada dasarnya kami memiliki dua masalah di sini:1- kita memerlukan koneksi wifi untuk meng-host server web (router)2- setiap kali jika koneksi wifi perlu diubah, kita perlu memasukkan kredensial dan mengunggah ulang kode. Jadi untuk menghindari semua masalah ini, yang dapat kita lakukan adalah alih-alih memberikan akses wifi kita dapat membuat ESP8266 untuk membuat koneksi wifi sendiri jadi jika kita terhubung ke koneksi wifi itu kita dapat mengakses server web ESP8266. Jadi pada dasarnya kita akan meng-hosting server web dengan ESP8266 dengan titik akses. Jadi dalam instruksi ini kita akan menciptakan server web menggunakan Access Point dengan ESP8266 dan kami akan menghubungkan sensor DHT11 dan mencetak suhu dan kelembaban di halaman server web.

Langkah 1: Hal-hal yang Anda Butuhkan

Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan

1x ESP 8266 Nodemcu: 1x DHT11: 1x papan tempat memotong roti:.: Beberapa jumper:

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. Manajer Perpustakaan harus terbuka. Cari “DHT” di kotak Pencarian dan instal perpustakaan DHT dari Adafruit. Setelah menginstal perpustakaan DHT dari Adafruit, ketik “Adafruit Unified Sensor” di kotak pencarian. Gulir ke bawah untuk menemukan perpustakaan dan menginstalnya. Setelah menginstal perpustakaan, restart Arduino IDE Anda.

Langkah 3: Koneksi

Koneksi
Koneksi

Rangkaian ini sangat mudah menghubungkan semuanya Sesuai seperti yang ditunjukkan pada skema

Langkah 4: Kode Titik Akses

Kode Titik Akses
Kode Titik Akses

Dari instruksi saya sebelumnya, saya akan memodifikasi kode server web dari instruksi ini:

Dan ubah menjadi kode webserver titik akses. Silahkan salin kode yang disediakan di bawah ini:

#sertakan "Arduino.h"#sertakan "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";#define DHTPIN 5 // Pin digital terhubung ke sensor DHT// Batalkan komentar 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 & kelembaban saat ini, diperbarui dalam loop()float t = 0.0; float h = 0.0;// Buat objek AsyncWebServer pada port 80AsyncWebServer server(80);// Umumnya, Anda harus menggunakan "unsigned long" untuk variabel yang menahan waktu// Nilai akan dengan cepat menjadi terlalu besar untuk int untuk disimpan lama sebelumnyaMillis yang tidak ditandatangani = 0; // akan menyimpan terakhir kali DHT diperbarui// Memperbarui pembacaan DHT setiap 10 detik dengan interval panjang = 10000; const char index_html PROGMEM = R"rawliteral(Server DHT ESP8266

Suhu %TEMPERATURE% °C

Kelembaban %HUMIDITY% %)rawliteral";// Mengganti placeholder dengan DHT valuesString processor(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "KELEMBABAN"){ return String(h); } return String();}void setup(){ // Port serial untuk keperluan debugging Serial.begin(115200); dht.begin(); Serial.print("Mengatur AP (Access Point)…"); // Hapus parameter password, jika ingin AP (Access Point) terbuka WiFi.softAP(ssid, password); IPAddress IP = WiFi.softAPIP(); Serial.print(" Alamat IP AP: "); Serial.println(IP); // Cetak ESP8266 Alamat IP Lokal Serial.println(WiFi.localIP()); // Rute untuk root / server halaman web.on("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, prosesor); }); 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, "teks/polos", String(h).c_str()); }); // Mulai server server.begin();}void loop(){ unsigned long currentMillis = millis(); if (Millis saat ini - sebelumnyaMillis >= interval) { // simpan terakhir kali Anda memperbarui nilai DHT sebelumnyaMillis = saatMillis; // Baca suhu sebagai Celcius (default) float newT = dht.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) //float newT = dht.readTemperature(true);// jika pembacaan suhu gagal, jangan ubah nilai t if (isnan(newT)) { Serial.println("Gagal untuk membaca dari sensor DHT!"); } else { t = baruT; Serial.println(t); } // Baca Kelembaban float newH = dht.readHumidity(); // jika pembacaan kelembaban gagal, jangan ubah nilai h if (isnan(newH)) { Serial.println("Gagal membaca dari sensor DHT!"); } else { j = baruH; Serial.println(h); } }}Sebelum mengupload kode pastikan Anda memasukkan hal-hal berikut: const char* ssid = "ESP8266"; // apapun ssid wifi yang anda inginkanconst char* password = "password"; //pass untuk terhubung ke ssidSet di atas ESP8266 sebagai Access Point: Untuk mengatur esp8266 sebagai access point kita akan menggunakan perintah softAP seperti gambar di bawah ini; untuk membuat titik akses. WiFi.softAP(ssid, password);Ada juga parameter opsional lain yang dapat Anda berikan ke metode softAP(). Berikut semua parameternya: Jika Anda membuka monitor serial, Anda dapat melihat IP titik akses. Yang dilakukan dengan mengikuti bagian kode. IPAddress IP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(IP);Secara default alamat Ip adalah: 192.168.4.1

Langkah 5: Langkah Terakhir: Pengujian

Langkah Terakhir: Pengujian
Langkah Terakhir: Pengujian

Setelah mengupload kode, buka wifi ponsel/pc Anda dan sambungkan ke wifi esp8266 (ssid & kata sandi apa pun yang Anda masukkan dalam kode, gunakan itu). Setelah terhubung, buka saja IP di browser Anda yang kami dapatkan dari monitor serial (https://192.168.4.1.) dan Anda akan dapat melihat suhu & kelembaban di browser Anda sebagai milik saya. Dan kami tidak menggunakan jaringan wifi apa pun untuk menyelesaikannya, jadi itulah cara kerja titik akses esp8266.

Direkomendasikan: