Hướng dẫn sử dụng phần mềm blynk năm 2024

Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật (KHKT), các công cụ, máy móc hỗ trợ ngày càng ăn sâu vào các lĩnh vực của đời sống: từ những ngành truyền thống lâu đời như dệt may, nông nghiệp… đến những ngành công nghệ cao, đòi hỏi sự tỉ mỉ và chính xác cực cao. Ngoài ra chúng cũng là công cụ giải trí, liên lạc,… giúp con người liên lạc, giao tiếp với nhau một cách dễ dàng, nhanh chóng và cần thiết, nhất là trong đại dịch Covid – 19, khi con người phải hạn chế việc giao tiếp trực tiếp với nhau.

Trải qua 4 thời đại công nghệ, con người cũng càng quan tâm đến vấn đề tự động hóa. Với thời đại 4.0 hiện nay thì cụm từ “tự động hóa” không còn xa lạ nữa, nó đã ăn sâu vào tiềm thức của mỗi gia đình, nó hiện hữu trong từng công việc chúng ta làm, những dụng cụ chúng ta sử dụng.

Song song với những tiến bộ mà KHKT mang lại, chúng ta lại càng quan tâm đến mối liên hệ giữa năng lượng - môi trường. Chúng ta cần phải phối hợp giữa sự phát triển của kỹ thuật và bảo vệ môi trường thì mới gọi là phát triển bền vững. Từ đó, các loại năng lượng sạch được con người cho ra đời như điện gió , điện mặt trời… giúp giảm thiểu tác hại ô nhiễm môi trường.

Và nếu bạn muốn kết hợp cả tự động hóa và năng lượng sạch để sử dụng cho khu vườn xanh của bạn, chào mừng bạn đã đến với bài viết này. Đơn giản và dễ làm nhưng lại vô cùng hữu ích, nhất là những người luôn bận bịu với công việc. Nhưng túi tiền của bạn không nhiều? Đừng lo, chi phí mọi thứ bạn cần vô cùng thấp và dễ tìm. Quan trọng nhất là bạn có đủ kiên trì để làm đến cùng hay không thôi. Không phải lo đâu, chỉ cần 1 ngày, bạn đã có thể hoàn thành dự án của bạn rồi. Cố lên!

Nhưng trước hết, chúng ta cần chọn một vi xử lý có khả năng kết nối Wifi và hỗ trợ những công cụ lập trình quen thuộc. Và tôi nhận thấy rằng, một chiếc Esp8266 là một sự lựa chọn tuyệt vời.

Những điểm thú vị của chiếc vi xử lý này:

  • Khá nhỏ (chỉ bằng cục tẩy của bạn).
  • Khả năng phát/ kết nối Wifi tốt.
  • Năng lượng tiêu thụ cực thấp (khoảng 100mA – 400mA ở trạng thái hoạt động và dưới 50mA ở trạng thái ngủ).
  • Chi phí thấp (chỉ khoảng 60.000đ – 150.000đ, số liệu tháng 5/2021).

Những gì bạn đạt được sau bài viết này:

  • Biết cách sử dụng Esp8266.
  • Biết cách sử dụng app Blynk.
  • Cập nhật Over – the – air (OTA) bằng HTTP.
  • Quản lý năng lượng cho dự án.

Step 1: Chuẩn Bị

1. Phần cứng

Esp8266 NodeMCU x1

Tấm pin mặt trời 6V - 10W x1

Relay 5v x1

Mạch sạc TP4056 x1

Pin Lithium 18650 3.7-4.2v x1

Mạch tăng áp Boost Converter T64 x1

Mạch đo nhiệt độ và độ ẩm DHT11 x1

Diode 1N4007 x1

Điện trở 1 kΩ x1

Nút nhấn x1

Van nước/ bơm nước 12v x1

Breadboard x1

Dây nối

2. Phần mềm

Phần mềm Arduino

Phần mềm Blynk

Step 2: Cài Đặt Phần Mềm

  1. Tải và cài đặt Arduino IDE: Link hướng dẫn.
  2. Cài đặt Esp8266 board trên IDE: Link hướng dẫn.
  3. Cài đặt phần mềm Blynk:

Bước 1 (Đăng nhập): Sau khi tải Blynk từ cửa hàng ứng dụng, ta đăng nhập phần mềm Blynk.

Bước 2 (Quét QR): Sau bước đăng nhập, ta nhấn vào biểu tượng quét QR trên thanh công cụ.

Sau đó, bạn đưa thiết bị và quét vào mã QR bên trên.

Bây giờ, một chương trình do chúng tôi soạn sẵn đã nằm trong tay bạn. Nếu muốn, bạn có thể tự tay thiết kế một bản mới của riêng mình.

Bước 3 (Lấy Auth Token): Bạn nhấn vào biểu tượng hình ốc vít, sau đó nhấn Email all. Auth Token sẽ được gửi về email của bạn. Auth Token này được dùng để thêm vào code để phần mềm nhận biết được esp8266 của bạn được sử dụng đúng project.

Step 3: Thiết Kế Mạch

Mạch sạc pin TP4056 tích hợp sạc pin Lithium giúp cho việc hoạt động liên tục một cách hiệu quả: khi trời nắng, mạch vừa sạc pin vừa cấp nguồn thiết bị; ngược lại mạch sẽ lấy nguồn từ pin để cung cấp cho thiết bị.

Vì nguồn đầu ra của TP4056 là 3.7v - 4.2v nên ta cần bổ sung mạch tăng áp lên 5v để các thiết bị hoạt động ổn định.

Bạn có thể thay pin 9v trên hình bằng nguồn 12v hoặc 3 viên pin 18650 mắc nối tiếp nhau. Vậy liệu 3 viên pin 18650 mắc nối tiếp nhau thì sẽ cung cấp nguồn được bao lâu? Bây giờ ta phải giải quyết vấn đề về năng lượng bằng công thức tính toán:

Công thức tính công: A = UIt (Wh).

Công thức chuyển đổi giữa Wh và mAh: Wh = (mAh x V) / 1000.

Nếu ta xét mỗi viên pin 18650 hoạt động ở điện áp 3.7v, 1100mAh. Năng lượng cung cấp của 3 viên pin là:

A1 = 3 x 3.7 x 1100 / 1000 = 12.21 (Wh)

Bơm ta sử dụng hoạt động ở điện áp 12v, 0.6A. Mỗi lần tưới là 20s. Mỗi ngày tưới trung bình 5 lần. Năng lượng mà bơm tiêu thụ trong 1 ngày là:

A2 = 12 x 0.6 x (20 x 5 / 3600) = 0.2 (Wh)

Nếu trong điều kiện lý tưởng, thời gian sử dụng bơm là: T = A1 / A2 = 61.05 ngày (tuyệt vời). Nếu ta cho hao phí là 50% thì ta vẫn có khoảng 1 tháng không cần sạc.

Nguyên lý hoạt động: Ta có thể thiết lập thời gian cố định cho Esp8266 để tưới cây. Khi đến giờ định sẵn, Esp8266 kích hoạt relay để Bơm hoạt động. Thời gian tưới ta có thể thay đổi trong code.

DHT11 đo nhiệt độ và độ ẩm và cập nhật trên app Blynk mỗi 5s.

Nút nhấn dùng để reset esp8266 trong trường hợp cần thiết.

Khi esp8266 không kết nối với Wifi, chế độ deep sleep được kích hoạt nhằm tiết kiệm năng lượng. Tại chế độ deep sleep, esp8266 chỉ tiêu thụ khoảng 20µA (thông tin từ nhà sản xuất). Ngoài ra còn có các chế độ ngủ khác, các bạn có thể tham khảo tại đây.

Step 4: Lập Trình

Trước hết, bạn cần tải về những thư viện dưới đây:

  1. Download thư viện DHT11 tại đây.
  2. Download thư viện Blynk tại đây.
  3. Download thư viện SimpleTimer tại đây.
  4. Download thư viện NTPtimeESP tại đây

Mã nguồn của tôi ở Github: https://github.com/djxone123456/Automatic-irrigation-system

Thiết lập mã:

define APSSID "Runandgo"

define APPSK "djxone123456"

Ở đây, bạn thay đổi thông tin SSID và password giống với router wifi để esp8266 kết nối với mạng.

Các thông số cài đặt cho việc tưới nước:

define startWaterTime 8 //Time water start [integer]

define endWaterTime 16 //Time water end [integer]

define timeBTW 2 // After timeBTW hour(s) [integer], water again

define waterLength 20 //(second) [integer]

define timeSleep 10 //(second) [integer]

Giải thích:

startWaterTime: Thời gian bắt đầu tưới trong ngày (giờ)

endWaterTime: Thời gian kết thúc tưới trong ngày (giờ)

timeBTW: Khoảng cách thời gian giữa 2 lần tưới (giờ)

waterLength: Độ dài mỗi lần tưới (giây)

timeSleep: Thời gian ngủ sâu để tiết kiệm năng lượng (giây). Sau khi ngủ, esp8266 tự động reset lại.

Thiết lập chân kết nối giữa esp8266 với DHT11 và Relay:

define DHTPIN D5

define Relay D7 // Pump

Sau khi gửi Auth Token lên email của bạn đã được đề cập ở Step 2, thông tin email sẽ hiện như trên hình.

Lúc này, bạn chỉ cần copy Auth Token và thay đổi đoạn mã dưới đây:

const char *auth = "bTTEbBILDbMs-Lm_N4TJ5vMtBDnXubBk"; // Paste Blynk token in here

Với mỗi 5 giây, esp8266 sẽ cập nhật thời gian trên trang ch.pool.ntp.org bằng hàm getTimeWatering(). Để cập nhật chính xác thời gian thì bạn cần thay đổi múi giờ tại nơi bạn ở trong đoạn mã này (ví dụ ở Việt Nam có múi giờ là GMT +7):

dateTime = NTPch.getNTPtime(7.0, 0); // Timezone

Hoan hô, vậy là xong 😀. Bây giờ bạn chỉ cần upload mã lên chiếc esp8266 bé nhỏ của bạn là chúng ta có thể bắt đầu điều khiển rồi.

Lưu ý: Step 5 là một phần không bắt buộc và đòi hỏi nhiều thời gian và công sức. Nếu bạn có điều kiện cập nhật trực tiếp cho esp8266 bằng PC một cách dễ dàng thì bạn có thể tiến thẳng đến Step 6.

Step 5: Cập Nhật Từ Xa (OTA) Thông Qua HTTP

Cập nhật phần mềm là một phần quan trọng trong project dù lớn hay nhỏ. Nhưng số lượng thiết bị cần cập nhật lớn hoặc thiết bị được đặt tại những điều kiện không phù hợp để cập nhật thông qua máy tính, thì cập nhật từ xa là xu thế tất yếu để giải quyết vấn đề này. Lúc này, bạn chỉ cần nhấn nút hoặc gõ lệnh từ máy tính và tất cả thiết bị được cập nhật tự động. Vì thế, tôi sẽ giới thiệu cho bạn cách cập nhật từ xa thông qua HTTP.

Trước tiên, bạn cần tạo 1 trang web. Đó có thể là web server hay thuê web hosting. Với tôi, tận dụng web hosting miễn phí bằng trang 000webhost là một sự lựa chọn.

Cách làm:

  • Truy cập vào 000webhost.
  • Nhập thông tin email, password mà bạn muốn tạo và nhấn SIGN UP.
  • Sau khi tạo tài khoản, kiểm tra thư xác minh được gửi qua email. Và sau đó, bạn đã có 1 dịch vụ hosting miễn phí.
  • Tiếp theo, màn hình sẽ hiện ra như hình 1, bạn nhấn “It’s not my first rodeo, take me to the panel.”
  • Đến phần đặt tên cho website. Bạn gõ tên project và domain mà bạn muốn và nhấn SUBMIT (Hình 2).
  • Chọn Upload your site (Hình 3). Lúc này, bạn đã tự tạo một website miễn phí của riêng mình.
  • Nhấn vào thư mục public_html (Hình 4). Bạn chỉ sử dụng thư mục này là chính.
  • Tạo file “firmware_ver” để kiểm tra firmware cho esp8266 (Hình 6 + 7). Mục đích: Nếu thông tin trên file này khác với firmware hiện tại trên esp8266, nó sẽ kích hoạt quá trình OTA.

Cách đưa bản cập nhật lên website:

  • Vào Arduino IDE -> Sketch -> Export compiled Binary, sau đó đợi chương trình biên dịch xong.
  • Mở thư mục chứa file .ino của project. Lúc này, bạn sẽ thấy 1 file .bin và đổi tên thành firmware.bin.
  • Kéo thả file firmware.bin vừa tạo lên thư mục chứa file firmware_ver đã tạo.
  • Lưu ý rằng, trong file ota_firmware.h, bạn phải thay đổi đường link có sẵn thành đường link sang trang web của bạn nhé.

const char *website = "http://waterautomatic.000webhostapp.com/firmware.bin";

http.begin(client, "http://waterautomatic.000webhostapp.com/firmware_ver"); //HTTP URL for hosted server(local server)

Step 6: Hướng Dẫn Cách Sử Dụng Phần Mềm Automatic Watering Trên Blynk:

Để chạy app, bạn cần nhấn vào nút play ▶️ ở trên cùng bên phải. Nếu lúc này app hiện ra tương tự như hình trên thì xin chúc mừng, bạn đã thành công!

Thông tin trên app:

  • Hàng đầu tiên là cần đo Nhiệt độ và độ ẩm.
  • Hàng thứ hai là biểu đồ nhiệt độ, độ ẩm và chỉ số HI. Bạn có thể dễ dàng đánh giá diễn biến nhiệt độ diễn ra trong từng khoảng thời gian xác định.
  • Hàng cuối cùng là bảng điều khiển bằng dòng lệnh. Trong Windows có thể gọi là Command Prompt hay Linux là Terminal. Bạn có thể điều khiển bằng cách gõ những thông tin mà bạn muốn điều khiển chúng. Ví dụ bạn muốn tưới cây ngay lúc này, bạn chỉ cần gõ “water”. Các dòng lệnh này bạn có thể xem trên thư viện con của dự án là Blynkprocess.h.

Các dòng lệnh được cài sẵn:

help Liệt kê các dòng lệnh có sẵn.

version In ra phiên bản firmware.

update Cập nhật phần mềm cho esp8266.

restart Khởi động lại esp8266.

water Tưới cây.

clrscr Xóa các dòng lệnh trước.

temp Thông tin nhiệt độ, độ ẩm.

Step 7: Thưởng Thức Thành Quả

Xin chúc mừng, bạn đã hoàn thành dự án này. Dự án này được viết và thử nghiệm trong gần một tháng, lúc tôi vừa mới bắt đầu kỳ nghỉ hè. Tính đến thời điểm này, chiếc esp8266 của tôi đã hoạt động được gần 2 tuần 😀. Gia đình tôi vô cùng thích thích thú với dự án này, một dự án không đòi hỏi chi phí cao nhưng rất hữu ích. Với dự án này, nó sẽ giúp chúng tôi có những chậu hoa lan rực rỡ sắc màu hay những cây salad xanh um. Từ bây giờ, tôi chỉ cần chờ ngày hưởng thụ thành quả của mình thôi 😊. Chúc bạn cũng thành công như tôi nhé. Hẹn gặp lại ở những dự án sắp tới. Và nếu bạn đã làm được, đừng ngại chia sẻ cho chúng tôi nhé.

Nếu bạn muốn hiểu sâu hơn về code của tôi, bạn có thể đọc qua nó. Tôi đã chú thích rất đầy đủ về nó rồi. Hi vọng một phần nào đó của đoạn code của tôi sẽ giúp ích cho những project của riêng bạn 😊. Chúc một ngày tốt lành.