Materi IoT dengan ESP8266: Servo, DHT11, Relay, dan Hosting Database

 

Internet of Things (IoT) memungkinkan perangkat elektronik untuk saling terhubung dan berkomunikasi melalui jaringan internet. Dalam tutorial ini, kita akan mengintegrasikan beberapa komponen dasar IoT menggunakan ESP8266, antara lain servo motor, sensor DHT11, dan relay. Selain itu, kita juga akan belajar bagaimana cara mengirimkan data ke database yang dihosting di server PHP.

Berikut adalah materi dan langkah-langkah yang diperlukan untuk membuat proyek IoT ini.

Komponen yang Diperlukan:

  1. ESP8266 (Misalnya NodeMCU atau Wemos D1 mini)
  2. Servo motor (Untuk mengontrol posisi)
  3. Sensor DHT11 (Untuk membaca suhu dan kelembaban)
  4. Relay Module (Untuk mengontrol perangkat seperti lampu atau kipas)
  5. Koneksi Wi-Fi (Untuk menghubungkan ESP8266 ke internet)
  6. Database Hosting (Menggunakan MySQL yang dihosting di server PHP)

Langkah 1: Menyiapkan Hardware

  • ESP8266: Hubungkan ESP8266 ke komputer menggunakan kabel USB.
  • Servo Motor: Sambungkan kabel kontrol servo ke pin GPIO D2 pada ESP8266.
  • Sensor DHT11: Sambungkan pin VCC ke 3.3V, GND ke ground, dan Data ke pin GPIO D3 pada ESP8266.
  • Relay Module: Sambungkan pin IN pada relay ke GPIO D1 dan sambungkan perangkat yang ingin Anda kendalikan ke relay (misalnya, lampu).

Langkah 2: Membuat Server PHP dan Database

  1. Membuat Database MySQL:

    • Di server hosting Anda, buat database baru (misalnya iot_devices).
    • Buat tabel untuk menyimpan status perangkat:
    sql
    CREATE TABLE devices ( id INT AUTO_INCREMENT PRIMARY KEY, device_id INT, status INT, temperature FLOAT, humidity FLOAT, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
  2. Membuat Skrip PHP:

    • Buat file PHP (update_device_status.php) untuk menerima dan menyimpan data perangkat ke database.
    php
  3. Meng-hosting PHP dan MySQL:

    • Upload file PHP dan pastikan server Anda mendukung PHP dan MySQL.
    • Pastikan URL server PHP dapat diakses oleh ESP8266.

Langkah 3: Menulis Kode untuk ESP8266

Berikut adalah kode Arduino untuk ESP8266 yang mengontrol servo motor, membaca data dari DHT11, dan mengirim status perangkat ke database MySQL melalui server PHP.

cpp
#include #include // Untuk HTTPS #include #include // Untuk parsing JSON #include // Untuk kontrol servo #include // Untuk membaca DHT11 // WiFi credentials const char* ssid = "BINTANG TERANG"; // Ganti dengan nama WiFi Anda const char* password = "1sampai8"; // Ganti dengan password WiFi Anda // URL server PHP const char* serverUrl = "http://bintangterang.or.id/url/6/device/update_device_status.php"; // URL server int device_id = 4; // ID perangkat dalam database // Pin untuk Relay, Servo, dan DHT11 const int RELAY_PIN = D1; // Relay connected to GPIO D1 const int SERVO_PIN = D2; // Servo connected to GPIO D2 #define DHTPIN D3 // Pin untuk DHT11 #define DHTTYPE DHT11 // Tipe sensor DHT11 DHT dht(DHTPIN, DHTTYPE); // Inisialisasi sensor DHT11 Servo myServo; // Inisialisasi objek servo void setup() { Serial.begin(115200); // Connect to WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // Initialize relay pin pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // Turn off relay initially // Initialize servo myServo.attach(SERVO_PIN); myServo.write(90); // Set initial servo position // Initialize DHT sensor dht.begin(); } void loop() { // Read temperature and humidity from DHT11 float temperature = dht.readTemperature(); float humidity = dht.readHumidity(); if (isnan(temperature) || isnan(humidity)) { Serial.println("Failed to read from DHT sensor!"); return; } // Send device status to the server sendDeviceStatus(1, temperature, humidity); // 1 is status (active) // Control relay and servo based on conditions (you can modify logic here) if (temperature > 30) { // Example condition for activating relay digitalWrite(RELAY_PIN, HIGH); // Turn on relay myServo.write(0); // Move servo to position 0 } else { digitalWrite(RELAY_PIN, LOW); // Turn off relay myServo.write(90); // Set servo to 90 degrees } delay(10000); // Wait for 10 seconds before sending the next status } void sendDeviceStatus(int status, float temperature, float humidity) { if (WiFi.status() == WL_CONNECTED) { HTTPClient http; WiFiClient client; // Prepare POST data String postData = "id_device=" + String(device_id) + "&status=" + String(status) + "&temperature=" + String(temperature) + "&humidity=" + String(humidity); // Send POST request to server http.begin(client, serverUrl); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(postData); if (httpCode > 0) { Serial.println("Device status sent successfully!"); } else { Serial.println("Failed to send device status!"); } http.end(); // Close the connection } else { Serial.println("WiFi Disconnected"); } }

Penjelasan Kode:

  • Servo Motor: Servo dikendalikan dengan menggunakan library Servo dan dipasang di pin D2. Posisi servo diatur dengan myServo.write(angle);.
  • Sensor DHT11: Membaca data suhu dan kelembaban dari sensor DHT11 yang terhubung ke pin D3 menggunakan library DHT.
  • Relay: Relay dikendalikan dengan menulis status ke pin D1. Diatur untuk menghidupkan atau mematikan perangkat berdasarkan kondisi yang ditentukan (misalnya suhu > 30°C).
  • Kirim Data ke Server: Menggunakan HTTPClient untuk mengirim data suhu, kelembaban, dan status perangkat ke server menggunakan metode POST.

Langkah 4: Menampilkan Data di Database

Setelah data berhasil dikirim ke server PHP, data status perangkat akan disimpan di database MySQL pada server Anda. Anda dapat menampilkan atau memanipulasi data ini dengan menggunakan alat seperti phpMyAdmin atau dengan menulis halaman PHP untuk menampilkan data perangkat.


Kesimpulan:

Dengan mengintegrasikan ESP8266, servo motor, sensor DHT11, dan relay, Anda dapat membuat sistem IoT yang mengontrol perangkat fisik berdasarkan kondisi lingkungan yang terdeteksi. Selain itu, data perangkat dapat disimpan di database dan diakses melalui server PHP untuk pemantauan jarak jauh

Komentari Tulisan Ini
Tulisan Lainnya
Selamat Hari Lahir Pancasila

Memperkokoh Ideologi Pancasila Menuju Indonesia Raya yang Maju, Berdaya Saing, dan Berkarakter Keluarga Besar LPK Bintang Terang mengucapkan Selamat Hari Lahir Pancasila 1 Juni 2026.

01/06/2026 11:03 - Oleh Admin - Dilihat 8 kali
English for Kids

Mari persiapkan generasi yang siap bersaing di tingkat nasional maupun global Bahasa Inggris bukan lagi sekadar pelajaran tambahan, melainkan keterampilan penting yang membuka banyak p

30/05/2026 11:58 - Oleh Admin - Dilihat 91 kali
Tiga Pilar Kredibilitas Personal dalam Kepemimpinan

Untuk mencapai puncak kepemimpinan di sektor mana pun, syarat utama yang harus dimiliki oleh seorang calon pemimpin bukanlah sekadar jabatan atau kekuasaan, melainkan kredibilitas perso

18/05/2026 05:52 - Oleh Admin - Dilihat 130 kali
Membangun Generasi Teknologi Masa Depan Bersama Smart Tech Academy

Pelatihan teknologi masa depan di Smart Tech Academy menjadi salah satu langkah nyata dalam membangun generasi muda yang siap menghadapi perkembangan teknologi di era digital. Dalam sua

15/05/2026 06:42 - Oleh Admin - Dilihat 288 kali
CIRI-CIRI ORANG BAIK HATI TULUS DAN PENGASIH

Orang yang baik hati, tulus, dan penuh kasih sering kali bukan orang yang hidupnya paling mudah. Justru mereka sering merasakan banyak luka yang tidak terlihat oleh orang lain. Mereka t

14/05/2026 19:49 - Oleh Admin - Dilihat 169 kali
Kalau Belum Sukses Diremehkan, Kalau Sudah Sukses Dicurigai

Aneh memang kehidupan sekarang… Saat seseorang masih merintis, masih belajar, masih jatuh bangun mencari jalan hidup… sering dianggap sebelah mata.   Ketika u

14/05/2026 06:33 - Oleh Admin - Dilihat 161 kali
Pengalaman Tidak Datang Sendiri, Tapi Harus Dilatih

Di zaman sekarang, mencari pekerjaan tidak cukup hanya bermodal niat. Persaingan semakin ketat. Banyak orang punya ijazah, banyak orang punya nilai bagus, bahkan banyak yang sudah puny

13/05/2026 06:52 - Oleh Admin - Dilihat 237 kali
Ternyata Skill Saja Belum Cukup

Mengapa Networking Menjadi Aset Baru Dunia Kursus dan Pelatihan? Ada masa ketika seseorang merasa cukup hanya dengan: punya skill.   Bisa komputer. Bisa desain. Bisa elektr

11/05/2026 07:24 - Oleh Admin - Dilihat 187 kali
Project Tidak Selalu Dicari, Kadang Anda yang Dicari

Ada asesor yang terus sibuk mencari project… tetapi berjalan sendirian. Ada juga asesor yang diam-diam selalu punya peluang baru… bukan karena paling hebat, tetapi k

10/05/2026 17:34 - Oleh Admin - Dilihat 121 kali
Membangun personal branding dengan metode GROWTH

Sahabat... Banyak asesor berpikir bahwa personal branding dibangun dari sertifikat, jumlah skema, atau seberapa sering mendapat penugasan. Padahal di era ekosistem kompetensi yang semak

10/05/2026 15:51 - Oleh Admin - Dilihat 116 kali