IoT Lampu Nyala/Mati Otomatis Menggunakan Sensor Cahaya : NodeMCU8266 (Blynk)

Agam Theos
5 min readJul 18, 2021

--

Penjelasan singkat cara membuat prototype Lampu ON/OFF otomatis menggunakan module NodeMCU 8266 dan Aplikasi Blynk.

Module NodeMCU 8266

Deskripsi

Pada artikel kali ini kita akan membahas IoT, yaitu prototype lampu yang akan hidup dan mati secara otomatis menggunakan sensor LDR photoresistor. Dimana saat sensor mendeteksi intensitas cahaya sekitar gelap maka lampu akan menyala, sebaliknya jika sensor mendeteksi intensitas cahaya sekitar terang maka lampu akan mati dengan sendirinya. Prototype ini dibuat menggunakan module NodeMCU 8266.

Alat dan bahan dalam pembuatan

  • 1 pcs NodeMCU 8266
  • 1 pcs Kabel data micro USB
  • 1 pcs Resistor 1K
  • 1 pcs LDR Photoresistor
  • 1 pcs Breadboard 170 Lubang
  • 3 pcs Jumper Male-to-Male

Tahap menyusun rangkaian NodeMCU 8266 dalam pembuatan prototype

  1. Persiapkan module NodeMCU 8266. Pada project kali ini, kita hanya akan menggunakan satu sisi saja. Sisi yang digunakan adalah yang terdapat pin A0, Ground (G), 3V.
  2. Hubungkan Jumper cable Male-to-Male pada setiap pin A0, Ground (G), 3V. (sesuai pada gambar)
  • A0 merupakan input dari NodeMCU 8266
  • G merupakan Ground yang digunakan sebagai akhir dari perjalanan rangkaian.
  • 3V merupakan pin yang mnegalirkan tegangan 3V.

3. Buat Rangkaian jumper cable seperti pada gambar, gunanya sebagai jalur pada rangkaian.

Rangkaian jumper cable

4. Pasang sensor LDR photoresistor dan resistor 1K pada rangkaian. Resistor 1K dirangkai pada jalur jumper A0 dan 3V. Untuk sensor LDR dirangkai pada jalur jumper Ground dan A0. (bisa dilihat pada gambar berikut)

Rangkaian sensor LDR dan resistor 1K

5. Jika semua rangkaian sudah terpasang dengan benar. Buka aplikasi Arduino yang ada pada PC/Laptop kalian. Bagi yang belum mendownload software Arduino bisa di download pada link https://www.arduino.cc/en/software .

6. Pada software Arduino, silahkan buka prefrences/properties lalu akan muncul seperti gambar di bawah

Pada Additional Boards Manager URLs isikan link berikut, http://arduino.esp8266.com/stable/package_esp8266com_index.json .

Jika sudah klik Ok.

Selanjutnya, pilih menu Tools > Board > Board Manager, maka akan muncul tampilan seper gambar dibawah

Lalu search “ESP8266” karena disini kita menggunakan NodeMCU ESP8266 dan install board tersebut.

Selanjutnya, pasang kan module NodeMCU 8266 ke PC/Laptop menggunakan kabel micro usb.

Selanjutnya pilih Board NodeMCU 1.0 pada tools > board.

Coding untuk module NodeMCU 8266

Setelah semua rangkaian sudah terpasang dengan benar dan NodeMCU sudah terhubung ke PC/Laptop. Sekarang saatnya membuat coding supaya NodeMCU 8266 berjalan seperti apa yang kita harapkan.

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "aASDIX6QPEL4vWFFaLAldNn_ml7tuIqz";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "kost 02";
char pass[] = "Kost02@2021!";
//variable will be used.
const int ledBuiltIn = LED_BUILTIN;
const int ldrPin = A0;
const int DARKEST_LDR_VALUE = 1024;
const int LIGHTEST_LDR_VALUE = 600;
int valueOfV1 = 0;
int isAutoActive = 0;
// This function will be called every time Slider Widget
// in Blynk app writes values to the Virtual Pin 1
BLYNK_WRITE(V1)
{
valueOfV1 = param.asInt();
if(valueOfV1 == 1){
digitalWrite(ledBuiltIn, LOW);
}else {
digitalWrite(ledBuiltIn, HIGH);
}
}
BLYNK_WRITE(V3)
{
isAutoActive = param.asInt();
}
// This function is called when there is a Widget
// which is requesting data from Virtual Pin (2)
BLYNK_READ(V2)
{
int ldrStatus = DARKEST_LDR_VALUE + -1 *analogRead(ldrPin);
float lightPercentage = float(ldrStatus) / float(DARKEST_LDR_VALUE - LIGHTEST_LDR_VALUE) * 100;

Blynk.virtualWrite(V2, lightPercentage);
pushNotification(lightPercentage);
if (isAutoActive == 1) {
autoMode (lightPercentage);
}
}
void autoMode (float lightPercentage){
if (lightPercentage > 15) {
digitalWrite(ledBuiltIn, HIGH);
}
else {
digitalWrite(ledBuiltIn, LOW);
}
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(ledBuiltIn, OUTPUT);
pinMode(ldrPin, INPUT);
}
void loop()
{
Blynk.run();
}

Pada bagian,

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "kost 02";
char pass[] = "Kost02@2021!";

ssid dan pass bisa diganti dengan ssid wifi dan password wifi kalian sendiri.

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "aASDIX6QPEL4vWFFaLAldNn_ml7tuIqz";

Pada auth bisa diganti dengan token yang dikirimkan ke email pada saat melakukan login aplikasi blynk.

Jika sudah, tinggal compile dan upload codingan ke module NodeMCU 8266.

Dibagian kiri atas, tanda centang untuk compile dan tanda sign ke kanan untuk upload.

Instalasi Blynk

Selanjutnya jika module sudah terprogram, maka skrg kita akan melakukan instalasi client side, atau tampilan untuk menggunakan nantinya.

  1. Buka Handphone kalian, lalu download Blynk di Google Playstore/Appstore.
  2. Lalu login dan buat new Project.
  3. Kalian bisa menambahkan widget dan pilih “Button”. Lalu, konfgurasi seperti pada gambar.
Button V3

Gunanya untuk supaya blynk dapat terhubung dengan coding yang sudah kita buat tadi.

Lalu, kita buat “Gauge” pada widget.

Gauge widget

Jika sudah, maka akan seperti gambar

Klik pada button Auto atau yang dibuat tadi. Abaikan button “LED Green” pada gambar karena itu hanya percobaan saja.

Saat Auto di hidupkan maka module akan bekerja.

Akan tampil intensitas cahaya yang ditangkap sensor.

Lampu akan menyala jika sensor cahaya menangkap intensitas cahaya disekitar gelap, juga sebaliknya lampu akan mati jika sensor cahaya menangkap intensitas cahaya disekitar terang.

Dan hasil akhirnya sebagai berikut :

Kesimpulan

Prototype IoT project kali ini sudah jadi. Saya berharap dengan adanya prototype alat ini, kedepannya dapat dikembangkan lagi menjadi produk jadi yang bisa digunakan pada kehidupan sehari-hari.

Terima kasih bagi yang sudah membaca story saya, mohon maaf jika ada kekurangan atau kesalahan kata. Semoga bermanfaat untuk kita semua. ^_^

--

--