Giới Thiệu
Chào các bạn! Ở bài viết trước mình đã hướng dẫn các bạn cách đọc đọc cảm biến DHT11 với NodeMCU và hiển thị lên Blynk Server. Ở bài viết này mình sẽ hướng dẫn các bạn cách điều khiển động cơ RC Servo thông qua app Blynk
Nếu bạn chưa biết Blynk là gì thì hãy tham khảo bài viết: IoT with Blynk – Hướng Dẫn Cài Đặt để hiểu về cài đặt thư viện cho Arduino, Blynk App và cách tạo tài khoản phù hợp với hướng dẫn của mình!
Chúng ta cùng bắt đầu nào !
Chuẩn Bị
Chuẩn Bị
1. Phần cứng
- Kit RF Thu Phát Wifi ESP8266 NodeMCU Lua CP2102
- Động cơ RC Servo ở đây mình sử dụng Động Cơ RC Servo 9G
2. Phần mềm
- Arduino IDE đã cài đặt tương thích với ESP8266.
Nếu bạn chưa cài đặt có thể tham khảo hướng dẫn sau: Hướng dẫn lập trình ESP8266 với Arduino IDE - Thư viện Blynk trên Arduino.
Nếu bạn chưa có thư viện Blynk có thể tham khảo hướng dẫn sau: IoT with Blynk – Hướng Dẫn Cài Đặt - Mobile App Blynk , tất nhiên rồi mình đang sử dụng Blynk mà ^^
Hướng Dẫn
1. Phần cứng
Các bạn kết nối NodeMCU với DHT11 như sau:
Kit WiFi ESP8266 NodeMCU Lua CP2102 | Động Cơ RC Servo 9G |
VCC | + |
GND | – |
D2 | OUT |
2. Phần mềm
📱 Blynk App
Chúng ta sẽ tạo vẫn sử dụng project cũ và giữ nguyên mã AuthTokens . Nếu bạn là người mới hãy tham khảo bài viết:
IoT with Blynk – Hướng Dẫn Cài Đặt trước khi thực hiện tiếp các bước sau.
Ở trong bài này mình sẽ sử dụng hai nút nhấn và một Slider để điều khiển Servo
Đầu tiên chúng ta sẽ thêm hai nút nhấn Styled Button – tương ứng với Virtual Pin-V1, Virutal-V2.
Chúng ta sẽ thêm một Slider tương ứng với Virtual-V0
💻 Arduino
Nếu bạn là người mới hãy tham khảo trước bài viết:
IoT with Blynk – Hướng Dẫn Cài Đặt để biết cách cài đặt Arduino cho phù hợp với bài học này !
#define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <Servo.h> char auth[] = “YourAuthToken”; // Nhập AuthToken của bạn char ssid[] = “YourNetworkName”; // Nhập tên WiFi char pass[] = “YourPassword”; // Nhập password WiFi Servo servo; int pos; BLYNK_WRITE(V0) { servo.write(param.asInt()); if (pos < param.asInt()) { for (pos; pos <= param.asInt(); pos += 1) { servo.write(pos); delay(10); } } else { for (pos; pos >= param.asInt(); pos -= 1) { servo.write(pos); delay(10); } } } BLYNK_WRITE(V1) { if (param.asInt() == 1) { left(); } } BLYNK_WRITE(V2) { if (param.asInt() == 1) { right(); } } void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass, "makerblynk.ddns.net", 8080); servo.attach(D2); } void loop() { Blynk.run(); } void left() { for (pos; pos <= 180; pos += 1) { servo.write(pos); delay(10); } } void right() { for (pos; pos >= 0; pos -= 1) { servo.write(pos); delay(10); } }
Sau khi đã thêm thư viện thành công các bạn cần chỉnh sửa thêm một số phần trong Source Code
char ssid[] = “YourNetworkName”; // Nhập tên WiFi
char pass[] = “YourPassword”; // Nhập password WiFi
Nếu bạn làm các bước như trên thành công thì chúng ta sẽ được giao diện hiển thị như thế này!
Tổng Kết
Trong bài này chúng ta đã học được
- Điều khiển Servo với NodeMCU
- Hiển thị giao diện và điều khiển trên Blynk App
Chúc các bạn thành công với dự án của mình !