Bốn lý do chính khiến bạn nên sử dụng Visual Studio Code thay vì những phần mềm khác:
Được phát triển cho nhiều nền tảng Quá trình code, gỡ lỗi được tối ưu nhất
Kiến trúc mạnh mẽ và có thể khai thác mở rộng Cộng đồng hỗ trợ rộng lớn
c) NodeJS
NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thơng dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.
NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ WIndow cho tới Linux, OS X nên đó cũng là một lợi thế. NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.
Hình 2.22: Node JS
Nhờ vào cấu trúc khơng đồng bộ đơn luồng cũng như xử lý các yêu cầu đồng thời với tốc độ cực nhanh mà Node.JS rất thích hợp cho mục đích xử lý giao tiếp trong thời gian thực và xây dựng các ứng dụng Iot.
d) React Native
Hiện nay thì các thiết bị di động thơng minh rất phổ biến. Với vơ vàn ứng dụng miễn phí và những trải nghiệm tuyệt vời. Về OS phổ biến nhất hiện nay cho thiết bị thông minh là iOS và Android. Khi xây dựng một ứng dụng thì sẽ rất nhiều nhà phát triển phân vân chọn IOS hay là Android. Với nhu cầu phát triển đa nền tảng thì React Native ra đời.
React Native là một framework được tạo bởi Facebook, cho phép các lập
trình viên sử dụng JavaScript để làm mobile apps trên cả Android và iOS với có trải nghiệm và hiệu năng như native. React Native vượt trội ở chỗ chỉ cần viết một lần là có thể build ứng dụng cho cả iOS lẫn Android.
Hình 2.23: React Native
Ứng dụng viết bằng React Native được chia làm 2 phần: phần view và phần xử lý
Phần view hay phần hiển thị được biên dịch từ javascript sẽ ánh xạ với những component của hệ thống, vì dụ: điều hưởng, tab, touch vv... Phần view này được lấy cảm hứng từ Virtual DOM của React JS, mọi xử lý view được thực hiện trên một cây DOM ảo, sau đó được React Native render lai bang native view.
Phần xử lý vẫn được thực hiện trực tiếp bằng ngôn ngữ javascript
e) Expo
Expo là cách dễ nhất để bắt đầu xây dựng 1 ứng dụng React Native. Nó cho phép bạn bắt đầu lập trình React Native mà khơng cần cài đặt hay thiết lập công cụ, phần mềm hay 1 IDE nào như Xcode, Android Studio.Thêm nữa Expo là 1 tiện ích hỗ trợ lập trình React Native được Facebook giới thiệu và khuyên dùng. Expo dùng để build, tích hợp, quản lý các thư viện dùng trong React Native.
Hình 2.24: Expo
2.4.3 Web
Website cịn gọi là trang web (hoặc trang mạng) là tập hợp các trang chứa
thơng tin bao gồm văn bản, hình ảnh, video, … và được nằm trên một domain name (tên miền) được lưu trữ (Web Hosting) trên máy chủ web (Web Server). Giúp người dùng truy cập
Hình 2.25: Website
Web = mạng.
Site = trang, khu vực.
Một trang mạng tồn tại dưới dạng tập tin HTML hoặc XHTML có thể truy cập bằng giao thức HTTP hoặc HTTPS. Website có thể xây dựng từ các tập tin
HTML (website tĩnh) hoặc vận hành với các CMS chạy trên máy chủ (website động). Bên cạnh đó, website được xây dựng trên nhiều ngơn ngữ lập trình khác nhau như: PHP, JavaScript, Java, …
Nói tóm lại khái niệm về website rất đơn giản: Website chỉ một site (trang) nằm trên một web. Website cho phép người dùng đưa thông tin cá nhân, thông tin doanh nghiệp hay đăng tải bất kỳ chủ đề nào để người khác có thể truy cập thơng qua Internet.
a) Thư viện jQuery
jQuery là một thư viện JavaScript được thiết kế đơn giản hóa thao tác HTML DOM, cũng như xử lý sự kiện, hoạt ảnh CSS, và Ajax. Nó là phần mềm mã nguồn mở, miễn phí sử dụng giấy phép MIT License.
Hình 2.26: Thư viện jQuery
Tính đến tháng 5 năm 2019, jQuery được 73% trong số 10 triệu trang web phổ biến nhất sử dụng. Phân tích web chỉ ra rằng nó là thư viện JavaScript được triển khai rộng rãi nhất với tỷ suất lợi nhuận lớn, có mức sử dụng nhiều hơn ít nhất 3 đến 4 lần so với bất kỳ thư viện JavaScript nào khác. Các tính năng quan trọng của jQuery:
Gọn nhẹ: jQuery là một thư viện khá gọn nhẹ – có kích cỡ khoảng 19KB
Tương thích đa nền tảng: Nó tự động sửa lỗi và chạy được trên mọi trình
duyệt phổ biến như Chrome, Firefox, Safari, MS Edge, IE, Android và iOS.
Dễ dàng tạo Ajax: Nhờ thư viện jQuery, code được viết bởi Ajax có thể dễ
dàng tương tác với server và cập nhật nội dung tự động mà không cần phải tải lại trang.
Xử lý nhanh nhạy thao tác DOM: jQuery giúp lựa chọn các phần tử DOM
để traverse (duyệt) một cách dễ dàng, và chỉnh sửa nội dung của chúng bằng cách sử dụng Selector mã nguồn mở, mà còn được gọi là Sizzle.
b) Thư viện Bootstrap
Bootstrap là một khung CSS mã nguồn mở và miễn phí hướng đến việc phát triển web front-end đáp ứng trên thiết bị di động. Nó chứa các mẫu thiết kế dựa trên HTML, CSS và JavaScript cho kiểu chữ, biểu mẫu, nút, điều hướng và các thành phần giao diện khác. Ưu điểm của Bootstrap là:
Hình 2.27: Thư viện Bootstrap
Dễ sử dụng: Bất kỳ ai có kiến thức cơ bản về HTML và CSS đều có thể bắt đầu sử dụng Bootstrap.
Các tính năng đáp ứng (Responsive features): responsive CSS của Bootstrap điều chỉnh cho điện thoại, máy tính bảng và máy tính để bàn.
Cách tiếp cận Mobile-first: Trong Bootstrap 3, mobile-first styles là một phần của core framework.
Khả năng tương thích trình duyệt: Bootstrap tương thích với tất cả các trình duyệt hiện đại (Chrome, Firefox, Internet Explorer, Edge, Safari và Opera).
c) Thư viện Font Awesome
Font Awesome là là một thư viện chứa các font chữ ký hiệu hay sử dụng trong website. Font chữ ký hiệu ở đây chính là các icons mà ta thường hay sử dụng trong các layout website.
Font Awesome được xây dựng thành nhiều định dạng file font khác nhau như file otf, eot, ttf, woff, svg, … Vì vậy ta có thể dễ dàng đưa vào sử dụng và hầu hết các hệ điều hành máy tính hiện nay đều chạy được.
Hình 2.28: Thư viện Font Awesome
Font Awesome hoạt động hầu hết ở các trình duyệt hiện đại hiện hay. Tuy nhiên với các phiên bản cũ IE7 thì nó khơng hỗ trợ nữa vì IE7 được coi như đã chết.
Nếu ta sử dụng Bootstrap để xây dựng CSS cho website thì sẽ dễ dàng nhận thấy sự cần thiết của Font Awesome bởi vì chúng kết hợp với nhau khá là tốt và tạo ra các sản phẩm khá là bắt mắt.
d) Tiện ích Live Server
Live Server là một tiện ích dành cho VS Code giúp lập trình viên front-end tiết kiệm thời gian khi cần phải phát triển một trang web/web app tĩnh (static) hoặc độc lập với back-end (giao tiếp bằng các micro service / RESTfulAPI).
Nếu phân tích sâu vào source code thì ta sẽ nhận thấy extension này được phát triển trên một bộ core cùng tên, tích hợp thêm nhiều tính năng, nhưng chung quy lại vẫn xoay quanh 2 tính năng cơ bản:
Cho phép gửi HTTP REQUEST lên các service, việc mà các bạn không thể thực hiện với giao thức file:// vì lý do an ninh, bảo mật.
Tự động reload lại trang khi có sửa đổi trong các file được theo dõi (watch), giúp tốc độ code tăng đáng kể.
CHƯƠNG 3: TÍNH TỐN THIẾT KẾ VƯỜN THƠNG MINH3.1 Tính tốn thiết kế nhà kính 3.1 Tính tốn thiết kế nhà kính
Chọn các vật liệu xây dựng nhà kính:
Ống thép mạ kẽm: Phần khung cần phải chắc chắn để nâng đỡ tồn bộ sức nặng của nhà kính, chống chịu các yếu tố bão, gió, đồng thời chịu được mơi trường nóng ẩm mà khơng bị gỉ. Vì vậy nhóm lựa chọn ống thép mạ kẽm để làm khung nhà kính.
Hình 3.30: Ống thép mạ kẽm
Màng nhựa PE: Màng phủ nhà kính yêu cầu độ bền, dai khi tiếp xúc liên tục với nắng, gió nhưng cũng cần có khối lượng nhẹ. Màng nhựa chất liệu Polyetylen (PE) là loại vật liệu phù hợp nhất cho việc sử dụng làm màng phủ nhà kính. Màng PE sử dụng cho nhà kính có độ dày 200 micromet và có độ bền trên 3 năm.
Hình 3.31: Màng PE
Các kích thước của khung nhà kính: Chiều rộng: 8m
Chiều dài: 18m Chiều cao tường: 3m Chiều cao đến đỉnh: 4.5m
Khoảng cách giữa các vì kèo: 4.5m Mơ hình 3D nhà kính:
3.2 Tính chọn các cơ cấu chấp hành
3.2.1 Tính chọn máy bơm
Với diện tích trồng 18x8m, theo quy chuẩn, có thể trồng được 13 hàng cây, mỗi hàng cây cách nhau 60cm. Trong hàng dài 18m mỗi cây cách nhau 40cm vậy mỗi hàng trồng được 45 cây. Mỗi cây sử dụng một béc tưới nhỏ giọt bù áp có lưu lượng 6 lít /giờ.
Qua đó tính được hệ thống cần lưu lượng nước tối thiểu là:
V = N x L (m3/h)
Trong đó: V là lưu lượng nước tối thiểu của máy bơm N là số lượng cây
L là lưu lượng nước mỗi béc nhỏ giọt
V = 13x45x6 = 3510 lít/h = 3.5 m3/h
Mỗi béc tưới nhỏ giọt hoạt động ổn định dưới áp suất 0.03 bar. Ta tính được áp suất cần cung cấp tại đầu đường ống là:
P = N x p (bar)
Trong đó: P là áp suất tối thiểu máy bơm N là số lượng cây
p là áp suất hoạt động mỗi béc tưới
P = 0.03x13x45 = 17.55 bar
Nên chọn máy bơm có lưu lượng và cột áp cao hơn ít nhất 1,5 lần (tùy theo điều kiện địa hình) thơng số u cầu hoạt động của thiết bị. Nhằm đảm bảo mức độ làm việc của máy bơm được tốt nhất. Bởi vì, ngồi áp suất u cầu để thiết bị tưới hoạt động thì phải cộng thêm phần tổn hao áp suất trong hệ thống đường ống khi qua lọc, bộ châm dinh dưỡng, co, tê, giảm v.v… Vậy ta có thể chọn máy bơm có lưu lượng từ 5m³/giờ và cột áp từ 26m trở lên.
Hình 3.33: Bơm CM100
Thơng số kỹ thuật của CM100:
Nguồn điện: 220V / 50Hz
Công suất
bơm: 750W
Cột áp: 25,2m – 32,5 m Hút sâu: 8m
Lưu lượng nước tối đa: 6000 l/h Đường kính ống hút, xả: 25 mm (1")
3.2.2 Tính chọn quạt thơng gió
Đối với nhà kính 8x18 m2, chiều cao hông nhà 3,0 m, chiều cao đến đỉnh 4.5m ta cần tính được thể tích của nhà kính xấp xỉ:
V = Chiều dài x chiều rộng x chiều cao
=> V = 8x18x3+8x1.5x0.5x18=540 (m3)
Tiếp theo ta cần biết tổng lượng khơng khí trao đổi trong nhà kính, ở đây theo quy chuẩn chúng ta có số lần tuần hồn gió trong 1h là 70 lần, có nghĩa là cứ hơn 1 phút lại có 1 lần trao đổi hết lượng khơng khí trong nhà kính. Như vậy tổng lượng
khơng khí cần dùng:
T = X x V (m3/h)
Trong đó: X là số lần thay đơi khơng khí.
V là thể tích khơng gian.
=> T = 70 x 540 = 37800 m3
Qua tìm hiểu nhóm đã tổng hợp được một số model quạt thơng gió:
Bảng 3.2: Thống kê một số mẫu quạt
Model Đường kính cánh (mm) Tốc độ quạt (vịng/p hút) Điện áp đầu vào (kW) Cường độ dịng điện (A) Lưu lượng khí (m3/h) Kích thước (mm) Khối lượng (kg) BNF-620 500 1400 0.37 1 12.000 620*620*370 23 BNF-900 750 630 0.55 1.5 20.000 900*900*400 43 BNF-1000 900 610 0.75 2 30.000 1000*1000*400 47 BNF-1100 1000 600 0.75 2 32.500 1100*1100*400 50
BNF-1220 1100 460 1.1 2.8 38.000 1220*1220*400 63
BNF-1380 1250 439 1.1 3.8 44.500 1380*1380*400 71
Dựa vào lưu lượng khí cần lưu thơng đã được tính tốn và bảng thơng số một sơ mẫu quạt thơng gió, nhóm chọn sử dụng quạt thơng gió mẫu BNF-900.
Vậy số lượng quạt BNF-900 cần dùng được tính theo cơng thức:
N = T/Q
Trong đó: T là tổng lượng khơng khí cần dùng.
Q là lưu lượng gió của quạt (m3/h). N = 37800/20000=2 (chiếc)
Các thơng số và hình ảnh cụ thể mẫu quạt BNF-900: Điện áp nguồn: 220V / 50Hz
Cơng suất: 550W
Lưu lượng gió: 20.000 m3/h Tốc độ: 630 rpm
Độ ồn: 65 dB
Đường kính cánh: 750 mm
Trọng lượng: 43 kg
3.3 Tính tốn, thiết kế hệ thống điện, điện tử
3.3.1 Thiết kế hệ thống điện
a) Sơ đồ cấu tạo cơ bản hệ thống:
Hình 3.35: Sơ đồ khối hệ thống
Chức năng từng khối:
Khối nguồn: Cung cấp nguồn cho toàn bộ hoạt động của hệ thống bao gồm: khối xử lý trung tâm, khối giao tiếp wifi, khối webserver, khối điều khiển trực tiếp và hiển thị, khối cảm biến, khối relay và khối cơ cấu chấp hành
Khối xử lý trung tâm: Thu thập dữ liệu từ các thiết bị sau đó xử lý và điều khiển khối chấp hành và khối hiển thị.
Khối giao tiếp wifi: Để giao tiếp giữa khối điều khiển trung tâm và server, là cầu nối trung gian để nhận và gửi dữ liệu điều khiển các thiết bị điện trong khu vườn.
Khối webserver: Xây dựng giao diện web và mobile app để hiển thị, lưu trữ dữ liệu, đồng thời cho phép người dùng thao tác, điều khiển gián tiếp hệ thống thông qua Wifi.
Khối điều khiển trực tiếp và hiển thị: Cho phép người dùng theo dõi các thông số môi trường, thao tác điều khiển trực tiếp ngay trên màn hình.
Khối cảm biến: Bao gồm các cảm biến có nhiệm vụ thu thập các thông số của môi trường để dựa vào các thơng số đó điều khiển, giám sát khu vườn.
Khối module Relay: Đóng ngắt các tiếp điểm theo sự điều khiển của ngõ ra ESP32 để điều khiển thiết bị. Cách ly giữa mạch công suất và mạch điều khiển.
Khối chấp hành: Sẽ gồm các thiết bị mà sẽ giúp điều chỉnh các thông số, các cơ cấu của khu vườn để giữ cho khu vườn ln ở điều kiện thích hợp nhất
b) Lựa chọn Aptomat bảo vệ hệ thống
Ta đã tính tốn và chọn được các cơ cấu chấp hành cho hệ thống, từ đó ta tính được tổng cơng suất tiêu thụ tối đa:
Trong đó: là tổng cơng suất các bơm là tổng công suất các quạt
750 + 550 x 2 = 1850 (W)
Hệ thống sử dụng điện lưới 220V, ta tính được I của hệ thống: I1 == =10.5 A
Do hệ thống có thiết bị động cơ, dịng của Aptomat cần gấp 2 đến 2.5 lần dòng của hệ thống:
I2 = 2.5 x I1 = 26.25 A
Vậy ta lựa chọn Aptomat cho hệ thống điện có dịng điện định mức là 32A
Hình 3.36: Aptomat c) Thiết kế mạch điện
Hình 3.37: Thiết kế mạch điện
Sơ đồ đấu nối từ relay ra bơm và quạt:
Hình 3.38: Sơ đồ đấu nối từ relay ra bơm và quạt
Hình 3.39: Sơ đồ đấu nối LCD với ESP32
3.3.2 Lựa chọn cảm biến
a) Cảm biến nhiệt độ DS18B20
Cảm biến nhiệt độ DS18B20 là cảm biến (loại digital) đo nhiệt độ mới của hãng MAXIM với độ phân giải cao (12bit). IC sử dụng giao tiếp 1-Wire rất gọn gàng, dễ lập trình. IC cịn có chức năng cảnh báo nhiệt độ khi vượt ngưỡng và đặc biệt hơn là có thể cấp nguồn từ chân data (parasite power).
Thơng số của Cảm biến nhiệt độ DS18B20 dây mềm: Nguồn: 3 – 5.5V
Dải đo nhiệt độ: -55 đến 125 độ C ( -67 đến 257 độ F) Sai số: +- 0.5 độ C khi đo ở dải -10 – 85 độ C
Độ phân giải: người dùng có thể chọn từ 9 – 12 bits Chuẩn giao tiếp: 1-Wire (1 dây).
Có cảnh báo nhiệt khi vượt ngưỡng cho phép và cấp nguồn từ chân data. Thời gian chuyển đổi nhiệt độ tối đa: 750ms (khi chọn độ phân giải 12bit). Mỗi IC có một mã riêng (lưu trên EEPROM của IC) nên có thể giao tiếp
nhiều DS18B20 trên cùng 1 dây
Ống thép khơng gỉ (chống ẩm, nước) đường kính 6mm, dài 50mm Đường kính đầu dị: 6mm