Trong vòng lặp này, việc đầu tiên mà Arduino sẽ thực hiện đó là nhận dữ liệu từ mạng Lora. Lưu đồ thuật toán nhận dữ liệu Lora của trạm thu thập dữ liệu khu vực được trình bày như Hình 4.16. Theo như hình, Arduino sẽ thực hiện việc kiểm tra có hay khơng tín hiệu gửi dữ liệu tới đây, nếu khơng có tín hiệu thì Arduino sẽ trực tiếp kết thúc hàm nhận dữ liệu Lora, nhưng nếu có Arduino sẽ thực hiện việc đọc dữ liệu sau tín hiệu đầu tiên và lưu vào một biến tồn cục để xử lý. Sau khi đã có dữ liệu nhận về, dữ liệu này sẽ được mã hóa thành dạng JSON, sau đó sẽ được xử lý. Arduino sẽ kiểm tra “ID” trong chuỗi tín hiệu gửi đến, nếu ID có giá trị là 1, 2, 3 hoặc 4, Arduino sẽ lưu các giá trị điều khiển thiết bị được mang theo trong chuỗi dữ liệu gửi đến để
Arduino xử lý trong hàm Control Device. Ngược lại nếu như “ID” là 11, 12, 13, 14 thì Arduino sẽ tạo một chuỗi JSON chứa các giá trị dữ liệu nhiệt độ, độ ẩm khơng khí và độ ẩm đất để gửi sang trạm điều khiển trung tâm xử lý. Các giá trị ID là 1, 2, 3, 4 và 11, 12, 13, 14 tương đương với giá trị địa chỉ được nhóm cài đặt cho các node Lora để dễ xử lý tín hiệu. Giá trị 1 và 11 là địa chỉ của Node Lora trạm khu vực thứ nhất, tương tự, 2 và 12, 3 và 13, 4 và 14 là địa chỉ của các node Lora của trạm khu vực 2, 3, 4.
Khi đã thực hiện xong hàm nhận dữ liệu Lora, việc tiếp theo mà Arduino sẽ thực hiện trong vịng lặp vơ hạn là hàm đọc giá trị cảm biến. Việc đọc cảm biến được thực hiện 20 giây một lần. Nếu đã đọc được giá trị của các cảm biến, các giá trị này sẽ được lưu lại để khi có tín hiệu u cầu sẽ gửi qua trạm điều khiển trung tâm.
Khi đã hoàn thành đọc giá trị cảm biến, việc cuối cùng mà Arduino sẽ phải thực hiện đó là hàm điều khiển thiết bị (Control Device). Các tín hiệu điều khiển các thiết bị ở trạm khu vực sẽ được trạm điều khiển trung tâm gửi tới từng trạm khu vực. Mặt khác, tín hiệu điều khiển cịn có thể nhận được từ các nút nhấn tại các trạm khu vực. Khi nhấn nút điều khiển tại trạm khu vực, trạm khu vực sẽ gửi dữ liệu tới trạm trung tâm để cập nhật tín hiệu điều khiển lên CSDL. Khi trạm trung tâm đã cập nhật thành cơng, trạm trung tâm sẽ gửi tín hiệu trả về trạm khu vực thông báo rằng đã cập nhật thành công. Khi trạm khu vực đã nhận được hiệu trả về, trạng thái của thiết bị tương ứng với nút nhấn được nhấn sẽ thay đổi.
Một số hình ảnh thực tế về mạch điện tử của các trạm thu thập dữ liệu khu vực trong đồ án của nhóm ở Hình 4.17 và hình 4.18:
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN GIÁM SÁT VÀ ĐIỀU KHIỂN
5.1. Thiết kế Server của đồ án
Server là phần quan trọng thiết yếu trong đồ án này của nhóm. Server có trách nhiệm xử lý, lưu trữ thông tin của vườn đồng thời cũng xử lý, lưu trữ tín hiệu điều khiển của người dùng. Trong thực tế có rất nhiều Server cung cấp dịch vụ IoT tương tự như Blynk, CNC IoT, … Tuy nhiên các Server này là của bên cung cấp quản lý, ta không thể thao tác thay đổi thơng tin trong các Server. Điều đó rất bất tiện trong việc quản lý và sử dụng. Đồng thời, khi ta sử dụng các Server này thì việc đảm bảo dữ liệu sẽ khơng được đảm bảo và Server có thể ngừng hoạt động bất kì lúc nào mà có thể sẽ khơng thơng báo trước. Điều đó sẽ ảnh hưởng đến q trình hoạt động của hệ thống. Chính vì vậy, nhóm em đã quyết dịnh xây dựng một Server riêng cho hệ thống của mình.
Nhóm sử dụng giao thức API để truyền nhận dữ liệu với Server trong đồ án thay vì sử dụng các giao thức khác như MQTT, XMPP, DSS, … là do giao thức API có đầy đủ các phương thức như Post, Get, Pub, Delete dữ liệu. Do vậy chúng ta có thể xây dựng các HTTP service đơn giản, nhanh chóng. Đồng thời linh hoạt trong kiểu dữ liệu trả về cho Client (trong đồ án này là định dạng dữ liệu JSON).
Quy trình API hoạt động trong đồ án như sau:
1. Xây dựng URL để Client có thể gửi request dữ liệu lên Server thông qua giao thức HTTP hoặc HTTPS.
2. Tại Server sẽ thực hiện kiểm tra xác thực request đã gửi lên và tìm tài ngun thích hợp để tạo nội dung trả về nếu là phương thức Get hoặc xử lý, lưu dữ liệu vào CSDL nếu là phương thức Post.
3. Server trả về kết quả theo định dạng JSON thơng qua giao thức HTTP/HTTPS nếu có.
Nhóm em sử dụng Hosting của cơng ty TNHH Lưu trữ số, có địa chỉ trang web là https://123host.vn để làm Server của đồ án. Các bước thực hiện như sau:
B2: Tạo tài khoản đăng nhập, sau đó ta sẽ được cung cấp 1 Hosting miễn phí có 200MB dung lượng bộ nhớ để chúng ta có thể dựng Server của mình.
B3: Tiếp theo, chúng ta sẽ mua một tên miền, sau đó nhờ bộ phận hỗ trợ khách hàng trỏ tên miền vừa mua được vào Hosting miễn phí của mình, nếu đã có tên miền chưa sử dụng thì có thể sử dụng nó mà khơng cần mua tên miền mới.
Nếu như bạn không muốn mua tên miền mới thì cũng khơng sao, bởi vì bên phía cơng ty sẽ cung cấp cho bạn một tên miền riêng. Tất nhiên là nó có thể sẽ khó nhớ hơn, tuy nhên thì nó miễn phí.
B4: Sau khi bạn đăng nhập lại, trong mục Dashboard sẽ có giao diện như hình 5.1:
Hình 5. 1: Thơng tin dịch vụ Hosting của đồ án
Vào phần quản lý dịch vụ trong mục Free Hosting, giao diện như hình 5.2 sẽ hiện ra:
Hình 5. 2: Free Hosting của đồ án Sẽ có tên miền của mình đã mua và trạng thái hoạt động của nó. Sẽ có tên miền của mình đã mua và trạng thái hoạt động của nó.
Ở đây, nhóm đã mua tên miền là “dungblog.xyz” và tên miền này đã được trỏ vào hosting Free-Host-200.
Click vào icon bánh răng bên phải như trên hình 35, chọn Quản lý dịch vụ -> Truy cập vào cPanel sẽ đưa ta vào mục quản lý hosting của mình.
Trong mục cPanel, truy cập vào mục File Manager, chọn thư mục public_html, sau đó đưa tất cả các tập tin cần thiết của đồ án vào đây như hình 5.3. Các tập tin này sẽ được trình bày trong phần phụ lục của đồ án.
Đồng thời, trong cPanel, ở mục DATABASE ta sẽ tạo một cơ sở dữ liệu dùng để lưu trữ các thông tin cần giám sát trong vườn, cũng như lưu tín hiệu điều khiển từ người dùng. Việc tạo Databse sẽ được làm rõ ở mục 5.3.
Vậy là các bước tạo Server cho đồ án của nhóm đã hồn thành, các tập tin trong thư mục public_html đã được nhóm viết sẵn trước đó, chỉ cần đưa lên Server là hoạt động được. Tất cả các tập tin này đều được nhóm viết bằng ngơn ngữ PHP và HTML.
Hình 5. 3: Thư mục public_html trong cPanel của Hosting
5.2. Thiết kế giao diện giám sát và điều khiển
Như đã trình bày như tên của đề tài, hệ thống sẽ bao gồm cả giao diện giám sát và điều khiển. Trong đề tài này, nhóm em thực hiện việc xây dựng giao diện giám sát trên Website. Giao diện sẽ bao gồm 3 phần chính:
− Giám sát.
− Điều khiển thiết bị.
Người dùng có thể thao tác trên giao diện giám sát và điều khiển để tương tác trực tiếp với hệ thống dù ở khoảng cách xa. Chỉ cần có một thiết bị thơng minh như SmartPhone, Laptop hay Tablet, ... có kết nối mạng, ta có thể truy cập vào giao diện giám sát thông qua ứng dụng trình duyệt Web ở bất kì đâu, bất kì thời gian nào đều được.
Để có thể vào giao diện giám sát của hệ thống, ta truy cập vào trang Web thông qua đường đẫn http://dungblog.xyz. Khi truy cập vào đường dẫn, sẽ hiện ra một trang giao diện đăng nhập, tài khoản và mật khẩu đăng nhập là “admin”. Dưới đây là trang giao diện đăng nhập mà nhóm đã thiết kế để truy cập vào giao diện giám sát, điều khiển của hệ thống (hình 5.4):
Hình 5. 4: Trang đăng nhập vào giao diện giám sát của hệ thống
Khi đã đăng nhập thành công, ta sẽ thấy được trang giao diện giám sát chính thức của hệ thống. Dưới đây là các hình ảnh giao diện giám sát của hệ thống.
Ở giao diện giám sát (Hình 5.5), sẽ hiển thị các thơng số trong vườn, nhiệt độ và độ ẩm trung bình sẽ là trung bình cộng nhiệt độ của bốn khu vực đo. Về phần thời gian, sẽ hiển thị thời gian đọc các giá trị nhiệt độ và độ ẩm đang hiển thị trên giao diện.
Hình 5. 5: Giao diện giám sát của hệ thống
Hình 5. 6: Giao diện điều khiển thiết bị của hệ thống
Trong khi đó, giao diện điều khiển thiết bị (Hình 5.6) có ba sự lựa chọn để điều khiển. Một là chế độ thủ công, người dùng sẽ bật và tắt thiết bị theo thời gian tùy thích. Cịn đối với chế độ tự động tắt, người dùng sẽ bật các thiết bị và hẹn giờ động để tắt thiết bị. Ngược lại, chế độ điều khiển còn lại là chế độ tự động. Trong chế độ này, việc bật và tắt các thiết bị đều được thực hiện một cách tự động hoàn toàn. Các thiết bị sẽ được bật trong khoảng thời gian 6h30 – 7h00 và 17h30 – 18h00 hằng ngày. Việc
chọn chế độ thủ công hay tự động tùy vào người sử dụng và từng loại cây trồng. Muốn điều khiển các thiết bị, ta tích hoặc bỏ tích vào các ơ tương ứng như Bơm 1 hay đèn 1, sau đó nhấn nút điều khiển thiết bị là được. Khi các ơ này được tích, thì các tương ứng sẽ được bật, ngược lại các thiết bị sẽ tắt nếu ta bỏ tích các ơ này.
Đối với giao diện biểu đồ giám sát (Hình 5.7), như trên hình ta thấy đây là đường biểu diễn nhiệt độ và độ ẩm trung bình của các khu vực trong vườn. Nếu muốn xem chi tiết đường biểu diễn nhiệt độ hay độ ẩm của từng khu vực, ta nhấn vào mục “xem chi tiết” như trong hình trên.
Hình 5. 7: Biểu đồ giám sát nhiệt độ, độ ẩm
5.3. Xây dựng cơ sở dữ liệu (Database) 5.3.1. Tạo Database 5.3.1. Tạo Database
Để có thể tạo được Database, ta cần truy cập vào cPanel như đã trình bày trong mục 5.1. Sau đó, tại , mục DATABASE (Hình 5.8) ta sẽ chọn vào MySQL Databases, để có thể truy cập vào giao diện tạo mới một database cho riêng mình.
Hình 5. 8: Mục DATABASE trong cPanel
Khi đã vào được giao diện tạo Database, ta bắt đầu tiến hành việc tạo Database. Ta nhập tên Database mà ta muốn tạo vào trường nhập dữ liệu tại mục Create New Database như Hình 5.9 sau:
Hình 5. 9: Vùng nhập liệu tạo mới database
Ở đây nhóm sẽ tạo một database mới có tên là Database. Database này sẽ có tiền tố bắt đầu là “wrjkwmkr_” để phân biệt với các Database của các Server khác. Nhấn Create Database để tạo Database. Khi đã tạo mới thành cơng, ta kéo trang Web xuống phía dưới tại phần MySQL Users Add New User (Hình 5.10) để cấp tên đăng nhập vào Database ta vừa tạo.
Ta nhập tên đăng nhập và mật khẩu muốn tạo để truy cập Database vào các trường nhập liệu. Khi đã tạo thành công ta tiếp tục kéo trang Web xuống phía dưới ở phần Add User To Database (Hình 5.11) để cấp quyền truy cập vào Database. Nếu khơng có bước này thì chúng ta khơng thể truy cập vào Database được.
Hình 5. 11: Cấp quyền truy cập Database
Hồn thành tất cả các bước trên, ta đã có thể truy cập vào Database của mình. Muốn truy cập vào Database, ta truy cập vào phpMyadmin ở mục DATABASES (Hình 5.8). khi đó ta đã có thể vào được Database của chúng ta. Bây giờ ta sẽ bắt đầu tạo các trường lưu dữ liệu giám sát và tín hiệu điều khiển.
5.3.2. Tạo các trường lưu dữ liệu
Khi ta truy cập vào phpMyadmin, ta sẽ thấy được giao diện quản lý Database (Hình 5.12). Ta thấy được phía bên trái, trong mục phpMyadmin, Database “wrjkwmkr_Database” mà ta đã tạo. Ta bấm vào nút dấu cộng “+” bên cạnh nó, để tạo mới một bảng lưu dữ liệu. Khi nhấn vào nút dâu cộng “+”, ta nhấn New để tạo bảng, giao diện tạo bảng được trình bày trong hình 5.13.
Hình 5. 13: Giao diện tạo mới bảng lưu dữ liệu
Nhập tên bảng ở mục “table name”, và tên các trường lưu dữ liệu vào cột “Name”. Kiểu dữ liệu ở cột “Type” tùy thuộc vào từng loại dữ liệu. Sau khi đã nhập hồn tất, ta sẽ được một bảng có các trường dùng để lưu dữ liệu như Hình 5.14 sau:
Ta có thể tạo rất nhiều bảng để lưu dữ liệu, mỗi bảng có thể tạo rất nhiều trường. Trong bảng “dung_iot”, nhóm đã tạo 26 trường dùng để lưu dữ liệu cũng như tín hiệu điều khiển.
Vậy là việc tạo một Server dùng để lưu dữ liệu và tín hiệu điều khiển dùng cho đồ án đã hồn tất.
KẾT LUẬN
Trong đề tài này, nhóm chúng em đã thiết kế thành cơng mơ hình hệ thống điều khiển, giám sát phân tán vườn thông minh và đưa ra các phương án khảo sát.
Đề tài hoạt động dựa trên công nghệ truyền thông Lora và Internet, giúp người dùng có thể dễ dàng điều chỉnh các điều kiện sinh trưởng của cây trồng, giúp đạt năng suất cao mà chỉ với một vài thao tác đơn giản. Nhờ đó, người trồng có thể chăm sóc cả khu vườn rộng lớn mà không cần tiêu tốn nhiều thời gian và cơng sức. Từ đó có thể giảm thiểu nhân cơng chăm sóc, giúp giảm chi phí sản xuất một cách đáng kể. Bên cạnh đó, việc điều chỉnh các điều kiện sinh trưởng của cây trồng này được thực hiện bằng cách điều khiển từ xa, khơng cần điều khiển trực tiếp, do đó có thể giảm thiểu tối đa việc tai nạn lao động.
Hơn nữa, hệ thống sử dụng công nghệ Lora và Internet, chúng đều là các cơng nghệ an tồn đối với sức khỏe của con người. Đồng thời, hệ thống không sinh ra sản phẩm phụ trong quá trình hoạt động. Do đó, hệ thống là an tồn đối với con người và mơi trường. Bên cạnh đó, việc ứng dụng Lora để xây dựng các hệ thống IoT giúp góp phần mở rộng mạng Lora, tạo nên một mạng IoT kết nối vạn vật toàn thế giới.
Về kết quả đạt được:
• Đã khảo sát được các hệ thống vườn thông minh trong thực tế và đưa ra phương án thiết kế cho mơ hình trong đề tài.
• Đã thiết kế thành cơng một mơ hình hệ thống điều khiển, giám sát phân tán vườn thông minh sử dụng 5 vi điều khiển Arduino và ESP8266 có các chức năng cơ bản như đã đề ra. Mơ hình hoạt động tốt và ổn định. Trong mơ hình có bốn vi điều khiển Arduino Uno và Arduino Nano điều khiển và thu thập thông tin từ cảm biến nhiệt độ, độ ẩm của các khu vực trong vườn. Các vi điều khiển ở các khu vực này được kết nối với vi điều khiển ESP8266 ở trung tâm. Vi điều khiển trung tâm này sẽ truyền nhận dữ liệu lên Server thơng qua Internet giúp người dùng có thể theo dõi tình trạng vườn.
• Đã lập trình cho các vi điều khiển ở khu vực và trung tâm, đã thực hiện đúng chức năng của hệ thống. Các trạm khu vực hoạt động rất ổn định, thu thập dữ