Mengontrol LED RGB dengan hp Android
Artikel kali ini adalah artikel pertama yang membahas Proyek Berbasis lOT. Untuk proyek pertama kami yaitu RGB LED Flasher menggunakan Wi-Fi. Di sini kami menggunakan Arduino dan modul WiFi ESP8266 untuk mengontrol warna LED RGB melalui Ponsel Android dengan koneksi Wi-Fi.
Dalam proyek LED Flasher RGB ini, kami telah mencoba Aplikasi Seluler Android bernama " Blynk. Blynk adalah aplikasi yang sangat kompatibel dengan Arduino, apa lagi untuk membuat proyek berbasis IoT. Aplikasi ini dapat diunduh dari Google Play Store, dan dapat dikonfigurasi dengan mudah.
Langkah untuk mengkonfigurasi Aplikasi Blynk:
1. kita harus Download aplikasi Blynk dulu di Google Play Store dan install di ponsel Android Anda.
2. Setelah itu, Anda harus membuat akun. Anda dapat menggunakan akun Gmail untuk membuat akun Blynk.
3. Kemudian pilih Arduino Board dan tambahkan nama proyek Anda.
4. Salin Kode Token Auth atau kirimkan kode ke Akun Email Anda dan kemudian tempel dalam sketsa Arduino (Kode Program).
5. Tambahkan Kode Token Auth ini dalam pemrograman Arduino.
// You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "a20b235cfa794f07981d050950fb4429";
6. Kemudian klik tombol buat di aplikasi Blynk.7. Sekarang Pilih Large Slider dan dua tombol, kalibrasikan lalu tekan tombol kembali.
8. Setelah itu tekan tombol Play di kanan atas layar.
Komponen yang Diperlukan:
- Arduino UNO
- Modul Wi-Fi ESP8266
- Kabel USB
- Menghubungkan kabel LED RGB
- Ponsel Android
- Aplikasi Blynk
Rangkaian dan Penjelasan
Rangkaian Flasher LED RGB pada gambar dibawah ini.
Rangkaian Pin modul WiFi Esp8266 :
- Pin Vcc dan CH_PD ESP8266 terhubung Iangsung ke 3.3V
- Pin GND terhubung ke GND dari Arduino.
- Pin Tx terhubung Iangsung ke pin 2 Arduino.
- Pin Rx terhubung Iangsung ke pin 3 Arduino.
Rangkaian Jalur Led RGB
Dengan menggunakan LED RGB Anoda Umum.
Pin LED RGB
- Pin R terhubung ke pin 11
- Pin G terhubung ke pin 12
- Pin B terhubung ke pin 13
Untuk Cara kerja LED RGB cukup sederhana, kami telah membuat tiga Slider menggunakan aplikasi Blynk. Kita dapat mengontrol intensitas tiga warna LED RGB yaitu MERAH, HIJAU dan BIRU. Dan satu tombol untuk Mem-flash LED RGB sesuai dengan kode Program dengan pola yang berbeda.
Penjelasan Pemrograman:
Tentunya kita perlu mengunduh dan menginstal Blynk Library untuk Arduino.
Kami telah menyertakan semua pustaka yang diperlukan untuk menjalankan program di Arduino IDE dan kemudian memasukkan Token Auth, dari aplikasi Blynk dalam string auth . Disini kami menghubungkan pin serial Wi-Fi dengan Software Serial Arduino. Pin 3 dipilih sebagai RX den 2 sebagai TX.
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h> // Set ESP8266 Serial object #include <SoftwareSerial.h> SoftwareSerial EspSerial(2, 3); // RX, TX ESP8266 wifi(EspSerial); // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "a20b235cfa794f07981d050950fb4429";
Untuk pin keluaran LED RGB yaitu
Pin 13 untuk keluaran Pin warna Biru
Pin 12 untuk keluaran Pin warna Hijau
Pin 11 untuk keluaran Pin warna Merah
#define blue 13
#define green 12
#define red 11
Setelah itu kita harus mengatur semua perangkat yang diperlukan, misalnya memulai komunikasi serial, memberikan nama pengguna dan kata sandi WiFi.
void setup() { // Set console baud rate Serial.begin(9600);
delay(20); // Set ESP8266 baud rate // 9600 is recommended for Software Serial EspSerial.begin(9600);
delay(20);
Blynk.begin(auth, wifi, "username", "password"); // wifi username and password
}
Disini kami telah menetapkan Tombol (Virtual Pin 1). kami memanfaatkan pin virtual 1 (V1) berfungsi sebagai input dari Aplikasi Blynk untuk mem-flash LED RGB.
Di bawah ini ada 2 program yang berbeda :
pertama hanya untuk mengontrol intensitas tiga warna dalam LED RGB tanpa mem-flashnya.
kedua untuk mem-flash LED dan dapat mengontrol tiga warna LED RGB. Kita hanya perlu mendefinisikan pin RGB Led pada program karena Flashing LED dikendalikan oleh Arduino. Di sisi Iain pada program pertama, Warna LED dikendalikan oleh aplikasi Blynk di ponsel Android, jadi kita tidak perlu menentukan pin LED RGB.
Kita dapat mengatakan bahwa jika kita hanya ingin mengubah warna dengan Sliders dan tidak ingin menggunakan Button untuk flasher maka kita tidak perlu menentukan pin RGB.
Fungsi yang diberikan adalah untuk mem-flash LED RGB saat tombol ditekan dari Aplikasi Blynk.
BLYNK_WRITE (V1)
{ int x = param [0] .asInt ();
sementara ( == 1)
{
x = param.asInt (); inti=0,j=0,k=0; analogWrite (merah, 255);
analogWrite (hijau, 255);
Untuk menjalankan fungsi blynk dalam loop, untuk menjalankan sistem.
void loop ()
{ Blynk.run ();
}
Program 1 : Mengontrol LED RGB Tanpa Flasher
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h>
// Set ESP8266 Serial object
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(2, 3); // TX, RX
ESP8266 wifi(EspSerial);
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "a20b235cfa794f07981d050950fb4429";
void setup()
{
// Set console baud rate
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
// 9600 is recommended for Software Serial
EspSerial.begin(9600);
delay(10);
Blynk.begin(auth, wifi, "username", "password");
}
void loop()
{
Blynk.run();
}
Program 2 : Mengontrol LED RGB dengan Flasher
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h>
// Set ESP8266 Serial object
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(2, 3); // TX, RX
ESP8266 wifi(EspSerial);
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "a20b235cfa794f07981d050950fb4429";
#define red 11
#define green 12
#define blue 13
void setup()
{
// Set console baud rate
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
// 9600 is recommended for Software Serial
EspSerial.begin(9600);
delay(10);
Blynk.begin(auth, wifi, "username", "password"); // wifi username and password
}
BLYNK_WRITE(V1)
{
int x = param[0].asInt();
while(x==1)
{
x = param.asInt();
int i=0,j=0,k=0;
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 255);
for(int j=0;j<20;j++)
{
analogWrite(red, 0);
analogWrite(green, 255);
analogWrite(blue, 255);
delay(100);
analogWrite(red, 255);
analogWrite(green, 0);
analogWrite(blue, 255);
delay(100);
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 0);
delay(100);
x = param.asInt();
if(x==0)
break;
}
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 255);
for(int z=0;z<10;z++)
{
for(i=0;i<=180;i++)
{
analogWrite(red, 180-i);
delay(2);
}
analogWrite(red, 255);
for(j=0;j<255;j++)
{
analogWrite(green, 255-j);
delay(2);
}
analogWrite(green, 255);
for(k=0;k<255;k++)
{
analogWrite(blue, 255-k);
delay(2);
}
analogWrite(blue, 255);
x = param.asInt();
if(x==0)
break;
}
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 255);
for(int z=0;z<5;z++)
{
for(j=0;j<255;j++)
{
analogWrite(green, 255-j);
delay(20);
}
for(k=0;k<255;k++)
{
analogWrite(blue, 255-k);
delay(20);
}
for(i=0;i<=180;i++)
{
analogWrite(red, 180-i);
delay(20);
}
analogWrite(red,180);
x = param.asInt();
if(x==0)
break;
}
if(x==0)
break;
}
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 255);
}
void loop()
{
Blynk.run();
}
Post a Comment