Proyek ini bertujuan untuk mengintegrasikan sensor DHT22, yang terpasang pada perangkat ESP32 melalui simulator Wokwi, dengan backend berbasis Python Flask dan database MySQL. Data suhu dan kelembapan yang diukur oleh DHT22 dikirimkan secara real-time dari ESP32 ke server Flask menggunakan protokol HTTP melalui endpoint POST. Backend Flask bertugas memproses data ini dan menyimpannya ke dalam database MySQL untuk keperluan penyimpanan historis. Selain itu, proyek ini juga menyediakan endpoint GET untuk membaca data yang tersimpan, memungkinkan pengguna untuk memantau kondisi lingkungan secara berkelanjutan melalui tampilan dashboard atau aplikasi front-end berbasis web. Integrasi ini menciptakan sistem IoT sederhana yang mendukung pengumpulan, pengelolaan, dan visualisasi data lingkungan secara efisien.
Proyek ini mengimplementasikan sistem IoT sederhana yang mengintegrasikan sensor DHT22 pada ESP32 (disimulasikan menggunakan Wokwi) dengan backend berbasis Python Flask dan database MySQL. Data suhu dan kelembapan yang dihasilkan sensor dikirimkan ke server Flask melalui protokol HTTP, kemudian disimpan dalam MySQL untuk keperluan analisis dan pemantauan historis. Selain itu, sistem menyediakan endpoint untuk membaca data dari database, memungkinkan visualisasi secara real-time.
Frontend (Wokwi Simulator):
Backend (Python Flask):
Database (MySQL):
ESP32 (Wokwi) ---> Flask Backend ---> MySQL Database ---> API Response
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <DHT.h>
#define DHTPIN 4 // Pin untuk sensor DHT22
#define DHTTYPE DHT22 // Sensor DHT22
// Inisialisasi DHT sensor
DHT dht(DHTPIN, DHTTYPE);
// Inisialisasi LCD I2C dengan alamat 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Informasi Wi-Fi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// API endpoint
const char* serverName = "http://127.0.0.1:4789/api/sensor";
void setup() {
Serial.begin(115200);
// Inisialisasi LCD dan DHT
lcd.begin(16, 2);
lcd.init();
lcd.backlight();
dht.begin();
// Hubungkan ke Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
lcd.print(WiFi.localIP());
}
void loop() {
// Baca suhu dan kelembapan
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Tampilkan suhu dan kelembapan di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: " + String(temperature) + " C");
lcd.setCursor(0, 1);
lcd.print("Humidity: " + String(humidity) + "%");
// Kirim data ke API
if(WiFi.status()== WL_CONNECTED){
HTTPClient http;
http.begin(serverName);
http.addHeader("Content-Type", "application/json");
// Buat payload JSON
String httpRequestData = "{\"temperature\":\"" + String(temperature) + "\", \"humidity\":\"" + String(humidity) + "\"}";
int httpResponseCode = http.POST(httpRequestData);
if (httpResponseCode > 0) {
String response = http.getString(); // Dapatkan respon dari server
Serial.println(httpResponseCode); // Status code
Serial.println(response); // Data yang diterima
} else {
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
http.end();
}
// Tunggu 5 detik sebelum pembacaan data selanjutnya
delay(5000);
}
Proyek ini menunjukkan bagaimana teknologi IoT dapat diintegrasikan dengan sistem backend untuk menghasilkan solusi yang efisien dan scalable. Dengan penggunaan perangkat IoT seperti ESP32 dan DHT22, serta backend berbasis Python Flask dan database MySQL, sistem ini berhasil menciptakan solusi untuk pengumpulan, penyimpanan, dan akses data lingkungan secara otomatis.
0 Orang Menyukai Karya Ini