Loading...
OUR BLOG

SMART HOME

Hai gais!

Korang dah follow belum tutorial saya share sebelum ni? Kalau belum boleh tengok kat blog BDx kat stitu banyak tutorial yang korang boleh follow. Boleh klik Blog BDxTronix ni untuk tutorial sebelum ni bagi anda yang dah terlepas nak follow. 

 

Jadi, kalini tutorial kita lain sikit, saya akan cipta SMART HOME projek. Smart Home adalah satu fungsi tetapan rumah yang boleh mengawal dari jauh pelbagai jenis barangan elektronik yang mempunyai sambungan pada internet.Tutorial Smart Home projek yang akan saya tunjukkan ini membolehkan kita untuk kawal 4 LED menggunakan button untuk setiap satu LED, monitor suhu jika terlalu panas buzzer akan berbunyi dan kawal buka dan tutup pintu menggunakan servo yang akan dikawal menggunakan aplikasi Blynk. Jom mulakan tutorial ni.

 

Komponen yang anda perlukan:

1. 4 LED

2. NodeMCU ESP8266

3. Breadboard

4. Jumper

5. Servo Motor

6. Perintang 220 Ohm

7. LM35

8. Buzzer

9. Aplikasi Blynk

 

1. Sambungan Litar

Sambungan litar perlulah dibuat sebelum memulakan code. Anda boleh ikut cara sambungan litar yang saya berikan ini:

Untuk cara sambungan kaki positif LED yang bersambung dengan perintang 220 Ohm disambungkan pada pin D1 sehingga D4, manakala kaki negatif LED ke GND. Untuk LM35 pula mempunyai 3 kaki iaitu VCC, Analog pin dan GND. Kaki tengah LM35 disambungkan pada Analog pin iaitu A0, kaki kiri ke 3V dan kanan ke GND. Untuk buzzer pula, anda sambungkan kaki positif pada pin D0 dan negatif ke GND. Servo motor mempunyai 3 wayar sambungan iaitu signal(kuning), GND(merah), dan VCC(brown). Wayar berwarna kuning akan disambungkan pada pin D8, wayar merah ke 3V dan brown ke GND.

 

2. Create projek pada aplikasi Blynk anda

Jika anda dah sedia ada projek dalam Blynk anda, anda boleh gunakan semula projek dan Auth token yang sama. Tidak perlu untuk create projek lain.

Jika belum ada projek dalam Blynk, anda boleh rujuk tutorial kami sebelum ini Kawal LED dan PWM menggunakan NodeMCU ESP8266 melalui Blynk

 

3. Tambah widget dalam projek

Anda boleh slide ke kiri untuk keluarkan tab widget anda. Disitu anda boleh tekan pada widget “Button, LED, LCD” dan Blynk akan menambah widget dalam app. Anda perlu menambah 5 button untuk mengawal 4 LED dan servo motor.

 

p/s: bilangan widget yang digunakan dalam projek anda adalah bergantung kepada jumlah energy yang diberikan oleh Blynk. Seperti yang anda boleh lihat pada gambar bateri, 2000 adalah jumlah energy percuma yang diberikan. Energy ni, anda boleh claim semula apabila projek yang ada dalam aplikasi Blynk anda dipadam.

 

4. Setting "LCD"

 

Setelah widget “Button, LED, LCD” ditambah pada projek, anda boleh setting widget yang telah anda tambah dalam Blynk.

 

1. Button LED

Tekan pada widget “Button” untuk tetapkan nama pada butang iaitu “LED 1, LED 2, LED 3, LED 4”. Terpulang pada anda nak letakkan nama apa dan set OUTPUT button virtual pin pada “V1, V4, V5, V6”.

2. Button Servo Motor

Tekan pada widget “Button” dan ubah nama button sebagai “SERVO” dan tetapkan OUTPUT sebagai virtual pin “V2”.

3. LED

Tekan pada widget “LED” dan ubah nama kepada “LED SERVO” sebagai indicator kepada servo motor sudut yang ditetapkan pada servo motor berubah. Tetapkan pada virtual pinV7”.

4. LCD

Untuk widget “LCD” anda perlu slide pada “advanced” dan tetapkan virtual pin pada “V3”. Anda boleh gunakan mana-mana virtual pin yang ada, tetapi jangan lupa untuk declare virtual pin yang sama anda gunakan dalam code nanti.

 

Selesai menambah widget dan ubah setting, kita boleh teruskan pada code.

 

5. Memulakan code/sketch dalam Arduino

 

Anda boleh paste atau taip semula code yang saya berikan ini dalam Arduino IDE:

#define BLYNK_PRINT Serial

#include <Servo.h>

#include <SimpleTimer.h>

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

 

#define buzzer D0

#define sensor_suhu A0

#define button D8

 

float kebakaran = 32;

 

char auth[] = "Your Auth Token";

char ssid[] = "Nama wifi";

char pass[] = "Password Wifi";

 

WidgetLED ledServo(V7);

WidgetLCD lcd(V3);

SimpleTimer timer;

Servo servo;

bool door;

int pos;

 

BLYNK_WRITE(V1) 

{

  int pinValue = param.asInt(); 

  digitalWrite(D1, pinValue);

}

 

BLYNK_WRITE(V4) 

{

  int pinValue = param.asInt(); 

  digitalWrite(D2, pinValue);

}

 

BLYNK_WRITE(V5) 

{

  int pinValue = param.asInt(); 

  digitalWrite(D3, pinValue);

}

 

BLYNK_WRITE(V6) 

{

  int pinValue = param.asInt(); 

  digitalWrite(D4, pinValue);

}

 

BLYNK_WRITE(V2)

{

  int pinValue = param.asInt();

  if(pinValue == 1)

  {

      for (pos = 0; pos <= 90; pos += 1) { 

        servo.write(pos);              

        delay(15);

      }

      ledServo.on();                                            

      door=true;

  }

  else

  {

    for (pos = 90; pos >= 0; pos -= 1) { 

      servo.write(pos);              

      delay(15);

    }

    ledServo.off();

    door=false;

  }

}

 

void setup()

{

  Serial.begin(9600);

  pinMode(D1, OUTPUT);

  pinMode(D2, OUTPUT);

  pinMode(D3, OUTPUT);

  pinMode(D4, OUTPUT);

  

  servo.attach(D8);

  pinMode(buzzer, OUTPUT);

  Blynk.begin(auth, ssid, pass);

}

 

void sendUptime()

  int analogValue = analogRead(sensor_suhu);

  float millivolts = (analogValue/1024.0) * 3300;

  float celcius = millivolts/10;

 

  lcd.print(6, 0, celcius);

  lcd.print(0, 1, "degrees Celcius");

  

  if(celcius > kebakaran)

  {

    digitalWrite(buzzer, HIGH);

    

  }

  else

  {

    digitalWrite(buzzer, LOW);

  }

}

 

void loop()

{

  Blynk.run();

  timer.setInterval(2000, sendUptime);

  timer.run();

 

}

Perlu diingatkan, sebelum anda memuat naik code ke dalam board, anda perlulah mengubah terlebih dahulu “AUTH TOKEN”, “NAMA WIFI” dan “PASSWORD WIFI” kepada sambungan wifi anda.

Anda perlu pastikan, semua virtual pin yang anda gunakan dalam aplikasi Blynk dan juga pin pada NodeMCU ESP8266 perlulah di declare dalam code anda. Kerana, jika virtual pin dan pin pada NodeMCU ESP8266 tidak di declare dalam code anda, Blynk tidak akan boleh berfungsi untuk mengesan dan mengawal komponen pada litar anda. 

Anda boleh verify dahulu code anda untuk memastikan tiada kesalahan dalam code anda. Setelah code anda okay dan tiada error, anda boleh tekan butang upload untuk upload code anda ke dalam NodeMCU ESP8266.

 

Bila connection anda sudah berjaya disambungkan pada Blynk seperti gambar diatas, anda boleh run projek pada aplikasi Blynk anda.

Tekan pada butang “Play” untuk run aplikasi tersebut seperti yang saya highlight pada gambar diatas.

 

Output yang anda akan dapat seperti ini:

 

Bila anda telah selesai upload code anda dalam NodeMCU ESP8266 output yang anda akan dapat adalah seperti yang saya tunjukkan ini. Dalam aplikasi Blynk anda boleh mengawal ON dan OFF 4 LED, monitor suhu daripada LM35 dan boleh kawan BUKA dan TUTUP servo motor. Seperti yang anda dapat lihat, sensor suhu yang saya telah tetapkan pada variable kebakaran = 32. Jika anda cuba menutup sensor suhu LM35 dengan menggunakan jari anda seperti dalam video, suhu akan meningkat naik mengikut seberapa panas suhu yang dikesan pada jari anda. Apabila suhu yang ditetapkan melebihi nilai 32, maka buzzer akan berbunyi yang mana ia menunjukkan suhu meningkat dan nilai degree Celsius akan dipaparkan pada LCD dalam Blynk. LCD bertujuan untuk monitor kadar suhu yang dikesan pada sensor suhu LM35. Nilai kebakaran yang ditetapkan itu anda boleh ubah bersesuaian dengan suhu persekitaran anda. 

Untuk mengawal servo motor pula, apabila button ditekan dan menunjukkan ON ia bermaksud pintu dibuka dan LED menyala. Jika button ditekan semula dan menunjukkan OFF, maka pintu ditutup dan LED terpadam. Dalam code, saya telah tetapkan dalam if else yang mana apabila button tidak ditekan (OFF), sudut servo motor berada pada kedudukan 0, LED akan terpadam menandakan pintu tertutup. Manakala, apabila button ditekan (ON) dan sudut akan berubah kepada 90 darjah bermakna pintu terbuka dan LED ON. 

 

Tahniah, anda sudah berjaya mencipta SMART HOME yang berfungsi mengawal 4 jenis lampu, buka tutup pintu dan monitor kadar suhu persekitaran jika melebihi paras bahaya penggera akan berbunyi. Sekarang anda dah boleh ubah suai ciptaan SMART HOME menggunakan komponen tambahan lain yang anda inginkan.

 

Jika anda suka dengan perkongsian tutorial dalam blog kami ni, jangan lupa untuk follow Facebook dan Instagram kami, kat situ ada bermacam info dan update terkini yang akan kami kongsikan kepada anda. Itu sahaja untuk tutorial kami. Stay update dan selamat mencuba!

Unsure Whether You Need Our Help?

Have you got an awesome new idea or project that you want to talk about? We're here to talk you through it. Flick us an email or give us a call to get started.