Ở Việt Nam, NNĐT bước đầu đã được nhiều thành phố đưa vào mục tiêu phát triển như một yếu tố quan trọng trong hệ thống cung cấp thực phẩm cho các vùng đô thị để đáp ứng quy mô của các th
Trang 1THÀNH PHỐ HỒ CHÍ MINH
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT THỦY CANH TRÊN NỀN TẢNG INTERNET OF THINGS
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
GVHD: TẠ VĂN PHƯƠNG SVTT: ĐỖ VŨ ANH DUY MSSV:11941039
SKL 0 0 4 5 5 4
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP
GVHD: Ths Tạ Văn Phương SVTH : Đỗ Vũ Anh Duy MSSV: 11941039
Trang 3PHIẾU ĐÁNH GIÁ KHÓA LUẬN TỐT NGHIỆP
(Dùng cho giáo viên hướng dẫn)
I Thông tin chung
- Họ và tên sinh viên: Đỗ Vũ Anh Duy MSSV: 11941039
- Tên đề tài: Hệ thống giám sát thủy canh trên nền tảng internet of things
- Họ và tên giáo viên hướng dẫn: Tạ Văn Phương
II Nhận xét về khóa luận
2.1.Đánh giá chung (hoàn thành bao nhiêu phần trăm mục tiêu của đề tài):
2.2.Ưu điểm của đề tài:
2.3.Khuyết điểm của đề tài:
2.4.Thái độ làm việc của sinh viên:
2.5.Kết quả chính thu được:
2.6.Đề nghị: Được bảo vệ Không được bảo vệ
Tp HCM, ngày … tháng…năm 2017
Giáo viên hướng dẫn
BÔ MÔN ĐIỆN TỬ CÔNG NGHIỆP
Trang 4Mục Lục
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Error! Bookmark not defined.
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Error! Bookmark not defined.
LỜI CAM ĐOAN Error! Bookmark not defined.
LỜI CẢM ƠN Error! Bookmark not defined.
DANH MỤC HÌNH Error! Bookmark not defined.
DANH MỤC BẢNG Error! Bookmark not defined.
TÓM TẮT 6
CHƯƠNG 1 : TỔNG QUAN 10
1.1 Tổng quan về lãnh vực nghiên cứu 10
1.2 Mục tiêu đề tài 10
1.3 Nhiệm vụ và giới hạn đề tài 10
1.3.1 Nhiệm vụ 10
1.3.2 Giới Hạn 11
1.4 Phương Pháp Nghiên cứu 11
1.5 Tóm tắt đề tài 11
CHƯƠNG 2 : Cơ Sở Lý Thuyết 12
2.1 Lý Thuyết Điện Tử 12
2.1.1 Khảo sát board vi điều khiển arduino uno 12
2.1.3 Khảo sát module Wifi ESP 8266 Node MCU 15
2.1.4 Module RTC 18
2.1.5 Module PH DFRobot 19
2.1.6 LCD 16x2 20
2.1.8 Các chuẩn giao tiếp truyền dữ liệu 21
2.1.8 Giao thức MTTQ-IOT 26
Trang 52.1.9 Lập trình PHP và MySQL 29
2.2 Lý thuyết nông nghiệp 36
2.2.1 Quá trình phát triển cây trồng 36
2.1.2 Những yếu tố ảnh hưởng đến sự phát triển của cây trồng 37
2.2.3 Khái niệm rau sạch (rau an toàn) 40
2.2.4 Thủy Canh 41
2.2.6 Giá thể cho hệ thống thủy canh 42
CHƯƠNG 3 : Thiết Kế Hệ Thống 44
3.1 Thiết kế phần cứng hệ thống 44
3.1.2 Thiết kế sơ đồ nguyên lý 46
3.2 Thiết kế giao diện và chức năng Website 51
3.2.1 Thiết kế giao diện website 51
2.1.2 Thiết Kế Chức Năng 54
3.3 Thiết kế lưu đồ 56
3.3.1 Lưu đồ chương trình chính 56
3.3.2 Lưu đồ chương trình con 59
CHƯƠNG 4 : Kết Quả 62
4.1 Kết quả thi công sản phẩm 62
4.2 Kết quả chạy thử nghiệm 64
CHƯƠNG 5 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 77
5.1 Kết luận 77
5.2 Hướng phát triển 77
Trang 6Danh Mục Hình
2.1: Board Arduino uno 12
2.2: Sơ đồ chân Arduino uno 14
2.3: Module Wifi ESP8266 Node MCU 15
2.4: Module RTC 18
2.5: Module pH DF Robot 19
2.6: Dạng sóng điều khiển LCD 20
2.7: Cấu trúc mã JSON 22
2.8: nội dung gửi đi của mã JSON 22
2.9: cấu trúc truyề dữ liệu UART 23
2.10: Sơ đồ kết nối thiết bị dùng I2C truyền dữ liệu 24
2.11: Dạng sóng mô tả cách truyền bit dữ liệu 25
2.12: Dang sóng mô tả cách truyền dữ liệu I2C Bus 26
2.13: Quá trình subscribe từ client 27
2.14: Quá trình gửi dữ liệu giữa các client 27
2.15: Java, CSS, HTML 32
2.16: Mô tả chức năng CSS 34
2.17: Quá trình gieo hạt và nẩy mầm 36
2.18: Quá trình phát triển cây trồng 36
2.19: Quang phổ phù hợp cho cây 39
2.20: Hệ thống thủy canh hồi lưu 42
3.1: Sơ đồ khối hệ thống 44
3.2: Sơ đồ kết nối toàn mạch 46
3.3: Sơ đồ kết nối arduino và esp 47
3.4: Sơ đồ kết nối RTC, LCD qua I2C 48
3.5: Sơ đồ kết nối giữa arduino với pH meter 49
3.6: Sơ đồ kết nối với tải qua module relay 50
3.7: Giao diện cơ bản 52
3.8: Lưu đồ chương trình chính cho arduino 56
3.9: Lưu đồ chương trình chính cho ESP 8266 58
Trang 73.10: Lưu đồ xử lý tín hiệu của Arduino 59
3.11: Lưu đồ hiệu chỉnh pH tự động 59
3.12: Lưu đồ xử lý tín hiệu của arduino từ esp 60
4.1: Mạch layout 62
4.2: Mạch in kết nối phần cứng sau thi công 63
4.3: Mạch in kết nối phần cứng sau thi công 63
4.4: LCD hiển thị thông tin ban đầu 64
4.5: Wifi do hệ thống phát ra 65
4.6: Giao diện setup wifi cho hệ thống 65
4.7: Giao diện nhập ID và Password cho hệ thống trên máy tính 65
4.8: Hệ thống hiển thị địa chỉ MAC 66
4.9: Hệ thống đã bắt đầu hoạt động 66
4.10: Giao diện đăng nhập 67
4.11: Giao diện đăng kí tài khoản 67
4.12: Giao diện đăng nhập tài khoản 68
4.13: Giao diện sau khi đăng nhập thành công 68
4.14: Giao diện add pro file 68
4.15: Giao diện Del profile 69
4.16: Khung chọn loại cây đang trồng 69
4.17: Giao diện Del profile 70
4.18: Khung chọn loại cây đang trồng 70
4.19: Khung chọn loại cây đang trồng 71
4.20: Khung điều khiển ở chế độ tự động 72
4.21: Khung điều khiển ở chế bằng tay 72
4.22: Giao diện hiển thị ở chế độ Image 73
4.23: Giá trị pH đo được ở bồn chứ dd thủy canh 73
4.24: Giá trị pH đo của nước cốt chanh 74
4.25: Hệ thống đang hoạt động ở chế độ auto 74
4.26 : Hệ thống hoạt động ở chế độ manual 75
4.27: Chế độ manual bơm 3 75
Trang 8Danh Mục Bảng
2.1: Điện áp quy đổi giá trị pH 20
2.2: Nội dung QoS0 28
g 2.3: Nội dung QoS1 28
2.4: Nội dung QoS2 28
2.5: Cấu trúc dữ liệu MySQL 31
2.6: E.C của mỗi loại cây trồng 40
3.1: Thông tin truy cập Broker 54
Trang 9TÓM TẮT
Trong đề tài “Hệ thống giám sát thủy canh trên nền tảng internet of
things” này, hệ thống thực hiển chức năng hiển thị thông tin hệ thống như Ph, thời
gian trồng, thời gian thu hoạch, loại cây Điều khiển một số chức năng như bật tắt đèn, máy bơm, cân chỉnh pH cho hệ thống
Ngoài ra giao diện điều khiển cho phép kiểm soát nhiều bộ điều khiển thông qua địa chỉ MAC của module wifi ESP 8266
Trang 10Đặt vấn đề
Nước ta vốn là nước nông nghiệp, nghề trồng rau đã có ở nước ta từ xa xưa, Việt Nam chính là trung tâm khởi nguyên của nhiều loại rau trồng song do chịu ảnh hưởng của một nền nông nghiệp lạc hậu và tự túc trong nhiều thế kỷ qua, cho nên
sự phát triển nghề trồng rau ở nước ta kém xa so với trình độ canh tác của thế giới Những năm gần đây mặc dù ngành trồng rau có khởi sắc, nhưng trên thực tế vẫn chưa theo kịp nhiều ngành khác trong sản xuất nông nghiệp Mặt khác tốc độ đô thị hóa ở nước ta trong những năm gần đây tăng khá nhanh, và đặc biệt là sau khi Việt Nam gia nhập WTO Các nước đang phát triển như Việt Nam, tổng số dân cả nước sống ở khu vực đô thị đến năm 2020 sẽ đạt khoảng 80%, bằng các nước công nghiệp phát triển hiện nay như ở châu Âu, Mỹ, Australia…Ðất nông nghiệp chỉ còn 20-30%, và tất nhiên đều là nông nghiệp đô thị Vì vậy chiến lược phát triển đô thị bền vững gắn liền với phát triển nông nghiệp đô thị là xu hướng tất yếu
Nông nghiệp đô thị (NNÐT) không chỉ có ý nghĩa to lớn về xã hội và nhân văn, mà lợi ích kinh tế cũng khá lớn Trên thế giới, gần một phần ba rau,quả, thịt, trứng cung ứng cho đô thị là từ NNÐT, và hàng vạn cư dân ở New York (Mỹ) có vườn trồng rau trên sân thượng Nhiều thành phố lớn thuộc Trung Quốc như Bắc Kinh, Thượng Hải, Quảng Châu… NNÐT đã cung cấp đến 85% nhu cầu về rau xanh
Ở Việt Nam, NNĐT bước đầu đã được nhiều thành phố đưa vào mục tiêu phát triển như một yếu tố quan trọng trong hệ thống cung cấp thực phẩm cho các vùng
đô thị để đáp ứng quy mô của các thành phố ngày một tăng nhanh Tuy nhiên, ở những thành phố lớn như Hà Nội, thành phố Hồ Chí Minh, Hải Phòng, Đà Nẵng và các khu đô thị lớn khác trên cả nước, hiện nay người tiêu dùng chủ yếu vẫn tiêu thụ rau không rõ nguồn gốc được vận chuyển vào từ các vùng sản xuất ngoài thành phố Và thực tế là khó có thể kiểm soát được người trồng rau thực hiện việc vệ sinh
an toàn thực phẩm như thế nào Báo chí và các phương tiện thông tin liên tục phản ánh về những ca ngộ độc thực phẩm, về sự mất an toàn của các vùng sản xuất rau,
về sự tồn dư thuốc bảo vệ thực vật, nhiễm độc kim loại và nhiễm khuẩn…đặc biệt là các vùng sản xuất rau cung cấp cho đô thị
Trang 11Theo thống kê của Tổ chức Lao Động Quốc tế (ILO), hằng năm trên thế giới
có trên 40.000 người chết trong tổng số 2 triệu người ngộ độc rau Tại VN, thống kê mới nhất của ngành y tế cho biết, trong vài năm gần đây, tính riêng số người ngộ độc thực phẩm phải nhập viện cấp cứu do nguồn rau, củ thiếu an toàn đã lên đến con số hơn 700 người
Trong khi đó, người tiêu dùng ngày càng nhận thức rõ được tầm quan trọng của rau xanh trong bữa ăn hàng ngày, họ ăn nhiều rau hơn, và nhu cầu về rau an toàn cũng lớn hơn Nhưng các vùng sản xuất rau lại chưa xây dựng được lòng tin cho người tiêu dùng, mặc dù họ sẵn sàng trả giá cao gấp nhiều lần cho một sản phẩm rau an toàn
Vậy tại sao không gây dựng lòng tin cho người tiêu dùng bằng cách cho họ dùng chính sản phẩm mà họ tự tay làm ra
Vậy còn với những người sống ở thành phố ? Với diện tích chật hẹp của căn nhà nội thành, họ có thể tự sản xuất được rau xanh cho bữa ăn của gia đình mình không ? Điều đó là hoàn toàn có thể thực hiện được, nếu như sân nhà, ban công hay sân thượng của họ có một chút ánh sáng tự nhiên và bỏ ra một ít chi phí cho hệ thống cộng với một chút công chăm sóc
Để góp phần thực hiện được điều đó, đã có nhiều đố án được nghiên cứu để trồng rau trong nhà, trên ban công, sân thượng … như: ứng dụng kỹ thuật thủy canh bằng hộp xốp, kỹ thuật khí canh Tuy nhiên những phương pháp nói trên yêu cầu kỹ thuật tương đối phức tạp, tỷ mỷ, và chăm sóc khó nên chưa được phổ biến và chưa ứng dụng được công nghệ
Đứng trước thực trạng này, chúng tôi tiến hành nghiên cứu đề tài:
Thiết kế và thi công hệ thống giám sát thủy canh trên nền tảng internet of things
Góp phần cải tiến và phổ biến các mô hình trồng rau thủy canh tại nhà trong
đô thị Đây sẽ là một hệ thống sản xuất rau an toàn theo phương pháp thủy canh nhưng đơn giản, dễ dử dụng và đảm bảo cung cấp đủ thức ăn xanh cho bữa ăn gia
Trang 12các mô hình trồng rau theo phương pháp này sẽ làm tăng thêm thảm xanh cho môi trường đô thị Theo tính toán của các nhà khoa học nếu mỗi hộ chỉ “trồng” 3 đến
4 , chúng ta sẽ có thêm khoảng 1 triệu thảm xanh luân chuyển nằm tại các ban công, sân thượng, sân nhà Phương pháp này còn tận dụng được không gian, diện tích dư thừa nơi ban công, sân thượng, sân nhà
Trang 13CHƯƠNG 1 : TỔNG QUAN
1.1 Tổng quan về lãnh vực nghiên cứu
Phương pháp trồng cây thủy canh (rau sạch) từ lâu đã được nhiều quốc gia có nền nông nghiệp công nghệ áp dụng rộng rãi Tuy nhiên ở nước ta công nghệ này vẫn còn khá mới lạ với nông dân và với những hộ gia đình hướng tới nhu cầu thực phẩm sạch hay còn gọi là rau sạch Ưu điểm của phương pháp trồng cây thủy canh này là tạo ra môi trường tốt nhất cho cây, kiểm soát được dinh dưỡng, giảm chi phí cho phân bón cũng như loại trừ và kiểm soát được sâu bệnh
Vấn đề về rau sạch hiện nay đang là một vấn đề cấp thiết của xã hội Cùng với
sự tăng trưởng của xã hội, con người hiện nay nhu cầu không chỉ là ăn ngon, mặc đẹp mà phải còn hợp vệ sinh đảm bảo sức khỏe cho con người Tuy nhiên trong khi
mà nguồn cung thực phẩm chủ yếu từ việc trồng trọt truyền thống ngày càng không đảm bảo được vệ sinh điều này đồng nghĩa với việc sức khỏe con người đang bị đe dọa khi ăn phải những thực phẩm như vậy Vậy đâu là giải pháp để giải quyết vấn
đề này, chính từ thực tế như vậy nhóm quyết định chọn đề tài “Hệ thống giám sát thủy canh trên nền tảng IOT”
1.2 Mục tiêu đề tài
Đề tài này sử dụng module esp8266 giao tiếp wifi kết hợp với arduino qua đó giám sát hệ thống thủy canh, đảm bảo độ ổn định pH của dung dịch thủy canh, kiểm soát thời gian chiếu sáng cho cây trồng qua mạng Giao diện điều khiển qua website thân thiện với người dùng Sử dụng arduino để giám sát và cập nhật dữ liệu
1.3 Nhiệm vụ và giới hạn đề tài
1.3.1 Nhiệm vụ
Thiết kế và thi công mô hình hệ thống thủy canh
Thiết kế giao diện giám sát và điều khiển qua mang
Khảo sát module wifi ESP 8266 Node MCU
Thiết kế và lập trình để kết nối arduino với module wifi
Nghiên cứu giao thức MQTT - IOT
Trang 14Nghiên cứu và tính toán phương pháp hiệu chỉnh pH
Lắp ráp các khối điều khiển vào mô hình
Chạy thử nghiệm hệ thống thủy canh
Cân chỉnh hệ thống
Viết báo cáo
Báo cáo đề tài tốt nghiệp
1.3.2 Giới Hạn
Vì tính chất của hệ thống rất phức tạp và cần có nhiều thời gian hơn để nghiên cứu nên người thực hiện đề tài chưa thực thiện được
Mạch đo EC cho hệ thống
Chưa áp dụng được giải thuật điều khiển vào việc cân chỉnh pH
Giao diện điều khiển chưa hoạt động được trên điện thoại thông minh
1.4 Phương Pháp Nghiên cứu
Đọc các tài liệu có liên quan
Tìm ra các hướng tiếp cận khác nhau thuộc lĩnh vực nghiên cứu
Quan sát và thực nghiệm trên sản phẩm thực tế
Đánh giá kết quả thực nghiệm và tìm ra các hướng giải quyết mới để đi đến thống nhất và hoàn thiện đề tài nghiên cứu
Chương 4: Kết quả thực hiện
Chương 5: Kết luận và hướng phát triển đề tài
Trang 15CHƯƠNG 2 : Cơ Sở Lý Thuyết
2.1 Lý Thuyết Điện Tử
2.1.1 Khảo sát board vi điều khiển arduino uno
2.1: Board Arduino uno
Arduino UNO R3 là một board mạch thiết kế với bộ vi xử lý trung tâm là vi điều khiển AVR ATMega328p Có 14 chân đầu vào / đầu ra số ( trong đó có 6 đầu được sử dụng như đầu ra PWM ), 6 đầu vào analog, 2 UARTs ( cổng nối tiếp phần cứng ), một 16 MHz dao động thạch anh, kết nối USB , một jack cắm điện, một đầu ICSP, và một nút reset Chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, chỉ đơn giản là kết nốinó với một máy tính bằng cáp USB hoặc nguồn điện ngoài, với một bộ chuyển đổi AC thành DC hoặc pin để bắt đầu
Bộ nhớ chương trình 32KB trong đó có 0.5KB được sử dụng bởi bootloader, dung lượng RAM là 2KB, 1KB EEPROM Mega tương thích với hầu hết các lá chắn được thiết kế cho các ArduinoDuemilanove hoặc Diecimila
Thông số kỹ thuật:
Vi điều khiển: Atmega 328P 8bit
Điện áp hoạt động: 5V
Điện áp đầu vào (đề nghị): 7-12V
Điện áp đầu vào (giới hạn): 6-20V
Số chân I/O Digital: 14 (trong đó 6 chân cung cấp đầu ra PWM)
Trang 16Dòng DC mỗi chân I/O: 30 mA
Trang 17và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là
số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Môi trường lập trình arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trườnglập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm
Trang 182.2.1.1 ADC
Arduino sử dụng ADC 10 bit chuyển đổi 5v đầu vào
Công thức :
2.1.3 Khảo sát module Wifi ESP 8266 Node MCU
ESP8266 Node MCU là một SoC của hãng Espressif System dùng cho các ứng dụng di động, cung cấp khả năng kết nối wifi tới các hệ thống khác với mức giá thấp nhất với các tính năng tốt nhất Giá bán lẻ module ESP8266 trên thị trường hiện nay chỉ khoản 200.000 đồng Module được hàn sẵn các chân ngõ ra và tích hợp antenna trên mạch
Module ESP8266 hoạt động với nguồn điện áp 3.3V và tiêu thụ dòng tối đa 215mA
2.3: Module Wifi ESP8266 Node MCU 2.1.3.1 Chức năng chân:
Tx,Rx : Chân giao tiếp theo chuẩn UART của module
RST : Reset module
CH_PD : Được nối lên mức cao để module hoạt động
ESP8266 có các chức năng cơ bản sau:
Hỗ trợ chuẩn wifi 802.11 b/g/n protocol
Hỗ trợ Wi-Fi direct ( P2P ) , Access Point mềm
Tích hợp giao thức TCP/IP stack
Trang 19Tích hợp LNA, khuếch đại công suất
Hỗ trợ diversity antenna
SDIO 2.0, SPI, UART
Độ lợi công suất phát +19,5dBm ở chế độ 802.11b
Công suất tiêu thụ khi ở chế độ nghỉ ít hơn 1mW
Thời gian khởi động từ chế độ nghỉ và bắt đầu truyền dữ liệu ít hơn 2ms
Module ESP8266 NODE MCU được sản xuất ban đầu với frimwave AT, người dùng có thể flash lại frimwave khác để sử dụng như các bộ frimwave dùng mã lua lập trình
2.1.3.2 Chế độ hoạt động
OFF: chân CHIP_PD được duy trì mức thấp RTC ngừng hoạt dộng Tất cả
thanh ghi được xóa
DEEP SLEEP: RTC được mở, những bộ phận khác của module vẫn đóng
RTC internal recovery memory lưu các thông tin kết nối WiFi
SLEEP: Chỉ có RTC chạy dao động thạch anh stops Hệ thống sẽ được đánh
thức bởi một trong số các bộ phận sau : MAC, host, RTC timer, ngắt ngoài
WAKEUP: Hệ thống khởi động lại từ chế độ sleep
AT+CWQAP
Thoát Access Point
AT+CWMODE Chế độ Wifi
AT+CWMODE=<mode>
Giá trị <mode>
1: Máy trạm
Trang 203: Cả hai
AT+CWLAP
Liệt kê danh sách Access Point
AT+CWJAP
Truy cập Access Point
AT+ CWJAP =<ssid>,< pwd >
SSID : tên Access Point Pwd : Password Access Point
AT+CIPSTART
Chọn dùng UDP hay TCP
-single connection AT+CIPSTART= <type>,<addr>,<port>; 2) -multiple connection
AT+CIPSTART= <id><type>,<addr>, <port> -ví dụ với đa kết nối :
AT+CIPSTART=4,"TCP","X1.X2.X3.X4",9999
AT+CIPSEND Gửi dữ liệu
single connection(+CIPMUX=0) AT+CIPSEND=<length>
multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>
AT+CIPCLOSE
Đóng kết nối UDB/TCP
AT+CIFSR Lấy địa chỉ IP
AT+ CWSAP
Thiết lập Access Point
AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn> SSID : tên Access Point
Pwd : Password Access Point
Chl : Channel wifi
AT+
CIPSTATUS
Kiểm tra tình trạng kết nối
AT+
Thiết lập
ở chế độ AT+ CIPSERVER= <mode>[,<port> ]
Trang 21CIPSERVER server Mode = 0 để đóng và 1 để mở
AT+ CIPMUX Thiết lập đa kết nối
DS3231 là IC thời gian thực giá rẻ, rất chính xác với thạch anh tích hợp sẵn có khả năng điều chỉnh nhiệt IC có đầu vào cho pin riêng, tách biệt khỏi nguồn chính đảm bảo cho việc giữ thời gian chính xác Thạch anh tích hợp sẵn giúp tăng độ chính xác trong thời gian dài hoạt động và giảm số lượng linh kiện cần thiết khi làm board
Trang 232.1: Điện áp quy đổi giá trị pH
Voltage (mv) pH value Voltage (mv) pH value
Nhìn vào dạng sóng ta có thể thấy được trình tự điều khiển như sau:
Điều khiển tín hiệuRS
Điều khiển tín hiệu R/W xuống mức thấp
Điều khiển tín hiệu E lên mức cao để cho phép
Xuất dữ liệu D7:D0
Điều khiển tín hiệu E về mức thấp
Điều khiển tín hiệu R/W lên mức cao trở lại
2.6: Dạng sóng điều khiển LCD
Trang 242.1.7 Các chuẩn giao tiếp truyền dữ liệu
2.1.7.1 Cấu trúc mã JSON
JSON (JavaScript Object Noattion) là 1 định dạng hoán vị dữ liệu nhanh Chúng dễ dàng cho chúng ta đọc và viết Dễ dàng cho thiết bị phân tích và phát sinh Chúng là cơ sở dựa trên tập hợp của Ngôn Ngữ Lập Trình JavaScript, tiêu chuẩn ECMA-262 phiên bản 3 - tháng 12 năm 1999 JSON là 1 định dạng kiểu text
mà hoàn toàn độc lập với các ngôn ngữ hoàn chỉnh, thuộc họ hàng với các ngôn ngữ
họ hàng C, gồm có C, C++, C#, Java, JavaScript, Perl, Python, và nhiều ngôn ngữ khác Những đặc tính đó đã tạo nên JSON 1 ngôn ngữ hoán vị dữ liệu lý tưởng Đây là 1 cấu trúc dữ liệu phổ dụng Hầu như tất cả các ngôn ngữ lập trình hiện đại đều hổ trợ chúng trong 1 hình thức nào đó Chúng tạo nên ý nghĩa của 1 định dạng hoán vị dữ liệu với các ngôn ngữ lập trình cũng đã được cơ sở hoá trên cấu trúc này
Cú pháp của JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key
và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một record nào đó Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một vài điều như sau:
Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}
Các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu đặt nó trong dấu nháy đơn thì đây không phải là một chuỗi JSON đúng chuẩn Nên trường hợp trong value của bạn có chứa dấu nháy kép thì hãy dùng dấu (\) để đặt trước nó, ví dụ học \"json là gì\" tại website freetuts.net
Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn cách
Các key của JSON bạn nên đặt chữ cái không dấu hoặc số, dấu _ và không có khoảng trắng., ký tự đầu tiên không nên đặt là số Điều này rất giống với nguyên tắc đặt tên biến trong PHP
Những cấu trúc này có thể đã được lồng vào nhau
Trang 25Giao tiếp SPI và I2C có 1 dây truyền dữ liệu và 1 dây được sử dụng để truyền xung clock (SCL) để đồng bộ trong giao tiếp Với UART thì không có dây SCL, vấn đề được giải quyết khi mà việc truyền UART được dùng giữa 2 vi xử lý với nhau, đồng nghĩa với việc mỗi vi xử lý có thể tự tạo ra xung clock cho chính nó xử dụng Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là STOP bit
Trang 262.9: cấu trúc truyề dữ liệu UART
Khi ở trạng thái chờ mức điện thế ở mức 1 (high) Khi bắt đầu truyền START bit sẻ chuyển từ 1 xuống 0 để báo hiệu cho bộ nhận là quá trình truyền dữ liệu sắp xảy ra Sau START bit là đến các bit dữ liệu D0-D7 (Theo hình vẽ các bit này có thể ở mức High or Low tùy theo dữ liệu) Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền (vấn đề này mình sẽ giải thích rõ hơn trong tài liệu CRC trong thời gian tới) Cuối cùng là STOP bit là 1 báo cho thiết bị rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm báo tính đúng đắn của dữ liệu
Các thông số cơ bản trong truyền nhận UART:
Baund rate (tốc độ baund ): Khoảng thời gian dành cho 1 bit được truyền.Phải được cài đặt giống nhau ở gửi và nhận Frame : Khung truyền quy định về số bit trong mỗi lần truyền Start bit: là bit đầu tiên được truyền trong 1 Frame Báo hiệu cho thiết bị nhận có một gói dữ liệu sắp đc truyền đến Bit bắt buộc Data: dữ liệu cần truyền Bit có trọng số nhỏ nhất LSB được truyền trước sau
đó đến bit MSB
Parity bit: kiểm tra dữ liệu truyền có đúng không
Stop bit: là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong Thiết
bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của
dữ liệu Bit bắt buộc
Trang 272.1.7.3 I2C
I2C sử dụng hai đường truyền tín hiệu:
Một đường xung nhịp đồng hồ(SCL) chỉ do Master phát đi thường ở tần số 100kHz và 400kHz Mức cao nhất là 1MHz và 3.4MHz
Một đường truyền dữ liệu SDA theo 2 hướng
2.10: Sơ đồ kết nối thiết bị dùng I2C truyền dữ liệu
I2C truyền dữ liệu trên đường SDA nhưng chỉ ghi ở cạnh lên của xung clk lợi dụng điểm này ta có thể sử dụng 2 chân GPIO để làm chân giao tiếp mà không cần xung clk chính xác
SCL và SDA luôn được kéo lên nguồn bằng điện trở 4.7KOhm, tùy thiết bị có thể giao động từ 1KOm đến 4.7KOhm
I2C có hai chế độ hoạt động dựa vào tốc độ và theo số lượng thiết bị
Trang 28Quá trình truyền dữ liệu:
Thiết bị A (chủ) xác định đúng địa chi của thiết bị B (con) cùng việc xác định địa chỉ thiết bị A sẽ.quyết định đọc hay ghi
Xác định địa chỉ thiết bị:
I2C sử dụng 7 bit để xác định địa chỉ Điểm mạnh của I2C chính là hiệu suất
và sự đơn giản một khối điều khiển trung tâm có thể điều khiển một mạng thiết bị
mà chỉ cần hai ngõ ra điều khiển
Định dạng truyền dữ liệu:
Dữ liệu được truyền theo từng bit, bit dữ liệu được truyền đi tại cạnh lên của SCL
2.11: Dạng sóng mô tả cách truyền bit dữ liệu
Bit start được xác định khi SDA HIGH to LOW và SCL đang ở mức HIGH Bit stop được xác định khi SDA LOW to HIGH và SCL đang ở mức HIGH Mỗi byte dữ liệu được truyền đi có 8 bits số lượng byte có thể truyền trong một lần là không hạn chế, sau khi truyền sẽ chờ tín hiệu ACK để báo đã nhận dữ liệu vậy mỗi lần I2C sẽ truyền 8 bit và nhận 1 bit
Bit có trọng số cao nhất (MSB) sẽ được truyền đi đầu tiên, các bít sẽ được truyền đi lần lượt Sau 8 xung clock trên dây SCL, 8 bit dữ liệu đã được truyền đi Lúc này thiết bị nhận, sau khi đã nhận đủ 8 bít dữ liệu sẽ kéo SDA xuống mức thấp tạo một xung ACK ứng với xung clock thứ 9 trên dây SDA để báo hiệu đã nhận đủ
8 bit Thiết bị truyền
Khi nhận được bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc
Trang 292.12: Dang sóng mô tả cách truyền dữ liệu I2C Bus 2.1.8 Giao thức MTTQ-IOT
MQTT (Message Queuing Telemetry Transport) là một giao thức publish/subscribe bản tin, được thiết kế cho công nghệ M2M (Machine to Machine) sử dụng cho các thiết
bị Internet of Things với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn định
MQTT hoạt động dưới dạng client và mỗi khách hàng xử dụng hệ thống với cảm biến, vi xử lý vv… được coi là một client kết nối với sever hay còn gọi là (broker) qua giao thức TCP
Để có thể hiểu được MQTT hoạt động như thế nào cần hiểu được các định nghĩa sau "subscribe", "publish", "qos", "retain", "last will and testament (lwt)"
Subscribe và publish : client có vai trò là thiết bị đầu cuối , khi subscribe nghĩa
là đăng kí vào một kênh gửi nhận dữ liệu, một client có thể gửi và nhận từ nhiều client khác khi cùng đăng kí một kênh Thao tác client gửi dữ liệu vào kênh được gọi là publish
Trang 30Ví dụ: Mạng 3 client và một broker client A và B sẽ Subscrise topic pH
Broker Client A
2.13: Quá trình subscribe từ client
Sau khi đã hoàn tất việc Subscribe Một thời điểm nào đó client C thực hiện việc gửi một giá trị pH = 5.5 đến topic pH , broker sẽ thực hiện việc gửi thông tin đến các client đã đăng kí topic pH
Broker Client A
“pH” = “5.5”
2.14: Quá trình gửi dữ liệu giữa các client
QoS : (Qualities of service) là cách thức client và broker xác nhận trong việc
“Publish” và “Subscribe” Có 3 loại QoS gồm các bước khác nhau có thể cho độ an toàn trong việc gửi nhận thông tin
Trang 31QoS0 Broker/client sẽ gởi dữ liệu đúng 1 lần, quá trình gởi được xác nhận bởi
chỉ giao thức TCP/IP
2.2: Nội dung QoS0
QoS = 0 PUBLISH
->
Publish tin nhắn tới client đã subscribe
QoS1 Broker/client sẽ gởi dữ liệu với ít nhất 1 lần xác nhận từ đầu kia, nghĩa
là có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu
2.3: Nội dung QoS1
< -QoS2 Broker/client đảm bảm khi gởi dữ liệu thì phía nhận chỉ nhận được đúng
1 lần, quá trình này phải trải qua 4 bước bắt tay
2.4: Nội dung QoS2
Trang 322.1.9 Lập trình PHP và MySQL
2.1.9.1 PHP
PHP là viết tắt của chữ "Hypertext Preprocessor", đây là một ngôn ngữ lập trình được sử dụng để viết ở phía máy chủ (lập trình web) Hiện nay có rất nhiều ngôn ngữ có thể viết ở máy chủ như C#, Java, Python và PHP chính là một trong những ngôn ngữ của nhóm này
PHP có cú pháp đơn giản, tốc độ nhanh và nhỏ gọn, dễ học và thời gian để tiếp cập PHP ngắn hơn so với các ngôn ngữ lập trình khác nên hiện nay PHP đang chiếm số lương lập trình viên tương đối lớn, có thể gọi là lớn nhất Hiện phiên bản mới nhất hiện nay là PHP7, được cài đặt mặc định trên hầu hết sever linux
PHP sử dụng cặp thẻ mở <?php và thẻ đóng ?>, phía bên trong chính là nội dung của mã code PHP
Trong đề tài, PHP có nhiệm vụ giao tiếp với cơ sở dữ liệu MySQL và xuất ra Web cho người dùng dưới dạng HTML và Javascript
Module Session : Quản lý phiên sử dụng của người dùng, khác với cookie lưu trữ trên máy người dùng thì Session lưu trữ trên máy chủ, giúp định danh người dùng để cung cấp nội dung phù hợp cho từng người
Trang 33từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau
Cũng giống như những hệ quản trị cơ sở dữ liệu khác như SQL Server, thì MySQL còn có một số đặc điểm nổi bật sau đây:
MySQL là hệ cơ sở dữ liệu sử dụng cho web
MySQL hoạt động trên một máy chủ (server)
MySQL phù hợp cho ứng dụng nhỏ và lớn
MySQL sử dụng cú pháp SQL
MySQL rất nhanh và dễ dàng sử dụng
MySQL hổ trợ nhiều nền tảng khác nhau như Windows, Linux
MySQL hoàn toàn miễn phí
Dữ liệu trong MySQL được lưu trữ dưới dạng bảng Mỗi bảng là tập hợp các
dữ liệu có quan hệ với nhau chứa các dòng và cột Cấu trúc database của MYSQL là database -> các table -> các field Ví dụ trong công ty cần quản lý nhân viên Tương ứng chúng ta sẽ có table Employee đơn giản như sau:
Trang 342.5: Cấu trúc dữ liệu MySQL
ID Name Gender Salaray
1 Nguyen Van A Male 3.000.000
2 Nguyen Van B Male 5.000.000
3 Nguyen Van C Male 10.000.000
Các câu lệnh MySQL cơ bản:
Trang 35javascript sẽ cho phép thực hiện một số ứng dụng chức năng, hành vi thao tác trên các thành phần của trang web
2.15: Java, CSS, HTML HTML:
Trong đó cơ quan trọng nhất là HTML, viết tắt của HyperText Markup Language Ngôn ngữ này được phát triển bởi Tim Berners-Lee, cũng là người khai sinh ra World Wide Web và chủ tịch của World Wide Web Consortium (W3C – tổ chức thiết lập ra các chuẩn trên môi trường Internet)
Có hai loại là web động và web tĩnh Trong đó web tĩnh là web chỉ gồm mã HTML phí người dùng Muốn cập nhật phải chỉnh trực tiếp trong mã lệnh HTML web động là web tương tác được với người dùng thông qua jvascript, được thực thi phía máy chủ nhờ các ngôn ngữ như PHP Cấu trúc một tập tin HTML gồm nội dung nằm trong một cặp thẻ HTML.Cấu trúc tổng quát của một tài liệu HTML gồm các thẻ cơ bản sau :
Trang 36Nội dung
</body>
</html>
Trong đó:
<!DOCTYPE html> là phần khai báo kiểu dữ liệu hiển thị là html để
trình duyệt (Browser) biết
<html> và </html> là cặp thẻ nằm ngoài cùng và nó có nhiệm vụ là bao hết nội dung của trang web lại Thẻ này là bát buộc
<head> và </head> là phần khai báo thông tin của trang web
<title> và </title> nằm bên trong thẻ <head> và đây chính là khai báo tiêu đề cho trang web
<body> và </body> là thành phần quan trọng nhất, nó chứa nhưng đoạn mã HTML dùng để hiển thị trên website
Các thẻ còn lại nằm trong thẻ <body> chính là các thẻ định dạng dữ liệu
Ngoài ra còn có các thẻ chuyên biệt để hiển thị nội dung, mỗi thẻ sẽ có các thuộc tính giúp quy định cách hiển thị ( có thể dùng CSS thay thế )
Trước đây khi chưa có CSS, những người thiết kế web phải trộn lẫn giữa các thành phần trình bày và nội dung với nhau Nhưng với sự xuất hiện của CSS, người
ta có thể tách rời hoàn toàn phần trình bày và nội dung Giúp cho phần code của trang web cũng gọn hơn và quan trọng hơn cả là dễ chỉnh sửa hơn
Trang 37Phương thức hoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn, vùng chọn có thể là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là
nó sẽ áp dụng các thuộc tính cần thay đổi lên vùng chọn đó
Một đoạn CSS có cấu trúc cơ bản như sau:
JavaScript là một ngôn ngữ lập trình của HTML và WEB Nó là nhẹ và được
sử dụng phổ biến nhất như là một phần của các trang web, mà sự thi hành của chúng cho phép Client-Side script tương tác với người sử dụng và tạo các trang web động Nó là một ngôn ngữ chương trình thông dịch với các khả năng hướng đối tượng
JavaScript được biết đến đầu tiên với tên Mocha, và sau đó là LiveScript, nhưng hãng Netscape thay đổi tên của nó thành JavaScript, bởi vì sự phổ biến như
Trang 382.0 năm 1995 với tên LiveScript Core đa năng của ngôn ngữ này đã được nhúng vào Netscape, IE, và các trình duyệt khác
Javascript là một ngôn ngữ lập trình kịch bản dựa vào đối tượng phát triển có sẵn hoặc tự định nghĩa ra, javascript được sử dụng rộng rãi trong các ứng dụng website Javascript được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome, thậm chí các trình duyệt trên thiết bị di động cũng có hỗ trợ
Trong HTML, Javascript được bao bởi cặp thẻ <script> … </script>
Các lợi thế của việc sử dụng JavaScript là:
Sự tương tác server ít hơn: Bạn có thể xác nhận đầu vào (input) người sử dụng trước khi gửi trang tới server Điều này làm tiết kiệm lưu lượng tải ở server, nghĩa là server của bạn tải ít hơn
Phản hồi ngay lập tức tới khách truy cập: Họ không phải chờ cho một trang web tải lại để thấy xem nếu họ đã quên nhập cái gì đó
Khả năng tương tác tăng lên: Bạn có thể tạo các giao diện mà phản ứng lại khi người sử dụng rê chuột qua chúng hoặc kích hoạt chúng thông qua bàn phím Giao diện phong phú hơn: Bạn có thể sử dụng javaScript để bao gồm những mục như các thành phần Drag và Drop (DnD) và các con trượt (Slider) để cung cấp một Rich Interface (Giao diện giàu tính năng) tới site khách truy cập của bạn
Trang 392.2 Lý thuyết nông nghiệp
2.2.1 Quá trình phát triển cây trồng
Cấy trồng trải qua ba giai đoạn: gieo hạt nẩy mầm, dinh dưỡng, sinh sản
2.17: Quá trình gieo hạt và nẩy mầm
Giai đoạn dinh dưỡng: đây là giai đoạn mà các cơ quan dinh dưỡng như rễ, lá, thân chiếm ưu thế, nhận thấy rõ nhất là cây lớn lên gia tăng về số lượng kích thước (sinh khối)
Giai đoạn sinh sản: cây hình thành các cơ quan và chức năng mới đó là cơ quan sinh sản như hoa, hạt,quả giúp duy trì nòi giống
2.18: Quá trình phát triển cây trồng
Trang 402.1.2 Những yếu tố ảnh hưởng đến sự phát triển của cây trồng
2.1.2.1 pH
Mặc dù là yếu tố bị bõ qua nhiều nhất nhưng ph đóng vai trò rất quan trọng trong hệ thống thủy canh pH được đo trên thang từ 1-14 với độ pH trung bình là 7 Nước mang tính axit có pH < 7 và bazơ là pH > 7
Nước tinh khiêt có sự cân bằng giữa (H+) và (OH-) do đó có độ pH = 7
Thang đo pH là logarit, có nghĩa mỗi đơn vị thay đổi đồng nghĩa với mười lần trong nồng độ ion (H+) và (OH-) nói cách khác, ph = 6 có tính axit gấp 10 lần so với pH = 7
Tại sao pH quan trọng trong thủy canh ?
Khi pH không nằm trong khoảng thích hợp sẽ ảnh hưởng rất lớn đến độ hấp thụ dinh dưỡng của cây trồng, bên dưới là bảng pH dành cho một số loại cây (bảng)
Độ pH của các loại cây khác nhau nhưng nhìn chung hầu hết các cây trồng nằm khoảng 6 đến 8.5
Các phương pháp cân chỉnh pH trong thủy canh:
Bộ lọc trung hòa pH: Nếu pH không quá thấp, có thể dùng các bộ lọc có vật liệu chính là Calcite (từ đá vôi) hoặc magnesia (magnesium oxide) để nâng pH Bộ lọc kiểu này có khả năng lọc cặn nên cần thường xuyên rửa ngược, tránh gây tắc nghẽn Các vật liệu trong bộ lọc tan từ từ và hao hụt dần Vì thế nên thường xuyên kiểm tra và bổ sung định kỳ Phương pháp này thường làm tăng lượng canxi và làm cho nước bị cứng hơn Do đó cần theo dõi độ cứng để có phương pháp điều chỉnh thích hợp Nếu độ cứng quá cao, lại cần phải làm mềm Muốn vật liệu sử dụng lâu bền hơn, nên trang bị thêm lọc cặn thô phía trước