TỔNG QUAN
GIỚI THIỆU TÌNH HÌNH NGHIÊN CỨU HIỆN NAY
Hiện tượng nóng lên toàn cầu đang gây ra nhiều thách thức cho môi trường, đặc biệt là hiện tượng xâm nhập mặn ở các tỉnh miền Tây Việt Nam, ảnh hưởng nghiêm trọng đến nông nghiệp Để đối phó với tình trạng này, việc theo dõi các thông số môi trường nước như nhiệt độ, độ mặn, độ đục và độ pH là rất cần thiết cho người nông dân và các cơ quan chức năng Hệ thống giám sát dữ liệu môi trường nước giúp người dùng theo dõi liên tục, từ đó đưa ra quyết định chính xác trong việc nuôi trồng và tưới tiêu thủy sản.
Hệ thống cảnh báo môi trường nước biển cung cấp thông tin kịp thời qua chuông báo tại chỗ, tin nhắn và mạng internet Người dùng có thể tra cứu thông số môi trường trực tuyến để có biện pháp xử lý nhanh chóng.
Thông số sẽ được lưu trữ để người dùng có thể tham khảo và theo dõi lâu dài, từ đó đưa ra phương án nuôi trồng thủy sản phù hợp trong năm.
1.1.2 Tính cấp thiết của đề tài
Theo báo cáo của Bộ NN&PTNT mùa khô năm 2015-2016, Tổng lƣợng mƣa trên lưu vực thiếu hụt 20-50% trung bình nhiều năm Mực nước thượng nguồn sông
Mê Kông đang trải qua mức nước thấp nhất trong 90 năm qua, dẫn đến tình trạng thiếu nước ngọt và xâm nhập mặn sớm hơn 2 tháng so với cùng kỳ Hiện tại, mặn đã xâm nhập sâu vào vùng Đồng bằng sông Cửu Long, với độ xâm nhập từ 40-93 km trên các hệ thống sông chính, tăng 10-15 km so với các năm trước.
Tỉnh Vĩnh Long, mặc dù nằm xa biển, lần đầu tiên đã phải đối mặt với tình trạng nước mặn xâm nhập Tại Hậu Giang, hơn 40 ha lúa đã bị thiệt hại nặng, trong khi Phó chủ tịch tỉnh Kiên Giang, Mai Anh Nhịn, cho biết các sông lớn đã bị nước mặn xâm nhập sâu từ 3 đến 4 km, dẫn đến 34.000 ha lúa bị thiệt hại và tình hình vẫn chưa có dấu hiệu cải thiện, ảnh hưởng nghiêm trọng đến đời sống sản xuất của người dân Ở Cà Mau, diện tích lúa thiệt hại lên tới 18.000 ha, chiếm 56% tổng diện tích trồng lúa trên đất nuôi tôm.
Chính vì sự ứng dụng rộng rãi và khả năng phát triển trong tương lai , việc phân tích khả năng hoạt động của kỹ thuật nâng cao hiệu suất là rất cần thiết Qua đó, có thể giúp nhóm thực hiện đề tài hiểu hơn về nhƣ̃ng kiến thƣ́c mới cũng nhƣ áp dụng các kiến thức đã học vào thƣ̣c tế
MỤC TIÊU NGHIÊN CỨU
Thiết kế và thi công mô hình thu thập dữ liệu môi trường nước sạch và sử dụng năng lƣợng mặt trời, đồng thời gửi các thông số qua mạng Internet sau cập nhập thông tin lên web và mạng di động để nâng cao khả năng giám sát và kịp thời điều chỉnh.
ĐỐI TƢỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu về phần mềm đó là thu được dữ liệu từ môi trường và sử dụng nguồn năng lƣợng mặt trời, gửi dữ liệu thông qua mạng Internet và mạng di động, cách thức lập trình nodejs và nhúng chương trình vào Board Galileo Còn về phần cứng là các linh kiện điện tử, các module, pin năng lƣợng mặt trời,… và board Intel Galileo gen 2
Phạm vi nghiên cứu trong khuôn khổ mô hình nhỏ có công suất thấp và có thể phát triển lên các mô hình lớn hơn Ngoài ra, về lập trình Web nhóm thực hiện đƣợc hiển thị giá trị cảm biến, vẽ đƣợc biểu đồ, điều khiển thiết bị bằng nút nhấn trên Web.
PHƯƠNG PHÁP NGHIÊN CỨU
Tìm hiểu các lý thuyết thu thập dữ liệu và truyền tải qua Board Galileo, đồng thời khám phá cách đẩy dữ liệu lên mạng bằng ngôn ngữ Node.js và JavaScript để lập trình cho kit.
Thiết kế và xây dựng mô hình
Qua thực nghiệm từ những sản phẩm của đề tài trước dẫn tới rút kinh nghiệm và tìm hiểu và xây dựng đề tài.
BỐ CỤC ĐỒ ÁN
Giới thiệu sơ lƣợc về tình hình nghiên cứu hiện nay cũng nhƣ tính cấp thiết của đề tài
Chương 2: Cơ sở lý thuyết
Nêu các lý thuyết cần thiết để sử dụng trong đề tài
Chương 3: Thiết kế và xây dựng hệ thống
Trình bày sơ đồ hệ thống và giải thích hoạt động của hệ thống Đưa ra các phương pháp lựa chọn phần cứng và xác định lựa chọn phù hợp với yêu cầu của đề tài
Tính toán đƣa ra giải thuật, thuật toán phần mềm
Chương 4: Kết quả thực hiện
Trình bày kết quả đã thực hiện về phần cứng và phần mềm, đƣa ra nhận xét
Chương 5: Kết luận và phạm vi ứng dụng
Nêu các ưu điểm và nhược điểm của đề tài, hướng khắc phục và phạm vi sử dụng trong thực tế
CƠ SỞ LÝ THUYẾT
KIT INTEL GALILEO
2.1.1 Giới thiệu về kit galileo
Kit Galileo là một board mạch vi điều khiển sử dụng bộ xử lý Intel Quark SoC X1000, thuộc dòng Pentium 32-bit system-on-chip, tích hợp tất cả các thành phần hệ thống trong một chip duy nhất Đây là board mạch đầu tiên tương thích với Arduino dựa trên cấu trúc của Intel Kit Galileo có cả phần cứng và phần mềm tương thích với các Arduino Shield được thiết kế cho Arduino UNO R3, theo chuẩn chân cắm Arduino 1.0 pinout.
Kit Galileo hỗ trợ chạy các shield của Arduino ở cả hai mức điện áp 3.3V và 5V, mặc dù điện áp hệ thống chỉ là 3.3V Điều này khả thi nhờ vào các bộ chuyển đổi điện áp tích hợp trên Kit Galileo Mặc định, Kit Galileo hoạt động với shield ở mức 5V, nhưng có thể dễ dàng chuyển xuống 3.3V bằng cách thay đổi các chân cắm (jumper) trên mạch.
Kit Galileo không chỉ tương thích với phần mềm và phần cứng của nền tảng Arduino mà còn hỗ trợ nhiều chuẩn giao tiếp trên máy tính cá nhân hiện nay Điều này cho phép Kit Galileo kết nối với nhiều thiết bị khác ngoài các shield của Arduino Trên bo mạch Kit Galileo, các tính năng hỗ trợ được tích hợp sẵn.
Cổng full sized mini-PCI Express 2.0
Cổng USB Host và USB Client
Chân cắm chuẩn Arduino Pinout 1.0
Khe cắm thẻ nhớ micro-SD hỗ trợ lên tới 32GB
Bộ nhớ flash 8MB dùng để chứa firmware hay bootloader
256KB - 512KB bộ nhớ lưu trữ chương trình Arduino
The Galileo Kit, the first in the Arduino family, features a unique mini-PCI Express slot that accommodates both half-sized and full-sized cards It is capable of running various operating systems, including customized versions of Linux Yocto, Linux Debian, Windows 8, and Windows 10.
Intel Galileo hiện có 2 phiên bản là Gen 1 và Gen 2 nhƣ hình 2.1
Hình 2.1: Kit Intel Galileo Gen 1 và Gen 2
Intel Galileo Gen 1 sử dụng nguồn cung cấp 5V, 2A, trong khi Gen 2 có khả năng sử dụng nguồn từ 7V đến 12V Bên cạnh đó, tốc độ làm việc của các chân giao tiếp trên Gen 2 cũng được cải thiện đáng kể.
2.1.2 Cấu trúc của KIT Galileo
Hình 2.2: Sơ đồ cấu trúc của kit Intel Galileo
Giống nhƣ Arduino UNO phiên bản 3, Kit Galileo có:
• 14 chân Digital I/O, trong đó 6 chân có thể phát xung PWM
• Chúng có thể đƣợc sử dụng ở cả 2 chế độ INPUT và OUTPUT, sử dụng đƣợc với các hàm pinMode(), digitalWrite() và digitalRead() nhƣ trên các mạch Arduino
• Các chân giao tiếp có thể hoạt động ở 2 mức điện áp 3.3V và 5V Dòng cấp tối đa là 10mA, dòng đỉnh là 25mA
• Mỗi chân đều có một điện trở kéo lên trong có trị số khoảng 5.6k đến 10k ohms Mặc định, các điện trở này bị ngắt
• 6 chân Analog từ A0 đến A5 giao tiếp qua chip AD7298 (chuyển đổi Analog-to-Digital)
• Mỗi chân Analog có thể cung cấp độ phân giải 12bit với 4096 giá trị khác nhau Mặc định tính từ GND đến 5V
• I2C bus, TWI với 2 chân SDA và SCL nằm cạnh chân AREF
• TWI: gồm 2 chân SDA (A4) và SCL (A5) Hỗ trợ giao tiếp TWI thông qua thư viện Wire tương tự như trên Arduino
• UART (cổng Serial): là một cổng UART với tốc độ có thể lập trình đƣợc, 2 chân giao tiếp là 0 (RX) và chân 1 (TX)
• Chân 5V output: chân này cấp nguồn ra 5V từ nguồn ngoài cấp cho Kit Galileo hay từ nguồn USB Dòng ra tối đa ở chân này cho các shield là 800mA
• Chân 3.3V output: cấp điện áp ra 3.3V đƣợc điều chế từ các mạch điều áp trên Kit Galileo Dòng ra tối đa ở chân này cho các shield là 800mA
• GND: chân nối cực âm của nguồn điện
• RESET: chân/nút nhấn RESET Kéo chân này xuống GND để reset chương trình Arduino đang chạy trên Kit Galileo Thường chân này được dùng để reset các shield
2.1.3 Các tính năng hỗ trợ
Các bộ xử lí của Intel và các tương thích I/O của SoC đi kèm cung cấp hầu nhƣ tất cả các tính năng cần thiết:
Bộ xử lí 400Mhz Intel Pentium 32bit tương thích với kiến trúc tập lệnh ISA (ISA-compatible)
512KB bộ nhớ SRAM tích hợp trên mạch
Dễ dàng lập trình: đơn luồng, đơn nhân, xung nhịp cố định
Mạch thời gian thực tích hợp (RTC intergrated) với 1 pin nút áo 3V
Cổng kết nối USB Client dùng để lập trình
Ngoài chức năng là một cổng lập trình, nó cũng có thể đóng vai trò nhƣ một USB Host chuẩn 2.0
10 chân header chuẩn JTAG hỗ trợ việc dò lỗi hệ thống
Nút Reboot dùng để reboot vi xử lí trung tâm
Nút Reset dùng để reset chương trình Arduino đang chạy hay bất kì shield nào đang kết nối
8MB Legacy SPI Flash dùng để lưu trữ firmware hay bootloader cũng như chương trình Arduino Khoảng 256KB đến 512KB được tách ra từ
Bộ nhớ 8MB này dùng để lưu trữ chương trình Arduino cuối cùng được tải lên Các chương trình Arduino từ máy tính được xử lý tự động, bạn không cần can thiệp trừ khi có thay đổi trong firmware.
512KB bộ nhớ SRAM nhúng đƣợc mở mặc định bởi firmware
256MB DRAM đƣợc mở mặc định bởi firmware
Tùy chọn thẻ nhớ ngoài SD có thể cung cấp lên tới 32GB dung lượng lưu trữ
Lưu trữ USB có thể làm việc với bất kì ổ đĩa USB 2.0 nào tương thích
11KB EEPROM có thể đƣợc lập trình qua thƣ viện EEPROM
Kit Galileo hỗ trợ giao tiếp UART, TTL và Serial với mức điện áp 3.3V và 5V thông qua hai chân 0 (RX) và 1 (TX) Ngoài ra, thiết bị còn có một cổng UART hỗ trợ RS-232, có thể sử dụng qua jack cắm 3.5mm.
Cổng USB Client cho phép giao tiếp Serial qua USB, cung cấp kết nối từ Serial đến Serial Monitor trong IDE hoặc các ứng dụng khác trên máy tính Ngoài ra, cổng này còn hỗ trợ tải chương trình Arduino lên Galileo.
Cổng kết nối Ethernet RJ45 trên Galieo cho phép kết nối mạng có dây mà không cần sử dụng giao tiếp SPI như trên Arduino shield Giao tiếp Ethernet được hỗ trợ đầy đủ, giúp tối ưu hóa khả năng kết nối Ngoài ra, Galieo còn tích hợp đầu đọc thẻ nhớ microSD, có thể truy cập thông qua thư viện SD với trình điều khiển SD tích hợp, loại bỏ nhu cầu sử dụng giao tiếp SPI Giao tiếp SD có thể hoạt động với tần số lên đến 50Mhz, tùy thuộc vào Class của thẻ nhớ, với hai loại Class phổ biến là Class 4 và Class 10.
Phần mềm nhƣ trên Arduino bao gồm thƣ viện Wire giúp dễ dàng sử dụng bus I2C/TWI
2.1.4 Phương thức lập trình trên Kit Galileo
Kit Galileo có thể được lập trình thông qua IDE của Arduino Để tải chương trình lên, hãy kết nối máy tính với Kit Galileo qua cổng USB Client gần cổng Ethernet nhất trên mạch Trong IDE, chọn "Intel Galileo" làm Board.
Khi Kit Galileo khởi động, sẽ có 2 kịch bản xảy ra:
Nếu đã có 1 chương trình trong bộ nhớ, nó sẽ được khởi chạy Trường hợp này chỉ xảy ra khi đã gắn thẻ microSD vào Kit Galileo
Nếu không có chương trình nào trong bộ nhớ, Kit Galileo sẽ đợi lệnh tải chương trình lên từ IDE
Nếu không có thẻ microSD, chương trình sẽ bị mất khi Kit Galileo khởi động lại (reboot)
Khi một chương trình đang hoạt động trên Kit Galileo, bạn có thể tải một chương trình mới mà không cần nhấn nút reset Chương trình hiện tại sẽ tạm dừng, và Kit Galileo sẽ chờ cho đến khi chương trình mới được tải lên để khởi động.
Bằng việc bấm nút reset trên mạch, sẽ khởi động lại chương trình đang chạy, đồng thời cũng reset bất cứ shield nào đang cắm vào Kit Galileo
Ngoài việc sử dụng phần mềm IDE Arduino để lập trình, chúng ta còn có thể dùng Intel XDK để lập trình và nhúng vào Kit Galileo Ngôn ngữ lập trình C và JavaScript có thể được sử dụng trên phần mềm Intel XDK.
PIN NĂNG LƢỢNG MẶT TRỜI
2.2.1 Giới thiệu về pin năng lƣợng mặt trời
Pin năng lượng mặt trời, hay còn gọi là pin quang điện, bao gồm nhiều tế bào quang điện Những tế bào này là các phần tử bán dẫn chứa nhiều cảm biến ánh sáng, được gọi là điốt quang, có khả năng chuyển đổi năng lượng ánh sáng thành năng lượng điện Quá trình chuyển đổi này diễn ra nhờ hiệu ứng quang điện.
Pin năng lượng mặt trời có nhiều ứng dụng thực tiễn, đặc biệt là ở những khu vực khó tiếp cận điện lưới như vùng núi cao và đảo xa Chúng cũng được sử dụng trong các hoạt động không gian như vệ tinh quay quanh quỹ đạo trái đất, máy tính cầm tay, điện thoại di động từ xa và thiết bị bơm nước Mặc dù giá thành còn cao, nhưng pin năng lượng mặt trời vẫn mang lại giải pháp hiệu quả cho những nhu cầu này.
Các pin năng lượng mặt trời được cấu tạo từ những module nhỏ, lắp ghép lại để tạo thành các tấm năng lượng mặt trời lớn, thường được lắp đặt trên nóc các tòa nhà để tối ưu hóa ánh sáng Những tấm pin này được kết nối với bộ chuyển đổi của mạng lưới điện và hiện nay còn được trang bị bộ phận tự động điều khiển, cho phép chúng xoay theo hướng ánh sáng, tương tự như cách mà cây xanh hướng về mặt trời.
Hiệu ứng quang điện đƣợc phát hiện đầu tiên năm 1839 bởi nhà vật lýPháp Alexandre Edmond Becquerel Tuy nhiên, cho đến năm 1883, một pin năng lƣợng
Hình 2.3: Pin năng lƣợng mặt trời
Vào năm 1883, Charles Fritts đã phát triển tấm pin mặt trời đầu tiên bằng cách phủ lên mạch bán dẫn selen một lớp vàng mỏng, tuy nhiên, thiết bị này chỉ đạt hiệu suất 1% Đến năm 1888, nhà vật lý người Nga Aleksandr Stoletov đã tạo ra tấm pin đầu tiên dựa trên hiệu ứng quang điện, được phát hiện bởi Heinrich Hertz vào năm 1887.
Albert Einstein đã phát hiện ra hiệu ứng quang điện vào năm 1905, một công trình quan trọng giúp ông nhận giải Nobel vật lý năm 1921 Năm 1946, Russell Ohl được công nhận là người sáng chế pin năng lượng mặt trời đầu tiên Ngoài ra, Sven Ason Berglund đã phát triển phương pháp nâng cao khả năng cảm nhận ánh sáng của pin.
2.2.2 Cấu tạo của pin năng lƣợng mặt trời
Hiện nay, pin mặt trời chủ yếu được chế tạo từ silic tinh thể, chia thành ba loại chính Loại đơn tinh thể, sản xuất qua quá trình Czochralski, có hiệu suất lên tới 16% nhưng giá thành cao do được cắt từ các thỏi silic hình ống Ngược lại, pin đa tinh thể, được làm từ silic nung chảy và đúc, có chi phí thấp hơn nhưng hiệu suất kém hơn Tuy nhiên, pin đa tinh thể có thể tạo thành các tấm vuông, giúp che phủ bề mặt tốt hơn, bù đắp cho hiệu suất thấp của chúng.
Dải silic được tạo ra từ các miếng phim mỏng làm từ silic nóng chảy với cấu trúc đa tinh thể Mặc dù loại silic này có hiệu suất thấp nhất, nhưng nó lại là lựa chọn kinh tế nhất vì không cần cắt từ thỏi silicon.
Nền tảng chế tạo pin mặt trời sử dụng công nghệ sản xuất tấm mỏng với độ dày 300μm, được xếp lại để tạo thành các module Để sản xuất pin mặt trời từ bán dẫn tinh khiết, cần chế tạo bán dẫn loại n và loại p, sau đó ghép chúng lại để tạo tiếp xúc p-n, như minh họa trong hình 2.5.
Hình 2.4: Phân loại pin năng lƣợng mặt trời
Hình 2.5: Sơ đồ cấu tạo pin mặt trời
2.2.3 Nguyên lý hoạt động của pin năng lƣợng mặt trời a Giới thiệu và phân tích pin năng lượng mặt trời
Khi một photon chạm vào một mảnh silic, một trong hai điều sau sẽ xảy ra:
Photon có thể truyền trực tiếp qua mảnh silic khi năng lượng của chúng thấp hơn mức cần thiết để nâng cao các hạt electron lên trạng thái năng lượng cao hơn.
Năng lượng của photon được silic hấp thụ khi nó lớn hơn năng lượng cần thiết để nâng electron lên mức năng lượng cao hơn.
Khi photon được hấp thụ, năng lượng của nó truyền đến các electron trong mạng tinh thể Những electron này thường nằm ở lớp ngoài cùng và bị liên kết chặt chẽ với các nguyên tử xung quanh, do đó không thể di chuyển xa.
Khi electron trong bán dẫn được kích thích, chúng trở thành dẫn điện và di chuyển tự do, tạo ra hiện tượng "lỗ trống" khi nguyên tử mất một electron Những lỗ trống này cho phép các electron từ nguyên tử lân cận di chuyển vào, tạo ra thêm lỗ trống cho các nguyên tử khác Quá trình này diễn ra liên tục, dẫn đến sự di chuyển của lỗ trống xuyên suốt mạch bán dẫn, như thể hiện trong hình 2.6.
Một photon cần năng lượng lớn hơn mức tối thiểu để kích thích electron ở lớp ngoài cùng của nguyên tử Nhiệt độ bề mặt mặt trời khoảng 6000°K, do đó, silic hấp thụ hầu hết năng lượng từ mặt trời.
Và hầu hết năng lƣợng mặt trời đều có tác dụng nhiệt nhiều hơn là năng lƣợng điện sử dụng đƣợc
Hình 2.6: Nguyên lý hoạt động của pin mặt trời
Mạch giảm áp MPPT Solar Panel 5A giúp điều chỉnh điện áp từ pin mặt trời, duy trì điện áp và dòng điện ổn định tại điểm điều chỉnh, nhằm cung cấp năng lượng cho thiết bị hoặc lưu trữ vào pin.
Mạch giảm áp MPPT Solar Panel 5A sở hữu linh kiện chất lượng cao và gia công tỉ mỉ, với kích thước nhỏ gọn, lý tưởng cho các ứng dụng sử dụng pin năng lượng mặt trời.
Điện áp đầu vào: 6 - 36VDC
Điện áp đầu ra: 1.25 - 32VDC
Dòng tối đa đầu ra: 5A
Tích hợp cố định áp, điều chỉnh bằng biến trở (Constant Voltage)
Tích hợp cố định dòng, điều chỉnh bằng biến trở (Constant Current)
Tần số chuyển đổi: 180Khz
Hiệu suất chuyển đổi: hơn 95%
Tích hợp bảo vệ ngắn mạch (dựa vào biến trở cố định dòng, dòng cao hơn tự động ngắt).
PIN LI-ION 18650
Pin Li-ion 18650 là pin dạng trụ đường kính 18mm, dài 65mm, điện thế 3.7V, có khả năng sạc lại từ 300 đến 1000 lần nhƣ trong hình 2.17 Đi kèm theo ƣu
Hình 2.7: Board mạch giảm áp
13 điểm là cung cấp công suất lớn, pin yêu cầu bảo quản và sử dụng đúng cách để tránh hƣ hỏng
Pin Lithium đang trở nên phổ biến hơn bao giờ hết nhờ vào tỷ số dung lượng/trọng lượng vượt trội Cụ thể, với cùng một trọng lượng, pin Lithium có khả năng chứa năng lượng lớn hơn từ 10-20 lần so với ắc quy thông thường và gấp khoảng 6 lần so với pin Ni.
Sạc pin Lithium có những ưu điểm và nhược điểm so với acquy và pin Ni-Cd Dòng sạc cho pin Lithium lớn hơn nhiều và không cần tạo xung như acquy, nhưng yêu cầu nghiêm ngặt về điện áp, không được vượt quá 4.2V và không được nạp với dòng lớn hơn thông số dung lượng pin (ví dụ, pin dung lượng 1000mA thì dòng sạc tối đa là 1A, khuyến cáo ở mức 0.8A) Nếu không tuân thủ, có thể gây cháy nổ Tuy nhiên, pin Lithium có thời gian sử dụng lâu hơn và ít bị chai pin hơn.
Ngưỡng điện áp xả là điện áp tối thiểu cho phép khi xả pin, thường được khuyến cáo không nên dưới 3V, mặc dù ngưỡng xả thông thường là 2.75V Nếu điện áp giảm xuống dưới ngưỡng này, việc tiếp tục xả sẽ dẫn đến sự sụt giảm nhanh chóng của điện áp và tạo ra lớp cặn trên điện cực, gây chai pin và giảm tuổi thọ của nó.
Ngưỡng điện áp nạp là mức điện áp khi pin đã được nạp đầy và các điện cực đạt trạng thái bão hòa Nếu tiếp tục nạp, điện áp vào pin sẽ tăng cao, có thể dẫn đến hiện tượng đánh thủng điện cực, tương tự như trong tụ điện, gây hỏng pin và nguy cơ cháy nổ.
Hiệu ứng nhớ là hiện tượng xảy ra khi điện năng không được xả hoàn toàn trước khi sạc lại, dẫn đến việc dung lượng pin giảm nhanh chóng trong các lần sử dụng tiếp theo Tuy nhiên, pin Lithium không gặp phải vấn đề này như pin Cd-Mh, vì chúng không có hiệu ứng nhớ.
LCD HIỂN THỊ
Màn hình LCD có nhiều loại khác nhau, phân biệt theo kích thước ký tự và số hàng hiển thị Ví dụ, LCD 20 x 4 có nghĩa là màn hình có 2 hàng, mỗi hàng chứa 20 ký tự, cho phép hiển thị thông tin đa dạng và phong phú.
16 ký tự LCD 20 x 4 nghĩa là có 4 hàng, mỗi hàng có 20 ký tự
LCD có hai loại phổ biến là 14 chân và 16 chân, với sự khác biệt chủ yếu ở các chân nguồn cung cấp, trong khi các chân điều khiển vẫn giữ nguyên.
Trong 16 chân của LCD đƣợc chia ra làm 3 dạng tín hiệu nhƣ sau:
Các chân cấp nguồn: chân số 1 là chân nối mass (0V), chân thứ hai là
Vdd nối với nguồn +5V Chân thứ ba dùng để chỉnh contrast thường nối với biến trở
Chân điều khiển của mạch gồm chân số 4 là chân RS, có nhiệm vụ điều khiển lựa chọn thanh ghi Chân R/W được sử dụng để quản lý quá trình đọc và ghi dữ liệu, trong khi chân E đóng vai trò là chân cho phép dạng xung chốt.
Các chân dữ liệu D7 -> D0: chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD
Bảng 2.1: Các chân trong LCD
Để điều khiển LCD, các IC chuyên dụng với mã số từ 447801 đến 447809 được tích hợp bên dưới màn hình Những IC này bao gồm bộ nhớ RAM, giúp lưu trữ dữ liệu cần hiển thị và thực hiện việc điều khiển LCD một cách hiệu quả.
Bảng 2.2: Các lệnh trong LCD
Lệnh xóa màn hình "Clear Display": khi thực hiện lệnh này thì LCD sẽ bị xóa và bộ đếm địa chỉ đƣợc xóa về 0
Lệnh "Cursor Home" di chuyển con trỏ về đầu màn hình, làm cho bộ đếm địa chỉ trở về 0 và đưa phần hiển thị về vị trí gốc đã bị dịch trước đó, trong khi nội dung bộ nhớ RAM hiển thị DDRAM vẫn không bị thay đổi.
Lệnh thiết lập lối vào "Entry mode set" cho phép cấu hình cách thức hiển thị ký tự Khi bit ID = 1, con trỏ tự động tăng lên 1 sau mỗi byte dữ liệu ghi vào bộ hiển thị; ngược lại, khi ID = 0, con trỏ không tăng và dữ liệu mới sẽ ghi đè lên dữ liệu cũ Ngoài ra, khi bit S = 1, lệnh này cho phép dịch chuyển dữ liệu mỗi khi nhận một byte hiển thị.
Lệnh điều khiển con trỏ hiển thị "Display Control" cho phép điều chỉnh hiển thị của con trỏ bằng cách sử dụng các bit: bit D để bật (D = 1) hoặc tắt (D = 0) hiển thị, bit C để mở (C = 1) hoặc tắt (C = 0) con trỏ, và bit B để kích hoạt (B = 1) hoặc tắt (B = 0) chế độ nhấp nháy của con trỏ.
Lệnh di chuyển con trỏ "Cursor/Display Shift" cho phép điều khiển vị trí hiển thị của con trỏ Khi SC = 1, việc dịch chuyển được phép thực hiện, trong khi SC = 0 thì không Hướng dịch chuyển được xác định bởi RL, với RL = 1 cho phép dịch sang phải và RL = 0 cho phép dịch sang trái Lưu ý rằng nội dung trong bộ nhớ DDRAM không thay đổi trong quá trình này.
Lệnh "Set CGRAM Addr" được sử dụng để thiết lập địa chỉ cho bộ nhớ RAM phát ký tự, giúp quản lý và điều chỉnh vị trí lưu trữ dữ liệu trong bộ nhớ.
Lệnh "Set DDRAM Addr" được sử dụng để thiết lập địa chỉ cho bộ nhớ RAM, nơi lưu trữ các dữ liệu hiển thị.
2.4.2 Module IC2 giao tiếp với LCD
I2C, short for "Inter-Integrated Circuit," is a communication standard developed by Philips' semiconductor division, now known as NXP, to simplify data exchange between integrated circuits (ICs) Often referred to as the Two Wire Interface (TWI), it utilizes just two connections for data transmission: the Serial Data Line (SDA) and the Serial Clock Line (SCL).
There are thousands of devices that utilize I2C communication, including real-time clocks, digital potentiometers, temperature sensors, digital compasses, memory chips, FM radio circuits, I/O expanders, and LCD controllers Our Arduino board can control up to 112 I2C devices simultaneously To use an LCD, at least six pins of the MCU must be connected to the RS pins.
Module chuyển giao tiếp LCD sang I2C chỉ cần 2 chân SDA và SCL để hiển thị thông tin, cùng với 2 chân VCC và GND để cấp nguồn cho LCD Ngoài ra, module còn có một biến trở để điều chỉnh độ tương phản Trên Board Intel Galileo, thư viện LiquidCrystal_I2C được sử dụng để dễ dàng giao tiếp với LCD.
Hình 2.10: Module I2C giao tiếp với LCD
NGÔN NGỮ LẬP TRÌNH NODEJS
Hiện nay, có nhiều ngôn ngữ lập trình cho phát triển Web phía máy chủ như PHP, ASP.net, JavaScript, Ruby, Python và Perl Trong số đó, Node.js nổi bật với ưu điểm dễ tiếp cận và sự hỗ trợ từ nhiều thư viện, thu hút sự quan tâm của lập trình viên.
Nodejs là một nền tảng bên phía máy chủ xây dựng trên cơ cấu của Google Chrome JavaScript (V8 Engine) Nodejs đƣợc phát triển bởi Ryan Dahl vào năm
2009 Khả năng đáp ứng của nodejs là rất nhanh bởi nodejs đƣợc viết hầu hết bởi ngôn ngữ C
Node.js cho phép phát triển ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng Bên cạnh đó, Node.js cung cấp một thư viện phong phú từ các module JavaScript khác nhau, giúp giảm bớt khối lượng công việc trong quá trình phát triển ứng dụng web.
Những ứng dụng có thể viết bằng nodejs:
Các chương trình như các kênh chat với tốc độ thời gian thực runtime
Các chương trình upload file
Các máy chủ quảng cáo
Các dịch vụ đám mây
Và bất kỳ ứng dụng dữ liệu thời gian thực nào
Các công ty đang sử dụng nodejs bao gồm: eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo, Yammer…
Hình 2.11: Hình ảnh mô tả luồng xử lý của A web framework nodejs
Cấu trúc vòng lă ̣p
Hình 2.12: Vòng lặp kiểm tra sự kiện
Hình 2.13: Cách thức xử lý code của nodejs
Hình 2.14: Ví dụ thể hiện khác nhau giữa non block code và block code
Thể hiện lý do tại sao non-block xử lý nhanh
Hình 2.15: So sánh tốc độ xử lý của non block code vs block code
2.4.2 Một số lệnh cơ bản và thƣ viện trong Nodejs Để có thể sử dụng ngôn ngữ lập trình Nodejs cần nắm rõ một số lệnh cơ bản nhƣ: khai báo biến, khai báo thƣ viện…
Khai báo biến dùng để tạo các biến để lưu các giá trị:
Khai báo thư viện dùng để khai báo các thư viện được sử dụng trong chương trình:
Hình 2.16: Yêu cầu Modules để sử dụng trong chương trình
The command to initialize a server is used to create a web server utilizing the HTTP library, which opens a connection port to the server and responds to requests from the website: http.createServer(function(request, response) {}.
Hình 2.17: Cách tạo ra server
Cách chạy file nodejs: Mở Cmd
Hình 2.18: Cách chạy file nodejs
Lệnh xuất ra màn hình Command Prompt: console.log("");
The Mraa library version 2.0.0 provides a low-level skeleton for communication on GNU/Linux platforms, specifically defining the AIO (Analog Input/Output) interface It includes constructors for initializing AIO instances with either a pin number or an AIO context pointer, allowing users to read analog values from specified pins The library supports functions to read both integer and float values from AIO pins, with options to set and get the bit resolution for the readings, ensuring accurate data retrieval from the ADC (Analog-to-Digital Converter) For more details on functions and usage, please refer to the official documentation.
Bảng 2.3: Các module trong nodejs
1 HTTP Make Node.js action as an
2 Process The process object is a global that provides information about, and control over, the current Node.js process As a global, it is always available to Node.js applications without using require() process.on('exit', (code) => {console.log(`About to exit with code: ${code}`);
3 console The console module provides a simple debugging console that is similar to the
JavaScript console mechanism provided by web browsers
A Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream
4 fs Include the File System module
Common use for the File System module:Read files,Create files,Update files,Delete files,Rename files var fs = require('fs');
5 URL Include the URL module var url = require('url');
6 Nodemailer The Nodemailer module makes it easy to send emails from your computer var nodemailer require('nodemailer');
7 I2C Include the I2C module var i2c = require('./i2c');
2.4.3 Nguyên lýxử lý yêu cầu của máy chủ
Khi người dùng gửi yêu cầu, hàm function(request, response) sẽ được kích hoạt, trong đó chứa hai tham số là request (yêu cầu) và response (phản hồi).
Request và response là các đối tượng quan trọng trong việc xử lý yêu cầu và phản hồi Chúng cho phép thực hiện các hàm để đáp ứng các yêu cầu nhận được, chẳng hạn như trả về dữ liệu cho trình duyệt.
Hàm response đƣợc bắt đầu bằng response.writeHead(200, {"Content-Type":
Để gửi phản hồi trong lập trình web, bạn cần sử dụng mã trạng thái 200 để xác nhận yêu cầu thành công, cùng với loại nội dung là text hoặc html Sau đó, sử dụng lệnh response.write() để ghi nội dung phản hồi Cuối cùng, hãy gọi response.end() để kết thúc quá trình phản hồi.
MODULE SIM900A
2.5.1 Giới thiệu về module SIM900A
Trong quá trình sử dụng thực tế, người dùng có thể gặp những trường hợp không thể truy cập hệ thống qua Internet
Giải pháp tối ưu cho việc giám sát là sử dụng mạng di động với độ phủ sóng rộng và tính linh động cao Nhóm đã quyết định chọn module SIM900A làm phương án dự phòng hiệu quả.
Hình 2.20: Server đƣợc tạo và ghi data
Module SIM900A là module giao tiếp giữa Board Arduino và truyền dữ liệu thu thập được tới người dung với mạng di động GSM/GPRS
Module SIM900A là sản phẩm của AT-COM, cho phép người dùng khai thác tính năng dễ dàng qua lệnh AT Giao tiếp với module diễn ra qua chuẩn UART tích hợp Để khởi động SIM900A, nhấn nút khởi động khoảng 1 giây; đèn Led status sẽ sáng và nhấp nháy nhanh khi tìm mạng, sau đó nhấp nháy chậm khi hoạt động bình thường Các chân kết nối của module bao gồm: DTR, TX, RX, GND, Speaker, Microphone, RESET và VCC.
Trong đó, nhóm sử dụng 3 chân là TX, RX, GND để giao tiếp module với board xử lý trung tâm
Bảng 2.4: Một số lệnh AT cơ bản mô đun Sim900A
Lệnh Giải thích Ví dụ
Kiểm tra đường truyền, nếu đường truyền tốt thì sẽ nhận đƣợc thông báo “OK”, ngƣợc lại thì thông báo “ERROR”
Cấu hình tin nhắn với định dạng là kiểu text
AT+CMGS= “”
Sau khi nhập nội dung tin nhắn thì nhấn tổ hợp phím Ctrl+z để gửi tin nhắn
Gọi đến số điện thoại đƣợc nhập vào Nếu muốn kết thúc cuộc gọi thì dùng lệnh ATH
2.5.2 Đặc điểm kỹ thuật của GSM/GPRS SIM900A
Sau đây là một số đặc điểm kỹ thuật của module SIM900A mini:
Hỗ trợ 4 băng tần 850/900/1800/1900MHz
Điều khiển qua tập lệnh AT
Nguồn xung dùng IC LM2596 cho dòng tải 3A, tần số đáp ứng 150Khz
Điện áp ngõ vào: 7-12V DC
Tích hợp kết nối anten ngoài cho GSM, GPRS
Tích hợp đế SIM Card trên mạch
Led NET: led hiển thị trạng thái kết nối của SIM908
NGÔN NGỮ HTML
2.6.1 Giới thiệu sơ lƣợc về HTML
HTML (Hyper Text Markup Language) là ngôn ngữ đánh dấu siêu văn bản quy định cách hiển thị của một trang web trên trình duyệt Thông qua việc sử dụng các thẻ và phần tử HTML, người dùng có thể tạo ra cấu trúc và định dạng cho nội dung trang web.
Điều khiển hình thức và nội dung của trang
Xuất bản các tài liệu trực tuyến và truy xuất thông tin trực tuyến bằng cách sử dụng các liên kết đƣợc chèn vào tài liệu html
Tạo các biểu mẫu trực tuyến để thu thập thông tin về người dùng, quản lý các giao dịch
Chèn các đối tƣợng nhƣ audio clip, video clip, các thành phần ActiveX, Flash và các Java Applet vào tài liệu html
HTML là mã nguồn của trang web, được cấu thành từ các thẻ và phần tử xác định cách hiển thị trang Trình duyệt đọc các tệp có đuôi htm hoặc html để hiển thị nội dung theo lệnh trong mã Dù trang web có xử lý phức tạp đến đâu, cuối cùng nó vẫn phải được trả về dưới dạng mã nguồn HTML để trình duyệt có thể hiểu và hiển thị.
2.6.2 Cấu trúc cơ bản của HTML Để bắt đầu một file html, ta cần sử dụng thẻ để mở và kết thúc bằng thẻ
Bên trong một file html gồm có 2 phần cơ bản:
Phần tiêu đề: Phần tiêu đề bắt đầu bằng thẻ và kết thúc bởi thẻ
Phần này chứa tiêu đề mà đƣợc hiển thị trên thanh điều hướng của trang Web Tiêu đề nằm trong thẻ title, bắt đầu bằng thẻ
và kết thúc là thẻ Tiêu đề là phần khá quan trọng Khi
26 người dùng tìm kiếm thông tin, tiêu đề của trang Web cung cấp từ khóa chính yếu cho việc tìm kiếm
Phần thân của một trang web, nằm sau tiêu đề, bao gồm văn bản, hình ảnh và các liên kết mà bạn muốn hiển thị Nó bắt đầu bằng thẻ và kết thúc bằng thẻ , tạo nên nội dung chính cho trang.
THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG
3.1.1 Yêu cầu của hệ thống
Hệ thống có các chức năng sau:
Cảm biến được lắp đặt ở vị trí thích hợp sẽ thu thập dữ liệu và được bộ xử lý trung tâm phân tích, sau đó hiển thị kết quả.
Cảm biến nhiệt độ: thu thập nhiệt độ trong nước
Cảm biến PH: thu thập độ pH trong nước
Cảm biến độ mặn: thu thập nồng độ mặn trong nước
Cảm biến độ đục: thu thập mức độ đục trong nước
Xây dựng Web server bao gồm:
Sự kiện dữ liệu hiện tại: hiển thị thông số kỹ thuật và nút nhấn điều khiển thiết bị ngoại vi ví dụ (Motor, lamp…)
Sự kiện giới thiệu: sẽ thực hiện hiển thị thông tin liên quan đến về thành viên quản lý
Sự kiện kết nối: tạo cho người dùng có thể liên lạc với quản trị viên
Sử dụng tin nhắn để thuận tiện cho việc giám sát thông số qua mạng di động
Hệ thống sẽ thực hiện chức năng Tự Động và Chỉnh Tay nhằm đáp ứng việc điều khiển thiết bị
3.1.2 Sơ đồ khối và chức năng mỗi khối
Khối nguồn là tổng hợp của những khối sau:
Khối pin năng lƣợng mặt trời: thu thập năng lƣợng mặt trời và chuyển hoá thành năng lƣợng điện
Khối chuyển đổi điện áp: khối này nhiệm vụ giảm áp để đảm bảo đầu ra hợp lý trước khi sạc cho pin dự phòng
Khối dự trữ năng lượng: lưu trữ điện năng để sử dụng khi cần thiết
Với mục đích cung cấp nguồn điện cho khối xử lý trung tâm và cơ cấu chấp hành
Khối cảm biến: nhiệm vụ thu thập dữ liệu từ môi trường
Khối xử lý trung tâm đảm nhận việc xử lý tín hiệu từ các cảm biến, khởi tạo web server và gửi thông số kỹ thuật lên trang web Đồng thời, nó cũng nhận các sự kiện từ nút nhấn và tin nhắn của người dùng.
Khối hiển thị: hiển thị các thông số giá trị lên LCD
Khối GSM:là khối giao tiếp giữa người dùng với hệ thống thông qua mạng điện thoại
Khối nút nhấn: là khối thực hiện điều khiển trực tiếp các thiết bị ngoại vi
Khối WebServer là thành phần hiển thị dữ liệu từ các cảm biến theo thời gian thực và truyền tín hiệu điều khiển từ người dùng đến hệ thống.
Khối ngoại vi: là khối bao gồm các thiết bị dùng để thực hiện yêu cầu
3.1.3 Hoạt động của hệ thống
Hệ thống thu thập và phân tích dữ liệu từ các khối cảm biến để xác định sự thay đổi của môi trường nước Các thông số này sẽ được đưa lên web server để giám sát, đồng thời hệ thống cũng có khả năng nhận và gửi dữ liệu cho người dùng khi có lệnh điều khiển từ các sự kiện trên web hoặc từ người dùng.
THIẾT KẾ PHẦN CỨNG
3.2.1 Khối cảm biến a Cảm biến LM35
ADC được dùng để chuyển đổi điện áp tương tự từ cảm biến LM35 nên ta phải biết hệ số chuyển đổi của cảm biến
Cảm biến LM35 có nhiều loại: LM35D và LM35C
Loại LM35C thì tầm đo từ -40 C đến 110 độ C và LM35D thì tầm đo từ 0 độ
C đến 100 độ C Dòng tiêu thụ của cảm biến với nguồn cung cấp 5VDC là 50μA
Hệ số chuyển đổi tuyến tính khi nhiệt độ thay đổi 1 độ C thì điện áp ra thay đổi 10mV
Tính toán độ phân giải của ADC:
Công thức tính độ phân giải của ADC(step size) là SS(ADC) 𝑉 𝑟𝑒𝑓 + −V ref −
2 10 −1 Độ phân giải của ADC phải bằng độ phân giải của cảm biến và bằng 10mV: SS(LM35)mV
V(ref+)-V(ref-)= SS(LM35)x1023mVx1023230mV
Một phương trình có 2 tham số nên ta phải chọn 1 tham số và tính tham số còn lại:
Chọn điện áp tham chiếu là: V(ref-)=0V
Khi Vref+ là 0,23V, điện áp này không phù hợp vì nó nhỏ hơn điện áp ADC 5V Do nguồn điện áp V(DD) là 5V, chúng ta chọn Vref+ bằng V(DD), tức là 5V.
Khi đó độ phân giải ADC sẽ là SS(ADC) = 𝑉 𝑟𝑒𝑓 + −V ref −
Khi tính toán giá trị P00mV/1023, ta có kết quả khoảng 4.887mV, gần bằng 5mV Độ phân giải của ADC là 5mV, không tương thích với độ phân giải của cảm biến LM35 là 10mV, dẫn đến tỉ lệ chênh lệch là 2 (10mV/5mV) Để đạt được kết quả chính xác, cần chia kết quả chuyển đổi cho tỉ lệ chênh lệch này Nếu tính toán chính xác hơn với giá trị 4.887mV, hệ số sẽ là 2.046.
Hình 3 2: Sơ đồ kết nối LM35
Để hiệu chuẩn cảm biến pH, hãy đặt điện cực pH vào dung dịch chuẩn có giá trị pH 4.00 và điều chỉnh thiết bị cho đến khi giá trị ổn định ở mức 4.00 Sau khi hoàn thành việc hiệu chuẩn axit, bạn có thể tiến hành đo pH của dung dịch axit Trước khi đo pH của các dung dịch khác, cần rửa sạch điện cực pH để đảm bảo độ chính xác.
Theo tính chất tuyến tính của điện cực pH, sau khi hiệu chỉnh, có thể đo trực tiếp giá trị pH của dung dịch kiềm Để đạt độ chính xác cao hơn, cần thực hiện hiệu chuẩn lại với dung dịch tiêu chuẩn có pH 9.18, đồng thời điều chỉnh thiết bị để giá trị ổn định ở mức này Sau khi hoàn tất quá trình hiệu chuẩn, việc đo pH của dung dịch kiềm sẽ trở nên chính xác hơn.
Vậy CT:valuePH = (((tem_pH/100*5)/1024)*3.5); c Cảm biến độ đục
Module cảm biến độ đục:
Cảm biến được cấu tạo từ cặp Led phát thu hồng ngoại, hoạt động bằng cách đưa nước vào khoang chứa mẫu Tại đây, Led phát hồng ngoại chiếu sáng vào nước, và cường độ ánh sáng truyền qua mẫu nước sẽ được ghi nhận và gửi về vi xử lý trung tâm Dựa trên sự giảm cường độ ánh sáng, vi xử lý sẽ tính toán và đưa ra kết quả chính xác.
Hình 3.4: Module cảm biện độ đục
Vậy CT:valueTUR = 100 - ( valueTemp * 5/1023/4.29)*100; d Cảm biến độ mặn
Mạch cảm biến độ dẫn hoạt động tương tự như mạch cảm biến ánh sáng, với điện áp phân chia bao gồm các cảm biến độ dẫn và một điện trở 10kΩ được kích hoạt theo cấu hình đã thiết lập.
Một phần của 5V từ đầu ra kỹ thuật số đƣợc giảm xuống trên độ dẫn Cảm biến và phần còn lại được bỏ qua điện trở 10kΩ như hình dưới
Hình 3.5: Hình mô tả sơ đồ cảm biến độ mặn
Với sơ đồ trên chúng ta tiến hành đo đạc và tìm ra nồng độ muối trong nước
Khi muối hòa tan trong nước, các ion liên kết sẽ yếu đi và trở nên di động, được bao quanh bởi các phân tử nước.
Hình 3.6: Hydrat hóa NaCl trong nước
Mô tả các ion Na+ và Cl- xung quanh các điện cực của bộ cảm biến dẫn khi không có điện áp dụng trên các điện cực
Khi dòng điện đi qua mạch dẫn, các điện tử không di chuyển trực tiếp qua nước giữa các điện cực như trong dây dẫn Thay vào đó, khi điện áp được áp dụng, một điện cực sẽ tích điện dương và điện cực kia sẽ tích điện âm.
Khi cảm biến được kích hoạt, phản ứng diễn ra với điện cực tích điện dương, được gọi là cực dương Anode thực hiện quá trình triết xuất điện tử từ dung dịch như một phần của phản ứng oxy hóa.
H 2 O giảm trong môi trường của ion Na + do các tiềm năng giảm tiêu chuẩn khác nhau Để hiểu rõ hơn về hiện tượng này, chúng ta cần tham khảo "Bảng các tiềm năng giảm tiêu chuẩn", như đã được trình bày trong Bảng 3.1 Các phản ứng cao hơn trong bảng cho thấy sự khác biệt trong khả năng giảm của các chất.
33 sẽ tạo ra điện áp cao hơn khi kết nối với một nửa-cell tham chiếu, nhƣ thể hiện trong hình 3.7
Một nửa tế bào điện hóa bao gồm một điện cực platin ngâm trong dung dịch H+ 1,0M Khi kết nối với nửa tế bào tiêu chuẩn, nửa phản ứng cao hơn trong bảng 3.2 sẽ tạo ra điện áp dương, trong khi nửa phản ứng thấp hơn sẽ tạo ra điện áp âm khi kết hợp với nửa tế bào tiêu chuẩn.
Bảng 3.1 trình bày tiêu chuẩn giảm tiềm năng cho một số giải pháp dung dịch nước Việc kết hợp các tế bào nửa khác nhau sẽ tạo ra điện tích dương, từ đó sinh ra dòng điện giống như pin Ngoài ra, các kết hợp tế bào nửa khác có thể tạo ra điện áp âm, và để các phản ứng xảy ra, cần phải cung cấp điện áp bên ngoài.
Bảng 3.2: Các phản ứng sơ cấp có thể xảy ra ở các điện cực của cảm biến dẫn
Nếu một nửa tế bào cho các phản ứng 1 và 2 trong bảng ở trên là kết hợp, phản ứng dòng và điện áp kết quả đƣợc thể hiện trong hình 3.8
Hình 3.8: Phản ứng dòng để oxy hóa Cl- và làm giảm nước
Vậy CT: valueSAN = (100 - tem_San/450)/10;
3.2.2 Khối ngoại vi a Led dây Để sử dụng nguồn năng lƣợng thu đƣợc từ hệ thống năng lƣợng mặt trời cần phải có một tải tiêu thụ và để đơn giản, thì led là một sự lựa chọn khá phù hợp, do nhu cầu chiếu sáng là rất cần thiết và tính phổ biến của led hiện nay là khá cao Thay vì sử dụng các loại led đơn, thì trong đề tài này sử dụng loại led dây, thường đƣợc dùng phổ biến trong các việc trang trí Ngoài ra, có thể lắp trực tiếp pin li – ion vào các đèn pin chiếu sáng để sử dụng Hoặc kết hợp với các mạch ổn áp để sạc cho điện thoại di động Đèn led dây đƣợc cấu thành từ các chip led nhỏ, đƣợc thiết kế và gia công trên bề mặt bản mạch điện tử dạng mềm, dài, bên ngoài đƣợc bao phủ một lớp bảo vệ plastic mềm Cho nên việc vận chuyển cũng nhƣ sử dụng rất đơn giản đèn led dây đƣợc cấu thành từ các chip led nhỏ, đƣợc thiết kế và gia công trên bề mặt bản mạch điện tử dạng mềm, dài, bên ngoài đƣợc bao phủ một lớp bảo vệ plastic mềm Cho nên việc vận chuyển cũng nhƣ sử dụng rất đơn giản
Hình 3.9 minh họa cấu tạo của đèn LED dây Đối với động cơ Mini 3-6V V2, chúng ta có thể sử dụng nhiều loại động cơ khác nhau cho khối động cơ thực hiện việc lọc nước và thêm nước, nhưng nhóm đã chọn động cơ DC để thuận tiện cho quá trình thử nghiệm.
Hiện nay, có nhiều loại động cơ DC với các thông số khác nhau Do kích thước mô hình hệ thống nhỏ và sự hạn chế của nhà cung cấp, nhóm đã quyết định chọn động cơ motor phù hợp.
Điện áp hoạt động: 3 – 6VDC
Kích thước: 20mm x 28 mm x 15 mm
Trong đề tài sử dụng 2 động cơ mini để thực hiện bơm nước và thay nước cho môi trường
Hình 3.11: Mô hình máy bơm mini
THIẾT KẾ PHẦN MỀM
3.3.1 Lưu đồ giải thuật a Lưu đồ giải thuật của hệ thống
Hình 3.17: Sơ đồ hệ thống
Đầu tiên là khởi tạo các giá trị ban đầu nhƣ: các biến, các thƣ viện GPIO, thƣ viện LCD, thƣ viện giao tiếp UART, khởi ta ̣o Web Server.
Tiếp theo sẽ tới vòng lặp gồm:
Đọc giá trị cảm biến: thực hiện lấy các giá trị của cảm biến từ các chân analog
Lưu trữ dữ liệu vào cơ sở dữ liệu là quy trình quan trọng, trong đó các giá trị cảm biến được ghi nhận và lưu trữ để đảm bảo truy xuất nhanh chóng và hiệu quả.
Hiển thị LCD và Web : hiển thị các thông số ra màn hình LCD và biểu đồ trên Web Server theo thời gian thƣ̣c.
Xử lý tin nhắn và lệnh điều khiển từ Web là quá trình tiếp nhận yêu cầu từ tin nhắn và máy chủ Web, sau đó điều khiển hệ thống hoạt động theo các yêu cầu như đóng/mở tải và điều chỉnh chế độ.
Kiểm tra dữ liệu để đưa ra cảnh báo và điều khiển tự động là quá trình thu thập thông tin từ các cảm biến và so sánh với các giá trị ngưỡng Điều này giúp điều khiển thiết bị trong hệ thống hoạt động ở chế độ tự động.
43 b Lưu đồ giải thuật đọc giá trị cảm biến
Hình 3.18: Sơ đồ đọc giá trị cảm biến Giải thích lưu đồ:
Đầu tiên là khởi tạo chân thu dƣ̃ liê ̣u cho các cảm bi ến, cài đặt thô ng số đô ̣ phân giải 10 bit.
Đo ̣c các giá tri ̣ cảm biến thu được theo chuẩn tín hiê ̣u analog.
Quy đổi các giá tri ̣ về giá tri ̣ chuẩn.
Lưu trữ các giá tri ̣ và cơ sở dữ liê ̣u.
44 c Lưu đồ giải thuật hiển thi ̣ giá trị cảm biến lên Web và LCD
Hình 3.19: Sơ đồ hiển thị thông số lên LCD và Web
45 d Lưu đồ giải thuật xử lý tin nhắn
Hình 3.20: Sơ đồ xử lý tin nhắn
46 e Lưu đồ giải thuật kiểm tra dữ liê ̣u để đưa ra cảnh báo và điều khiển tự động
Hình 3 21: Sơ đồ kiểm tra cảnh báo
Liên tu ̣c kiểm tra giá tri ̣ các cảm biến liên tu ̣c (10 giây/lần)
Kiểm tra các giá tri ̣ cảm biến có vượt ngưỡng:
Hệ thống sẽ gửi cảnh báo qua tin nhắn và website nếu chưa nhận được tín hiệu điều khiển trong thời gian quy định Nếu không có phản hồi, hệ thống sẽ tự động điều khiển và liên tục gọi điện cho người dùng để thông báo về diễn biến bất thường trong môi trường.
Sai: tiếp tục kiểm tra tiếp các thông số thu thập từ môi trường
3.3.2 Thiết kế giao diện web và giải thích hoạt động a Yêu cầu
Thiết kế trang đăng nhâ ̣p đảm bảo yếu tố bảo mâ ̣t
Câ ̣p nhâ ̣t thông số các cảm biến hiển thi ̣ lên biểu đồ theo thời gian thƣ̣c
Thiết lâ ̣p trƣ̣c tiếp và đồng bộ đƣợc các thông số ngƣỡng
Vẽ biểu đồ theo dõi hệ thống đƣợc ứng dụng trong quá trình phân tích dƣ̃ liê ̣u
Điều khiển hê ̣ thống thông qua Web đồng thời câ ̣p nhâ ̣t tra ̣ng thái hoa ̣t đô ̣ng của các thiết bi ̣
Giao diê ̣n thân thiê ̣n với người dùng b Thiết kế giao diện
Hình 3.22: Giao diện đăng nhâ ̣p
Hình 3.23: Giao diện trang chủ
Hình 3.24:Giao diê ̣n hiển thi ̣ thông số môi trường
Hình 3.25:Giao diê ̣n thiết lâ ̣p giá tri ̣ ngưỡng
Hình 3.26:Giao diê ̣n điều khiển thiết bi ̣
50 c Lưu đồ thuật toán chính thiết kế Web
Hình 3.27: Sơ đồ thuật toán
Khai báo thƣ viê ̣n thiết kế Web , khai báo biến để thiết lâ ̣p các tra ̣ng thái hiển thị
Xử lý đăng nhập bao gồm việc truy xuất cơ sở dữ liệu và đối chiếu với dữ liệu người dùng đã đăng nhập Hệ thống hiện tại yêu cầu tên đăng nhập để thực hiện quá trình này.
“ admin ” và mâ ̣t khẩu là “ admin ”
Xƣ̉ lý hiê ̣n thi ̣ biểu đồ: nhâ ̣n chuỗi JSon tƣ̀ hê ̣ thống, phân tích và vẽ biễu đồ
Kiểm tra yêu cầu thiết lâ ̣p giá tri ̣ ngưỡng:
Đúng: Hệ thống hiển thị đồng bộ và hiện tại, cung cấp cho người dùng các thông số cơ bản để tham khảo hoặc tự thiết lập lại.
Sai: hiển thị các ngưỡng giá tri ̣.
Xử lý yêu cầu điều khiển : gửi các chuỗi JSon về hê ̣ thống tương ứng các tra ̣ng thái của công tắc trên Web
Phân tích dữ liệu là quá trình truy xuất cơ sở dữ liệu để vẽ biểu đồ theo ngày, giúp theo dõi các biến động của môi trường Qua đó, chúng ta có thể đưa ra các biện pháp nuôi trồng thủy sản hợp lý Đồng thời, lưu đồ thuật toán các hàm cũng đóng vai trò quan trọng trong việc tổ chức và quản lý dữ liệu hiệu quả.
Hàm xử lý cập nhật biểu đồ updateValueChart(msg) có chức năng nhận sự kiện từ hệ thống cùng với giá trị cập nhật Hàm sẽ tiến hành kiểm tra và vẽ lại các biểu đồ tương ứng.
Hình 3.28:Hàm cập nhật biểu đồ
Hàm checkControlSignal() có chức năng kiểm tra thao tác của người dùng khi điều khiển hệ thống Khi có thao tác điều khiển xảy ra, hàm sẽ gửi sự kiện kèm thông tin về hệ thống để hệ thống phân tích và điều khiển thiết bị Sau đó, hàm nhận tín hiệu thông báo từ hệ thống và hiển thị cho người dùng biết tình trạng thiết bị đã thao tác thành công hay chưa.
Hình 3.29:Lưu đồxử lý tín hiê ̣u điều khiển từ web