monsieurvechai gửi vào
- 19416 lượt xem
Hưởng ứng bài viết Cộng đồng Arduino Việt Nam trong cuộc Cách mạng Công nghiệp lần thứ IV, và cũng chuẩn bị cho lễ Valentine 14/2 sắp tới, Vechai tui hướng dẫn các bạn làm 1 dự án LED trái tim có thể điều chỉnh hiệu ứng điều khiển từ xa qua wifi.
Nguyên lý
Trong cộng đồng Arduino chúng ta chắc không lạ với các dự án làm LED trái tim RGB. Nếu các bạn tìm hiểu tutorial trên internet thì sẽ thấy đây là một dự án khá khó xơi, bao gồm rất nhiều linh kiện IC và microcontroller, chưa kể là hàn mạch rất tốn thời gian nếu chơi LED 3 màu với số lượng bóng lớn. Hơn nữa vì các tutorial dựa trên chip ATmel nên LED trái tim thường bị "đóng chết" với số lượng hiệu ứng cố định và ít có giao tiếp thực với thế giới bên ngoài. Nhận thấy khuyết điểm trên, Vechai tui đề xuất một hướng đi mới cho phù hợp với xu thế Internet của Vạn Vật năm 2017 như sau:
Chip điều khiển: Thay vì dùng board UNO hoặc chip ATmega, ta sẽ dùng bo mạch ESP8266 Node MCU. Ta sẽ dùng board này thiết lập 1 wifi Access Point (AP) và 1 web server. Người dùng có thể sử dụng máy tính hoặc smartphone truy cập vào webserver này để điều chỉnh hiệu ứng như ý muốn. Thay vì dùng các phím button vật lý hay potentiometer để chọn chỉnh hiệu ứng, ta sẽ tương tác qua trang web. Hiện nay các bạn có thể mua bo mạch này trên aliexpress với giá khoảng 80k VND.
LED: Thay vì dùng LED RGB tròn 4 chân và sử dụng IC HC595 để điều khiển từng bóng, ta sẽ dùng LED neopixel W2812. Ưu điểm lớn nhất của Neopixel là có tích hợp sẵn IC trong bóng nên ta không phải hàn mạch mà vẫn có thể điều khiển từng bóng riêng biệt chỉ với 1 chân của chip điều khiển. Hiện nay các bạn có thể mua LED này với giá khoảng 1.6k VND cho 1 bóng trên Aliexpress.
Chuẩn bị phần cứng
Mặt sau của dự án chỉ đơn giản như vậy thôi, mặc dù hộp LED của tui sử dụng đến 24 LEDs.
WS2812 | NodeMCU |
5V | VU |
GD | GD |
DIN | D1 |
Các bạn lưu ý
- Trên lý thuyết thì NodeMCU ESP8266 sử dụng logic 3.3V trong khi Neopixel sử dụng logic 5V. Tuy nhiên vì NodeMCU không nhận tín hiệu từ Neopixel nên các bạn yên tâm cắm vào chân D1 mà không sợ làm hư board mạch.
- Các bạn nên tìm mua NodeMCU v3 Lolin vì board này có thêm chân nguồn 5V trực tiếp từ USB để cung cấp nguồn cho Neopixel
Nạp firmware
Thông thường thì các bạn có thể lập trình NodeMCU trên Arduino (Vào Board Manager => Tải Arduino core cho ESP8266). Tuy nhiên hôm nay tui sẽ hướng dẫn các bạn nạp firmware trực tiếp từ tập tin hex.
Các bạn vào trang Git Esp8266 tải tập tin zip và giải nén. Tiếp đến vào Git của tui (mirror) để tải file hex với tên LED.bin.
Các bạn chạy chương trình và thay phần tô màu xanh lục bằng đường dẫn tập tin LED.bin mà các bạn vừa tải về ở tab Config:
Sau đó quay trở lại tab Operation và bấm Flash để nạp firmware (nhớ chọn COM cho đúng với con ESP8266)
Sau khi nạp firmware xong thì các bạn bấm RST trên board mạch (hoặc rút USB rồi cắm lại)
Sử dụng
Nếu nạp firmware thành công thì các bạn sẽ thấy hiện lên 1 wifi với tên ESP8266_NEOPIXEL. Pass của wifi này là 9876543210.
Tiếp đến các bạn dùng 1 trình duyệt web bất kỳ vào trang 192.168.4.1. Các bạn sẽ thấy hiện lên 1 trang web như sau:
Trang web này sẽ cho phép bạn chọn 5 hiệu ứng. Các bạn bấm vào tên hiệu ứng rồi Submit để điều khiển LED. Ngoài ra các bạn cũng có thể kéo thanh để điều khiển độ sáng của LED.
Chúc các bạn thành công!