Pendahuluan
Salah satu keunggulan utama ESP32 adalah kemampuannya terhubung ke WiFi. Pada tutorial ini, kita akan belajar cara menghubungkan ESP32 ke jaringan WiFi dan mengirim data ke server menggunakan protokol HTTP.
Library yang Digunakan
Untuk koneksi WiFi, ESP32 sudah memiliki library bawaan WiFi.h yang sudah termasuk saat menginstall ESP32 Board Manager. Untuk HTTP request, kita akan menggunakan library HTTPClient.h.
Menghubungkan ESP32 ke WiFi
Berikut adalah kode dasar untuk menghubungkan ESP32 ke jaringan WiFi:
#include <WiFi.h>
// Ganti dengan SSID dan password WiFi kamu
const char* ssid = "NamaWiFiKamu";
const char* password = "PasswordWiFiKamu";
void setup() {
Serial.begin(115200);
// Mulai koneksi WiFi
WiFi.begin(ssid, password);
Serial.print("Menghubungkan ke WiFi");
// Tunggu hingga terhubung
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("
Terhubung ke WiFi!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Cek status koneksi
if (WiFi.status() == WL_CONNECTED) {
Serial.println("WiFi: Terhubung");
} else {
Serial.println("WiFi: Terputus, mencoba reconnect...");
WiFi.reconnect();
}
delay(5000);
}Mengirim Data ke Server (HTTP GET)
Setelah terhubung ke WiFi, kita bisa mengirim data ke server menggunakan HTTP request:
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "NamaWiFiKamu";
const char* password = "PasswordWiFiKamu";
const char* serverURL = "http://api.example.com/data";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("
WiFi terhubung!");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
// Buat request dengan parameter
String url = String(serverURL) + "?suhu=25.5&kelembaban=70";
http.begin(url);
int httpCode = http.GET();
if (httpCode > 0) {
Serial.print("HTTP Code: ");
Serial.println(httpCode);
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println("Response: " + payload);
}
} else {
Serial.print("Error: ");
Serial.println(http.errorToString(httpCode));
}
http.end();
}
delay(10000); // Kirim data setiap 10 detik
}Mengirim Data dengan HTTP POST
Untuk mengirim data yang lebih kompleks, gunakan HTTP POST dengan format JSON:
void kirimDataJSON(float suhu, float kelembaban) {
HTTPClient http;
http.begin(serverURL);
http.addHeader("Content-Type", "application/json");
// Buat JSON string
String jsonData = "{\"suhu\":" + String(suhu) +
",\"kelembaban\":" + String(kelembaban) +
",\"device\":\"ESP32-001\"}";
int httpCode = http.POST(jsonData);
if (httpCode == 200) {
Serial.println("Data berhasil dikirim!");
}
http.end();
}Penting: Jangan hardcode password WiFi di dalam kode yang akan dipublish ke repository publik. Gunakan file konfigurasi terpisah atau mekanisme provisioning seperti WiFiManager.