Bagi sebagian orang yang baru menjajaki dunia IoT, Blynk adalah sebuah platform IoT yang sangat mudah untuk digunakan. Sebagai platform, Blynk sangat mudah untuk dipahami dan digunakan. Sistemnya yang menggunakan widget drop and click sangatlah mudah untuk dipahami. Sebelum kita mencoba melakukan sesuatu dengan Blynk, marilah kita coba mengetahui lebih detail tentang cara kerja Blynk.
Terdapat 3 hal utama yang harus dipahami dalam penggunaan Blynk, yaitu:
Blynk app adalah sebuah aplikasi yang dapat digunakan untuk membuat interfaces dari project yang kalian inginkan. Hal ini dipermudah dengan berbagai widget yang ada.
Blynk server adalah sebuah server yang bertanggung jawab atas komunikasi yang terjadi antara device controller yang kalian gunakan dengan smartphone kalian.
Blynk libraries adalah library yang akan anda gunakan sebagai protokol dan penjembatan antara Blynk dan device controller kalian.
Sebagai latihan dalam menggunakan Blynk, mari kita gunakan Blynk untuk membuat robot RC yang dapat dikontrol melalui smartphone. Hal yang perlu dipersiapkan adalah:
Microcontroller ESP32
Driver Motor L298N
Motor DC kecil
Chasis dan ban
Kabel jumper
Baterai Lipo
Setelah menyiapkan semua alat di atas ikutilah prosedur berikut:
Buka aplikasi Blynk yang ada di smartphone kalian, jikalau kalian belum punya unduhlah terlrbih dahulu di playstore.
Buatlah new project, lalu pasanglah 4 button widget dan 1 slider widget. Buatlah seperti contoh berikut.
Hubungkanlah pin button dengan virtual pin yang ada berada di server. Lakukanlah dengan cara tekan button dan atur pin menjadi virtual pin dengan nomor tertentu asalkan tidak sama.
Sebagai penjelasan button bisa digunakan untuk mengubah logic dari 0 ke 1 (bisa disetting terbalik), button bisa juga disetting menjadi switch sehingga apabila button ditekan lalu dilepas logic tidak akan kembali menjadi 0. Berbeda dengan button, slider digunakan untuk mengirimkan nilai angka dapat berbentuk integer ataupun float.
Ketika membuat project ini kalian akan mendapatkan token auth yang dikirim ke email anda, token ini akan digunakan untuk mengidentifikasi device anda sehingga harus dimasukkan dalam program. Selain itu kalian juga harus memperhatikan device yang kalian gunakan.
Upload program ini ke ESP32,
//Blynk
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
//MOTOR
#define EN1 14
#define IN1 27
#define IN2 26
#define IN3 25
#define IN4 33
#define EN2 32
//Blynk Authentication
char auth[] = "****************************";
char ssid[] = "ROBO_RC";
char pass[] = "rato4763";
const int freq = 30000;
const int PWMChannel = 0;
const int resolution = 10;
int DutyCycle = 0;
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);
ledcSetup(PWMChannel,freq,resolution);
ledcAttachPin(EN1,PWMChannel);
ledcAttachPin(EN2,PWMChannel);
}
BLYNK_WRITE(V4)
{
int slider = param.asInt();
DutyCycle = slider;
}
BLYNK_WRITE(V0)
{
int button = param.asInt();
if (button == 1)
{
ledcWrite(PWMChannel,DutyCycle);
digitalWrite(IN1, LOW); //maju motor kiri
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); //maju motor kanan
digitalWrite(IN4, LOW);
}
else
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
BLYNK_WRITE(V1)
{
int button = param.asInt();
if (button == 1)
{
ledcWrite(PWMChannel,DutyCycle);
digitalWrite(IN1, HIGH); //mundur motor kiri
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH); //mundur motor kanan
}
else
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
BLYNK_WRITE(V2)
{
int button = param.asInt();
if (button == 1)
{
ledcWrite(PWMChannel,DutyCycle);
digitalWrite(IN1, LOW); //maju motor kiri
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH); //mundur motor kanan
}
else
{
ledcWrite(PWMChannel,DutyCycle);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
BLYNK_WRITE(V3)
{
int button = param.asInt();
if (button == 1)
{
ledcWrite(PWMChannel,DutyCycle);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW); //mundur motor kiri
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW); //maju motor kanan
}
else
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
void loop()
{
Blynk.run();
}
Setelah itu sambunglah microcontroller anda ke motor sesuai dengan skematik yang ada di internet.
Lakukan testing seperti video berikut.
Begitulah testing Blynk hari ini semoga bermanfaat bagi kita semua.