TỔNG QUAN
GIỚI THIỆU TÌNH HÌNH NGHIÊN CỨU HIỆN NAY
Việt Nam sở hữu hệ thống sông ngòi phong phú và bờ biển dài, tạo điều kiện thuận lợi cho việc phát triển khai thác và nuôi trồng thủy sản Các loại thủy sản chủ lực bao gồm cá da trơn, tôm, cá rô phi, cùng với những loài đang tăng trưởng như nhuyễn thể có vỏ và các loại cá biển như cá bớp, cá tuyết và cá mú Nuôi trồng thủy sản chủ yếu tập trung ở Đồng Bằng Sông Mekong, nơi chiếm từ 75% đến 80% sản lượng cá da trơn và tôm của cả nước Tuy nhiên, ngành nuôi tôm phải đối mặt với nhiều thách thức như yêu cầu khắt khe về môi trường và nguồn nước, cũng như nguy cơ lây nhiễm dịch bệnh, dẫn đến tình trạng chết hàng loạt và giảm chất lượng sản phẩm Để đảm bảo tôm phát triển khỏe mạnh và đạt năng suất cao, người nuôi cần chú ý đến nhiều yếu tố chi tiết, điều này thường gây khó khăn cho họ trong quá trình nuôi trồng.
Nhóm thực hiện đề tài “THIẾT KẾ HỆ THỐNG HỒ NUÔI THUỶ SẢN” nhằm hỗ trợ nông dân giải quyết các vấn đề hiện tại, từ đó thúc đẩy quá trình hiện đại hóa nền nông nghiệp.
1.1.2 Tính cấp thiết của đề tài
Việt Nam sở hữu lợi thế lớn trong phát triển nuôi trồng thủy sản với tổng diện tích mặt nước lên đến 1,7 triệu hecta, trong đó hơn 1 triệu hecta được dành cho nuôi trồng thủy sản Năm 2017, diện tích nuôi tôm nước lợ đạt 721,1 nghìn ha, tăng 3,8% so với năm 2016 Cụ thể, diện tích nuôi tôm sú là 622,4 nghìn ha, tăng 3,7%, và diện tích nuôi tôm chân trắng là 98,7 nghìn ha, tăng 4,7%.
2016.Sản lượng tôm nước lợ năm 2017 đạt 683,4 nghìn tấn, tăng 4% so với năm
Năm 2016, sản lượng tôm sú đạt 256,4 nghìn tấn, giảm 2,8%, trong khi sản lượng tôm chân trắng tăng 8,5% lên 427 nghìn tấn Để phát triển nghề nuôi tôm bền vững và thích ứng với biến đổi khí hậu cũng như dịch bệnh, việc ứng dụng công nghệ cao là rất cần thiết Người nuôi cần tiếp cận các mô hình nuôi tôm công nghệ cao hiệu quả và thiết bị tiên tiến, từ đó tìm ra giải pháp nuôi phù hợp nhằm nâng cao năng suất, chất lượng, tăng thu nhập và xây dựng thương hiệu tôm sạch.
Sự thành công trong nuôi tôm phụ thuộc vào việc giám sát và quản lý môi trường ao nuôi Để cải thiện quy trình này, nhóm đã phát triển hệ thống "THIẾT KẾ HỆ THỐNG HỒ NUÔI THUỶ SẢN", cho phép đo đạc và cung cấp các thông số quan trọng như độ pH, độ kiềm, nhiệt độ, và mức độ ô nhiễm nguồn nước Hệ thống còn tự động bơm xả nước và cảnh báo người dùng về các vấn đề phát sinh thông qua màn hình, website, và ứng dụng điện thoại Nhờ đó, người nuôi tôm có thể xử lý kịp thời và yên tâm hơn về ao nuôi của mình.
MỤC TIÊU ĐỀ TÀI
Mục tiêu nghiên cứu của đề tài bao gồm các vấn đề sau:
- Áp dụng được công nghệ IoT vào trong sản xuất, nuôi trồng.
- Đo được các thông số của hồ nuôi để hiển thị,cài giới hạn các thông số tùytheo yêu cầu kĩ thuật của hồ nuôi tôm.
- Tìm hiểu về CSDL thời gian thực.
- Các ngôn ngữ lập trình, thiết kế Web như HTML, PHP và CSS.
Nhóm muốn áp dụng công nghệ xử lý điều khiển trong sản xuất nông nghiệp để giảm thiểu khó khăn cho người nông dân trong quá trình canh tác.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Phần mềm này hoạt động như một webserver, thu thập dữ liệu từ các cảm biến nhiệt độ, độ pH, độ đục và mực nước thông qua Arduino Người dùng có thể cài đặt các thông số giới hạn thông qua Internet và mạng di động, giúp quản lý và giám sát hiệu quả hơn Hệ thống này được lập trình dựa trên nền tảng Arduino, mang lại tính linh hoạt và dễ dàng trong việc điều chỉnh.
Về phần cứng là các cảm biến, các module giao tiếp, các motor bơm nước, motor quạt, van điện từ, Kit Arduino Mega 2560.
Phát triển thêm từ đề tài sẵn có của sinh viên Trần Xuân Bách - Nguyễn Quyết Thắng “Thiết kế hệ thống hồ nuôi tôm”:
- Nghiên cứu và xây dựng mô hình hồ nuôi tôm (2 khu vực) với các tính năng đo độ đục, mực nước, độ ph, nhiệt độ.
- Điều khiển máy bơm bơm nước khi mực nước dưới ngưỡng giới hạn.
- Trao đổi dữ liệu giữa CSDL và các thiết bị phần cứng.
- Xây dựng trang web để giám sát các thông số của hồ nuôi tôm.
PHƯƠNG PHÁP NGHIÊN CỨU
Để nuôi tôm hiệu quả, cần nắm rõ các yêu cầu về thông số môi trường của hồ nuôi Việc tìm hiểu cách hoạt động của cảm biến và quy trình truyền nhận dữ liệu từ cảm biến đến Arduino, sau đó từ Arduino đến NodeMCU là rất quan trọng Bên cạnh đó, cần tìm hiểu cách vận hành một web server, cài đặt cơ sở dữ liệu và sử dụng ngôn ngữ lập trình web một cách hiệu quả để quản lý và giám sát môi trường nuôi tôm.
Thiết kế và lắp ráp mô hình mô phỏng hồ nuôi tôm.
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
Chương 3: Thiết kế và xây dựng hệ thống giám sát điều khiển hồ nuôi tôm
Sơ đồ hệ thống được trình bày rõ ràng, giúp người đọc dễ dàng hiểu được hoạt động của hệ thống Bên cạnh đó, các phương pháp lựa chọn phần cứng được đề xuất nhằm xác định giải pháp phù hợp nhất 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
CÁC PHƯƠNG THỨC TRUYỀN SỬ DỤNG TRONG ĐỀ TÀI
2.1.1 Chuẩn giao tiếp UART a) Giới thiệu
UART là một giao thức chuyển đổi giữa dữ liệu nối tiếp và song song Một chiều của UART chuyển đổi dữ liệu song song từ bus hệ thống thành dữ liệu nối tiếp để truyền đi, trong khi chiều ngược lại chuyển đổi dữ liệu nhận được dạng nối tiếp thành dạng song song để CPU có thể đọc vào bus hệ thống.
Hình 2-1: Truyền dữ liệu UART
UART của PC hỗ trợ hai kiểu giao tiếp: đồng thời và không đồng thời Giao tiếp đồng thời cho phép gửi và nhận dữ liệu cùng lúc, trong khi giao tiếp không đồng thời chỉ cho phép một thiết bị truyền dữ liệu tại một thời điểm, với tín hiệu điều khiển xác định thiết bị nào có quyền truyền UART cũng hỗ trợ các tín hiệu điều khiển như RTS, CTS, DTR, DCR, RT và CD, cùng với việc bắt tay chuẩn RS232 Các chương trình truyền và nhận dữ liệu không đồng bộ dễ dàng hơn nhiều so với tưởng tượng Trong PC và nhiều vi xử lý khác, UART (universal asynchronous receiver/transmitter) giúp quản lý việc truyền nhận dữ liệu mà không cần hiểu chi tiết cấu trúc của nó Để mở liên kết, ứng dụng chọn tần số dữ liệu và thiết lập cổng truyền thông Khi gửi một byte, ứng dụng ghi byte vào bộ đệm truyền, và UART sẽ gửi từng bit theo định dạng yêu cầu, bao gồm bit Start, bit Stop và bit chẵn lẻ nếu cần Byte nhận được sẽ được lưu trữ tự động trong bộ đệm, và UART có thể sử dụng ngắt để thông báo.
CPU và các ứng dụng có khả năng nhận diện dữ liệu cùng các sự kiện khác Một số vi điều khiển không tích hợp UART, và đôi khi cần nhiều hơn số lượng UART có sẵn Trong những trường hợp này, bạn có thể lựa chọn thêm UART bên ngoài hoặc mô phỏng UART trong mã chương trình Ví dụ, chip Basic Stamp của Parallax có một UART bổ sung được tích hợp trong mã UART là thiết bị đơn giản, hỗ trợ cả truyền thông đồng bộ và không đồng bộ.
Tốc độ Baud (baud rate) là một yếu tố quan trọng trong truyền nhận không đồng bộ, cho phép hai module giao tiếp hiệu quả Để đảm bảo sự hiểu biết lẫn nhau, cần phải thiết lập thời gian cho mỗi bit truyền nhận, nghĩa là tốc độ phải được cấu hình trước khi bắt đầu truyền Theo định nghĩa, tốc độ baud được xác định là số bit được truyền trong một giây.
Khung truyền (frame) trong kiểu truyền thông nối tiếp được thiết kế để giảm thiểu mất mát dữ liệu, bên cạnh việc tối ưu hóa tốc độ truyền Khung này xác định số bit trong mỗi lần truyền, bao gồm các bit thông báo như start và stop, các bit kiểm tra như parity, cùng với số bit của dữ liệu.
Bit Start trong khung truyền là bit đầu tiên, có chức năng thông báo cho thiết bị rằng quá trình truyền dữ liệu sắp bắt đầu, với trạng thái là 0 trên AVR Dữ liệu cần truyền không nhất thiết phải có kích thước 8 bit, mà có thể là 5, 6, 7, 8 hoặc 9 bit Trong giao thức UART, bit LSB được truyền trước, trong khi bit MSB được truyền sau.
Bit parity là một phương pháp kiểm tra dữ liệu, bao gồm hai loại: parity chẵn và parity lẻ Parity chẵn được thêm vào để đảm bảo tổng số bit 1 trong dữ liệu cộng với bit parity là một số chẵn, trong khi parity lẻ đảm bảo tổng số bit 1 cộng với bit parity là một số lẻ Việc sử dụng bit parity không bắt buộc, cho phép tùy chọn sử dụng hoặc không.
Chuẩn giao tiếp 1 dây (1 wire) do hãng Dallas phát triển cho phép truyền tín hiệu và cung cấp nguồn nuôi chỉ với một dây dẫn, không cần dây mass Đây là chuẩn giao tiếp không đồng bộ và bán song công (half-duplex), với mối quan hệ chủ-tớ chặt chẽ Trên một bus, có thể kết nối một hoặc nhiều thiết bị slave, nhưng chỉ có một master duy nhất có thể tham gia vào bus này.
Khi bus dữ liệu ở trạng thái rãnh (không có dữ liệu truyền), nó cần duy trì mức cao, vì vậy cần kéo bus dữ liệu lên nguồn thông qua một điện trở Giá trị của điện trở này có thể được tham khảo trong datasheet của thiết bị hoặc các thiết bị slave.
Hình 2-2: Sơ đồ kết nối trong truyền 1-Wire
Các thiết bị tớ (slave) kết nối với cùng một bus được phân biệt với nhau nhờ
64 bit địa chỉ duy nhất (64-bit serial number) 8 byte (64 bit) này và được chia làm ba phần chính:
Bắt đầu với LSB, là byte đầu tiên là mã họ thiết bị có độ lớn 8 bit (8-bit family codes) xác định kiểu thiết bị.
6 byte tiếp theo lưu trữ địa chỉ riêng của thiết bị.
Byte cuối cùng (MSB) là byte kiểm tra tính toàn vẹn dữ liệu cyclic redundancy check (CRC) có giá trị tương ứng với giá trị của 7 byte đầu tiên.
Byte CRC giúp master xác định xem địa chỉ được đọc có bị lỗi hay không Với 224 địa chỉ khác nhau, số lượng địa chỉ rất lớn, vì vậy vấn đề về địa chỉ không phải là yếu tố chính trong chuẩn giao tiếp này.
Tín hiệu reset và Presence (báo hiện diện) được mô tả như sau: Thiết bị master sẽ kéo bus xuống mức thấp ít nhất 8 khe thời gian (tương đương 480 µs) và sau đó nhả bus, khoảng thời gian này được gọi là tín hiệu reset Nếu có thiết bị slave kết nối trên bus, nó sẽ phản hồi bằng tín hiệu Presence, kéo bus xuống mức thấp trong khoảng thời gian 60 µs Nếu không nhận được tín hiệu Presence, thiết bị master sẽ hiểu rằng không có thiết bị slave nào trên bus, dẫn đến việc các giao tiếp tiếp theo không thể diễn ra.
I2C, short for "Inter-Integrated Circuit," is a communication protocol developed by Philips’ semiconductor division (now 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, LCD controllers, and amplifiers Our Arduino board can control all of these devices, with the capability to manage up to 112 I2C devices simultaneously.
KIT ARDUINO MEGA 2560
Arduino đã tạo ra một làn sóng mạnh mẽ trong cộng đồng DIY toàn cầu, tương tự như sự thành công của Apple trong lĩnh vực thiết bị di động Sự phổ biến của Arduino không chỉ thu hút một lượng lớn người dùng mà còn đa dạng về trình độ, từ học sinh phổ thông đến sinh viên đại học, khiến ngay cả những người sáng lập cũng phải bất ngờ về mức độ lan tỏa của nó.
Hìnhh 2-3: Một số Kit Arduino phổ biến hiện nay
Arduino là một board mạch vi xử lý mở, được thiết kế để phát triển các ứng dụng tương tác với nhau và môi trường xung quanh Nó sử dụng nền tảng vi xử lý AVR Atmel 8-bit hoặc ARM Atmel 32-bit, giúp người dùng dễ dàng xây dựng và triển khai các dự án sáng tạo.
Arduino Mega 2560 R3 là phiên bản nâng cấp của Arduino Uno R3, sở hữu nhiều chân giao tiếp, ngoại vi và bộ nhớ hơn Mạch của nó được thiết kế với các linh kiện tương đương phiên bản chính hãng từ Arduino.cc, rất phù hợp cho các ứng dụng yêu cầu dung lượng bộ nhớ lớn hoặc số lượng chân và cổng giao tiếp vượt trội so với Arduino Uno.
• Tất cả các Shield của Arduino Uno đều chạy được với Arduino Mega.
• Mega không dùng được thư viện SoftwareSerial vì Mega đã có 4 bộ UART rồi.
Thông số kĩ thuật của Arduino Mega 2560 R3[13]:
• Vi điều khiển chính: ATmega2560
• IC nạp và giao tiếp UART: ATmega16U2.
Nguồn nuôi mạch cần sử dụng 5VDC từ cổng USB hoặc nguồn ngoài qua giắc tròn DC Để đảm bảo mạch hoạt động ổn định, khuyên dùng điện áp từ 6 đến 9VDC Nếu sử dụng nguồn 12VDC, IC ổn áp có thể bị hư hỏng, dẫn đến sự cố cho mạch.
• Số chân Digital: 54 (15 chân PWM)
• Giao tiếp UART: 4 bộ UART
• Giao tiếp SPI: 1 bộ (chân 50 → 53) dùng với thư viện SPI của Arduino
• Bộ nhớ Flash: 256 KB, 8KB sử dụng cho Bootloader
2.2.2 Cấu trúc của A rduino Mega 2560 R3
Hình 2-4: Sơ đồ cấu trúc chân của Arduino Mega 2560 R3
Cấu tạo chân Arrduino Mega 2560 R3 có:
Vi điều khiển Atmega2560 có 54 chân digital để đọc hoặc xuất tín hiệu, với hai mức điện áp là 0V và 5V Mỗi chân có dòng vào ra tối đa là 40mA và được trang bị điện trở pull-up từ được cài đặt sẵn.
• 4 cặp chân Serial: dùng để gửi (TX) và nhận (RX) dữ liệu TTL Serial
Arduino Mega có thể giao tiếp với thiết bị khác thông qua 2 châân này.
Chân PWM trên vi điều khiển, cụ thể là chân 2, 13, 44, 45, và 46, cho phép xuất ra tín hiệu PWM với độ phân giải 8 bit, tương ứng với giá trị từ 0 đến 255, điều chỉnh điện áp từ 0V đến 5V thông qua hàm analogWrite().
Chân giao tiếp SPI trên thiết bị bao gồm các chân 50 (MISO), 51 (SCK), 52 (MOSI) và 53 (SS) Ngoài việc thực hiện các chức năng thông thường, bốn chân này còn hỗ trợ truyền phát dữ liệu qua giao thức SPI với các thiết bị khác.
Arduino Mega 2560 R3 được trang bị 16 chân analog (A0 → A15) với độ phân giải tín hiệu 10 bit, cho phép đọc giá trị điện áp trong khoảng từ 0V đến 5V Bằng cách sử dụng chân AREF, người dùng có thể cung cấp điện áp tham chiếu, ví dụ như 2.5V, để đo điện áp trong khoảng từ 0V đến 2.5V với độ phân giải 10 bit Ngoài ra, board còn có 2 chân 20 (SDA) và 21 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
• Chân 5V cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
• Chân 3V cấp điện áp 3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.
• GND: chân nối cực âm của nguồn điện.
• RESET: khi nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân Reset được nối với GND thông qua 1 điên trở 10k.
• IOREF: dùng để đo điện áp hoạt động của vi điều khiển.
• Vin (voltage input): dùng để cấp nguồn ngoài cho board.
2.2.3 Phương thức lập trình cho Arduino Mega 2560 R3
Các thiết bị Arduino được lập trình bằng ngôn ngữ riêng, dựa trên Wiring - một biến thể của C/C++ Ngôn ngữ Arduino dễ học và dễ hiểu nhờ vào nguồn gốc từ C/C++ Để lập trình, gửi lệnh và nhận tín hiệu từ mạch Arduino, người dùng có thể sử dụng môi trường lập trình Arduino IDE (Integrated Development Environment).
Hình 2-5: Giao diện Arduino IDE
NODE MCU
ESP, viết tắt của Electronic Stability Program, là hệ thống cân bằng điện tử Module ESP8266 là một module 32 bit dựa trên giao thức TCP/IP, được thiết kế cho chuẩn kết nối mới Nó có khả năng lưu trữ ứng dụng và xử lý kết nối WiFi từ bộ xử lý tích hợp, cho phép tạo kết nối như một máy chủ hoặc cầu nối trung gian, đồng thời có thể tải dữ liệu từ internet.
Hìình 2-6: Module truyền nhận Wifi ESP82666 [2] Đây là module truyền nhận WiFi đơn giản dựa trên chip ESP8266 SoC (System on Chip) của hãng Espressif Module ESP8266 V1 thường được sử dụng cho các ứng dụng IoT (Internet of Things) Module này đã được nạp sẵn firmware giúp người dùng giao tiếp với wifi rất dễ dàng qua tập lệnh AT thông qua giao tiếp UART (baudrate mặc định 9600) quen thuộc.
Module ESP8266 có các thông số kỹ thuật như sau [2]:
- Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2 Wi-Fi Direct (P2P), soft-AP.
- Chuẩn điện áp hoạt động: 3.3V.
- Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến115200 Có 3 chế độ hoạt động: Client, Access Point, Both (Client and Access Point).
- Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA WPA2_PSK Hỗ trợ cả 2 giao tiếp TCP và UDP.
- Làm việc như 1 Access Point có thể kết nối với 5 Device Công suất đầu ra 19.5dBm ở chế độ 802.11b.
- Tích hợp giao thức TCP / IP stack.
2.3.3 Chức năng của module ESP8266
Module ESP8266 có các chức năng chính như sau [2]:
- Wifi 2.4 Ghz, hỗ trợ WPA/WPA2.
- Chuẩn giao tiếp UART với tốc độ Baud lên đến 115200.
- Có ba chế độ hoạt động: Client/ Acesspoint, Both.
- Hỗ trợ các chuẩn bảo mật như: WEP, WPA_PSK, WPA2_PSK.
ESP8266 là một chip tích hợp cao, được thiết kế cho thế giới Internet of Things (IoT), cung cấp giải pháp kết nối Wi-Fi hoàn chỉnh Chip này không chỉ lưu trữ các ứng dụng mà còn giảm tải các chức năng kết nối mạng từ bộ xử lý ứng dụng Với khả năng xử lý và lưu trữ mạnh mẽ, ESP8266 có thể tích hợp dễ dàng với các bộ cảm biến, vi điều khiển và thiết bị ứng dụng thông qua GPIOs.
(General Purpose Input Output) với một chi phí tối thiểu và một PCB (Printed Circuit Board) tối thiểu.
NodeMCU Wifi v1.0 là một kit phát triển dựa trên chip Wifi SoC ESP8266, nổi bật với thiết kế thân thiện và dễ sử dụng Kit này cho phép lập trình và nạp code trực tiếp thông qua trình biên dịch của Arduino, giúp đơn giản hóa quá trình phát triển ứng dụng trên ESP8266.
Module hỗ trợ 9 chân GPIO, 1 chân ADC, 1 giao tiếp UART, 1 giao tiếp SPI và hỗ trợ PWM Tích hợp 2 nút nhấn, IC CH340 chuyển đổi USB -UART.
The main integrated circuit (IC) is the ESP8266 WiFi System on Chip (SoC), featuring a CH340G for programming and UART communication It operates on a 5V DC power supply via MicroUSB or V-in, with GPIO communication levels at 3.3V DC Additionally, it includes an integrated status LED, a reset button, and a flash button The NodeMCU is fully compatible with the Arduino IDE, allowing for seamless programming To access the various boot modes of the NodeMCU, specific procedures must be followed.
Bảng 2-1: Cách vào chế độ Boot của NodeMCU [3]
Hình 2-7: Sơ đồ chân board NodeMCU v1.0
Phương thức lập trình cho NodeMCU tương tự như lập trình cho Arduino Uno R3.
2.4 MẠCH THỜI GIIAN THỰC RTC DS 1307
Hìnnh 2-8: Ảnh thực tế mạch thời gian ds1307
Mạch thời gian thực RTC I2C DS1307 là một thiết bị đồng hồ thời gian thực, có khả năng lưu trữ thông tin về ngày, tháng, năm và các dữ liệu liên quan khác Đồng hồ này tự động điều chỉnh theo sự thay đổi của thời gian, đảm bảo độ chính xác trong việc theo dõi thời gian.
Module hoạt động như một chiếc đồng hồ và có khả năng truyền dữ liệu thời gian ra bên ngoài qua giao tiếp I2C Được thiết kế với đế pin đồng hồ, module có thể lưu trữ thời gian lên đến 10 năm mà không cần nguồn điện bên ngoài Ngoài ra, mạch đi kèm còn có bộ nhớ EEPROM với dung lượng lưu trữ lên đến 32Kbits.
•Sử dụng LIR2032 pin lithium có thể sạc lại
•Các thiết bị I 2 C khác có thể được cascaded.
•Bộ nhớ có thể lưu trữ dữ liệu đến năm 2100
Tổ chức theo từng bit của mạch:
Hình 2-9: Mạch thời gian ds1307
Màn hình LCD có nhiều loại khác nhau, được phân loại theo kích thước ký tự và số hàng hiển thị Ví dụ, LCD 20x4 có 4 hàng và mỗi hàng chứa 20 ký tự, cho phép hiển thị thông tin một cách rõ ràng và dễ đọc.
Hình 2-10: Ảnh thực tế LCD 20x4
LCD có nhiều loại với số chân khác nhau, trong đó hai loại phổ biến nhất là 14 chân và 16 chân Sự khác biệt chính giữa chúng nằm ở 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 4 dạng tín hiệu như sau:
Các chân cấp nguồn bao gồm: chân số 1 nối với mass (0V), chân thứ hai kết nối với nguồn +5V (Vdd), và chân thứ ba được sử dụng để điều chỉnh độ tương phản, thường kết nối với biến trở.
Các chân điều khiển của mạch bao gồm chân số 4, được gọi là chân RS, có chức năng lựa chọn thanh ghi Chân R/W đảm nhiệm việc điều khiển quá trình đọc và ghi dữ liệu, trong khi chân E được sử dụng để cho phép dạng xung chốt hoạt động.
- 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.
- Các chân LED_A và LED_K: Chân số 15, 16 là 2 chân dùng để cấp nguồn cho đèn nền để có thể nhìn thấy vào ban đêm.
Bảng 2-2: Các chân và chức năng chân của LCD
2.5.3 Các lệnh điều khiển Để điều khiển LCD thì có các IC chuyên dùng được tích hợp bên dưới LCD có mã số 447801 đến các IC 447809 Trong IC này có bộ nhớ RAM dùng để lưu trữ dữ liệu cần hiển thị và thực hiện điều khiển LCD hiển thị Các lệnh điều khiển được thể hiện trong bảng 2.3.
Bảng 2-3: Các mã 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ị trở lại vị trí gốc đã bị dịch Tuy nhiên, nội dung trong bộ nhớ RAM hiển thị DDRAM không bị thay đổi.
Lệnh thiết lập lối vào "Entry mode set" được sử dụng để cấu hình cách hiển thị ký tự Khi bit ID = 1, con trỏ sẽ tự động tăng lên 1 sau mỗi lần ghi 1 byte dữ liệu vào bộ hiển thị Ngược lại, nếu ID = 0, con trỏ không tăng và dữ liệu mới sẽ ghi đè lên dữ liệu cũ Thêm vào đó, khi bit S = 1, lệnh này cho phép dịch chuyển dữ liệu mỗi khi nhận 1 byte hiển thị.
Lệnh điều khiển con trỏ hiển thị "Display Control" cho phép người dùng điều chỉnh hiển thị của con trỏ bằng cách thiết lập bit D Khi bit D = 1, con trỏ sẽ được hiển thị, trong khi khi bit D = 0, con trỏ sẽ bị tắt Lệnh này giúp quản lý trạng thái hiển thị của con trỏ một cách hiệu quả.
(mở con trỏ thì bit C = 1, tắt con trỏ thì bit C = 0), và nhấp nháy con trỏ (cho nhấp nháy thì bit B = 1, tắt thì bit B = 0).
LCD HIỂN THỊ
Màn hình LCD có nhiều loại khác nhau, được phân loại theo kích thước và số lượng ký tự hiển thị Ví dụ, LCD 20x4 có 4 hàng và mỗi hàng chứa 20 ký tự, cho phép hiển thị thông tin một cách rõ ràng và hiệu quả.
Hình 2-10: Ảnh thực tế LCD 20x4
LCD có hai loại phổ biến là loại 14 chân và loại 16 chân, khác nhau ở số 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 4 dạng tín hiệu như sau:
Các chân cấp nguồn của mạch bao gồm: chân số 1 nối với mass (0V), chân số 2 kết nối với nguồn +5V (Vdd), và chân số 3 dùng để điều chỉnh độ tương phản, thường được nối với biến trở.
Các chân điều khiển trong mạch bao gồm chân số 4 (RS) để lựa chọn thanh ghi, chân R/W để điều khiển quá trình đọc và ghi dữ liệu, và chân E để cho phép xung chốt hoạt động.
- 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.
- Các chân LED_A và LED_K: Chân số 15, 16 là 2 chân dùng để cấp nguồn cho đèn nền để có thể nhìn thấy vào ban đêm.
Bảng 2-2: Các chân và chức năng chân của LCD
2.5.3 Các lệnh điều khiển Để điều khiển LCD thì có các IC chuyên dùng được tích hợp bên dưới LCD có mã số 447801 đến các IC 447809 Trong IC này có bộ nhớ RAM dùng để lưu trữ dữ liệu cần hiển thị và thực hiện điều khiển LCD hiển thị Các lệnh điều khiển được thể hiện trong bảng 2.3.
Bảng 2-3: Các mã 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, xóa bộ đếm địa chỉ về 0 và đưa phần hiển thị trở lại vị trí gốc đã bị dịch trước đó, trong khi nội dung bộ nhớ RAM tại DDRAM không bị thay đổi.
Lệnh "Entry mode set" được sử dụng để thiết lập cách thức nhập liệu cho các ký tự hiển thị Khi bit ID = 1, con trỏ sẽ tự động tăng lên 1 sau mỗi lần ghi 1 byte dữ liệu 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, dữ liệu sẽ được dịch chuyển mỗi khi nhận 1 byte hiển thị.
Lệnh điều khiển con trỏ hiển thị, hay còn gọi là "Display Control", cho phép người dùng điều chỉnh trạng thái của con trỏ Khi bit D được đặt là 1, con trỏ sẽ hiển thị, trong khi khi bit D là 0, con trỏ sẽ tắt Lệnh này giúp quản lý việc hiển thị hoặc ẩn con trỏ một cách hiệu quả.
(mở con trỏ thì bit C = 1, tắt con trỏ thì bit C = 0), và nhấp nháy con trỏ (cho nhấp nháy thì bit B = 1, tắt thì bit B = 0).
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, con trỏ có thể dịch chuyể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 phải và RL = 0 cho phép dịch trái Lưu ý rằng nội dung bộ nhớ DDRRAM vẫn 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ý hiệu quả dữ liệu hiển thị.
Lệnh "Set DDRAM Addr" được sử dụng để thiết lập địa chỉ cho bộ nhớ RAM, giúp lưu trữ các dữ liệu hiển thị một cách hiệu quả.
Hai lệnh cuối cùnng là lệnh đọc và lệnh ghi dữ liệu LCD.
Dạng sóng các tínn hiệu khi thực hiện ghi dữ liệu vào LCD như hình sau:
Hình 2-11: Dạng sóng các tín hiệu khi thực hiện ghi dữ liệu vào LCD
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 hiiệu RS.
- Điều khiển tín hiiệu R/W xuống mức thấp.
- Điều khiển tín hiiệu E lên mức cao để cho phép.
- Điều khiển tín hiiệu E về mức thấp.
- Điều khiển tín hiiệu R/W lên mức cao trở lại.
2.5.4 Module I 2 C giaao tiếp với LCD Để sử dụng LCCD cần có ít nhất 6 chân của MCU kết nối với các chân RS, chỉ cần 2 chân SDA và SCL để hiển thị thông tin Ngoài ra, còn có 2 chân VCC và GND để cấp nguồn cho LCD, bên cạnh đó module còn có một biến trở để điều chỉnh độ tương phản Trong Board Arduino,chúng ta sử dụng thư viện LiquidCrystal_I 2 C để có thể dễ dàng giao tiếp với LCD.
Hình 2-12: Module I2C giao tiếp với LCD
MUDULE ĐIỀU KHIỂN ĐỘNG CƠ L298N
Module điều khiển động cơ L298N sử dụng chipp cầu H, cho phép điều khiển tốc độ và chiều quay của động cơ DC một cách dễ dàng Ngoài ra, module này còn hỗ trợ điều khiển một động cơ bước lưỡng cực Mạch cầu H của IC L298N hoạt động hiệu quả trong dải điện áp từ 5V đến 35V.
Module L298N có tích hợp một IC nguồn 78M05 để tạo ra nguồn 5V để cung cấp cho các thiết bị khác.
Thông số kỹ thuật của mạch điều khiển động cơ L298N [4]:
• Driver: L298N tích hợp hai mạch cầu H.
• Dòng tối đa cho mỗi cầu H: 2A.
• Điện áp tín hiệu điều khiển: +5 V ~ +7 V.
• Dòng tín hiệu điều khiển: 0 ~ 36mA.
• Công suất hao phí: 20W (khi nhiệt độ T = 75 ).
MODULE RELAY
Module 1 Relayy với opto cách ly nhỏ gọn, có opto và transistor cách ly giúp cho việc sử dụng trở nên an toàn với board mạch chính, mạch được sử dụng để đóng ngắt nguồn điện công suất cao AC hoặc DC, có thể chọn đóng khi kích mức cao hoặc mức thấp bằng Jumper.
Tiếp điểm đóng ngắt bao gồm ba loại: NC (thường đóng), NO (thường mở) và COM (chân chung), được cách ly hoàn toàn với board mạch chính Trong trạng thái bình thường, tiếp điểm NC sẽ kết nối với COM Khi có tín hiệu kích hoạt, COM sẽ chuyển sang kết nối với NO và ngắt kết nối với NC.
• Sử dụng điện áp nuôi DC 5V.
• Dòng mỗi Relay tiêu thụ dòng khoảng 80mA.
• Điện thế đóng nggắt tối đa: AC250V ~ 10A hoặc DC30V ~ 10A.
• Có đèn báo đóngg ngắt trên mỗi Relay.
• Có thể chọn mức tín hiệu kích 0 hoặc 1 qua jumper.
• Kích thước: 1.977 in x 1.02 in x 0.75 in (5.0 cm x 2.6 cm x 1.9 cm).
ĐO ĐỘ PH
2.8.1 Giới thiệu về độ pH Độ pH là chỉ số đo độ hoạt động của các ion hiđrô (H+) trong dung dịch và vì vậy là độ axít hay bazơ của nó Trong các hệ dung dịch nước, độ hoạt động của ion hiđrô được quyết định bởi hằng số điện ly của nước (Kw) = 1,011 × 10−14 ở 25 °C) và tương tác với các ion khác có trong dung dịch Do hằng số điện ly này nên một dung dịch trung hòa (độ hoạt động của các ion hiđrô cân bằng với độ hoạt động của các ion hiđrôxít) có pH xấp xỉ 7 Các dung dịch nước có giá trị pH nhỏ hơn 7 được coi là có tíính axít, trong khi các giá trị pH lớn hơn 7 được coi là có tính kiềm.
Bảng 2-4: Bảng giá trị pH của một số dung dịch.
Hiện nay, có nhiều phương pháp đo độ pH, bao gồm dung dịch đổi màu, pH kế, giấy pH và điện cực Trong số đó, phương pháp sử dụng điện cực được coi là chính xác nhất để đo pH.
2.8.2 Phương pháp đo độ pH bằng điện cực
Điện cực pH được cấu tạo từ hai loại thủy tinh, trong đó thân điện cực làm bằng thủy tinh không dẫn điện và đầu điện cực có hình bầu, được chế tạo từ thủy tinh chứa oxit silica, lithium, canxi và các nguyên tố khác cho phép ion lithium xuyên qua Cấu trúc này cho phép ion lithium trao đổi với ion hydro trong dung dịch, tạo thành lớp thủy hợp Khi đó, một điện thế cỡ mV được sinh ra giữa đầu thủy tinh pH và dung dịch bên ngoài, và độ lớn của điện thế này phụ thuộc vào giá trị pH của dung dịch Sự chênh lệch điện thế giữa lớp bên ngoài và lớp thủy hợp bên trong điện cực có thể được đo bằng điện cực bạc/bạc.
Do dung dịch bên trong điện cực thủy tinh được đệm, giá trị pH của nó không thay đổi Do đó, điện thế chỉ thay đổi do giá trị pH của dung dịch bên ngoài, và điều này có thể được đo lường.
Công thức Nernst cho thấy điện thế mV qua điện cực thay đổi theo thang logarithm dựa trên nồng độ ion hydro Do ion hydro bị ảnh hưởng bởi môi trường, thuật ngữ chính xác nên là hoạt độ của ion hydro Tuy nhiên, trong nhiều ứng dụng, nồng độ và hoạt độ thường được sử dụng thay thế cho nhau Bài viết này chủ yếu tập trung vào việc sử dụng "nồng độ".
Hình 2-15: Cấu tạo điện cực pH thủy tinnh.
Công thức để xác định nồng độ ion hydro là công thức Nernst:
Giá trị “0.059” là hằng số Nernst, thay đổi theo nhiệt độ Ở 25°C hằng số Nernst là 0.059 và ở 80°C là 0.070.
Bên trong cảm ứng có một bầu thủy tinh mỏng hình cầu, được làm từ loại thủy tinh đặc biệt Bên trong bầu thủy tinh là dung dịch với độ pH xác định, cùng với một phần tử so sánh nội được đặt bên trong.
Giá trị pH được xác định thông qua hiệu điện thế giữa điện cực so sánh nội và điện cực so sánh ngoại khi cảm biến được ngâm trong dung dịch cần đo.
Hình 2-16: Nguyên lý đo pH
Bảng 2-5: Giá trị độ pH dựa vào điện áp
• Cảm biến gồm 3 chân:GND, VCC, và chân tín hiệu Analog, sử dụng đầu nối BNC để kết nối với thiết bị ngoài.
• Tín hiệu trả về Analog
• Nhiệt đồ hoạt động : 0 – 60 độ C
• Tốc độ phản ứng : < 1 phút
Hình 2-17: Cảm biến pH DFRobot
Công thức tính độ pH của cảm biến: pH = U *5
CẢM BIẾN NHIỆT ĐỘ
Hình 2-18: : Ảnh thực tế DS18B20 Đặc tính kỹ thuật:
• Dải đo nhiệt độ: -55-125 độ C (-67 - 257 độ F).
• Sai số: +- 0.5 độ C khi đo ở dải -10 - 85 độ C.
• Độ phân giải: nggườ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.
2.9.2 Sơ đồ khối của cảm biến nhiệt DS18B20
Bộ nhớ ROM của cảm biến lưu trữ mã 64 bit duy nhất, trong khi vùng nhớ scratchpad có 2 byte để lưu trữ dữ liệu nhiệt độ Ngoài ra, cảm biến còn có 2 thanh ghi để lưu trữ ngưỡng nhiệt độ dưới và trên, giúp so sánh với nhiệt độ đo được và cảnh báo khi vượt quá giới hạn cài đặt.
Cảm biến DS188B20 có sơ đồ khối như hình Các khối
• Khối mạch nguồn cấp cho các khối bên trong hoạt động lấy từ nguồn bên nggoài.
• Khối bộ nhớ ROM 64 bit và port 1 dây.
Khối scratchpad kết nối với các cảm biến nhiệt độ và khối lưu trữ nhiệt độ byte cao, byte thấp để phát hiện và cảnh báo tình trạng quá nhiệt Đồng thời, khối này còn tích hợp thanh ghi cấu hình và bộ kiểm tra mã chuẩn CRRC.
Hình 2-19: Sơ đồ khối DS18B20
Thanh ghi định cấu hình cho phép người dùng thiết lập độ phân giải chuyển đổi từ nhiệt độ sang dữ liệu số với các mức 9, 10, 11 hoặc 12 bit Giá trị của thanh ghi này được lưu trữ trong bộ nhớ không bay hơi (EEPROM), đảm bảo rằng dữ liệu vẫn được bảo tồn ngay cả khi mất điện.
2.9.3 Hoạt động của cảm biến nhiệt DS18B20
Cảm biến nhiệt độ DS18B20 có chức năng chính là chuyển đổi nhiệt độ thành dữ liệu số Độ phân giải của cảm biến có thể được cấu hình ở mức 9, 10, 11 hoặc 12 bit, tương ứng với các hệ số chuyển đổi lần lượt là 0,5ºC, 0,25ºC, 0,125ºC và 0,0625ºC Khi được cấp điện, độ phân giải mặc định của cảm biến là 12 bit.
Khi được cấp điện, cảm biến DS18B20 sẽ ở trạng thái nghỉ để tiết kiệm năng lượng Để bắt đầu quá trình chuyển đổi từ tín hiệu tương tự sang số, thiết bị chủ cần gửi lệnh chuyển đổi (Convert_T với mã 44H) Sau khi quá trình chuyển đổi hoàn tất, dữ liệu nhiệt độ sẽ được lưu vào hai thanh ghi trong vùng nhớ scratchpad, và cảm biến sẽ trở lại trạng thái nghỉ.
Khi cảm biến được cấp nguồn từ bên ngoài, thiết bị chủ có khả năng phát các khe thời gian đọc sau khi nhận lệnh chuyển đổi nhiệt độ (Convert_T) Điều này cho phép kiểm tra xem cảm biến đã hoàn tất quá trình chuyển đổi hay chưa, thông qua việc cảm biến phản hồi bằng cách phát bit có mức logic.
0 thì quá trình chuyển đổi đang xảy ra, nếu phát bit có mức logic 1 thì quá trình chuyển đổi đã kết thúc.
Nếu cảm biến cấp nguồn thông qua chân tín hiệu thì thực hiện kiểm tra theo cách khác.
Dữ liệu nhiệt độ được lưu trữ theo hệ Celsius, nhưng nếu cần chuyển sang hệ Fahrenheit, bạn phải thực hiện quá trình chuyển đổi Dữ liệu này được lưu trữ dưới dạng số bù 2 16 bit có dấu trong thanh ghi.
- BIT 0 – BIT 11: sử dụng lưu giá trị nhiệt độ dạng nhị phân.
- BIIT 12 – BIT 15: bit dấu của nhiệt độ (S=0: nhiệt độ dương, S:nhiệt độ âm).
Byyte 2 và Byte 3 là hai thanh ghi lưu trữ giá trị ngưỡng nhiệt độ cài đặt, có khả năng lưu vào bộ nhớ EEPROM của DS18B20 thông qua lệnh Khi nhiệt độ đo được vượt quá ngưỡng Th hoặc Tl, một cờ báo động sẽ được kích hoạt.
Hình 2-20: Cấu trúc 2 thanh ghi lưu nhiệt độ của cảm biến nhiệt DS18B20
• Byyte thứ 0 và thứ 1 dùng để lưu nhiệt độ chuyển đổi và theo thứ tự là byte thấp và byte cao, hai byte này chỉ cho phép đọc.
• Byyte thứ 2 và thứ 3 dùng để lưu nhiệt độ báo động và theo thứ tự là byte thấp và byte cao.
• Byyte thứ 4 là thanh ghi định cấu hình.
• Byyte thứ 5, 6, 7 phục vụ cho hoạt động bên trong của cảm biến.
• Byyte thứ 8 là byte kiểm tra cho tất cả các byte từ thứ 0 đến
Hình 2-21: Cấu trúc bộ nhớ Rom của DS18B20
• Dữ liệu ghi vàoo byte 2, 3 và byte 4 của vùng nhớ bằng lệnh Write Scratcchpad (4EH),
2.9.4 Thanh ghi định cấu hình của cảm biến DS18B20
Byte thứ 4 trong vùng nhớ Scratchpad của cảm biến DSS18b20 chứa thanh ghi định cấu hình, cho phép thiết lập độ phân giải chuyển đổi của cảm biến thông qua 2 bit R1 và R0 Hai bit này có khả năng thiết lập 4 hệ số chuyển đổi từ 9 bit đến 12 bit, kèm theo thời gian chuyển đổi tương ứng được trình bày trong bảng.
Hình 2-22: Byte thanh ghi điều khiển của cảm biến DS18B20
CẢM BIẾN SIÊU ÂM HC-SR04
Bảng 2-6: Bảng độ phân giải và thời gian chuyển đổi
2.9.5 Cấp nguồn cho cảm biến DS18B20
Cảm biến DS188B20 có 2 kiểu cấp nguồn như hình sau:
Hình 2-23: Sơ đồ cấp nguồn cho cảm biến DSS18B20
Hình trên thì chân cấp nguồn là chân tín hiệu dùng thêêm 1 transistor FET, hình bên dưới sử dụng nguồn cấp đúng chân nguồn VDD.
2.10 CẢM BIẾN SIÊÊU ÂM HC-SR04
2.10.1 Giới thiệu về sóng siêu âm
Sóng siêu âm là loại sóng âm có tần số vượt quá khả năng nghe của tai người, thường nằm trong dải tần từ vài chục Hz đến gần 20kHz Thính giác của con người rất nhạy cảm với các âm thanh trong khoảng này.
Siêu âm có khả năng lan truyền qua nhiều môi trường như không khí, chất lỏng và rắn, với tốc độ tương đương tốc độ âm thanh Mặc dù siêu âm có tần số cao hơn, nhưng bước sóng của nó lại ngắn hơn so với bước sóng của âm thanh.
Sóng siêu âm trong thực tế có thể được tạo ra từ một số loại loa, từ dao động của tinh thể áp điện.
2.10.2 Thông số kỹ thuật của SRF04
Thông số kỹ thuật của HC-SR04
• Tần số hooạt động : 40KHz.
• Khoảng cách lớn nhất đo được:
• Khoảng cách nhỏ nhất đo được: 3 cm.
Hình 2-24: Ảnh thực tế HC-SR04
2.10.3 Cấu tạo và nguyên lý hoạt động
Về cấu tạo SRF004 gồm 3 phần :
Phần phát tín hiệu trong hệ thống sử dụng các đầu phát và đầu thu siêu âm là loa gốm đặc biệt, hoạt động hiệu quả nhất ở tần số 40kHz cho ứng dụng đo khoảng cách Để phát tín hiệu siêu âm, các loa này cần nguồn điện cao áp khoảng 30V, do đó, một con MAX232 được sử dụng làm phần đệm công suất để khuếch đại tín hiệu từ bộ điều khiển lên +/-30V cung cấp cho loa Để tiết kiệm nguồn cho module cảm biến, nguồn cấp cho MAX232 được điều khiển qua một transistor PNP, giúp ngắt nguồn khi không hoạt động nhằm hạn chế tiêu thụ điện năng.
Khi loa gốm được sử dụng làm đầu thu, nó có khả năng thu sóng siêu âm ở tần số 40KHz và phát ra một điện thế nhỏ giữa hai cực Để xử lý điện thế này, tín hiệu được đưa qua một OPAM TL072 để khuếch đại biên độ liên tục Cuối cùng, tín hiệu được đưa qua một bộ so sánh, kết hợp với tín hiệu từ bộ điều khiển, trước khi trở về bộ điều khiển thông qua một transistor NPN.
Phần xử lý và điều khiển sử dụng vi điều khiển STC11 để phát xung và tính toán thời gian từ khi phát sóng siêu âm đến khi nhận được tín hiệu phản hồi, điều này diễn ra khi có tín hiệu TRIIG.
Nguyên lý hoạt động của SRF04:
Khi bắt đầu, vi điều khiển STC11 trên SRRF04 sẽ phát một xung kích vào chân Trigger với độ rộng 10us Sau khi nhận được xung kích, cảm biến sẽ phát ra 8 xung sóng âm thanh với vận tốc 340m/s Chân Echo STC11 sẽ được kéo lên cao để chờ sóng âm thanh phản xạ, và khi có sóng phản xạ, chân Echo sẽ được kéo xuống thấp Thời gian chân Echo ở mức cao chính là thời gian sóng âm thanh đi và về từ cảm biến.
Hình 2-25: Nguyên lý hoạt động của SRF04 vật cản ta dùng timer để đếm khoảng thời giaan này.
CẢM BIẾN ĐỘ ĐỤC
2.11.1 Giới thiệu về cảm biến độ đục
Cảm biến độ đục là thiết bị quan trọng trong việc phát hiện chất lượng nước bằng cách đo mức độ đục Thiết bị này hoạt động dựa trên nguyên lý sử dụng ánh sáng để phát hiện các hạt lơ lửng trong nước, thông qua việc truyền ánh sáng và đo tốc độ tán xạ Tốc độ tán xạ này thay đổi tương ứng với tổng lượng chất rắn lơ lửng (TSS) trong nước; khi TSS tăng, mức độ độ đục của chất lỏng cũng sẽ gia tăng.
Cảm biến này được sử dụng phổ biến để đo chất lượng nước tại các sông, suối, nước thải và ao hồ Nó cũng đóng vai trò quan trọng trong việc kiểm soát ao lắng, nghiên cứu vận chuyển trầm tích và thực hiện các phép đo trong phòng thí nghiệm.
Cảm biến độ đục cung cấp hai loại tín hiệu đầu ra: tín hiệu analog và tín hiệu số Trong chế độ tín hiệu số, người dùng có thể điều chỉnh ngưỡng thông số theo yêu cầu và lựa chọn chế độ phù hợp với MCU của mình.
2.11.2 Chức năng cácc chân của Cảm biến độ đục
• "D / A" Chuyển đổi tín hiệu đầu ra.
• "A": Đầu ra tín hiệu tương tự, giá trị đầu ra sẽ giảm khi ở chất lỏng có độ đục cao.
• "D": Đầu ra tín hiệu số, mức cao và thấp, có thể điều chỉnh bằng công suất ngưỡng.
Threshold Potentiometer: bạn có thể thay đổi điều kiện kích hoạt bằng cách điều chỉnh Potentiometer ngưỡng trong chế độ tín hiệu số.
• Điện áp hoạt động: 5V DC.
• Dòng hoạt động: 40mA (MAX).
• Chống cách điện: 100M (Tối thiểu).
Hình 2-26: Cảm biến đo độ đục của nước • Ngõ ra analog: 0-4.5V.
• Ngõ ra số: Tín hiệu mức cao / thấp (bạn có thể điều chỉnh giá trị ngưỡng bằng cách điều chỉnh Potentiometer).
PHƯƠNG PHÁP XÂY DỰNG WEB SERVER
2.12.1 Phần mềm hỗ trợ lập trình Web Server a) Máy chủ giả lập XAMPP
XAMPP là một phần mềm tạo máy chủ web tích hợp Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin Phần mềm này cung cấp một giao diện quản lý tiện lợi, cho phép người dùng dễ dàng bật, tắt hoặc khởi động lại các dịch vụ máy chủ bất cứ lúc nào.
Xampp là phần mềm giúp giả lập môi trường server hosting, cho phép bạn thử nghiệm và chạy demo website ngay trên máy tính mà không cần mua hosting hay VPS Phần mềm này thường được sử dụng để thực hành và phát triển web, phục vụ cho việc học tập và giải trí.
XAMPP là viết tắt của X + Apache + Mysql + PHP + Perl [6].
Chữ X là cross (platform) ám chỉ dùng được cho cả 4 hệ điều hành khác nhau: Windows, Linux, Solaris và MAC Chúng ta có thể download XAMPP miễn phí tại: https://www.apachefriends.org/download.html
Web Server thường được sử dụng trong quá trình lập trình web, giúp lập trình viên tiết kiệm chi phí mua hosting cho đến khi hoàn thành website.
Hình 2-27: Giao diện của XAMPP b) Phần mềm lập trình Web Server
Sublime Text là một trình soạn thảo văn bản mạnh mẽ, cho phép người dùng viết mã Web Server và lưu dưới định dạng *.html, *.php hoặc *.css Phần mềm này được phát triển bằng Python và tương thích với nhiều hệ điều hành như Windows, Mac và Linux Sublime Text hỗ trợ nhiều ngôn ngữ lập trình và có phiên bản miễn phí cũng như phiên bản trả phí Ưu điểm nổi bật của Sublime Text là tính nhẹ, khả năng tùy biến linh hoạt, cùng với các tính năng hữu ích như phân biệt màu sắc giữa các phần tử, giúp lập trình dễ dàng hơn Bạn có thể tải Sublime Text tại [đây](https://www.sublimetext.com).
Hình 2-28: Giao diện phần mềm soạn thảo
2.12.2 Ngôn ngữ HTML a) Cấu trúc cơ bản của HTML
HTML (HyperText Markup Language) là ngôn ngữ đánh dấu siêu văn bản, dùng để tạo ra các trang web [7].
HTML bao gồm một tập hợp các thẻ dùng để:
- Định nghĩa cấu trúc của trang web.
- Định dạng nội dung của trang web.
- Tạo các siêu liên kết để liên kết đến những trang web khác.
Để chèn âm thanh, hình ảnh và video vào trang web, bạn cần bắt đầu với một file HTML bằng cách sử dụng thẻ mở và kết thúc bằng thẻ đóng Đối với HTML5, trước thẻ , bạn cần thêm thẻ để xác định loại tài liệu.
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ẻ
Tiêu đề của trang web, được đặt trong thẻ và , là phần quan trọng hiển thị trên thanh điều hướng Khi người dùng tìm kiếm thông tin, tiêu đề cung cấp từ khóa chính giúp tối ưu hóa khả năng tìm kiếm và thu hút sự chú ý.
Trong thẻ , có nhiều thẻ quan trọng giúp xác định định dạng ngôn ngữ cho trang web thông qua CSS và các tệp chứa biểu tượng Favicon.
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à 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ẻ Trong phần này, các thẻ HTML cơ bản sẽ được sử dụng để cấu trúc nội dung một cách hợp lý.
Headings được sử dụng để trình bày tiêu đề cho phần nội dung hiển thị trên trang Web.
Các phần tiêu đề trong văn bản được trình bày nổi bật với kích thước lớn và in đậm, giúp phân biệt rõ ràng với các nội dung khác Chúng ta có thể sử dụng sáu kích thước tiêu đề từ h1 đến h6, trong đó thẻ h1 được dành cho các tiêu đề quan trọng nhất và kích thước giảm dần đến h6.
Trong thiết kế website, việc chia văn bản thành các khối thông tin logic là rất cần thiết, và các phần tử div và span thường được sử dụng để nhóm nội dung lại với nhau Thẻ div đặc biệt phổ biến trong việc tạo bố cục cho trang web.
- Phần tử div dùng để chia tài liệu thành các thành phần có liên quan với nhau.
- Phần tử span dùng để định nghĩa nội dung trong dòng (in-line) còn phần tử div dùng để định nghĩa nội dung mức khối (block-level).
- Phần tử p định nghĩa một đoạn văn bản.
Thẻ trong HTML được sử dụng để chèn hình ảnh vào trang web Bạn có thể đặt thẻ ở bất kỳ vị trí nào mà bạn muốn hình ảnh xuất hiện Thẻ này không chứa nội dung mà hiển thị hình ảnh thông qua thuộc tính src Cú pháp của thẻ rất đơn giản.
Trong đó src (source) là thuộc tính và giá trị là một url, chỉ vị trí chính xác của file ảnh.
Thuộc tính align của thẻ có thể được sử dụng để điều chỉnh canh lề của ảnh với văn bản xung quanh.
Trong đó, vị trí của ảnh có thể là trên (top), dưới (bottom), ở giữa (middle), trái (left) hoặc phải (right).
Thẻ dùng để tạo bảng biểu trong HTML Cấu trúc cơ bản như sau:
Trong đó thẻ cho biết bắt đầu 1 hàng,là thẻ chỉ đến cột tương ứng với hàng đó.
Nếu bạn muốn sử dụng hàng đầu tiên làm tiêu đề cho bảng (chữ được tô đậm và căn giữa), hãy thay thế cặp thẻ bằng cặp thẻ .
Thẻ dùng để tạo liên kết với một địa chỉ url Cấu trúc như sau:
HCMUTE
Trên giao diện web sẽ hiển thị chữ “HCMUTE” và khi click vào dòng chữ này sẽ liên kết tới một trang web (www.hcmute.edu.vn).
Thẻ được sử dụng để định nghĩa một link tới một tài liệu ngoại vi Nó được đặt trong khu vực của tài liệu.
Thẻ thu thập thông tin
Thẻ là thẻ dùng để thu thập thông tin từ người dùng, chẳng hạn như hồ sơ xin việc làm, mẫu thăm dò ý kiến…
Với dạng "text" thì các ký tự hiển thị bình thường Với dạng "password" thì các ký tự sẽ được thay thế bằng ký tự ‘ * ’ hoặc “•”.
Thẻ
- được sử dụng để xác định một danh sách thứ tự, không theo thứ tự, thư mục, và các menu.
PHP, viết tắt của "PHP: Hypertext Preprocessor", là một ngôn ngữ kịch bản phía máy chủ phổ biến, thường được sử dụng để phát triển các trang web động Việc nhúng PHP vào tài liệu giúp tạo ra nội dung linh hoạt và tương tác cho người dùng.
Khi nhúng PHP vào tệp, mã PHP cần được đặt trong thẻ mở Dưới đây là ví dụ về cách lồng PHP vào HTML.
Bảng 2-7: Code lồng PHP vào HTML
Trên một đoạn mã PHP, nó sẽ được kết thúc bằng dấu chấm phẩy (;).
Bảng 2-8: Một đoạn mã PHP
4 b) Các khái niệm cơ bản