Điều khiển và giám sát qua điện thoại với ESP8266 và Blynk

Hôm nay xin chia sẻ với các bạn cách điều khiển thiết bị bằng smartphone, ngoài ra ta còn có thể quan sát/ giám sát được thông tin dữ liệu, các thông số như nhiệt độ, độ ẩm môi trường theo thời gian thông qua smartphone của mình.

Để chuẩn bị bắt đầu thì bạn cần biết một ít kiến thức về cách lập trình với ESP8266 mình có trình bày ở một số bài viết trước. Nếu bạn đã biết rồi thì có thể bỏ qua.

Chuẩn bị

Phần cứng

  • Kit Node MCU hoặc ESP8266 v7 + mạch USB2UART tương ứng
  • Dây nối
  • Breadboard
  • Cảm biến DHT11 hoặc DHT22
  • Điện thoại smartphone dùng hdh Android hoặc iOS

Phần mềm

  • Phần mềm lập trình cho ESP8266 là Arduino IDE
  • App Blynk cho AndroidiOS

Tại sao lại dùng Blynk ?

blynk-3-cover2

Blynk thực ra là một cái app trên điện thoại, cho phép người dùng có thể tạo ra giao diện và điều khiển thiết bị theo ý thích của cá nhân. Mình lựa chọn Blynk vì một số lý do sau:

  • Dễ sử dụng: Quá đơn giản, chỉ việc vào store, cài đặt, sau đó đăng ký tài khoản và mất không quá 5 phút để làm quen.
  • Đẹp và đầy đủ: Giao diện của Blynk quá tuyệt vời, sử dụng bằng cách kéo thả, bạn cần nút bấm, kéo thả nút bấm, bạn cần đồ thị, kéo thả đồ thị, bạn cần LCD, kéo thả LCD, tóm lại là bạn cần gì thì kéo thả cái đó.
  • Không phải lập trình android hay ios: Nếu như không có kiên thức về làm app trên điện thoại thì việc điều khiển thiết bị từ chính smartphone của mình quả là điều vô cùng khó khăn và phức tạp. Nhờ blynk thì chúng ta có thể bỏ qua bước lập trình tạo app. Có thể thử nhanh chóng và ứng dụng được dự án của mình vào thực tế.
  • Thử nghiệm nhanh chóng, có thể điều khiển giám sát ở bất kỳ nơi nào có internet.

Tất nhiên ngoài những điểm lợi từ blynk thì còn có những cái hạn chế như phải mua energy để tạo được nhiều giao diện và chia sẻ giao diện cho người khác. Những cái này cũng không phải là vấn đề lớn lắm.

Để sử dụng được blynk thì cần phải tải thư viện của nó thông qua Arduino IDE

Chọn Sketch -> Include Library -> Manage Libraries, tìm kiếm blynk và install.

blynk_arduino

Bật tắt LED qua điện thoại

Tới đây là đã xong được các bước chuẩn bị. Giờ thì mình đi vào lập trình điều khiển ấn nút trên blynk LED nối với chân D0 trên kit NodeMCU sáng/ tắt

Sơ đồ chân của NodeMCU/ ESP8266

nodemcu_pinout

Tạo tài khoản mới trên blynk khá đơn giản chỉ việc nhập email và pass vào là xong nên mình sẽ bỏ qua bước này

Tạo project mới cho blynk

create_project_blynk

Thêm nút nhấn vào blynk

add_button_blynk.gif

Lấy Auth token để có thể kết nối tới ESP8266 bằng cách vào hình lục giác, chọn new device và lưu lại giá trị tại AUTH TOKEN.

get_auth_token_blynk.gif

Xem như đã xong được giao diện đơn giản trên điện thoại, giờ là chương trình cho ESP8266

Lưu ý:

Có 3 chỗ cần thay thông tin là YourAuthToken, YourNetworkName,YourPassword

Chương trình cho ESP8266

Thử thành quả bằng cách ấn vào nút play hình tam giác và tác động lên nút nhấn xem kết quả.

led_result_blynk

Giám sát nhiệt độ, độ ẩm

Như ở bài hướng dẫn đọc nhiệt độ độ ẩm với ESP8266 thì các bạn đã biết được cách đọc và hiển thị thông tin về nhiệt độ, độ ẩm lên máy tính, giờ chúng ta thử kết hợp blynk để hiển thị thông tin này lên điện thoại xem thế nào

Sử dụng giao diện blynk đã tạo bên trên, thêm value display S và value display M

add_value_blynk

 

Cấu hình cho các thuộc tính mới add, chọn pin là virtual v0 và v1,đặt lại tên và chọn màu sắc hiển thị

 

temp_humid_blynk

Cuối cùng là viết chương trình cho ESP8266 và thay đổi  thông tin về token và wifi sau đó nạp chương trình

Chương trình cho NodeMCU/ESP8266

Kết quả

Ấn vào nút tam giác và chờ kết quả hiển thị, sau mỗi 1 giây thì giá trị nhiệt độ và độ ẩm sẽ cập nhật 1 lần

result_temp_humid_blynk

Lưu ý:

Nếu bạn bị lỗi tại thư viện SimpleTimer.h thì bạn có thể tải và cập nhật thủ công tại đây

Cố thêm chút nữa

Xem như chúng ta đã hoàn thành được việc hiển thị nhiệt độ và độ ẩm, giờ nếu còn energy thì thêm graph và gauge hiển thị thông tin cho rực rỡ sắc màu, history graph thường cập nhật sau mỗi 1 phút mới lên dữ liệu nên nếu không thấy thì bạn cứ chờ đợi nhé.

Chỉnh sửa giao diện, cấu hình và kết quả

Tạm kết

Thế là chúng ta đã có thể điều khiển bật tắt đèn thông qua smartphone, ngoài ra còn có thể quan sát được nhiệt độ và độ ẩm của môi trường nữa, đây chỉ là những bước khởi đầu để bạn làm quen với việc lập trình, điều khiển, giám sát thông qua điện thoại. Blynk có thể dùng để điều khiển và giám sát ở bất kỳ nơi nào có internet, không bị giới hạn trong một mạng cụ thể nào. Trong blynk còn rất nhiều điều lý thú để các bạn có thể tìm hiểu và khám phá thêm. Mình sẽ sớm cập nhật thêm các hướng dẫn cho các bạn trong các bài tiếp theo.

79
Leave a Reply

avatar
38 Comment threads
41 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
36 Comment authors
scBùi Hữu Thànhdungtrungthanhanh Recent comment authors

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

  Subscribe  
newest oldest most voted
Notify of
Hiếu
Guest
Hiếu

alo xin chào . cho tôi hỏi muốn tắt mở Led qua điện thoại và dùng nút bấm/công tắc thì phải làm như thế nào ..
bạn có hướng dẫn và code thì cho mình xin …..
xin cảm ơn nhiều.

Nam
Guest

Cho hỏi: Nếu tôi có 2 điện thoại và cùng điều khiển như vậy thì phải làm thế nào?

toàn
Guest
toàn

Bạn ơi cho mình hỏi chút.
– Mình có thể sử dụng 1 điện thoại để điều khiển 2 arduino cùng wifi được không
– blynk có thể đưa cảnh báo ra loa điện thoại được không (giả sử mình giám sát nhiệt độ, nếu nhiệt độ vượt quá giá trị mình đặt thì có âm thanh phát ra từ loa điện thoại)
Cảm ơn bạn rất nhiều

Nam
Guest
Nam

– 1 điện thoại có thể điều khiển được 2 (hoặc nhiều) phần cứng khác nhau nhé bạn
– Mình chỉ thấy blynk có thể gửi tin nhắn dạng như messger, mail hoặc tweet còn mà đổ chuông thì mình không biết

Huỳnh Sanh
Guest
Huỳnh Sanh

mình đã làm theo hướng dẫn nhưng khi chạy project blynk báo project is offline

Tuấn Anh
Guest
Tuấn Anh

Chào bạn.
Mình muốn điều khiển qua wifi như vậy và chỗ đèn có cộng thêm công tắt cảm ứng điện dung 1 chạm, vậy thêm code cái công tắt đó như thế nào, chỉ dùm mình phần code với.

diephue
Guest
diephue

mình cũng muốn làm như vậy mà không biết làm ntn đây

Nam
Guest

Cho mình hỏi cách để mua thêm enegyr trong blynk

nam
Guest
nam

Mình làm như hướng dẫn mà nó báo thế này là sao? Arduino: 1.6.7 (Windows 10), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)” WARNING: Spurious .github folder in ‘Adafruit NeoPixel’ library WARNING: Spurious .github folder in ‘DHT sensor library’ library WARNING: Spurious .github folder in ‘DHT sensor library’ library In file included from G:\ARDUINO\Blynk_VN_v0.4.8\libraries\DHT-sensor-library-master\DHT_U.cpp:22:0: G:\ARDUINO\Blynk_VN_v0.4.8\libraries\DHT-sensor-library-master\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory #include ^ compilation terminated. Multiple libraries were found for “DHT.h” Used: G:\ARDUINO\Blynk_VN_v0.4.8\libraries\DHT-sensor-library-master Not used: G:\ARDUINO\arduino-1.6.7\libraries\DHT-sensor-library-master exit status 1 Error compiling. This report would have more information with “Show verbose output during compilation” enabled… Read more »

Tân
Guest
Tân

In file included from C:\Users\T\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:

C:\Users\T\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

#include

^

compilation terminated.

exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

LÀ BỊ LÔI GÌ VẬY BẠN

Hoan
Guest
Hoan

cảm ơn ad , mình đã làm được theo như ad hướng dẫn, mình có thăc mắc là bây giờ mình muốn đồng bộ tín hiệu , ví dụ như thiết bị đang ON nhưng do mất điện thì trên Blynk biết và cho nút nhấn về OFF theo trạng thái thiết bị luôn , cảm ơn ad

Nguyễn Văn Hưng
Guest
Nguyễn Văn Hưng

add ơi cho m hỏi là mình muốn sử dụng 1 công tắc( coi như là 1 công tắc báo động khi trộm chẳng hạn) để giao tiếp với esp8266 thì có kết nối trực tiếp dc không và kết nối như nào để khi công tắc bật thì điện thoại của mình báo là có tìn hiệu của công tắc thông qua 1 app ứng dụng, mog add chia sẻ kiến thức để giúp đỡ

Huy
Guest
Huy

mình điều khiển 2 đèn có cách nào giúp mình tắt hết 2 đèn cùng 1 lúc ko

Minh
Guest
Minh

Bạn ơi sao minh code blynk.begin rồi phía dưới mình có dùng code của dht.begin để lấy giá trị cài đặt mà dht11 không chạy. Bỏ dòng blynk.begin thi dht chạy ổn.

huy
Guest
huy

cho mình hỏi chân 5 kết nối với cảm biến mình xài chân digital thay chân analog dc ko v ?

phúc
Guest
phúc

mình muốn in giá trị của blynk ra monitor thì phải làm ntn ạ

thanh hải
Guest
thanh hải

add cho minh hỏi phần mềm blyn này có cảnh báo thiết bị của mình bị hư không?

Trần Nhân
Guest
Trần Nhân

Mình đã làm 1 nút trên điện thoại D0 điều khiển relay A, mình muốn llàm thêm 1 nút nhấn điều khiển relay A đó. Tức là vừa điều khiển thủ công, vừa điều khiển trên điện thoại. Vậy mình viết code lại như thế nào bạn, mong bạn chỉ giúp.

Cuong
Guest
Cuong

cho mình hỏi là Blynk có hiển thị cường độ dòng điện do được từ cảm biến hay ko ? …Nếu được thì lập trình Blynk như thế nào ?

Thành Luân
Guest
Thành Luân

anh cho em hỏi nếu muốn điều khiển thêm một vài cái đèn nữa ở các chân D1,2,3,4,5,6,7,8 thì mình phải sửa code như thế nào ạ.

thành luân
Guest

Anh ơi nếu mình muốn điều khiển thêm các đèn khác ở chân D1 D2 D3… thì phải sửa code như thế nào ạ.

Hưng
Guest
Hưng

cho mình hỏi làm sao để lập trình sao cho đến 1 nhiệt độ , độ ẩm nào đó thì bóng đèn tự tắt được k ạ

phương
Guest
phương

bạn cho mình hỏi. mình bị lỗi wasn’t online yet là sao nhỉ.

phương
Guest
phương

bạn cho mình hỏi sao blynk của mình bị lỗi wasn’t online yet.

Lợi
Guest
Lợi

ad ơi cho e xin facebook để e hỏi cho tiện với ạ !
của e khi compiling bị lỗi này ạ
Library can’t use both ‘src’ and ‘utility’ folders. Double check D:\andrino\libraries\Blynk

Error compiling for board Generic ESP8266 Module.

thinh
Guest
thinh

exit status 1
Error compiling for board Generic ESP8266 Module.
mk cũng bị lỗi này mà không sao sửa được .

hưng
Guest
hưng

Chào các bạn. cho mình hỏi giờ mình muốn kết nối mạng để điều khiển từ xa thì phải làm như nào ạ?
mình xin cảm ơn mọi người ạ

tien
Guest
tien

cho minh hoi loi nay sua the nao a
Arduino: 1.8.5 (Windows 7), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, 4M (1M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 115200”

C:\Users\Administrator\Documents\Arduino\dk_blynk\dk_blynk.ino:7:25: fatal error: SimpleTimer.h: No such file or directory

#include

^

compilation terminated.

exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

anh
Guest
anh

cậu ơi tớ làm theo cậu mà khi hiện thị nhiệt độ ,độ ẩm nó không hiện giá trị trên app, chạy serial nó cứ báo fail , tớ thử 2 con cảm biến nó vẫn báo lỗi thế

anh
Guest
anh

em sài module dht11

linh
Guest
linh

2m cũng bị tương tự, ko biet bạn đã có cách khac phục chưa ạ, DHT11 cũng báo fail

linh
Guest

#define DHTPIN 2 có nghĩa là GPIO 2, chứ ko phải là D2 trên board, nên bạn phải cấm vào chân D4 mới là GPIO2.

tuantu
Guest
tuantu

a ơi cho e hỏi. Liệu mình có thể updata trạng thái của thiết bị lên app blynk đc không và a có tài liệu nào về cách truyền dữ liệu của blynk có thể cho e tham khảo vs. e cảm ơn

DH
Guest
DH

lỗi này sửa ntn ạ!
C:\Users\Acer\AppData\Local\Temp\arduino_modified_sketch_775497\sketch_mar19a.ino:5:25: fatal error: SimpleTimer.h: No such file or directory

#include

^

compilation terminated.

exit status 1

DH
Guest
DH

lỗi này sửa ntn ạ AD
C:\Users\Acer\AppData\Local\Temp\arduino_modified_sketch_775497\sketch_mar19a.ino:5:25: fatal error: SimpleTimer.h: No such file or directory

#include

^

compilation terminated.

exit status 1

letuantu
Guest
letuantu

anh có thể hướng dẫn thêm cho e phần làm 1 cái buton để hiển thị trạng thái của led đc k anh, để có thể biết đc rằng đã bật đc thiết bị hay chưa

trungthanh
Guest
trungthanh

có thể lưu lại các giá trị độ ẩm và nhiệt độ k ạ?

Lợi
Guest
Lợi

AD có thể nói Nguyên lý hoạt động của mạch bật tắt đèn dùng NodeMCU ESP8266 kết nối relay điều khiển 2 bóng đèn thông qua Blynk đc ko ạ?

Thiên
Guest
Thiên

Cho mình hỏi là đối với Buttom (V0) thì khi on/off thì nó gửi dữ liệu gì đi?
Mình muốn khi nhấn V0 thì thực hiện 1 đoạn chương trình như chớp tắt LED.

Đỗ Thành Mai
Guest
Đỗ Thành Mai

Hi. Bạn có thể hướng dẫn thêm cho mình cách báo cảm biến( cảm biến ánh sáng, cảm biến siêu âm) về điện thoại qua blynk được không. Cảm ơn bạn nhiều. Thanks.

Anh
Guest
Anh

Anh ơi em làm được hiển thị dữ liệu và điều khiển thiết bị qua app blynk rồi ,giờ em muốn cập nhật thêm dữ liệu kên thinkspeak từ dữ liệu appblyk thì em phải làm sao ạ, anh có thể giúp em được không ạ .

dung
Guest
dung

Build options changed, rebuilding all
C:\Users\ACER\AppData\Local\Temp\arduino_modified_sketch_200505\sketch_jun08a.ino:5:25: fatal error: SimpleTimer.h: No such file or directory

#include

^

compilation terminated.

exit status 1
Error compiling for board NodeMCU 0.9 (ESP-12 Module).

dung
Guest
dung

cho mình hỏi đây là lỗi gì với
Build options changed, rebuilding all
C:\Users\ACER\AppData\Local\Temp\arduino_modified_sketch_200505\sketch_jun08a.ino:5:25: fatal error: SimpleTimer.h: No such file or directory

#include

^

compilation terminated.

exit status 1
Error compiling for board NodeMCU 0.9 (ESP-12 Module).

Bùi Hữu Thành
Guest
Bùi Hữu Thành

anh cho em hỏi : trên đây anh dùng 1 cảm biến DHT11 , nhưng nếu em muốn dùng nhiều hơn 1 ,cụ thể em dùng 3 cảm biến DHT11 thì code phải thay đổi như thế nào ạ, em cũng thay đổi thử nhưng không thành công #define BLYNK_PRINT Serial #include #include #include #include char auth[] = “14460bd9ba524bc0b70e7699743809ff”; //Token cua blynk char ssid[] = “Khanh.Ly”; //Ten wifi char pass[] = “congthu8668”; //Pass wifi #define DHTPIN 5 // Pin ket noi voi DHT1 #define DHTPIN 6 // Pin ket noi voi DHT2 #define DHTPIN 7 // Pin ket noi voi… Read more »