Điều khiển LED RGB NEOPIXEL WS2812B bằng Blynk 2.0 sử dụng ESP8266 NodeMCU

Điều khiển LED RGB NEOPIXEL WS2812B bằng Blynk 2.0 sử dụng ESP8266 NodeMCU

Nói về việc điều khiển LED RGB NEOPIXEL WS2812B thì trước đó mình đã chia sẽ rất nhiều bài viết liên quan, như các bạn đã biết thì App Blynk đã cập nhật lên phiên bản 2.0 nên cũng có khá nhiều thay đổi, sẵn tiện đây mình đang lắp thêm một bộ cho vị trí bàn làm việc nên mình sẽ hướng dẫn luôn cho các bạn cùng làm ha.

Bước 1

Trong bài viết này mình sẽ không hướng dẫn lại cách làm thế nào để đăng ký một tài khoản Blynk Cloud, nếu bạn quan tâm có thể xem lại bài viết bên dưới nha.

Chọn “New Template”, tiến hành cài đặt các thông số như bên dưới.

Các bạn cần lưu ý các thông số được mình khoanh đỏ bên dưới, tiếp đến phần sau của bài viết mình sẽ hướng dẫn cho các bạn thêm vào Code.

Bước 2

Tiếp đến tạo mới một thiết bị chọn “New Devices”.

Chọn “From template”

Sau khi tạo xong thiết bị, trong phần Device info các Copy lại các thông số bên dưới nhé.

#define BLYNK_TEMPLATE_ID           "TMPxxxxxx"
#define BLYNK_TEMPLATE_NAME         "Device"
#define BLYNK_AUTH_TOKEN            "YourAuthToken"

Bước 3

Trong phần này mình sẽ hướng dẫn các bạn cấu hình chân cho thiết bị. Vào “New Datastreams”

Chọn “Virtual Pin”

Cấu hình theo các thông số bên dưới.

Bước 4

Sau khi cấu hình xong thiết bị trên Cloud, ta tiến hành cài đặt trên App Blynk 2.0. Như các bạn thấy thì hệ thống đã cập nhât “Template” vừa tạo.

Các bạn cấu hình như hình bên dưới.

Các linh kiện cần thiết cho dự án

TÊN LINH KIỆN SỐ LƯỢNG MUA HÀNG
Module WiFi NodeMCU ESP8266 1 Shopee
RGB Neopixel WS2812B 1 Shopee

Sơ đồ đấu nối

NodeMCU ESP8266 RGB Neopixel WS2812B
VIN 5V
GND GND
D8 IN

Code

/*************************************************************

  Control a color gradient on NeoPixel strip using a slider!

  For this example you need NeoPixel library:
    https://github.com/adafruit/Adafruit_NeoPixel

  App dashboard setup:
    Slider widget (0...500) on V1
 *************************************************************/

/* Fill-in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID           "TMPxxxxxx"
#define BLYNK_TEMPLATE_NAME         "Device"
#define BLYNK_AUTH_TOKEN            "YourAuthToken"

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Adafruit_NeoPixel.h>

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";

#define PIN 8

Adafruit_NeoPixel strip = Adafruit_NeoPixel(30, PIN, NEO_GRB + NEO_KHZ800);

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if (WheelPos < 85) {
    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
    WheelPos -= 170;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}

BLYNK_WRITE(V1)
{
  int shift = param.asInt();
  for (int i = 0; i < strip.numPixels(); i++)
  {
    strip.setPixelColor(i, Wheel(shift & 255));
    // OR: strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + shift) & 255));
  }
  strip.show();
}

void setup()
{
  // Debug console
  Serial.begin(115200);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  // You can also specify server:
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);

  strip.begin();
  strip.show();
}

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

Thành quả

Bài viết liên quan

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments