Guys, pernah kepikiran gak sih punya lampu yang bisa dinyalain-matiin cuma dengan pencet tombol? Kayak sulap gitu! Nah, ternyata bikin lampu "ajaib" kayak gitu gampang banget lho. Kita bisa pakai alat seru namanya NodeMCU ESP8266. Penasaran? Yuk, kita bikin sama-sama!
Kenalan Dulu Sama NodeMCU:
NodeMCU ESP8266 itu kayak "otak" kecil yang pinter banget. Dia bisa kita program buat ngelakuin macem-macem, salah satunya ngontrol lampu LED. Bentuknya kecil, tapi kemampuannya keren abis!
Siapin Alat Tempur:
Sebelum mulai, pastiin kalian udah punya alat dan bahan ini ya:
- NodeMCU ESP8266 (disini saya menggunakan NodeMCU V3)
- LED
- Resistor (saya menggunakan 330 ohm)
- Tombol Push Button
- Kabel jumper
- Breadboard
Waktunya Ngerakit!
Sekarang kita rakit semua komponennya jadi satu kesatuan yang keren:
- Kaki panjang LED (anoda) kita hubungin ke pin digital NodeMCU (misalnya, D0) lewat resistor.
- Kaki pendek LED (katoda) kita hubungin ke GND NodeMCU.
- Salah satu kaki tombol kita hubungin ke pin digital NodeMCU (misalnya, D1).
- Kaki tombol yang satu lagi kita hubungin ke GND NodeMCU.
Masukin Kode Program:
Rangkaian udah jadi, sekarang kita kasih "jiwa" ke proyek ini dengan kode program. Kode ini yang bakal ngatur gimana lampu dan tombolnya bekerja sama:
Penjelasan Kode:const int ledPin = D0;
: Ini artinya kita "ngasih nama" pin D0 di NodeMCU sebagailedPin
, tempat kita nyambungin LED.const int buttonPin = D1;
: Sama kayak tadi, tapi ini buat tombol, kita kasih namabuttonPin
.int buttonState = HIGH;
: Kita kasih tau NodeMCU kalau awalnya tombolnya gak ditekan (HIGH).int ledState = LOW;
: Awalnya lampunya mati (LOW).int lastButtonState = HIGH;
: Buat nyimpen status tombol sebelumnya, penting buat debounce.unsigned long lastDebounceTime = 0;
: Waktu terakhir tombol berubah status.const unsigned long debounceDelay = 50;
: Waktu debounce, buat ngilangin efek "mental-mentul" tombol.pinMode(ledPin, OUTPUT);
: Kita "bilang" ke NodeMCU kalauledPin
itu buat ngeluarin sinyal (OUTPUT), buat nyalain lampu.pinMode(buttonPin, INPUT_PULLUP);
: KalaubuttonPin
itu buat nerima sinyal (INPUT), dari tombol.int reading = digitalRead(buttonPin);
: NodeMCU "baca" status tombol, ditekan atau enggak.if (reading != lastButtonState && (millis() - lastDebounceTime) > debounceDelay)
: Ini kondisi yang harus dipenuhi biar lampu bereaksi. Tombol harus berubah status, dan udah lewat waktu debounce.if (reading == LOW)
: Kalau tombolnya ditekan (LOW), berarti kita mau lampunya nyala atau mati.ledState = !ledState;
: Kita "balik" status lampu. Kalau nyala jadi mati, kalau mati jadi nyala.digitalWrite(ledPin, ledState);
: NodeMCU "ngasih perintah" ke lampu sesuai statusnya.lastDebounceTime = millis();
: Catat waktu perubahan status tombol.lastButtonState = reading;
: Update status tombol sebelumnya.
Upload Kode ke NodeMCU:
- Buka Arduino IDE.
- Hubungkan NodeMCU ke komputer pakai kabel USB.
- Pilih board dan port yang sesuai di Arduino IDE.
- Ketik kode di atas ke Arduino IDE.
- Klik tombol Upload buat masukin kode ke NodeMCU.
Saatnya Dicoba!
Kalau kodenya udah masuk, coba tekan tombolnya. Lampunya pasti nyala-mati tiap kali tombol dipencet! Keren kan?
Gimana? Seru kan bikin lampu ajaib sendiri? Proyek ini baru permulaan lho. Kalian bisa bikin proyek yang lebih keren lagi dengan NodeMCU. Jangan takut bereksperimen, dan share hasil karya kalian di kolom komentar ya!
Tidak ada komentar:
Posting Komentar