เริ่มต้น Blynk ด้วย ESPino32

เริ่มต้น Blynk ด้วย ESPino32

        สำหรับบทความเริ่มต้น Blynk ด้วย ESPino32 เป็นบทความต่อเนื่องจากบทความ “เริ่มต้น IoT App ด้วย Blynk” ที่เป็นบทความเเนะนำให้รู้จักกับ Blynk Platform เบื้องต้นไปเเล้ว เนื้อหาในบทความนี้จะเพิ่มตัวอย่างการใช้งาน Widget พื้นฐานบนเเอพพลิเคชัน Blynk ที่เชื่อมต่ออยู่กับบอร์ด ESPino32 ซึ่งบทความนี้จะมีตัวอย่าง 2 อย่าง คือ

– Button Widget บนเเอพพลิเคชัน Blynk สำหรับรับค่าสถานะของปุ่มกดจากบอร์ด ESPino32

– Slider Widget บนเเอพพลิเคชัน Blynk สำหรับส่งข้อมูลไปยังบอร์ด ESPino32 เพื่อควบคุม LED


อุปกรณ์ที่ใช้

1. ESPino32 Wifi BLE Development Board (ETEE061S) จำนวน 1 pcs บอร์ดไมโครคอนโทรเลอร์ 32-bit ความเร็วสูงสุด 240 MHz มีโมดูลสื่อสาร Wireless LAN, Bluetooth เเละขา GPIO เพื่อใช้ติดต่อสื่อสารกับอุปกรณ์อิเล์กทรอนิกส์อื่นๆ ได้

บอร์ด ESPino32

2. Button Switch Module (EACC085) จำนวน 1 pcs ปุ่มกดแบบกดติดปล่อยดับ สีเขียว ขนาด 2 x 2.5 x 1.5 cm มีตัวต้านทานขนาด 10 กิโลโอห์มต่อแบบ Pull-up อยู่ภายใน รองรับการใช้งานแรงดัน 3.3 และ 5 โวลต์

Button Switch Module

3. 10mm RGB LED Module (ESEN280) จำนวน 1 pcs โมดูล RGB LED ขนาด 10 มม. ใช้ไฟ 3-5V เหมาะสำหรับการทดลองในการควบคุมหลอดไฟแบบหลายสี สามารถผสมสีต่างๆ ได้โดยอาศัยการควบคุมจากไมโครคอนโทรลเลอร์

RGB LED Module

4. Smartphone รองรับการทำงานใน iOS Platform และ Android Platform

สมาร์ทโฟน

*หากยังไม่เคยใช้งานบอร์ด ESPino32 ดูการติดตั้งและใช้งานเพิ่มเติมได้ที่ Link*

 

ติดตั้ง Blynk library สำหรับใช้งานร่วมกับบอร์ด ESPino32

ติดตั้ง Blynk library ลงบน Arduino IDE ผ่านช่องทาง Library Manager 

โดยเข้าไปที่เมนู Sketch > Include Library > Manager Libraries… จากนั้นทำการค้นหา “Blynk” จากนั้นทำการติดตั้งให้เรียบร้อย ตามรูป ติดตั้ง Blynk library

ติดตั้ง Blynk library

>> อธิบายโปรเเกรมในส่วนสำคัญ <<

โปรเเกรมในส่วนที่สำคัญของ Blynk

1. เรียกใช้งานไลบรารี่ที่เกี่ยวข้อง

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

2. กำหนด WiFi Name, WiFi Password และ AuthToken (Token จะถูกส่งไปยังอีเมล์ในขั้นตอนการสร้าง Instant ของ App)

char auth[] = "YourAuthToken";
char ssid[] = "Your_SSID_Name";
char pass[] = "Your_SSID_Password";

3. ฟังก์ชันสำหรับส่งข้อมูล

Blynk.virtualWrite(virtualPin,Data);
lcd.print(xCursor, yCursor, Data);
led1.on();
led1.off();
// อื่นๆ

4. ฟังก์ชันสำหรับรับข้อมูล

BLYNK_WRITE(V1)
{
  statement;
} 

ตัวอย่าง การอ่านสถานะของปุ่มกดและส่งข้อมูลไปยังเเอพพลิเคชัน Blynk

        ในตัวอย่างการอ่านสถานะของปุ่มกดและส่งข้อมูลไปยังเเอพพลิเคชัน Blynk สิ่งที่ต้องทำจะมี 2 ส่วน คือ 

– ตั้งค่า Button Widget ในเเอพพลิเคชัน Blynk บนสมาร์ทโฟน

– ต่อวงจรและเขียนโปรเเกรมบนบอร์ด ESPino32 เพื่อส่งสถานะของปุ่มกดไปยังเเอพพลิเคชัน Blynk

ตั้งค่า Button Widget ในเเอพพลิเคชัน Blynk บนสมาร์ทโฟน โดยอ้างอิงกับตัวแปร Virtual Pin “V0” ตามรูป ตั้งค่า Widget ปุ่มกด

ตั้งค่า Widget ปุ่มกด

ต่อวงจร ดังรูป ESPino32 ใช้งานปุ่มกด

ESPino32 ใช้งานปุ่มกด

โปรเเกรมที่ใช้งาน

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = "YourAuthToken";
char ssid[] = "Your_SSID_Name";
char pass[] = "Your_SSID_Password";

#define BUTTON 16


void setup()
{
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);
  pinMode(BUTTON, INPUT_PULLUP);
}

void loop()
{
  Blynk.run();
  if (!digitalRead(BUTTON))
  {
    Blynk.virtualWrite(V0, 1);
  } else {
    Blynk.virtualWrite(V0, 0);
  }
}

อธิบายโปรเเกรมในส่วนสำคัญ

ฟังก์ชันอ่านค่ามาจาก BUTTON Switch เพื่อส่งค่า Virtual Pin ไปยัง Server Blynk

if (!digitalRead(BUTTON))
  {
    Blynk.virtualWrite(V0, 1);
  } else {
    Blynk.virtualWrite(V0, 0);
  }
ผลลัพธ์ ESPino32 ใช้งานปุ่มกด

ตัวอย่าง การควบคุม LED ผ่านเเอพพลิเคชัน Blynk

        ในตัวอย่างการควบคุม LED ผ่านเเอพพลิเคชัน Blynk สิ่งที่ต้องทำจะมี 2 ส่วน คือ 

– ตั้งค่า Slider Widget ในเเอพพลิเคชัน Blynk บนสมาร์ทโฟน

– ต่อวงจรและเขียนโปรเเกรมบนบอร์ด ESPino32 เพื่อส่งสถานะของปุ่มกดไปยังเเอพพลิเคชัน Blynk

ตั้งค่า Slider Widget ในเเอพพลิเคชัน Blynk บนสมาร์ทโฟน โดยอ้างอิงกับตัวแปร Virtual Pin “V1” ตามรูป ตั้งค่า Widget Slider

ตั้งค่า Widget Slider

ต่อวงจร ดังรูป ESPino32 ใช้งาน LED

ESPino32 ใช้งาน LED

โปรเเกรมที่ใช้งาน

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = "YourAuthToken";
char ssid[] = "Your_SSID_Name";
char pass[] = "Your_SSID_Password";

#define LED 17

void setup()
{
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);
  sigmaDeltaSetup(0,10000);
  sigmaDeltaAttachPin(LED,0);
  sigmaDeltaWrite(0,255);
}

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt();
  sigmaDeltaWrite(0,map(pinValue,0,1023,255,0));
  Serial.println(pinValue);
}

void loop()
{
  Blynk.run();
}

อธิบายโปรเเกรมในส่วนสำคัญ

ฟังก์ชันอ่านค่ามาจาก Virtual Pin เพื่อทำการควบคุม LED

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt();
  sigmaDeltaWrite(0,map(pinValue,0,1023,255,0));
  Serial.println(pinValue);
}
ผลลัพธ์ ESPino32 ใช้งาน LED

ตัวอย่าง การอ่านสถานะของปุ่มกดและควบคุม LED ผ่านเเอพพลิเคชัน Blynk

วงจรที่ใช้

ESPino32 ใช้งานปุ่มกด และ LED

โปรเเกรมที่ใช้

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

#define BUTTON 16
#define LED 17

char auth[] = "YourAuthToken";
char ssid[] = "Your_SSID_Name";
char pass[] = "Your_SSID_Password";



void setup()
{
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);
  pinMode(BUTTON, INPUT_PULLUP);
  sigmaDeltaSetup(0,10000);
  sigmaDeltaAttachPin(LED,0);
  sigmaDeltaWrite(0,255);
}

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt();
  sigmaDeltaWrite(0,map(pinValue,0,1023,255,0));
}

void loop()
{
  Blynk.run();
  if (!digitalRead(BUTTON))
  {
    Blynk.virtualWrite(V0, 1);
  } else {
    Blynk.virtualWrite(V0, 0);
  }
}

         สำหรับภายในบทความ “เริ่มต้น Blynk ด้วย ESPino32” จะมีเนื้อหาเบื้องต้นเป็นการใช้งานปุ่มกด และ LED ซึ่งจะเป็นอุปกรณ์ขั้นพื้นฐานที่ง่ายต่อการเข้าใจเเละการทำความเข้าใจ ดังนั้นหากผูู้ใช้งานสามารถประยุกต์เปลี่ยนจากปุ่มกด และ LED เป็นเซ็นเซอร์ชนิดอื่นๆ เพียงเท่านี้ผู้ใช้งานจะได้อุปกรณ์ IoT และเเอพพลิเคชันสำหรับควบคุมการทำงานและเเสดงผลเเบบเรียลไทม์ที่พร้อมจะใช้งานได้ทันที