Thứ Sáu, Tháng Chín 25, 2020
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

Hướng dẫn sử dụng Mạch đóng ngắt tải không tiếp xúc chế tạo Thiết bị vệ sinh tự động

Từ ngày 03/08/2020 mạch chuyển sang phiên bản mới tuy nhiên kích thước, vị trí linh kiện và chức năng của mạch giống và...

Lưu trữ nhật ký dữ liệu Online với ESP32 và Google Spreadsheets

Giới Thiệu Chào các bạn, trong các dự án IoT nhỏ gọn thì việc lưu trữ  và kiểm soát dữ liệu trên đám mây cũng...

Đọc Cảm Biến DHT11/DHT21/DHT22 không bị DELAY chương trình

Giới Thiệu Chào các bạn, hôm nay mình giới thiệu và hướng dẫn cách đọc cảm biến các dòng DHT11/DHT21/DHT22 ở bài này mình sử...

Gỡ lỗi ESP8266/ESP32 với thư viện ArduinoTrace

Giới Thiệu Chào các bạn, thông thường khi các bạn debug chương trình các bạn thường sử dùng hàm Serial.print() tuy nhiên, hôm nay mình sẽ...

Recent Comments

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