เมื่อวานเหลือบไปเห็นโฆษณาหลอดไฟเปลี่ยนสีได้ 16 ล้านสี ควบคุมด้วยมือถือ แต่พอเห็นราคา OMG
3 หลอด 7000 หรือตกอันละ 2 พันกว่า ความคิดก็แล่นทันที
ไอ้ของหมูๆแบบนี้ทำเองก็ได้ฟะ แล้วภายใน 10 นาทีก็เสร็จ สิบนาทีจริงๆให้ตายเถอะ
ทีนี้บางคนไม่รู้ว่าไอ้เจ้า Mood Light นี่คืออะไร ? มันก็คือแสงตกแต่งบ้านนั่นเอง แต่ที่ขายเทพกว่าด้วยมันทำสีได้ 16 ล้านสีอยากได้สีไหนเลือกเอา ควบคุมด้วยมือถือ ดูรูป หรือหา Search จาก อากู๋ ก็ได้ทำเสร็จเอาไปไว้หลังทีวี เปิดแล้วแหมที่วีเครื่องสามพันดูคลายทีวีหลักแสนทันที หรือเปิดเป็นสีขาวก็ไว้ให้ความสว่างธรรมดา
เราจะมาทำเอง งบ 150-500 บาท 16 ล้านสีควบคุมได้ทั่วโลก
กระทู้นี้แบบไม่ต้องรู้เรื่องอะไรทำตามรับรองสำเร็จ ส่วนใครใช้ Arduino บ่อยๆทำไม่เกินสิบนาที
สิ่งที่ต้องมี
1 หลอด LED WS2812 หรือบางทีเรียกว่า LED RGB addressable หรือ Neo pixel
หาได้ตาม Ebay, Aliexpress, Lazada มีสารพัดแบบ ขึ้นกับว่าเราจะเอาไปติดที่ไหน เอาไปติดในซอกหรือบก็ซื้อเป็นเส้นยาวๆ เอาไปแทนหลอดไฟก็หาเหลี่ยมๆ เอาใส่โคมก็เอากลมๆ ราคาก็ตามจำนวนเม็ดเลยตั้งแต่ 32 บาท ยันหลายร้อย
https://www.ebay.com/itm/16Bit-RGB-LED-Ring-WS2812-5050-RGB-LED-Module-Integrated-Drivers-For-Arduino/262713137455?hash=item3d2aec592f:g:flkAAOSwXkNaaTt9:rk:2:pf:0
https://www.ebay.com/itm/CJMCU-WS2812-4-Bit-7-Bit-16Bit-61Bit-64Bit-5050-RGB-Full-Color-LED-Driver-Module/253802249940?hash=item3b17cafed4:m:mQVDH2dc5JZqwKOUn050emw:rk:7:pf:0
2 ESP8266 NodeMCU V2 (อย่าซื้อ V3 ปัญหาเยอะ หรือใครเข้าใจเรื่องการ upload ด้วย FTD232 ก็ใช้ Chip ESP8266 เลย)
https://www.ebay.com/itm/NodeMcu-Lua-V2-WIFI-Internet-Thing-Development-Board-Based-ESP8266-CP2102-Module/181924392878?epid=22016272885&hash=item2a5b89efae:g:7wMAAOSwiq9bbAwt:rk:1:pf:0
3 สาย USB power ที่ไม่ใช้แล้ว
4 สายไฟต่อซักสองสามเส้น
มีแค่นี้แหละ ซัก 150-500 แพงตามจำนวน LED
เริ่มสร้างไปทีละข้อ
1 ลงโปรแกรม Arduino IDE และ ESP8266
https://www.arduino.cc/en/Main/Software
load มาแล้วลงเลย
ต่อด้วยอีกนิด
https://nazt-cmmc.gitbooks.io/cmmc-iot-books/content/esp8266-getting-started-setup-and-flash.html
2 สร้างโปรแกรมใน มือถือ ง่ายๆ load App ชื่อ Blynk มา แล้วทำตามเวปนี้เลย อ่านแล้วอุดหนุนเค้าบ้างก็ดีครับ
http://www.ayarafun.com/2015/08/easy-iot-play-with-blynk/
Load library มาให้เรียบร้อย
ตอนสร้างก็อย่าลืมนะเลือก Hardware เป็น NodeMCU (ใครใช้ Chip ESP8266 ตรงๆก็เลือก ESP8266)
Blynk จะให้ AUTH TOKEN มา และส่งให้ทาง Email ด้วยเราก็ไปก๊อบจากใน Email เพราะยาวเดี๋ยวพิมพ์ผิด
3 สร้าง Gadget ใน Blynk ตามนี้
3.1 กด + ด้านบน
3.2 เลือก ZeRGBa
3.3 กด แช่ที่รูป แล้วลากขยายขนาดออกมาตามใจ
3.4 Click ที่รูปม้าลาย หน้า Setting จะออกมา ตั้งชื่อเป็น Color, Output เลื่อนเป็น Merge, กดที่ PIN เลือกเป็น Virtual และ V1 กดลูกศรกลับ
3.5 กด + อีกทีเลือก Slider แนวนอน (หรือแนวตั้งถ้าชอบ) กดแช่แล้วลากปรับขนาด click 1 ทีเข้าไปตั้งค่า
3.6 ตั้งชิ่อเป็น Brightness เลือก PIN เป็น Virtual และ V2 ส่วนค่าที่เห็นเป็น 0-1023 แก้ 1023 เป็น 100
เสร็จแล้ว หากชำนาญทำนาทีเดียว
กดย้อนกลับ
4 เสียบสาย USB กับ NodeMCU มาที่โปรแกรม Arduino IDE ไปที่ Tool > borard > NodeMCU 1.0 (ESP-12E Module)
และ Tool > Port อันที่ต่อ NodeMCU ส่วนใหญ่อันล่างสุด
ลงโปรแกรมนี้ลงไป แต่ก่อนลงโปรแกรมต้องไปแก้ไข Code นิดหน่อยตรงที่บอกให้แก้ไขคือ จำนวน LED (Code เป็น 32 หากซื้อมา 10 ก็แก้เป็น 10) รหัส Wifi และ AUTH Token ที่ทาง Blynk ส่งมา แล้วก็ copy ลงใน Arduino IDE แล้วกด Upload เลย (ลูกศรชี้ขวาซ้ายบนของโปรแกรม)
//**************************************************************************************
//Note: LED หากมีมากๆจะกินไฟ หากไฟเลี้ยงไม่พอสีจะเพี้ยน
#include "FastLED.h" // use the FastLED library
//--------------------แก้ตรงนี้ด้วย --------------
#define NUM_LEDS 32 // แก้จำนวนตาม LED module ที่มี
const char *ssid = "MrXyz";//แก้ตามชื่อ Wifi ที่ login
const char *pass = "ABC12345";//แก้ตามPassword ชอง Wifi
char auth[] = "abcdefghijklmnop";//รหัส AUTH Token ได้มาจาก app blynk
//--------------------------------------------
#define DATA_PIN 8 //set to D8, do not use letter "D8" library will map by itself use 8 only, D0 not work
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial
int R, G, B; //Color Code RGB
int W = 5; //brightness
CRGB led_colors[ (NUM_LEDS) ];// Make block to store/map LED data
void setup() {
FastLED.addLeds<WS2812, DATA_PIN, RGB> (led_colors, NUM_LEDS );//Set data pin
for ( int i = 0; i < NUM_LEDS; i++ ) { // turn off the LEDs
led_colors = CRGB::Black;
}
FastLED.show();
R = 0x00;
G = 0x00;
B = 0x00;
Blynk.begin(auth,ssid, pass);
}
void loop() {
Blynk.run(); /* Initiates Blynk */
LEDshow();
}
void LEDshow() {//Turn On LED each secment
for (int i = 0; i < NUM_LEDS; i++)
{
led_colors = CRGB(G, R, B);
}
FastLED.setBrightness(W);
FastLED.show();
}
BLYNK_WRITE(V1) // zeRGBa assigned to V1
{
// get a RED channel value
R = param[0].asInt();
// get a GREEN channel value
G = param[1].asInt();
// get a BLUE channel value
B = param[2].asInt();
}
BLYNK_WRITE(V2)//Brightness
{ W = 255*param.asInt()/100;//read param is String must converse
}
//************************************จบโปรแกรม
5 หาสาย USB ที่ไม่ใช้มาตัดแล้วต่อดังรูป (อย่าต่อตอน upload โปรแกรมหรือ คอมเพราะไฟเลี้ยงจากคอมไม่พอ) ( DO หากมี ไม่ต้องต่อ แต่หากจะต่อยาวออกไปอีกอนาคตให้ต่อ DO กับ DI อันใหม่)
กรณีที่ใช้ LED ไม่กี่ดวงสามารถต่อแบบนี้ได้ แต่หากเป็นสิบดวงไม่แนะนำเพราะเสี่ยงที่บอร์ดจะเสียเพราะลายวงวรไม่แน่ใจว่ารับกระแสได้กี่ mA ไม่อยากเสี่ยงต่อแบบด้านบน เวลาลงโปแกรมต้องถอดสายที่ต่อไฟ LED ออกเสมอเพราะมันกินไฟ port computer จ่ายไม่ไหว
6 เสร็จแล้วเสียบปลั๊กเลย (หากใช้ Power Bank มักมีปัญหาเวลาเราดับไฟ Power Bank จะดับไปด้วย)
7 เปิด App Blynk กดลูกศร Play ลองเลื่อน สีหรือความสว่างดู
หากสีเพี้ยนแสดงว่าไฟไม่พอ อาจต้องหาแหล่งจ่ายไฟเยอะๆ 2A สาย USB ก็หาที่ดีๆ หลอด LED กินไฟเด็มที่คือ 60mA ต่อหลอดมีกี่หลอดก็คูณเข้าไป บวกของ NodeMCU อีก 500mAh คือไฟที่ต้องใช้ ค่อนข้างเยอะสิบหลอดต้องมี 1.1 A
ต่อตามแบบแรก
หรือแบบตรงๆเข้า NodeMCU เลย แต่อย่างที่บอกว่าหาก LED เยอะๆอย่าไปทำ อันนี้ต่อ 32 LED ก็ยัง OK แต่จะทนไหมบอกไม่ได้ แต่ต่อแบบนี้ง่ายสุดๆ
หมายเหตุ: ต้องต่อ WIFI นะครับ บางทีก็ใช้ Share จากมือถือนี่แหละครับ หาก net บ้านก็ได้ มันสามารถควบคุมได้จากที่ไหนก็ได้บนโลกที่มี internet ถึงครับส่วนจะทำให้คุมด้วย Bluetooth หรือ Remote ก็สามารถทำได้แต่ต้องเพิ่มชิ้นส่วนมาหน่อยและยุ่งยากกว่า
จะทำกี่อันก็ได้ครับ แต่เมื่อเปิดปิดด้วยมือถือมันจะเปิดปิดเหมือนกัน LED วงกลมก็เหมาะเอาไปไว้ในโคมหัวเตียงครับ
หากมีใครสงสัยตรงไหนก็ถามมาได้นะครับ
เดี๋ยวว่างๆจะทำต่ออันนี้ให้มีลูกเล่นขึ้นเช่นเปลี่ยนสีหรือกระพริบ
มาสร้างไฟให้บรรยากาศขั้นเทพควบคุมด้วยมือถือในราคาหลักร้อยกันเถอะ DIY Mood Lighting
ทีนี้บางคนไม่รู้ว่าไอ้เจ้า Mood Light นี่คืออะไร ? มันก็คือแสงตกแต่งบ้านนั่นเอง แต่ที่ขายเทพกว่าด้วยมันทำสีได้ 16 ล้านสีอยากได้สีไหนเลือกเอา ควบคุมด้วยมือถือ ดูรูป หรือหา Search จาก อากู๋ ก็ได้ทำเสร็จเอาไปไว้หลังทีวี เปิดแล้วแหมที่วีเครื่องสามพันดูคลายทีวีหลักแสนทันที หรือเปิดเป็นสีขาวก็ไว้ให้ความสว่างธรรมดา
เราจะมาทำเอง งบ 150-500 บาท 16 ล้านสีควบคุมได้ทั่วโลก
กระทู้นี้แบบไม่ต้องรู้เรื่องอะไรทำตามรับรองสำเร็จ ส่วนใครใช้ Arduino บ่อยๆทำไม่เกินสิบนาที
สิ่งที่ต้องมี
1 หลอด LED WS2812 หรือบางทีเรียกว่า LED RGB addressable หรือ Neo pixel
หาได้ตาม Ebay, Aliexpress, Lazada มีสารพัดแบบ ขึ้นกับว่าเราจะเอาไปติดที่ไหน เอาไปติดในซอกหรือบก็ซื้อเป็นเส้นยาวๆ เอาไปแทนหลอดไฟก็หาเหลี่ยมๆ เอาใส่โคมก็เอากลมๆ ราคาก็ตามจำนวนเม็ดเลยตั้งแต่ 32 บาท ยันหลายร้อย
https://www.ebay.com/itm/16Bit-RGB-LED-Ring-WS2812-5050-RGB-LED-Module-Integrated-Drivers-For-Arduino/262713137455?hash=item3d2aec592f:g:flkAAOSwXkNaaTt9:rk:2:pf:0
https://www.ebay.com/itm/CJMCU-WS2812-4-Bit-7-Bit-16Bit-61Bit-64Bit-5050-RGB-Full-Color-LED-Driver-Module/253802249940?hash=item3b17cafed4:m:mQVDH2dc5JZqwKOUn050emw:rk:7:pf:0
2 ESP8266 NodeMCU V2 (อย่าซื้อ V3 ปัญหาเยอะ หรือใครเข้าใจเรื่องการ upload ด้วย FTD232 ก็ใช้ Chip ESP8266 เลย)
https://www.ebay.com/itm/NodeMcu-Lua-V2-WIFI-Internet-Thing-Development-Board-Based-ESP8266-CP2102-Module/181924392878?epid=22016272885&hash=item2a5b89efae:g:7wMAAOSwiq9bbAwt:rk:1:pf:0
3 สาย USB power ที่ไม่ใช้แล้ว
4 สายไฟต่อซักสองสามเส้น
มีแค่นี้แหละ ซัก 150-500 แพงตามจำนวน LED
เริ่มสร้างไปทีละข้อ
1 ลงโปรแกรม Arduino IDE และ ESP8266
https://www.arduino.cc/en/Main/Software
load มาแล้วลงเลย
ต่อด้วยอีกนิด
https://nazt-cmmc.gitbooks.io/cmmc-iot-books/content/esp8266-getting-started-setup-and-flash.html
2 สร้างโปรแกรมใน มือถือ ง่ายๆ load App ชื่อ Blynk มา แล้วทำตามเวปนี้เลย อ่านแล้วอุดหนุนเค้าบ้างก็ดีครับ
http://www.ayarafun.com/2015/08/easy-iot-play-with-blynk/
Load library มาให้เรียบร้อย
ตอนสร้างก็อย่าลืมนะเลือก Hardware เป็น NodeMCU (ใครใช้ Chip ESP8266 ตรงๆก็เลือก ESP8266)
Blynk จะให้ AUTH TOKEN มา และส่งให้ทาง Email ด้วยเราก็ไปก๊อบจากใน Email เพราะยาวเดี๋ยวพิมพ์ผิด
3 สร้าง Gadget ใน Blynk ตามนี้
3.1 กด + ด้านบน
3.2 เลือก ZeRGBa
3.3 กด แช่ที่รูป แล้วลากขยายขนาดออกมาตามใจ
3.4 Click ที่รูปม้าลาย หน้า Setting จะออกมา ตั้งชื่อเป็น Color, Output เลื่อนเป็น Merge, กดที่ PIN เลือกเป็น Virtual และ V1 กดลูกศรกลับ
3.5 กด + อีกทีเลือก Slider แนวนอน (หรือแนวตั้งถ้าชอบ) กดแช่แล้วลากปรับขนาด click 1 ทีเข้าไปตั้งค่า
3.6 ตั้งชิ่อเป็น Brightness เลือก PIN เป็น Virtual และ V2 ส่วนค่าที่เห็นเป็น 0-1023 แก้ 1023 เป็น 100
เสร็จแล้ว หากชำนาญทำนาทีเดียว
กดย้อนกลับ
4 เสียบสาย USB กับ NodeMCU มาที่โปรแกรม Arduino IDE ไปที่ Tool > borard > NodeMCU 1.0 (ESP-12E Module)
และ Tool > Port อันที่ต่อ NodeMCU ส่วนใหญ่อันล่างสุด
ลงโปรแกรมนี้ลงไป แต่ก่อนลงโปรแกรมต้องไปแก้ไข Code นิดหน่อยตรงที่บอกให้แก้ไขคือ จำนวน LED (Code เป็น 32 หากซื้อมา 10 ก็แก้เป็น 10) รหัส Wifi และ AUTH Token ที่ทาง Blynk ส่งมา แล้วก็ copy ลงใน Arduino IDE แล้วกด Upload เลย (ลูกศรชี้ขวาซ้ายบนของโปรแกรม)
//**************************************************************************************
//Note: LED หากมีมากๆจะกินไฟ หากไฟเลี้ยงไม่พอสีจะเพี้ยน
#include "FastLED.h" // use the FastLED library
//--------------------แก้ตรงนี้ด้วย --------------
#define NUM_LEDS 32 // แก้จำนวนตาม LED module ที่มี
const char *ssid = "MrXyz";//แก้ตามชื่อ Wifi ที่ login
const char *pass = "ABC12345";//แก้ตามPassword ชอง Wifi
char auth[] = "abcdefghijklmnop";//รหัส AUTH Token ได้มาจาก app blynk
//--------------------------------------------
#define DATA_PIN 8 //set to D8, do not use letter "D8" library will map by itself use 8 only, D0 not work
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial
int R, G, B; //Color Code RGB
int W = 5; //brightness
CRGB led_colors[ (NUM_LEDS) ];// Make block to store/map LED data
void setup() {
FastLED.addLeds<WS2812, DATA_PIN, RGB> (led_colors, NUM_LEDS );//Set data pin
for ( int i = 0; i < NUM_LEDS; i++ ) { // turn off the LEDs
led_colors = CRGB::Black;
}
FastLED.show();
R = 0x00;
G = 0x00;
B = 0x00;
Blynk.begin(auth,ssid, pass);
}
void loop() {
Blynk.run(); /* Initiates Blynk */
LEDshow();
}
void LEDshow() {//Turn On LED each secment
for (int i = 0; i < NUM_LEDS; i++)
{
led_colors = CRGB(G, R, B);
}
FastLED.setBrightness(W);
FastLED.show();
}
BLYNK_WRITE(V1) // zeRGBa assigned to V1
{
// get a RED channel value
R = param[0].asInt();
// get a GREEN channel value
G = param[1].asInt();
// get a BLUE channel value
B = param[2].asInt();
}
BLYNK_WRITE(V2)//Brightness
{ W = 255*param.asInt()/100;//read param is String must converse
}
//************************************จบโปรแกรม
5 หาสาย USB ที่ไม่ใช้มาตัดแล้วต่อดังรูป (อย่าต่อตอน upload โปรแกรมหรือ คอมเพราะไฟเลี้ยงจากคอมไม่พอ) ( DO หากมี ไม่ต้องต่อ แต่หากจะต่อยาวออกไปอีกอนาคตให้ต่อ DO กับ DI อันใหม่)
กรณีที่ใช้ LED ไม่กี่ดวงสามารถต่อแบบนี้ได้ แต่หากเป็นสิบดวงไม่แนะนำเพราะเสี่ยงที่บอร์ดจะเสียเพราะลายวงวรไม่แน่ใจว่ารับกระแสได้กี่ mA ไม่อยากเสี่ยงต่อแบบด้านบน เวลาลงโปแกรมต้องถอดสายที่ต่อไฟ LED ออกเสมอเพราะมันกินไฟ port computer จ่ายไม่ไหว
6 เสร็จแล้วเสียบปลั๊กเลย (หากใช้ Power Bank มักมีปัญหาเวลาเราดับไฟ Power Bank จะดับไปด้วย)
7 เปิด App Blynk กดลูกศร Play ลองเลื่อน สีหรือความสว่างดู
หากสีเพี้ยนแสดงว่าไฟไม่พอ อาจต้องหาแหล่งจ่ายไฟเยอะๆ 2A สาย USB ก็หาที่ดีๆ หลอด LED กินไฟเด็มที่คือ 60mA ต่อหลอดมีกี่หลอดก็คูณเข้าไป บวกของ NodeMCU อีก 500mAh คือไฟที่ต้องใช้ ค่อนข้างเยอะสิบหลอดต้องมี 1.1 A
ต่อตามแบบแรก
หรือแบบตรงๆเข้า NodeMCU เลย แต่อย่างที่บอกว่าหาก LED เยอะๆอย่าไปทำ อันนี้ต่อ 32 LED ก็ยัง OK แต่จะทนไหมบอกไม่ได้ แต่ต่อแบบนี้ง่ายสุดๆ
หมายเหตุ: ต้องต่อ WIFI นะครับ บางทีก็ใช้ Share จากมือถือนี่แหละครับ หาก net บ้านก็ได้ มันสามารถควบคุมได้จากที่ไหนก็ได้บนโลกที่มี internet ถึงครับส่วนจะทำให้คุมด้วย Bluetooth หรือ Remote ก็สามารถทำได้แต่ต้องเพิ่มชิ้นส่วนมาหน่อยและยุ่งยากกว่า
จะทำกี่อันก็ได้ครับ แต่เมื่อเปิดปิดด้วยมือถือมันจะเปิดปิดเหมือนกัน LED วงกลมก็เหมาะเอาไปไว้ในโคมหัวเตียงครับ
หากมีใครสงสัยตรงไหนก็ถามมาได้นะครับ
เดี๋ยวว่างๆจะทำต่ออันนี้ให้มีลูกเล่นขึ้นเช่นเปลี่ยนสีหรือกระพริบ