1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) thiết kế hệ thống quan trắc nước

84 7 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế hệ thống quan trắc nước
Tác giả Nguyễn Thanh Cường, Biện Quốc Thành
Người hướng dẫn ThS. Nguyễn Ngô Lâm
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công nghệ kỹ thuật điện tử - truyền thông
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2017
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 84
Dung lượng 5,87 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hệ thống giám sát dữ liệu môi trường nước có các chức năng như thu thập nhiệt độ nước, mực nước, độ pH, để người dùng có thể theo dõi liên tục môi trường nước, có thể áp dụng vào nuôi tr

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

NGÀNH CNKT ĐIỆN TỬ TRUYỀN THÔNG

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI:

THIẾT KẾ HỆ THỐNG QUAN TRẮC NƯỚC

GVHD : ThS NGUYỄN NGÔ LÂM SVTH : NGUYỄN THANH CƯỜNG MSSV : 13141023

SVTH : BIỆN QUỐC THÀNH MSSV : 13141308

Khoá : 2013-2017

S K L 0 0 4 9 8 0

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬTTHÀNH PHỐ HỒ CHÍ MINH

KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG QUAN TRẮC NƯỚC

SVTH: NGUYỄN THANH CƯỜNG

BIỆN QUỐC THÀNH MSSV:13141023

13141308 Khoá : 2013

Ngành: Công nghệ kĩ thuật điện tử - truyền thông

GVHD: ThS NGUYỄN NGÔ LÂM

Trang 3

Tp Hồ Chí Minh, ngày 5 tháng 7 năm 2017

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ và tên sinh viên: Nguyễn Thanh Cường MSSV: 13141023

Giảng viên hướng dẫn: ThS Nguyễn Ngô Lâm ĐT: 01267828599

Ngày nhâ ̣n đề tài: 22/2/2017 Ngày nộp đề tài: 11/7/2017

1 Tên đề tài : Thiết kế hệ thống quan trắc nước

2 Các số liệu, tài liệu ban đầu: Đồ án môn học 2

3 Nội dung thực hiê ̣n đề tài : Thiết kế và xây dựng hệ thống quan trắc nước Giám sát các thông số của hệ thống và điều khiển hoạt động của hệ thống quaWeb Server và mạng di động

4 Sản phẩm: Mô hình hệ thống quan trắc nước được giám sát và điều khiển qua mạng Internet và mạng di động

GIẢNG VIÊN HƯỚNG DẪN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ***

Trang 4

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên Sinh viên: Nguyễn Thanh Cường MSSV: 13141023

Ngành: Điện tử viễn thông

Tên đề tài: Thiết kế hệ thống quan trắc nước

Họ và tên Giáo viên hướng dẫn: ThS Nguyễn Ngô Lâm

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:……….(Bằng chữ: )

Tp Hồ Chí Minh, ngày tháng năm 2017 Giáo viên hướng dẫn CỘNG HÒA XÃ HỘI CHỦNGHĨAVIỆTNAM Độc lập – Tự do – Hạnh phúc

Trang 5

*** PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên: Nguyễn Thanh Cường MSSV: 13141023

Biện Quốc Thành MSSV: 13141308

Ngành: Điện tử viễn thông

Tên đề tài: Thiết kế hệ thống quan trắc nước

Họ và tên Giáo viên phản biện:

NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:……….(Bằng chữ: )

Tp Hồ Chí Minh, ngày tháng năm 2017 Giáo viên phản biện CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc

Trang 6

*** LỜI CẢM ƠN

Nhóm thực hiện xin chân thành gửi lời cảm ơn đến Thầy Nguyễn Ngô Lâm –

Giảng viên Bộ môn Điện tử Viễn Thông đã trực tiếp hướng dẫn và tận tình giúp

đỡ, tạo điều kiện để nhóm thực hiện hoàn thành tốt đề tài

Bên cạnh đó, nhóm thực hiện cũng xin chân thành cảm ơn đến các quý Thầy

Cô trong trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh và khoa

Điện – Điện tử đã truyền đạt những kiến thức quý báu, tạo dựng nền móng đầu tiên

cho nhóm thực hiện có cơ sở cũng như nền tảng kiến thức cần thiết để nhóm em

hoàn thành tốt đề tài Đồ Án Tốt Nghiệp cũng như định hướng nghề nghiệp tương

lai sau này

Nhóm thực hiện cũng xin chân thành gửi lời cảm ơn đến quý phụ huynh đã

luôn hỗ trợ về tinh thần và vật chất

Xin chân thành cảm ơn!

NHÓM SINH VIÊN THỰC HIỆN ĐỀ TÀI

Trang 7

LỜI NÓI ĐẦU

Hiện tượng nóng lên của Trái Đất đang là một vấn đề đầy thử thách cho toàn thế giới, hệ quả kéo theo là làm cho môi trường nước bị ô nhiễm, lũ lụt xảy ra thường xuyên đó đang là mối lo ngại cho người dân, lẫn cả cơ quan chức năng và nhà khoa học Ô nhiễm nước là vấn đề quan trọng hàng đầu,đã và đang gây ra hậu quả nặng nề trên các tỉnh Việt Nam, đặc biệt các tỉnh chuyên về nông ngiệp, nuôi trồng thủy sản, nên cần có những thiết bị theo dõi thông số môi trường nước để đưa

ra các quyết định về việc nuôi trồng hoặc tưới tiêu Hệ thống giám sát dữ liệu môi trường nước có các chức năng như thu thập nhiệt độ nước, mực nước, độ pH, để người dùng có thể theo dõi liên tục môi trường nước, có thể áp dụng vào nuôi trồng thủy sản

Hệ thống hướng đến môi trường nước ngọt đưa ra cảnh báo kịp thời thông qua tin nhắn và thông qua mạng, người dùng sẽ tra cứu thông số môi trường thông qua mạng để kịp thời xử lý

Thông số sẽ được lưu trữ lại để người dùng tham khảo và có biện pháp theo dõi lâu dài nhằm đưa ra phương án xử lý thích hợp

Trang 8

MỤC LỤC

Trang 9

2.1.4 Cấu trúc của Arduino Mega 2560 R3 7

Trang 11

3.2.9 Khối Web Server 46

Chương 4

PHỤ LỤC: HƯỚNG DẪN ĐIỀU KHIỂN - THIẾT LẬP 64

Trang 12

DANH MỤC CÁC TỪ VIẾT TẮT

ADC Analog Digital Converter Chuyển đổi tín hiệu tương

tự sang tín hiệu số

HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu

thông nối tiếp

Receiver – Transmitter

Truyền dữ liệu nối tiếp bất đồng bộ

Trang 13

Bảng 2.5: Giá trị pH của một số dung dịch 33

Bảng 2.6: Giá trị pH dựa vào điện áp 36

Bảng 3.1: Dòng và áp của các linh kiện sử dụng trong đề tài 47

Trang 14

DANH MỤC CÁC HÌNH ẢNH

Hình 2.1: Những thành viên khởi xướng Arduino 4

Hình 2.2: Một số kit Arduino phổ biến hiện nay 6

Hình 2.3: Ảnh thực tế Arduino Mega 2560 R3 6

Hình 2.4: Sơ đồ cấu trúc chân của Arduino Mega 2560 R3 8

Hình 2.5: Giao diện Arduino IDE 10

Hình 2.6: Hình dạng và sơ đồ chân kết nối Raspberry Pi 11

Hình 2.7: Cấu tạo của Raspberry Pi 12

Hình 2.8: Sơ đồ kết nối trong truyền 1-Wire 13

Hình 2.9: Sơ đồ chân cổng kết nối DB-9 RS232 14

Hình 2.10: Sơ đồ kết nối giao tiếp DB-9 RS232 15

Hình 2.12: Dạng sóng các tín hiệu khi thực hiện ghi dữ liệu vào LCD 20

Hình 2.13: Module I2C giao tiếp LCD 21

Hình 2.14: Ảnh thực tế DS18B20 21

Hình 2.15: Sơ đồ khối DS18B20 22

Hình 2.16: Cấu trúc 2 thanh ghi lưu nhiệt độ của cảm biến DS18B20 23

Hình 2.17: Tổ chức bộ nhớ ROM của cảm biến DS18B20 24

Hình 2.18: Byte thanh ghi điều khiển của cảm biến DS18B20 25

Hình 2.19: Sơ đồ cấp nguồn cho cảm biến DS18B20 26

Hình 2.20: Các ngưỡng âm thanh trong tự nhiên 26

Hình 2.21: Ảnh thực tế SRF04 27

Hình 2.22: Nguyên lý hoạt động của SRF04 28

Hình 2.23: Module GSM/GPRS SIM800A 29

Trang 15

Hình 2.24: Ảnh thực tế của Relay 31

Hình 2.26: Cấu tạo điện cực pH thủy tinh 34

Hình 2.28: Cảm biến pH DFRobot 36

Hình 3.1: Sơ đồ khối hệ thống 38

Hình 3.2:Kết nối cảm biến DS18B20 với bộ xử lý trung tâm 40

Hình 3.3: Kết nối cảm biến SRF04 với bộ xử lý trung tâm 40

Hình 3.4: Kết nối cảm biến pH với bộ xử lý trung tâm 41

Hình 3.5: Kết nối cảm biến SIM800A với bộ xử lý trung tâm 41

Hình 3.6: Kết nối LCD và Module I2C với bộ xử lý trung tâm 42

Hình 3.7: Kết nối Relay với bộ xử lý trung tâm và động cơ bơm 42

Hình 3.8: Sơ đồ nguyên lý toàn mạch 45

Hình 3.9:Sơ đồ mạch chuyển đổi điện áp 46

Hình 3.10: Lưu đồ giải thuật của bộ xử lý trung tâm 48

Hình 3.11: Lưu đồ giải thuật đọc giá trị cảm biến 49

Hình 3.12: Lưu đồ điều khiển động cơ bơm 50

Hình 3.13: Lưu đồ giải thuật giao tiếp với mạng di động 51

Hình 3.14: Lưu đồ giải thuật giao tiếp với Web Server 52

Hình 3.15: Lưu đồ chương trình chính ở Raspberry Pi 53

Hình 4.1: Sản phẩm hoàn chỉnh 56

Hình 4.2: LCD hiển thị giá trị cảm biến, giới hạn, trạng thái motor 56

Hình 4.3: Giao diện trang chính 57

Trang 16

Hình 4.5: Đồ thị biến động nhiệt độ 58

Hình 4.6: Đồ thị biến động đô pH 59

Hình 4.7: Đồ thị biến động mực nước 59

Hình 4.8: Trang đăng nhập để cài đặt giới hạn 60

Hình 4.9: Trang cài đặt giới hạn cảm biến 60

Hình 4.10: Giao tiếp qua mạng di động 61

Hình 6.1: Giao diện Python 2.7 64

Hình 6.2: Giao diện khi mở file 65

Hình 6.3: Giao diện chính của Web Server 66

Hình 6.4: Giao diện trang đăng nhập 66

Hình 6.5: Giao diện trang cài đặt giới hạn 67

Hình 6.6: Tin nhắn nhận được từ hệ thống gửi đến 67

Trang 17

ra các quyết định về việc nuôi trồng hoặc tưới tiêu Hệ thống giám sát dữ liệu môi trường nước có các chức năng như thu thập nhiệt độ nước, mực nước, độ pH, để người dùng có thể theo dõi liên tục môi trường nước, có thể áp dụng vào nuôi trồng thủy sản

Hệ thống hướng đến môi trường nước ngọt đưa ra cảnh báo kịp thời thông qua tin nhắn và thông qua mạng, người dùng sẽ tra cứu thông số môi trường thông qua mạng để kịp thời xử lý

Thông số sẽ được lưu trữ lại để người dùng tham khảo và có biện pháp theo dõi lâu dài nhằm đưa ra phương án xử lý thích hợp

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 tiếp tục xuống nhanh và thấp nhất trong vòng 90 năm qua Do thiếu nước ngọt, mặn xuất hiện sớm hơn 2 tháng so với cùng kỳ đã xâm nhập sâu vào vùng ĐBSCL Hiện, trên các hệ thống sông chính ở miền Tây, mặn xâm nhập sâu từ 40-

93 km, tăng 10-15 km so với các năm trước

Tỉnh Vĩnh Long nằm rất xa biển nhưng lần đầu đã bị nước mặn tấn công Còn Hậu Giang hơn 40 ha lúa bị thiệt hại nặng Theo Phó chủ tịch tỉnh Kiên Giang, Mai Anh Nhịn thì hiện tại các sông lớn đã bị mặn xâm nhập sâu từ 3 đến 4km Hiện

Trang 18

tỉnh này có đến 34.000ha lúa bị thiệt hại và chưa dừng lại, đời sống sản xuất của người dân bị ảnh hưởng nghiêm trọng Ở Cà Mau diện tích lúa bị thiệt hại trên 18.000ha, chiếm 56% 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ế

1.2 MỤC TIÊU ĐỀ TÀI

Thiết kế và thi công mô hình quan trắc nước, đồng thời gửi các thông số qua mạng Internet và mạng di động để nâng cao khả năng giám sát và kịp thời xử lý Có thể cài đặt giới hạn đo từ Internet và báo động qua mạng di động khi dữ liệu đo vượt ngưỡng

1.3 ĐỐ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, gửi dữ liệu đo được qua mạng Internet và mạng di động, cách thức lập trình Arduino và nhúng chương trình vào Kit Raspberry Pi Còn về phần cứng là các cảm biến, các module,… và Kit Raspberry Pi

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

1.4 PHƯƠNG PHÁP NGHIÊN CỨU

Tìm hiểu lý thuyết về quan trắc nước, hoạt động của các cảm biến, truyền dữ liệu đến Kit Raspberry Pi Cách đưa dữ liệu vào cơ sở dữ liệu dùng ngôn ngữ Python và SQL, hiển thị dữ liệu bằng ngôn ngữ PHP

Thiết kế và xây dựng mô hình quan trắc nước

Trang 19

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ế

Trang 20

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1.KIT ARDUINOMEGA 2560

2.1.1 Sơ lược về Arduino

Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động, số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến

Hình 2.1: Những thành viên khởi xướng Arduino

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit

Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích

Trang 21

hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++.

Với Arduino bạn có thể ứng dụng vào những mạch đơn giản như mạch cảm biến ánh sáng bật tắt đèn, mạch điều khiển động cơ,… hoặc cao hơn nữa bạn có thể làm những sản phẩm như: máy in 3D, Robot, khinh khí cầu, máy bay không người lái…

Một hệ thống Arduino có thể cung cấp rất nhiều sự tương tác với môi trường xung quanh với:

 Hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc, vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động, phát hiện kim loại, khí độc,…),…

 Các thiết bị hiển thị (màn hình LCD, đèn LED,…)

 Các module chức năng (shield) hỗ trợ kêt nối có dây với các thiết bị khác hoặc các kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,…), …

 Định vị GPS, nhắn tin SMS,…

Một số kit Arduino phổ biến hiện nay như : Mega 2560 R3, Uno R3, Due, Leonardo, Nano… Tùy theo nhu cầu sử dụng mà người dùng lựa chọn loại kit phù hợp

Trang 22

Hình 2.2:Một số Kit Arduino phổ biến hiện nay

2.1.2.Tổng quan về Kit Arduino Mega 2560 R3

Arduino Mega 2560 R3 là phiên bản nâng cấp của Arduino Mega 1280, dễ dàng sử dụng, được hỗ trợ với muôn vàng ứng dụng mở và được chia sẻ rộng rãi, Arduino Mega 2560 R3cùng với các loại Kit Arduino khác trở nên phổ biến trên thị trường người dùng DIY

Hình2.3: Ảnh thực tế của Arduinno Mega 2560 R3

Với việc sử dụng dòng vi xử lí Atmega2560 cho phéplập trình các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh với các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả năng xuất

Trang 23

tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C)

2.1.3.Thông số kĩ thuật của Arduino Mega 2560 R3

 Vi điều khiển : ATmega 2560

 Điện áp hoạt động : 5V

 Nguồn ngoài (giắc tròn DC) 7-12V

 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 đến chân 53)

 Giao tiếp I2C: 1 bộ

Trang 24

Hình 2.4: Sơ đồ cấu trúc chân của Arduino Mega 2560 R3

Cấu tạo chân Arduino Mega 2560 R3 có:

 54 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức diện áp là 0V và 5V với dòng vào ra tối đatrên mỗi chân là 40mẠ, ở mỗi chân đều có điện trở pull-up từ được cài đặt ngay trong vi điều khiển Atmega2560

 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 (~): 2 → 13 và 44, 45, 46: cho phép xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, ta có thể điều chỉnh được điện áp ra ở

Trang 25

chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác

 Chân giao tiếp SPI: 50 (MISO), 51 (SCK), 52 (MISO), 53 (SS) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

 Arduino Mega 2560 R3 có 16 chân analog (A0 → A15) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, tacó thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu cấp điện áp 2.5V vào chân này thì ta có thể dùng các chân Analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải là 10bit Đặc biệt, 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

Bộ nhớ của Arduino Mega 2560 R3 gồm:

 256 KB bộ nhớ Flash: Đây là nơi lưu trữ những đoạn lệnh lập trình Những ứng dụng thông thường thì sẽ để ra vài KB trong số này cho bootloader

 8 KB cho SRAM (Static Random Access Memory): Đây là nơi lưu những giá trị các biến khai báo khi lập trình Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Dữ liệu trên SRAM sẽ bị mất khi mất điện

 4 KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): Đây được coi là chiếc mini USB, nơi có thể đọc và ghi dữ liệu

Trang 26

mà không phải lo bị mất khi mất điện Với những ứng dụng lớn, nên quan tâm đến dung lượng của bộ nhớ này để phân bố cho hiệu quả

2.1.5 Phương thức lập trình cho Arduino Mega 2560 R3

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung Và Wiring lại là một biến thể của C/C++ Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu

Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE (Intergrated Development Environment) như hình dưới đây

Hình 2.5: Giao diện Arduino IDE

Trang 27

Hình 2.6:Hình dạng và sơ đồ chân kết nối của Raspberry Pi

Raspberry Pi có mức giá hấp dẫn: 35$ cho một chiếc bo mạch có thể làm được hầu như mọi ứng dụng hằng ngày như lướt web, học lập trình, xem phim HD đến những ý tưởng không ngờ đến như điều khiển robot, nhà thông minh…

Raspberry Pi chạy hệ điều hành Linux: 99% những thứ làm trên máy tính Windows đều có thể thực hiện được trên Linux và quan trọng là: tất cả đều miễn phí

Trang 28

Raspberry Pi có 8 ngõ GPIO: có thể kết nối và điều khiển các thiết bị trong cuộc sống thực tế như đèn, động cơ, GPS… Rất nhiều ứng dụng nhà thông minh đã

sử dụng Raspberry Pi làm bộ điều khiển trung tâm

Raspberry Pi có kích thước tí hon: chỉ tương đương một chiếc thẻ ATM và nặng khoảng 50 gram Gắn với chiếc tivi, Raspberry có thể biến thành một thiết bị giải trí thông minh trong phòng khách.Gắn với màn hình và bàn phím, chuột, Raspberry có thể biến thành một chiếc máy tính đúng nghĩa.Nhỏ gọn và tiện lợi

Cộng đồng Raspberry Pi phát triển rất nhanh trên thế giới: hầu hết những thắc mắc của người dùng đều được giải đáp rất nhanh và còn hơn thế nữa: người dùng có thể tìm thấy hàng ngàn dự án đã thực hiện và vô số ý tưởng độc đáo

Với nhưng ưu điểm độc đáo trên, Raspberry Pi đã vượt ra khỏi biên giới của trường học và trở thành thiết bị ưa thích của rất nhiều người đam mê điện tử và lập trình Sự thành công của nó đã mở ra một bước phát triển mới cho tin học: đem máy tính và cảm hứng lập trình đến gần mọi người hơn bao giờ hết

Hình 2.7: Cấu tạo của Raspberry Pi

Trang 29

2.3 CÁC CHUẨN TRUYỀN SỬ DỤNG TRONG ĐỀ TÀI

2.3.1 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

Hình 2.8: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

Trang 30

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

2.3.2 RS232[3]

2.3.2.1 Giới thiệu

Chuẩn giao tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi hiện nay để nối ghép các thiết bị ngoại vi với máy tính Nó là một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là hai thiết bị, chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 15m, tốc độ 20kbit/s (Ngày nay có thể cao hơn)

Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps, 9600 bps và 19200 bps.[3]

Sơ đồ chân cổng kết nối DB-9:

Hình2.9: Sơ đồ chân cổng kết nối DB-9 RS232

Trang 31

Hình2.10:Sơ đồ kết nối giao tiếp DB-9 RS232

2.3.2.2 Các mức điện áp của đường truyền

Mức điện áp của tiêu chuẩn RS232 ( chuẩn thường được dùng bây giờ) được

mô tả như sau:

 Mức logic 0: +3V -> +12V

 Mức logic 1: -12V -> 3V

Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến Chính vì từ 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý Điều này dẫn tới việc phải hạn chế

về điện dung của các thiết bị tham gia và của cả đường truyền Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn.Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19.2kbit/s

2.3.3 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 đổi dữ liệu giữa các ICs Đôi khi nó cũng được gọi là Two Wire Interface (TWI) vì chỉ sử dụng 2 kết nối để truyền tải dữ liệu, 2 kết nối của giao tiếp I2C gồm: SDA (Serial Data Line) và SCL (Serial Clock Line)

Trang 32

Có hàng ngàn thiết bị sử dụng giao tiếp I2C, chẳng hạn như real-time clocks, digital potentiometers, temperature sensors, digital compasses, memory chips, FM radio circuits, I/O expanders, LCD controllers, amplifiers, Board Arduino của chúng ta có thể kiểm soát tất cả và số lượng tối đa trong một thời điểm lên đến 112 thiết bị I2C

2.4 LCD HIỂN THỊ[1]

2.4.1 Giới thiệu về LCD

LCD có rất nhiều dạng phân biệt theo kích thước từ vài ký tự đến hàng chục

ký tự, từ 1 hàng đến vài chục hàng LCD 20x4 có nghĩa là có 4 hàng, mỗi hàng có

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: 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ở

Trang 33

Các chân điều khiển: chân số 4 là chân RS dùng để điều khiển lựa

chọn thanh ghi Chân R/W dùng để điều khiển quá trình đọc và ghi Chân E 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

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.1: Các chân và chức năng chân của LCD

Trang 34

2.4.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ị

Bảng 2.2: 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

Trang 35

Lệnh di chuyển con trỏ về đầu màn hình "Cursor Home": khi thực hiện

lệnh này thì bộ đếm địa chỉ được xóa về 0, phần hiển thị trở về vị trí gốc đã bị dịch trước đó Nội dung 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": lệnh này dùng để thiết lập lối vào

cho các ký tự hiển thị, bit ID = 1 thì con trỏ tự động tăng lên 1 mỗi khi có 1 byte dữ liệu ghi vào bộ hiển thị, khi ID = 0 thì con trỏ sẽ không tăng, dữ liệu mới sẽ ghi đè lên dữ liệu cũ Bit S = 1 thì 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": lệnh này dùng để

điều khiển con trỏ (cho hiển thị thì bit D = 1, tắt hiển thị thì bit D = 0), tắt mở con trỏ (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": lệnh này dùng để điều

khiển di chuyển con trỏ hiển thị dịch chuyển (SC = 1 cho phép dịch chuyển, SC = 0 thì không cho phép), hướng dịch chuyển (RL = 1 thì dịch phải, RL = 0 thì dịch trái) Nội dung bộ nhớ DDRAM vẫn không đổi

Lệnh thiết lập địa chỉ cho bộ nhớ RAM phát ký tự "Set CGRAM Addr": lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM phát ký tự

Lệnh thiết lập địa chỉ cho bộ nhớ RAM hiển thị "Set DDRAM Addr":

lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM lưu trữ các dữ liệu hiển thị

Hai lệnh cuối cùng là lệnh đọc và lệnh ghi dữ liệu LCD

Dạng sóng các tín hiệu khi thực hiện ghi dữ liệu vào LCD như hình sau:

Trang 36

Hình 2.12: 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 hiệu RS

 Điều khiển tín hiệu R/W xuống mức thấp

 Điều khiển tín hiệu E lên mức cao để cho phép

 Xuất dữ liệu D7†D0

 Điều khiển tín hiệu E về mức thấp

 Điều khiển tín hiệu R/W lên mức cao trở lại

2.4.4 Module IC2 giao tiếp với LCD

Để sử dụng LCD cần có ít nhất 6 chân của MCU kết nối với các chân RS,

EN, D7, D6, D5 và D4 Tuy nhiên với module chuyển giao tiếp LCD sang I2C, ta 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_I2C để có thể dễ dàng giao tiếp với LCD

Trang 37

Hình 2.13: Module I2C giao tiếp với LCD

2.5.1 Đặc tính kỹ thuật

Hình 2.14:Ảnh thực tế DS18B20

- Chỉ sử dụng một dây giao tiếp

- Mỗi cảm biến đều có mã 64bit lưu trong bộ nhớ ROM

- Có thể cấp nguồn từ đường tín hiệu, điện áp từ 3V-5.5V

- Tầm đo từ -55ºC đến +125ºC (-67ºF đến +257ºF)

- Sai số 0.5ºC cho tầm đo từ -10ºC đến +85ºC

- Có thể chọn độ phân giải bằng phần mềm từ 9 đến 12 bit

- Thời gian chuyển đổi lớn nhất cho 12bit là 750ms

Trang 38

2.5.2 Sơ đồ khối của cảm biến DS18B20

Cảm biến DS18B20 có sơ đồ khối như hình

Hình 2.15: Sơ đồ khối DS18B20

Các khối bao gồm:

 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 ngoài

 Khối bộ nhớ ROM 64 bit và port 1 dây

 Khối điều khiển bộ nhớ

 Khối scratchpad liên kết với các khối cảm biến nhiệt độ, khối lưu nhiệt độ byte cao 𝑇𝐻 và byte thấp 𝑇𝐿 để báo động quá nhiệt, khối thanh ghi định cấu hình và bộ kiểm tra mã dùng chuẩn CRC

Bộ nhớ ROM lưu trữ mã 64 bit duy nhất của cảm biến Vùng nhớ scratchpad

có 2 byte thanh ghi dùng để lưu trữ dữ liệu số là nhiệt độ từ cảm biến Ngoài ra còn

có 2 thanh ghi lưu nhiệt độ ngưỡng dưới và ngưỡng trên để so sánh với nhiệt độ đo

và cảnh báo khi vượt quá giới hạn cài đặt, tên 2 thanh ghi là 𝑇𝐿 và 𝑇𝐻

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ố là 9, 10, 11 hoặc 12 bit Giá trị thanh ghi định cấu hình và 𝑇𝐻, 𝑇𝐿 còn được lưu vào bộ nhớ không bay hơi (EEPROM) nên dữ liệu vẫn còn khi mất điện

Trang 39

2.5.3 Hoạt động của cảm biến DS18B20

Chức năng chính của DS18B20 là cảm biến nhiệt độ chuyển đổi trực tiếp sang dữ liệu số Độ phân giải của cảm biến có thể định cấu hình là 9, 10, 11 hoặc 12 bit tương ứng với hệ số chuyển đổi theo thứ tự là 0,5ºC, 0,25ºC, 0,125ºC và 0,0625ºC Độ phân giải mặc nhiên khi cấp điện là 12bit

Khi cấp điện thì cảm biến DS18B20 ở trạng thái nghỉ để giảm công suất tiêu thụ Để bắt đầu quátrình chuyển đổi tương tự sang số của nhiệt độ đo thì thiết bị chủ phải cấp phát lệnh chuyển đổi (Convert_T có mã là 44H) Sau khi chuyển đổi xong thì dữ liệu nhiệt độ lưu vào 2 thanh ghi nhiệt độ trong vùng nhớ scratchpad và cảm biến trở lại trạng thái nghỉ

Nếu cảm biến cấp nguồn bên ngoài thì thiết bị chủ có thể phát các khe thời gian đọc sau khi cấp phát lệnh chuyển đổi nhiệt độ (Convert_T) để kiểm tra cảm biến chuyển đổi xong chưa: nếu cảm biến đáp ứng 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 độ thuộc theo hệ số Celsius, nếu muốn theo hệ số Fahrenheit thì phải thực hiện chuyển đổi Dữ liệu nhiệt độ lưu trữ ở dạng số bù 2 số có dấu 16 bit trong thanh ghi như hình sau:

Hình 2.16: Cấu trúc 2 thanh ghi lưu nhiệt độ của cảm biến DS18B20

Các bit dấu (S) có giá trị là 0 nếu là số dương và bằng 1 nếu là số âm

Nếu cảm biến cấu hình ở độ phân giải 12 bit thì tất cả các bit trong thanh ghi

Trang 40

Nếu cảm biến cấu hình ở độ phân giải 11 bit thì bỏ bit thứ 0 (BIT 0)

Nếu cảm biến cấu hình ở độ phân giải 10 bit thì bỏ 2 bit thứ 1 và 0 (BIT 1, 0)

Nếu cảm biến cấu hình ở độ phân giải 9 bit thì bỏ 3 bit thứ 2, 1 và 0 (BIT 2,

1, 0)

2.5.4 Bộ nhớ ROM của DS18B20

Bộ nhớ ROM của cảm biến DS18B20 có tổ chức như hình sau:

Hình2.17:Tổ chức bộ nhớ ROM của cảm biến DS18B20

Bộ nhớ của cảm biến DS18b20 bao gồm bộ nhớ SRAM scratchpad và bộ nhớ EEPROM có thể xemlà các thanh ghi dùng để lưu trữ giá trị nhiệt độ để so sánh báo động quá nhiệt – hai thanh ghi có tên là TH và TL, một thanh ghi định cấu hình.Nếu chức năng lưu nhiệt độ báo động không được sử dụng thì 2 thanh ghi này

có thể dùng để lưu dữ liệu như các ô nhớ thông dụng

Byte 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

Byte 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

Byte thứ 4 là thanh ghi định cấu hình

Byte thứ 5, 6, 7 phục vụ cho hoạt động bên trong của cảm biến

Byte thứ 8 là byte kiểm tra cho tất cả các byte từ thứ 0 đến 7 của vùng nhớ này

Ngày đăng: 02/02/2023, 09:26

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG