Thứ Tư, Tháng Mười 27, 2021
Trang chủ DIY IoT with Blynk – Bài 2 : Đồng bộ nút nhấn điều...

IoT with Blynk – Bài 2 : Đồng bộ nút nhấn điều khiển đèn

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 điều khiển một đèn led bằng cách tác động trên App điện thoại. Bây giờ chúng ta sẽ giả sử mỗi lần bạn muốn bật đèn bạn lại cần phải lấy điện thoại ra …. rồi bật ứng dụng lên … rồi sau đó đèn mới sáng. Nó cũng hơi bất tiện đúng không nào?. Vì vậy ở bài viết này mình sẽ hướng dẫn các bạn dùng nút nhấn để điều khiển đèn led và đồng bộ nút nhấn lên trên App Blynk

Bài hướng dẫn trước IoT with Blynk – Bài 1 : Bật tắt đèn từ xa bạn có thể xem lại tại đây.

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ị

1. Phần cứng

2. Phần mềm

Hướng Dẫn

1. Phần cứng 

Vì sử dụng đèn LED – D0 có sẵn trên board mạch nên phần cứng chúng ta không cần setup!

Nút nhấn mình sử dụng nút nhấn có sẵn trên board nên cũng không cần setup gì thêm !

2. Phần mềm

📱  Blynk App

Chúng ta sẽ sử dụng Project ở bài trước. Bạn hãy xem qua bài: IoT with Blynk – Bài 1 : Bật tắt đèn từ xa!

Mình chỉ cần chỉnh sửa lại OUTPUT một chút – Các bạn chỉnh D0 thành V0 ^^

IoT with Blynk – Bài 2  Đồng bộ nút nhấn điều khiển đèn

💻 Arduino

Trước tiên chúng ta sẽ gắn board NodeMCU CP2102 vào máy tính. Sau đó các bạn kiểm tra xem đã nhận tool board và COM chưa?

IoT with Blynk - Bài 1  Bật tắt đèn từ xa

  • Nếu chưa nhận COM bạn hãy kiểm tra lại dây cắm , trong trường hợp nếu hiện lên dấu⚠️ thì bạn chưa cài driver CP2102, bạn có thể tham khảo cách cài đặt tại đây
  • Nếu không thấy NodeMCU bạn hãy kiểm tra lại xem đã cài đặt tool board esp8266 trên Arduino chưa , nếu chưa bạn có thể tham khảo cách cài đặt tại đây

Nếu mọi thứ đã OK chúng ta sẽ tiếp tục Update code vào NodeMCU

Source Code

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BUTTON D3 // Chân nối với nút nhấn onboard
#define LED D0 // Chân nối với đèn LED onboard

char auth[] = "YourAuthToken"; // Nhập AuthToken
char ssid[] = "YourNetworkName"; // Nhập tên WiFi
char pass[] = "YourPassword"; // Nhập password WiFi

boolean checkData = false;
int lastBtnStatus;
int VIRTUAL_PIN;

BLYNK_CONNECTED() {
Blynk.syncAll();
}

BLYNK_WRITE(V0)
{
VIRTUAL_PIN = param.asInt();
checkData = true;
}

void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
Blynk.begin(auth, ssid, pass, "makerblynk.ddns.net", 8080);
lastBtnStatus = digitalRead(BUTTON);
}

void loop() {
Blynk.run();
if (checkData == true) {
digitalWrite(LED, VIRTUAL_PIN);
checkData == false;
}

if (digitalRead(BUTTON) == 0)
{
delay(100);
if (digitalRead(BUTTON) != 0)
{
VIRTUAL_PIN = !VIRTUAL_PIN;
digitalWrite(LED, VIRTUAL_PIN);
Blynk.virtualWrite(V0, VIRTUAL_PIN);
Serial.println("In Here" + String(VIRTUAL_PIN));
}
}

}

Các bạn sẽ dùng hàm này để đọc trạng thái trả về khi nút nhấn Virtual V0 được tác động trên Blynk App

BLYNK_WRITE(V0)
{
VIRTUAL_PIN = param.asInt();
checkData = true;
}

Hàm này dùng để thay đổi trạng thái đèn LED khi có tác động từ hàm trên 

  • Biến checkData dùng làm điều kiện để thay đổi trạng thái nút nhấn
  • Trạng thài của đèn led sẽ bằng trạng thái 0 hoặc 1 trên Blynk App

if (checkData == true) {
digitalWrite(LED, VIRTUAL_PIN);
checkData == false;

Ở đây mình dùng hàm này để đọc trạng thái có nhấn nút hay không , và thêm một chút chống dội nút nhấn vào. Khi bạn ấn nút trạng thái đèn led cũng thay đổi và biến Virtual V0 trên Blynk App cũng thay đổi theo ^^

if (digitalRead(BUTTON) == 0)
{
delay(100);
if (digitalRead(BUTTON) != 0)
{
VIRTUAL_PIN = !VIRTUAL_PIN;
digitalWrite(LED, VIRTUAL_PIN);
Blynk.virtualWrite(V0, VIRTUAL_PIN);
}

IoT with Blynk – Bài 2  Đồng bộ nút nhấn điều khiển đèn

Sau khi chỉnh sửa xong các bạn sẽ tiến hành nạp chương trình vào NodeMCU 
Vậy là chúng ta đã có thể điều hiển đèn led bằng nút nhấn và bằng điện thoại đồng bộ với nhau rồi !

Tổng Kết 

Trong bài này chúng ta đã học được

  • Cách điều khiển đèn led bằng nút nhấn
  • Điều khiển đèn led bằng App
  • Đồng bộ trạng thái của đèn trên board với trên Blynk

Vậy mình đã hướng dẫn các bạn cách truyền dữ liệu từ hai chiều

NodeMCU <-> Server <-> Blynk 

Ở bài tới chúng ta sẽ đọc một cảm biến nhiệt độ DHT11 và hiển thị dữ liệu lên Blynk App !!!

Chúc các bạn thành công với dự án của mình !

 

 

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Most Popular

Tìm hiểu CRC

🤔 Có bạn nào thắc mắc là các thiết bị điện tử ngoài việc chúng có thể giao tiếp trao đổi thông tin với...

Tìm hiểu Giao thức I2C

Có bạn nào thắc mắc làm sao giữa các thiết bị điện tử chúng có thể giao tiếp trao đổi data qua lại lẫn...

Tìm hiểu cách sử dụng các cảm biến Nhiệt độ & Độ ẩm DHT

Chắc nhiều bạn sinh viên cũng quá quen mấy con này rồi nhỉ. Nói không sai, DHT có thể xem như cảm biến quốc...

Tìm hiểu về Nhiệt độ biểu kiến cũng như Cách ta cảm nhận nhiệt độ

Có bạn nào từng thắc mắc rằng, tại sao đôi khi nhiệt độ ngoài trời không cao lắm, nhưng ta lại thấy nóng nực...

Recent Comments

0
Would love your thoughts, please comment.x
()
x