Bài viết trình bày một giải pháp thiết kế hệ thống aquaponic – nuôi trồng thủy sản và trồng cây theo phương pháp thủy canh dựa trên nền tảng FreeRTOS. Hệ thống được tích hợp các cảm biến cho phép điều khiển, giám sát tình trạng của aquaponic thông qua IoT nhằm đảm bảo hiệu quả của quá trình nuôi trồng thủy sản. Kết quả thực nghiệm đã chỉ ra mức độ tối ưu phân phối thời gian khi sử dụng FreeRTOS so với các công nghệ truyền thống.
Trang 1Thiết kế mô hình hệ thống Aquaponics dựa trên thuật toán điều khiển thời gian thực
Phạm Chí Kiên*, Nguyễn Đình Tuấn**, Phan Thị Thanh Ngọc*
Nguyễn Đăng Khoa***, Lê Anh Ngọc*
*Trường Đại Học Điện Lực Email: anhngoc@epu.edu.vn
**Cục Công nghệ thông tin, Bộ công an
*** Trường Đại học Phenikaa Email: khoa.nguyendang@phenikaa-uni.edu.vn
Tóm tắt –Bài báo trình bày một giải pháp thiết kế hệ thống
aquaponic – nuôi trồng thủy sản và trồng cây theo phương
pháp thủy canh dựa trên nền tảng FreeRTOS Hệ thống
được tích hợp các cảm biến cho phép điều khiển, giám sát
tình trạng của aquaponic thông qua IoT nhằm đảm bảo
hiệu quả của quá trình nuôi trồng thủy sản Kết quả thực
nghiệm đã chỉ ra mức độ tối ưu phân phối thời gian khi sử
dụng FreeRTOS so với các công nghệ truyền thống
Từ khóa- FreeRTOS, Ubidots, Aquaponics, realtime
scheduling
I GIỚITHIỆU Việt Nam vẫn là một trong những nước chú trọng việc
nuôi trồng thủy hải sản Tuy nhiên, nguồn nước đang bị
ô nhiễm, ảnh hưởng trực tiếp đến hiệu quả nuôi cá và
trồng trọt Hơn nữa, diện tích đất nông nghiệp đang bị
giảm, nên áp dụng công nghệ và tự động hóa nhằm giúp
tiết kiệm tài nguyên đất và nước, kết hợp với chọn lựa
các loại sản phẩm để mang lại năng suất tối đa cho nông
nghiệp Aquaponics là một hệ thống nông nghiệp bền
vững trong một môi trường cộng sinh bằng cách kết hợp
nuôi trồng thủy sản và thủy canh Hệ thống nước cần
được phân bổ trên môi trường trồng định kỳ để đảm bảo
cây có được các chất dinh dưỡng, trong khi nước có thể
được lọc đúng cách bằng môi trường
Hiện nay mô hình Aquaponics truyền thống chưa đáp
ứng đủ nhu cầu của sản xuất Đặc biệt, các thông số đo
đạc của mô hình aquaponic cần được theo dõi, điều
khiển và giám sát qua Internet, điện toán đám mây Điều
đó dẫn đến vấn đề xử lý dữ liệu cần phải có những đáp
ứng nhanh chóng Cách giải quyết vấn đề đó là tăng tốc
độ của bộ xử lý trung tâm, tối ưu các tác vụ, tăng băng
thông truyền dữ liệu… Tuy nhiên, các hệ thống
Aquaponics IoT (Internet of things) cũ không đáp ứng
được do không có cơ chế ưu tiên thực thi các tác vụ và
kinh phí thực hiện xây dựng khá cao Để xử lý vấn đề
đó, bài báo này đề xuất giải pháp sử dụng FreeRTOS
trong việc phân phối và tối ưu các tác vụ thu thập dữ
liệu cảm biến và các tác vụ điều khiển từ máy chủ
xuống
Bài báo được trình bày với nội dung sau: Phần II giới thiệu tổng quan về Aquaponnics, dịch vụ điện toán đám mây và các hệ điều hành thời gian thực RTOS (Real Time Operating Systems) Trong phần III, chúng tôi đề xuất hệ thống Aquaponics sử dụng nền tảng FreeRTOS Phần IV cung cấp các kết quả thử nghiệm và đánh giá Cuối cùng, kết luận bài báo được trình bày trong phần
V
II TỔNGQUANVỀHỆTHỐNG AQUAPONICS,DỊCHVỤĐIỆNTOÁNĐÁMMÂY
VÀ FREERTOS
2.1 Hệ thống Aquaponics
Mô hình Aquaponics là sự kết hợp của cả hai hệ thống: Nuôi trồng thủy sản (aquaculture) và trồng cây theo phương pháp thủy canh (hydroponics) [1,2] Sự kết hợp này mang lại lợi ích thiết thực và tính độc đáo Thay vì
bổ sung phân bón và các hóa chất để trồng cây, mô hình này sử dụng chất thải từ cá nhờ sự chuyển hóa từ các loài vi sinh vật thành chất dinh dưỡng cần thiết và đầy
đủ cho sự phát triển của cây Ngược lại, thay vì xả nước
ra môi trường, nó sử dụng cây trồng để làm sạch nước
và trả lại cho bể cá Nước này có thể được tái sử dụng
vô thời hạn và chỉ cần thay thế khi nó bị mất do bay hơi (Hình 1)
Hình 1: Mô hình Aquaponics
Trang 2Một số yếu tố chính cần quan tâm của Aquaponics: Oxy
hòa tan: Cá cần oxy để sống vì vậy cũng cần chú ý đến
việc đảm bảo hàm lượng oxy thích hợp cho cá phát
triển Hàm lượng oxy hòa tan thường thấp vào lúc sáng
sớm và phụ thuộc vào nhiều yếu tố khác như mật độ cá,
nhiệt độ nước, độ mặn,… người sử dụng nên có bộ dụng
cụ kiểm tra hàm lượng oxy hàng ngày để đảm bảo cho
cá phát triển tốt
Nhiệt độ: Nhiệt độ nước rất quan trọng trong hệ
thống Aquaponics Nhiệt độ nước cao quá sẽ làm cá sốc
và có thể chết ảnh hưởng đến sự phát triển của cây
trồng Ngược lại, khi nhiệt độ hạ xuống thấp cũng gây
hại cho cây trồng và cá Vì vậy người sử dụng cũng nên
thường xuyên theo dõi để có biện pháp hợp lí giữ nhiệt
độ nước ổn định giúp cho hệ thống phát triển tốt đẹp
Giá trị pH: Đây cũng là một yếu tố quan trọng cần
quan tâm theo dõi trong hệ thống Độ pH chính là độ
axit hay độ chua của nước và giá trị pH biểu diễn cũng
chính là giá trị biểu diễn cho sự hiện diện của ion H+
trong môi trường (nước hoặc đất) Giá trị pH thường
thấp vào ban đêm và sáng sớm nên duy trì giữ pH trong
khoảng 6 – 8 là thích hợp nhất
Dinh dưỡng trong nước: Cả dinh dưỡng dạng
NO3/NH44 (Macro Nutrients) và vi lượng (Micro
Nutrients) đều cần thiết cho cây trồng trong hệ thống
Aquaponics Phần lớn nguồn dinh dưỡng này đến từ
chất thải của cá và một phần hòa tan từ thức ăn của cá
Trong một số trường hợp (thường là do chất lượng thức
ăn của cá kém) cần thiết phải bổ sung thêm một số
nguyên tố vi lượng cần thiết cho cây trồng
Kiểm soát lượng nước: Người sử dụng nên có dụng
cụ kiểm tra các yếu tố môi trường để kiểm soát chất
lượng nước nuôi cá trong hệ thống Cần ghi lại sự biến
động trong suốt quá trình vận hành hệ thống để so sánh,
đối chiếu hoặc có thể dùng như một tài liệu tham khảo
cho những hệ thống khác mà sau này ta có thể phát triển
Ánh sáng: Vì các hệ thống aquaponics thường đặt
trong các không gian tiết kiệm diện tích nên đôi khi ánh
sáng tự nhiên không đủ cho cây quang hợp vì vậy ta cần
bổ sung ánh sáng thích hợp cho cây, giải pháp ở đây là
dùng ánh sáng thay thế bằng đèn chiếu sáng
2.2 Dịch vụ điện toán đám mây
Điện toán đám mây là mô hình điện toán mà mọi giải
pháp liên quan đến công nghệ thông tin đều được cung
cấp dưới dạng các dịch vụ qua mạng Internet, giải
phóng người sử dụng khỏi việc phải đầu tư nhân lực,
công nghệ và hạ tầng để triển khai hệ thống [3,4] Từ
đó điện toán đám mây giúp tối giản chi phí và thời gian
triển khai, tạo điều kiện cho người sử dụng nền tảng
điện toán đám mây tập trung được tối đa nguồn lực vào
công việc chuyên môn (hình 2) Các ứng dụng IoT có
thể dùng nhiều nền tảng đám mây với những khả năng
và sức mạnh xử lý khác nhau như ThingWorx,
OpenIoT, Google Cloud, Amazon, GENI, Ubidots Ví
dụ, Xively đại diện cho một trong những ứng dụng đầu tiên đưa ra dịch vụ lưu trữ dữ liệu từ cảm biến và hiển thị trên website Xively hướng đến mục tiêu đảm bảo kết nối giữa thiết bị và ứng dụng phần mềm theo thời gian thực Xively cung cấp một nền tảng như giải pháp phù hợp cho lập trình viên và nhà cung cấp dịch vụ Nó giúp thống nhất các thiết bị thông qua nền tảng bởi những bộ thư viện có sẵn (như ARM mbed, Electric Imp and iOS/OSX) và liên lạc thuận tiện thông qua giao thức HTTP(S), Sockets/Websocket, hoặc MQTT
Hình 2: Mô hình tổng quan về điện toán đám mây
Nó cũng có thể sử dụng những nền tảng khác với bộ thư viện của Java, JS, Python và Ruby Một trong những đặc điểm khiến Xively là dịch vụ nền tảng đám mây được ưa thích chính là:
• Mã nguồn mở, không mất phí và dễ dàng sử dụng giao diện lập trình ứng dụng (API)
• Tương thích với nhiều giao thức, môi trường và khả năng quản lý cảm biến thời gian thực và phân phối dữ liệu dưới nhiều dạng như JSON, XML và CSV
• Cho phép người dùng thấy được biểu đồ dữ liệu theo thời gian thực để giám sát hoạt động của cảm biến Nó cũng cho phép người dùng điều khiển cảm biến từ xa
• Hỗ trợ nhiều nhà sản xuất phần cứng (OEM) như Arexx, Nanode, OpenGear, Arduino và mBed
2.3 RTOS và FreeRTOS
Hệ điều hành (Operating System – OS) là chương trình
hệ thống đóng vai trò giao diện giữa phần cứng và chương trình ứng dụng.Các tính năng chung của hệ điều hành là đồng bộ hóa giữa tác vụ, `đa nhiệm, quá trình giao tiếp, xử lý ngắt và quản lý bộ nhớ Một hệ điều hành thời gian thực (real-time operating system - RTOS) là một hệ điều hành nhằm phục vụ các ứng dụng thời gian thực, xử lý dữ liệu khi nó đi vào, mà không có
sự chậm trễ của bộ đệm Các yêu cầu thời gian xử lý (bao gồm bất kỳ sự chậm trễ nào của hệ điều hành) được tính bằng phần mười của giây hoặc thời gian ngắn hơn Chúng hoặc là được sự kiện điều khiển hoặc chia sẻ thời gian Các hệ thống do sự kiện điều khiển chuyển đổi giữa các nhiệm vụ dựa trên các ưu tiên của chúng trong
Trang 3khi các hệ thống chia sẻ thời gian chuyển công việc dựa
trên ngắt đồng hồ [5]
FreeRTOS là hệ điều hành nguồn mở thời gian thực
dành cho các bộ vi điều khiển, cho phép dễ dàng lập
trình, triển khai, bảo mật, kết nối và quản lý các thiết bị
ngoại biên nhỏ, công suất thấp Được phân phối miễn
phí theo giấy phép nguồn mở MIT, FreeRTOS bao gồm
một nhân và một bộ thư viện phần mềm đang phát triển
phù hợp để sử dụng trong nhiều lĩnh vực và ứng dụng
công nghiệp Việc sử dụng bao gồm cả kết nối bảo mật
thiết bị nhỏ, công suất thấp của bạn với các dịch vụ đám
mây AWS như AWS IoT Core hoặc với các thiết bị
ngoại biên mạnh mẽ hơn chạy AWS IoT Greengrass
FreeRTOS được xây dựng chú trọng vào độ tin cậy và
khả năng sử dụng dễ dàng [6-8] FreeRTOS linh hoạt để
thực hiện không giới hạn số lượng các nhiệm vụ Nhưng
tại một thời điểm chỉ có một nhiệm vụ được thực thi
Nhiệm vụ được định nghĩa là một loại công việc hoặc
quy trình thực hiện trong thời hạn xác định Mọi nhiệm
vụ cụ thể đã được thông qua thông qua các loại trạng
thái khác nhau như Sẵn sàng, Đang chạy, Chặn và tạm
dừng
Hình 3: Trạng thái nhiệm vụ freeRTOS
Trong RTOS, Bộ lập lịch sẽ quyết định tác vụ cụ thể
nào trong trạng thái nào Như được mô tả trong Hình 3,
ý nghĩa trạng thái của từng nhiệm vụ riêng lẻ như sau:
Running: Tác vụ thực sự đang thực thi
Ready: Nhiệm vụ đã sẵn sàng để thực thi nhưng một
nhiệm vụ ưu tiên bằng hoặc cao hơn đang chạy
Blocked: Nhiệm vụ đang chờ sự kiện cụ thể Các
nhiệm vụ sẽ chặn cho đến khi khoảng thời gian trì hoãn có hết hạn
Suspend: Trạng thái này giống như chặn nhiệm vụ,
nhưng nhiệm vụ không chờ đợi bất cứ điều gì III THIẾTKẾMÔHÌNHAQUAPONICDỰA TRÊNNỀNTẢNGFREERTOS
3.1 Thiết kế mô hình hệ thống aquaponic
Mô hình hệ thống aquaponics gồm các thành phần (hình 4):
Acquy (12V): Lưu trữ điện năng, cung cấp nguồn
cho toàn bộ hệ thống
Tấm pin năng lượng mặt trời: Nhận bức xạ mặt trời
chuyển hóa thành điện năng nạp vào acquy
Bộ điều khiển sạc: Là thiết bị thực hiện chức năng điều tiết sạc cho acquy, bảo vệ cho acquy chống nạp quá tải và xả quá sâu nhằm nâng cao tuổi thọ của bình acquy và giúp hệ thống pin mặt trời sử
dụng hiệu quả và lâu dài
Module ổn áp 5V: Hạ áp từ 12V xuống 5V cho
servo hoạt động
Động cơ servo: Điều hướng tối ưu cho tấm pin
năng lượng mặt trời
Cảm biến ánh sáng: Nhận và gửi tín hiệu đến bộ xử
lí trung tâm được dùng để điều khiển hướng tối ưu
của pin năng lượng mặt trời
Hình 4: Mô hình hệ thống aquaponic
Bộ xử lí trung tâm: Nhận tín hiệu từ các cảm biến
và xử lí theo lệnh của người điều khiển Đẩy dữ liệu qua khối truyền thông để lưu trữ trên server để giám sát và điều khiển, nhận phản hồi và điều khiển các thiết bị theo yêu cầu
Khối truyền thông: Là cổng giao tiếp giữa hệ thống aquaponics và dịch vụ đám mây, có nhiệm vụ chuyển tiếp dữ liệu lên và xuống
Khối IoT Aquaponics: Thực hiện tất cả các chức năng của mô hình aquaponics
3.2 Thuật toán điều khiển hệ thống
Trang 4Bộ xử lý trung tâm sẽ thực hiện việc giám sát và điều
khiển trực tiếp toàn bộ hệ thống theo thuật toán điều
khiển (hình 5)
Hình 5: Lưu đồ thuật toán điều khiển hệ thống aquaponics
Để thực hiện việc giám sát các thông số hệ thống,
bộ xử lý trung tâm định kỳ đọc các giá trị cảm biến
và tự động xác định dung lượng acquy trong acquy,
sau đó gửi lên máy chủ đám mây
Để điều chỉnh hướng của tấm pin năng lượng mặt
trời sao cho tối ưu nhất, bộ xử lý trung tâm dựa vào
giá trị cảm biến ánh sáng để tự động điều chỉnh góc
quay của 02 động cơ servo gắn với tấm pin năng
lượng mặt trời
Để điều khiển hệ thống Aquaponics, bộ xử lý trung
tâm cho phép hoạt động ở hai chế độ: điều khiển tự
động và điều khiển theo yêu cầu (bằng tay) Trong
chế độ điều khiển tự động, hệ thống sẽ tự động
bật/tắt các thiết bị máy bơm, đèn và còi cảnh báo
dựa trên các dữ liệu nhận được từ các cảm biến
(pH, mực nước, nhiệt độ, độ ẩm, ánh sáng) Khi
dung lượng acquy dưới ngưỡng cho phép (10%) thì
hệ thống đưa ra cảnh báo với người dùng Trong
chế độ điều khiển bằng tay, hệ thống sẽ nhận lệnh
bật/tắt các thiết bị trong hệ thống aquaponics theo
yêu cầu qua giao diện của dịch vụ đám mây
Ubidots
3.3 Phân phối thời gian thực sử dụng FreeRTOS
Để hệ thống có thể hoạt động một cách hiệu quả cần có
một cơ chế phân phối thời gian để phân phối công việc
cho hệ thống FreeRTOS là hệ điều điều hành thời gian
thực được áp dụng để phân phối công việc dựa trên mức
ưu tiên khác nhau:
Bắt đầu chương trình có mức ưu tiên cao nhất được chạy trước, sau khi chương trình mức ưu tiên cao hơn đã chạy xong thì nó sẽ chạy chương trình có mức ưu tiên thấp hơn, khi các chương trình có cùng một mức ưu tiên chương trình nào đến trước sẽ chạy chương trình đó trước
Hình 6: Lưu đồ thuật toán điều khiển thời gian thực
Mỗi chương trình sẽ được phân phối thời gian chạy
và có một khoảng nghỉ (vtask delay) để nhường chỗ cho các chương trình khác chạy trong khoảng thời gian rỗi đó của bộ xử lý (hình 7)
Hình 7: Phân phối thời gian FreeRTOS
IV THỬNGHIỆMVÀĐÁNHGIÁMÔHÌNH
4.1 Mô hình thực tế
Trang 5Mô hình thử nghiệm thực tế bao gồm các thành phần
chính như: tấm pin năng lượng mặt trời, cảm biến ánh
sáng, acquy, bộ điều khiển sạc, module ổn áp 5V, 02
động cơ servo, bo mạch arduino mega 2560 (hình 8)
Hình 8: Mô hình thực tế hệ thống Aquaponics
Ngoài ra, hệ thống còn bao gồm các thành phần của
aquaponics như bể cá, máng cạn trồng rau, bể lọc, máy
bơm, cảm biến mực nước, cảm biến độ pH, cảm biến
nhiệt độ, cảm biến độ ẩm, cảm biến ánh sáng (hình 9)
Hình 9: Mô hình hệ thống Aquaponics
4.1 Thử nghiệm và đánh giá
Kịch bản 1: Đo đạc độ trễ truyền dữ liệu hệ thống
aquaponic không có tác vụ phân phối thời gian thực
Bước 1: Áp dụng thuật toán điều khiển (hình 5) cho
hệ thống aquaponics
Bước 2: Gửi lệnh điều khiển từ người dùng qua giao
diện đám mây Ubidots đến hệ thống aquaponics (hình
10)
Bước 3: Đo độ trễ truyền từ lúc thực hiện lệnh điều
khiển từ người dùng qua giao diện đám mây Ubidots đến hệ thống aquaponics
Hình 10: Giao diện giám sát điều khiển trên máy tính và
smartphone
Bước 4: Lặp bước 2 và 3 nhiều lần để thu được các
giá trị độ trễ khác nhau
Bước 5: Thay đổi đường truyền Internet khác nhau
(Int – đường truyền cáp quang, 4G – đường truyền Internet di động 4G) để lấy mẫu một cách khách quan, sau khi thay đổi xong thực hiện lại từ bước 2, khi đã thay đổi đủ đường truyền thì chúng ta sẽ thu được giá trị thông số độ trễ trung bình của hệ thống (hình 11)
Hình 11: Độ trễ truyền trung bình của hệ thống aquaponics
không sử dụng FreeRTOS
Kịch bản 2: Đo đạc độ trễ truyền dữ liệu hệ thống aquaponic sử dụng FreeRTOS phân phối thời gian thực
Bước 1: Áp dụng thuật toán điều khiển thời gian thực (hình 6) cho hệ thống aquaponics
Trang 6Bước 2: Gửi lệnh điều khiển từ người dùng qua giao
diện đám mây Ubidots đến hệ thống aquaponics (hình
10)
Bước 3: Đo độ trễ truyền từ lúc thực hiện lệnh điều
khiển từ người dùng qua giao diện đám mây Ubidots
đến hệ thống aquaponics
Bước 4: Lặp bước 2 và 3 nhiều lần để thu được các
giá trị độ trễ khác nhau
Bước 5: Thay đổi đường truyền Internet khác nhau
(Int – đường truyền cáp quang, 4G – đường truyền
Internet di động 4G) để lấy mẫu một cách khách quan,
sau khi thay đổi xong thực hiện lại từ bước 2, khi đã
thay đổi đủ đường truyền thì chúng ta sẽ thu được giá
trị thông số độ trễ trung bình của hệ thống (hình 12)
Hình 12: Độ trễ truyền trung bình của hệ thống aquaponics
khi sử dụng FreeRTOS
Kết quả đánh giá của hình 11 và 12 cho thấy hệ thống
aquaponics điều khiển thời gian thực đã mang lại hiệu
quả tốt hơn rất nhiều so với hệ thống cũ về thời gian đáp
ứng Đặc biệt, kết quả còn cho thấy với kết nối Internet
sử dụng công nghệ di động 4G thu được kết quả nhanh
hơn các kết nối Internet cố định cáp quang, điều này cho
thấy xu hướng sử dụng nhiều dịch vụ trên cáp quang
làm tăng mức độ nghẽn của hạ tầng mạng, cũng như
triển vọng của các công nghệ không dây băng rộng 4G,
5G cho các ứng dụng IoT
KẾTLUẬN
Bài báo đã đề xuất giải pháp điều khiển thời gian thực
dựa trên nền tảng FreeRTOS cho hệ thống aquaponic
Hệ thống điều khiển các tác vụ khác nhau với các mức
ưu tiên khác nhau trong đó lưu ý đến mức ưu tiên cao
hơn đối với các tác vụ điều khiển từ giao diện người
dùng đám mây đến hệ thống aquaponics Kết quả thực
nghiệm đã chỉ ra hiệu quả của giải pháp khi sử dụng
FreeRTOS so với các công nghệ truyền thống
TÀILIỆUTHAMKHẢO
[1] FAO, “FAO Fisheries and Aquaculture Technical Paper:
Small-scale Aquaponic food production", 2014
[2] Sylvia Bernstein, “Aquaponic gardening : a step-by-step guide to raising vegetables and fish together”, New Society Publishers,
2011
[3] Hwang, Kai, Jack Dongarra, and Geoffrey C Fox, “Distributed and cloud computing: from parallel processing to the internet of things”,.Morgan Kaufmann,2013
[4] Rountree, Derrick, and Ileana Castrillo, “The Basics of Cloud Computing: Understanding the Fundamentals of Cloud Computing in Theory and Practice”, Newnes, 2013
[5] Real Time Engineers Ltd., Using the FreeRTOS Real Time Kernel, ARM Cortex-M3 Edition, 2010
[6] D Rinku & M Arshad, “Design & Implementation of freeRTOS Based Online Data Acquisition And Controlling System Using Cortex M3core”, International Journal of Engineering Science & Advanced Technology, Volume 3, Issue 5, 2013, pp 259-263 [7] UBM / EE Times Group, "2011 Embedded Market Study", EE Times 2011
[8] Sergey Kolesnik, "Comparing microcontroller real-time operating systems" Embedded by AspenCore, 2013.