Chương 1: Tổng quan 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 giám sát điều khiển hồ nuôi tôm 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ế. 3 do an CHƯƠNG 2: CƠ SỞ S LÝ THUY HUYẾT 2.
CÁC PHƯƠNG THỨC TH TRUYỀN SỬ DỤNG NG TRONG Đ ĐỀ TÀI 2. Chuẩn giao tiếp p UART a) Giới thiệu UART chuyển đổổi giữa dữ liệu nối tiếp và song song [14] [14]. Một chiều UART chuyển đổi dữ liệuu song song bus hệ thống ra dữ liệu nối tiếếp để truyền đi. Một chiều u khác UART chuyển chuy đổi dữ liệu nhận được dạng dữ liệuu nnối tiếp thành dạng dữ liệuu song song cho CPU có thể th đọc vào bus hệ thống.
Hình 2-1: Truyền dữ liệu UART UART của PC hỗỗ trợ cả hai kiểu giao tiếp là giao tiếp đồồng thời và giao tiếp không đồng thời. Giao tiếp ti đồng thời tức là UART có thể gửii và nh nhận dữ liệu vào cùng một thời điểm. Còn giao tiếp ti không đồng thờii (không kép) là ch chỉ có một thiết bị có thể chuyển dữ liệuli vào một thời điểm, với tín hiệu điềều khiển hoặc mã sẽ quyết định nh bên nào có thể th truyền dữ liệu. Giao tiếp không đồngng th thời được thực hiện khi mà cả 2 chiềuu chia sẽs một đường dẫn hoặc nếu có 2 đường ng nhưng ccả 2 thiết bị chỉ giao tiếp qua mộtt đường đư ở cùng một thời điểm.
Thêm vào đư đường dữ liệu, UART hỗ trợ bắt tay chuẩnn RS232 và tín hiệu hi điều khiểnn như RTS, CTS, DTR, DCR, RT và CD. Để thuận tiện, n, các chương trình tr gửi và nhận dữ liệuu trong đđịnh dạng không đồng bộ đơn giảnn hơn những nh gì bạn tưởng. PC và nhiều vi xử ử lý khác có một bộ phận gọii là UART (universal asynchronous receiver/transmitter: truytruyền /nhận không đồng bộ chung) vì thếế có thể vận dụng phần lớn những chi tiếết truyền và nhận dữ liệu. Trong PC, hệ điềều hành và ngôn ngữ lập trình hỗ trợ cho llập trình liên kết nối tiếp mà không cần phảải hiểu rõ chi tiết cấu trúc UART.
Để mở ở liên kết, ứng dụng lựa chọn một tần số dữ d liệu hoặc là thiết lập khác hoặcc cho phép truytruyền thông tại các cổng. Để gửii 1 byte, ứng dụng ghi byte này vào bộ đệm m truy truyền của cổng được lựa chọn, và UART gử ửi dữ liệu này, từng bit một, trong định dạạng yêu cầu, thêm bit Start, bit Stop, bit chẵẵn lẻ khi cần. Trong một cách đơn giản, n, byte nhnhận được tự động được lưu trữ trong bộ b đệm. UART có thể dùng nhanh m một ngắt để báo cho 4 do an CPU và các ứng dụng biết dữ liệu đang nhận được và các sự kiện khác.
Một vài vi điều khiển không bao gồm UART, và thỉnh thoảng bạn cần nhiều hơn các UART mà vi xử lý có. Trong trường hợp này, có 2 lựa chọn: thêm UART ngoài, hoặc mô phỏng UART trong mã chương trình. Basic Stamp của Parallax là một ví dụ của chip với một UART bổ sung trong mã chương trình. UART là một thiết bị đơn giản hỗ trợ tốt cả hai kiểu truyền thông đồng bộ và không đồng bộ.
b) Các thông số cơ bản của chuẩn truyền UART Baud rate (tốc độ Baud) [14]: Khi truyền nhận không đồng bộ để hai module hiểu được nhau thì cần quy định một khoảng thời gian cho 1 bit truyền nhận, nghĩa là trước khi truyền thì tốc độ phải được cài đặt đầu tiên. Theo định nghĩa thì tốc độ baud là số bit truyền trong một giây. Frame (khung truyền): Do kiểu truyền thông nối tiếp này rất dễ mất dữ liệu nên ngoài tốc độ, khung truyền cũng được cài đặt từ ban đầu để giảm bớt sự mất mát dữ liệu này. Khung truyền quy định số bit trong mỗi lần truyền, các bit thông báo như start, stop, các bit kiểm tra như parity, và số bit trong một data.
Bit Start: Là bit bắt đầu trong khung truyền. Bit này nhằm mục đích báo cho thiết bị nhận biết quá trình truyền bắt đầu. Trên AVR bit Start có trạng thái là 0. Data: Dữ liệu cần truyền data không nhất thiết phải 8 bit có thể là 5, 6, 7, 8, 9.
Trong UART bit LSB được truyền đi trước, bit MSB được truyền đi sau. Parity bit: Là bit kiểm tra dữ liệu. Có 2 loại parity: chẵn (even parity), lẻ (old parity). Parity chẵn là bit parity thêm vào để số số 1 trong data + parity = chẵn.
Parity lẻ là bit parity thêm vào để số số 1 trong data + parity = lẻ. Bit parity là không bắt buộc nên có thể dùng hoặc không. Chuẩn 1-Wire Chuẩn giao tiếp 1 dây (1 wire) do hãng Dallas giới thiệu. Trong chuẩn giao tiếp này chỉ cần 1 dây để truyền tín hiệu và làm nguồn nuôi (Nếu không tín dây mass).
Là chuẩn giao tiếp không đồng bộ và bán song công (half-duplex). Trong giao tiếp này tuân theo mối liên hệ chủ tớ một cách chặt chẽ. Trên một bus có thể gắn 1 hoặc nhiều thiết bị slave. Nhưng chỉ có một master có thể kết nối đến bus này.
Bus dữ liệu khi ở trạng thái rãnh (khi không có dữ liệu trên đường truyền) phải ở mức cao do vậy bus dữ liệu phải được kéo lên nguồn thông qua một điện trở. Giá trị điện trở này có thể tham khảo trong datasheet của thiết bị / các thiết bị slave. 5 do an 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. Nhờ byte CRC giúp cho master xác định có địa chỉ được đọc có bị lỗi hay không. Với 224 địa chỉ khác nhau tạo ra một số lượng rất lớn các địa chỉ.
Do vậy vấn đề về địa chỉ không phải là vấn đề chính trong chuẩn giao tiếp này. Tín hiệu reset và Presence(Báo hiện diện) được trình bày như hình bên dưới. Thiết bị master kéo bus xuống thấp ít nhất 8 khe thời gian (tức là 480 µs) và sau đó nhả bus. Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset.
Nếu có thiết bị slave gắn trên bus nó sẻ trả lời bằng tín hiệu Presence tức là thiết bị tớ sẻ kéo bus xuống mức thấp trong khoảng thời gian 60µs. Nếu không 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, và các giao tiếp tiếp theo sẻ không thể diễn ra. Chuẩn I2C I2C là viết tắt của "Inter-Integrated Circuit", một chuẩn giao tiếp được phát minh bởi Philips’ semiconductor division (giờ là NXP) nhằm đơn giản hóa việc trao 6 do an đổi dữ liệu giữaa các ICs. Đôi khi nó cũng được gọii là Two Wire Interface (TWI) vì chỉ sử dụng 2 kết nốii để tiếp I2C gồm: SDA đ truyền tải dữ liệu, 2 kết nối củaa giao ti (Serial Data Line) và SCL (Serial Clock Line).
thi bị sử dụng giao tiếp I2C, chẳng hạnn như real Có hàng ngàn thiết real-time clocks, digital potentiometers, temperature sensors, digital compasses, memory chips, FM radio circuits, I/O expanders, LCD controllers, amplifiers,.Board Arduino ccủa chúng ta có thể kiểm m soát tất t cả và số lượng tối đa trong mộtt th thời điểm lên đến 112 2 thiết bị I C. KIT ARDUINO MEGA 2560 256 2. Sơ lược về Arduino Arduino thựcực sự đã đ gây sóng gió trên thị trường người ời ddùng DIY trên toàn thế giới trong vài ài năm gần g đây, gần giống với những gìì Apple đã làm được trên thị trường ờng thiết bị di động, số lượng l người dùng cực lớn và đa dạng ạng với tr trình độ trải rộng ộng từ bậc phổ thông lên l đến đại học đã làm cho ngay cảả những ng người tạo ra chúng phải ngạc nhiên vềề mức độ phổ biến. Hình 2-3: Một số Kit Arduino phổ biến hiệnn nay Arduino là một ột board mạch vi xử lý, nhằm ằm xây dựng các ứng dụng ttương tác với ới nhau hoặc với môi trường tr được thuận lợi hơn.
Phần ần cứng bao gồm một board mạch nguồn mở đượcợc thiết kế trên tr nền ền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit. Mô tả [13]: 7 do an Arduino Mega 2560 R3 là phiên bản nâng cấp của Arduino Uno R3 với số chân giao tiếp, ngoại vi và bộ nhớ nhiều hơn, mạch được thiết kế và sử dụng các linh kiện tương đương với phiên bản chính hãng trên Arduino.cc, phù hợp cho các ứng dụng cần nhiều bộ nhớ hoặc nhiều chân, cổng giao tiếp hơn so với Arduino Uno. Lưu ý : • 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: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc tròn DC (khuyên dùng 6~9VDC để đảm bảo mạch hoạt động tốt, nếu cắm 12VDC thì IC ổn áp rất dễ chết và gây hư hỏng mạch). • Số chân Digital: 54 (15 chân PWM) • Số chân Analog: 16 • 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 • Giao tiếp I2C: 1 bộ • Ngắt ngoài: 6 chân • Bộ nhớ Flash: 256 KB, 8KB sử dụng cho Bootloader • SRAM: 8 KB • EEPROM: 4 KB • Xung clock: 16 MHz 8 do an 2.