phone: 02-954-2408-9, 089-514-8111

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

Mar 20,2020

เริ่มต้น 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 และเเอพพลิเคชันสำหรับควบคุมการทำงานและเเสดงผลเเบบเรียลไทม์ที่พร้อมจะใช้งานได้ทันที