Pages

Subscribe Twitter Twitter

Monday, July 29, 2019

ESP32 Web Server: Sensor Suhu dan Kelembaban

Ide Project:

Proyek ini menggunakan ESP32 sebagai perangkat kontrol yang mudah terhubung ke jaringan WiFi yang ada & membuat Server Web. Ketika semua perangkat yang terhubung mengakses server web ini, ESP32 membaca dalam suhu & kelembaban relatif dari sensor DHT11 & mengirimkannya ke browser web perangkat.

Alat:

1. ESP32 & Kabel USB.
2. Kabel Jumper.
3. Sensor DHT 11.
4. Laptop/PC dengan aplikasi Arduino IDE dan koneksi internet.

Scematic Rangkaian:



Analisis Syntax:

Syntax include bertujuan untuk memanggil library arduino, pada program ini menggunakan library webserver, wifi, dan DHT. Syntax define untukn mendefinisikan type DHT yang digunakan. Ssid dan password disetting sesuai dengan password yang digunakan. Untuk melakukan komunikasi, HTTP menggunakan port 80. Pada ESP32, DHT sensor masuk melalui pin 35. Tipe data float (bilangan decimal) digunakan untuk output temperature dan humidity.

Mode pin DHT diatur sebagai masukan dan saat mulai menjalankan perintah serial monitor akan memberikan IP yang nantinya saat diakses akan memberikan tampilan berupa nilai suhu dan kelembaban.



Saat terhubung ke server, DHT akan membaca temperature dan kelembaban kemudian menampilkan hasilnya ke web server. Jika tidak bias terhubung dengan server maka web server akan menampilkan kalimat “Not found”.






Sintax tersebut menjelaskan tentang desain dari tampilan server.


Hasil:


Kode:

.
.
#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>

// Uncomment one of the lines below for whatever DHT sensor type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

/*Put your SSID & Password*/
const char* ssid = "Hjvs"; // Enter SSID here
const char* password = "ociijelek"; //Enter Password here

WebServer server(80);

// DHT Sensor
uint8_t DHTPin = 35;

// Initialize DHT sensor.
DHT dht(DHTPin, DHTTYPE);

float Temperature;
float Humidity;

void setup() {
Serial.begin(115200);
delay(100);

pinMode(DHTPin, INPUT);

dht.begin();

Serial.println("Connecting to ");
Serial.println(ssid);

//connect to your local wi-fi network
WiFi.begin(ssid, password);

//check wi-fi is connected to wi-fi network
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: "); Serial.println(WiFi.localIP());

server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);

server.begin();
Serial.println("HTTP server started");

}

void loop() {
server.handleClient();

}

void handle_OnConnect() {

Temperature = dht.readTemperature(); // Gets the values of the temperature
Humidity = dht.readHumidity(); // Gets the values of the humidity
server.send(200, "text/html", SendHTML(Temperature,Humidity));
}

void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}

String SendHTML(float Temperaturestat,float Humiditystat){
String ptr = "<!DOCTYPE html> <html>\n";
ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
ptr +="<title>ESP32 Weather Report</title>\n";
ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n";
ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n";
ptr +="</style>\n";
ptr +="</head>\n";
ptr +="<body>\n";
ptr +="<div id=\"webpage\">\n";
ptr +="<h1>ESP32 Weather Report</h1>\n";

ptr +="<p>Temperature: ";
ptr +=(int)Temperaturestat;
ptr +="°C</p>";
ptr +="<p>Humidity: ";
ptr +=(int)Humiditystat;
ptr +="%</p>";

ptr +="</div>\n";
ptr +="</body>\n";
ptr +="</html>\n";
return ptr;
}
.

0 comments:

Post a Comment