PHẦN 2 : TỔNG QUAN NGHIÊN CỨU- Đề tài vận dụng kiến thức các môn học : Vi xử lý trong điều khiển Kỹ thuật lập trình trong điều khiển bluetooth để thay đổi thông số nhiệt độ, độ ẩm - Th
Trang 1BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
-o0o -ĐỒ ÁN MÔN HỌC VI XỬ LÝ TRONG ĐIỀU KHIỂN
Đề tài : “Thiết kế hệ thống đo và điều khiển nhiệt độ, độ ẩm bằng
module Bluetooth thông qua KIT Arduino”
Giảng viên hướng dẫn : Th.S Lại Văn Song
Sinh viên thực hiện : Lê Thế Liêm MSV : 573116
Trần Trung Hiếu MSV : 576180
Nguyễn Huy Toàn MSV : 576233
Đỗ Hồng Quân MSV : 573128
Trần Văn Linh MSV : 576118
Trang 2I ĐỊNH HƯỚNG NGHIÊN CỨU KHOA HỌC
1.1 Mục đích:
Giúp sinh viên củng cố lý thuyết môn học Vi xử lý trong điều khiển Hiểuthêm về cấu trúc của các dòng vi điều khiển nói chung và họ 8051 nói riêng.Biết về cách lập trình cho vi điều khiển và thực hiện được một số bài toánđiều khiển cơ bản
Giúp sinh viên có thêm kỹ năng giải quyết một số bài toán điều khiển đơngiản ứng dụng các dòng vi điều khiển Có khả năng phân tích bài toán điềukhiển để tìm biện pháp giải quyết vấn đề, biết lựa chọn giải pháp hợp lý vàbiết cách chọn lựa thiết bị vật tư sử dụng cho công việc
Thông qua việc thực hiện đồ án môn học, sinh viên sẽ làm quen với cách làmnghiên cứu khoa học và cách triển khai công việc theo nhóm Việc thảo luận
và phân công hợp lý, cụ thể sẽ mang lại hiệu quả tốt nhất cho công việc
Rèn thêm tư duy thực hiện và cách thức trình bày để sinh viên tiếp cận dễdàng hơn đối với các đồ án môn học khác và đặc biệt là đồ án tốt nghiệp saunày khi sinh viên làm Khóa luận tốt nghiệp
lý trong điều khiển, Kỹ thuật lập trình, Vi điều khiển và ứng dụng
Nếu sinh viên không tự chọn được tên và nội dung đồ án, giảng viên sẽ thảo luận và yêu cầu sinh viên/nhóm sinh viên thực hiện theo yêu cầu của giảng
1.4 Hình thức và kết cấu đồ án
Nội dung chính của đồ án được giới hạn trong khoảng từ 30 đến 50 trang (không
kể phần phụ lục), yêu cầu đánh máy vi tính 1 mặt, khổ giấy A4, phông chữ Times New Roman Chi tiết về cách thức trình bày sinh viên xem thêm về Quy định mẫu khóa luận tốt nghiệp của Học viện
Kết cấu quyển đồ án được trình bày theo 5 phần chính:
- Mục lục
- Phần 1: Mở đầu (đặt vấn đề, mục đích)
- Phần 2: Tổng quan nghiên cứu
- Phần 3: Đối tượng, nội dung và phương pháp nghiên cứu
- Phần 4: Kết quả và thảo luận
- Phần 5: Kết luận và kiến nghị
- Phụ lục
Trang 3PHẦN 1 :
MỞ ĐẦU
Như chúng ta biết , nhiệt độ và độ ẩm là những thành phần vật lý rất quan trọng trong cuộc sống con người Việc thay đổi nhiệt độ, độ ẩm ảnh hưởng rất nhiều đến sự sinh trưởng và phát triển của động vật, thực vật và cấu tạo, tính chất vật lý của vật chất Ví dụ, sự thay đổi nhiệt độ của 1 chất khí sẽ làm thay đổi thể tích, áp suất của chất khí trong bình Vì vậy, trong nghiên cứu khoa học, trong công nghiệp và trong đời sống sinh hoạt, thu thập các thông số và điều khiển nhiệt độ
là điều rất cần thiết Trong các lò nhiệt, máy điều hoà, máy lạnh hay cả trong lò viba, điều khiển nhiệt độ là tính chất quyết định cho sản phảm ấy Trong ngành luyện kim, cần phải đạt đến một nhiệt độ nào đó để kim loại nóng chảy, và cũng cần đạt một nhiệt độ nào đó để ủ kim loại nhằm đạt được tốt các đặc tính cơ học như độ bền, độ dẻo, độ chống gỉ sét, Trong ngành thực phẩm, cần duy trì một nhiệt độ nào đó để nướng bánh, để nấu, để bảo quản, Việc thay đổi thất thường nhiệt độ, không chỉ gây hư hại đến chính thiết bị đang hoạt động, còn ảnh hưởng đến quá trình sản xuất, ngay cả trên chính sản phẩm ấy Trong ngành nông nghiệp, nhiệt dộ và độ ẩm ảnh hưởng trực tiếp đến năng xuất và chất lượng sản phẩm Vì vậy việc điều khiển được nhiệt độ và
độ ẩm là hết sức quan trọng Có nhiều phương pháp điều khiển nhiệt độ và độ ẩm khác nhau, mỗiphương pháp đều có ưu nhược điểm khác nhau Trong nội dung đồ án này sẽ cho ta phương phápđiều khiển nhiệt độ và độ ẩm từ xa bằng bluetooth thông qua arduino, thông tin nhiệt độ , độ ẩm hiển thị trên màn hình LCD
Đồ án này thích hợp ứng dụng cho nhà lưới trồng các loại rau, hoa, cây cảnh là thích hợp nhất,
có tính khả thi rất cao
Giải pháp để điều khiển nhiệt độ, độ ẩm là dùng hệ thống quạt và phun sương để thay đổi nhiệt
độ và độ ẩm trong khu vực điều khiển
Trang 4PHẦN 2 : TỔNG QUAN NGHIÊN CỨU
- Đề tài vận dụng kiến thức các môn học :
Vi xử lý trong điều khiển
Kỹ thuật lập trình trong điều khiển
bluetooth để thay đổi thông số nhiệt độ, độ ẩm
- Thời gian thực hiện : 2 tháng
- Địa điểm : tại nhà
Trang 5PHẦN 3 : ĐỐI TƯỢNG, NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN
CỨU3.1 Đối tượng nghiên cứu
Độ án tập trung nghiên cứu về hệ thống đo đạc và điều khiển thông số nhiệt độ, độ ẩm trong nhà kính nhằm điều chỉnh nhiệt độ, độ ẩm tạo môi trường thích hợp cho cây cối, hoa màu phát triển và giảm sự ảnh hưởng của thời tiết xấu
3.2 Nội dung nghiên cứu
Hệ thống điều khiển nhiệt độ, độ ẩm hoạt động dựa trên cảm biến nhiệt độ DTH11 và arduino uno r3, module relay, module bluetooth Nhiệt độ, độ ẩm đo được sẽ hiển thị trênmàn hình LCD đặt trên mô hình để tiện theo dõi và kiểm tra Arduino-uno-r3được lập trình khi nhiệt độ tăng đến một mức nhất định sẽ làm cho quạt tự động quay, làm mát chokhu vực trồng hoa trên mô hình cũng như làm quạt tự động dừng quay khi nhiệt độ giảm xuống dưới mức cho phép
3.3 Phương pháp nghiên cứu
Toàn bộ hệ thống dựa trên ứng dụng của vi điều khiển Vi điều khiển là một máy tính tíchhợp trên 1 chip, thướng sử dụng để điều khiển các thiết bị điện tử Vi điều khiển thực chất gồm một vi xử lý có hiệu suất đủ cao và giá thành thấp (so với các vi xử lý đa năng dùng trong máy tính) kết hợp với các thiết bị ngoại vi như các bộ nhớ, các mô đun vào/ra,các mô đun biến đổi từ số sang tương tự và từ tương tự sang số, mô đun điều chế độ rộng xung (PWM)
Vi điều khiển thường được dùng để xây dựng hệ thống nhúng Nó xuất hiện nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây truyền tự động.Hầu hết các loại vi điều khiển hiện nay có cấu trúc Harvard là loại cấu trúc mà bộ nhớ chương trình và bộ nhớ dữ liệu được phân biệt riêng
Cấu trúc của một vi điều khiển gồm CPU, bộ nhớ chương trình (thường là bộ nhớ ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), các bộ định thời, các cổng vào/ra để giao tiếpvới các thiết bị bên ngoài, tất cả các khối này được tích hợp trên một vi mạch
Trang 6CHƯƠNG 1 : PHÂN TÍCH YÊU CẦU, LỰA CHỌN GIẢI PHÁP VÀ
THIẾT BỊI.1 Phân tích yêu cầu
Yêu cầu của đề tài là đo được thông số nhiệt độ độ ẩm của môi trường, sau đó hiển thị ra màn hình LCD, sử dụng thuật toán cài đặt trong arduino để điều chỉnhnhiệt độ , độ ẩm, sử dụng module bluetooth để điều chỉnh theo ý muốn
I.2 Lựa chọn giải pháp và thiết bị
I.2.1 Lựa chọn giải pháp
Sử dụng module arduino làm trung tâm điều khiển
Module relay để thao tác đóng cắt điều khiển
Dụng màn hình LCD để hiển thị thông tin
Dùng cảm biến DTH11 để đo nhiệt đô, độ ẩm
Module bluetooth để điều khiển từ xa
I.2.2 Lựa chọn thiết bị
I.2.2.1 Mô hình thiết kế
Hình 1.1 Tổng quan mô hình khi hoạt động
Trang 7I.2.2.2 Các thiết bị phần cứng
a Arduino uno r3
Hình 1.2 Arduino uno r3
Trang 8Một vài thông số của Arduino UNO R3
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Điện áp vào khuyên dùng 7-12V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168,
ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy,
xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,…
Năng lượng
Trang 9Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện ápkhuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thì cấp nguồn bằng pin vuông 9V làhợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạntrên, bạn sẽ làm hỏng Arduino UNO.
Các chân năng lượng
ND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các thiết bị
sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của
nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân
này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này
để sử dụng bởi chức năng của nó không phải là cấp nguồn
RESET: việc 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 qua 1 điện trở 10KΩ
Lưu ý
Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy mình khuyên bạn nên dùng nguồn từ cổng USB nếu có thể
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển
ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Trang 10 Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng
vi điều khiển
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng
Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash
của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập
trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây
mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Trang 11Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ
liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kếtnối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cầngiao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn 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, bạn có thể điều chỉnh được điện áp ra ở 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
Trang 12 Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) 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ácthiết bị khác
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset,
bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân nàyđược người dùng sử dụng, LED sẽ sáng
Arduino UNO có 6 chân analog (A0 → A5) 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, bạn có thể để đưa vào
điện áp tham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân nàythì bạn 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ảivẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết
bị khác
b Màn hình LCD 1602 xanh dương 5V
Hình 1.5 mặt trước và sau của màn LCD
Trang 13Hình 1.5: Sơ đồ khối của LCD
-Sơ đồ khối có thể hiểu đơn giản như sau:
Các đường giao tiếp( VDD, VSS, …, DB0-DB7) nhằm kết nối thiết bị điều khiển bên ngoài
và nguồn nuôi với IC trung tâm( LCD Controller LSI) của màn hình, dựa vào dữ liệu được gửiđến( DB0-DB7) IC này sẽ điều khiển màn hiển thị “LCD panel”, “Segment driver” thông quabus COM, bus SEG Ngoài ra, 2 đường giao tiếp BL1(+) và BL2(-) để điều khiển đènnền( Backlight)
-Kích thước
Hình 1.6 Kích thước thực tế của LCD
Màn hình 16x2 với kích thước như sau:
Dài 80,0 ± 0,5 mm, trong đó có 64,5 ± 0,2 mm dành cho panel hiển thị
Rộng: 36,0 ± 0,5 mm, trong đó có 14,0 ± 0,2 mm dành cho phần panel hiển thị
Dày 12,0 mm( chiều dày tối đa).16 chân giao tiếp, tương ứng với đó là 16 lỗ, mỗi lỗ chânrộng 1mm để cắm các kết nối, hoặc hàn luôn cable kết nối vào đó Hai chân liền kề cách nhau
Trang 14“2,54mm” (đúng bằng kích thước và khoảng cách giữa các lỗ trên bìa đục lỗ thường dùng hànmạch).
Trên panel hiển thị có 2 hàng( dòng), mỗi dòng có 16 module hiển thị, chính vì điều này nênthường gọi luôn màn hình này là 16x2 Kích thước mỗi module 5,02x3 mm; các module trên
cùng 1 hàng cách nhau 0,5mm và giữa 2 hàng cách nhau 0,6mm; trên mỗi module có 8x5=40điểm ảnh, kích thước mỗi điểm ảnh 0,54x0,52mm và chúng cách nhau 0,1mm
Chân
số Ký hiệu
Mứclogic
Vào/Ra(I/O) Tính năng
1 VSS - - Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này vớiGND của mạch điều khiển.
2 VDD - - Điện áp nguồn cho LCD, nối với VDD 5V của mạch điềukhiển.
3 V0(VEE) - I Cung cấp điện áp để điều chỉnh độ tương phản
5 R/W 0/1 I Chân chọn chế độ đọc/ghi Nối chân R/W với logic 0 để LCDhoạt động ở chế độ ghi, nối với mức logic 1 để LCD ở chế độ
đọc
Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên busDB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phépcủa chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấpnhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khiphát hiện cạnh lên (low-to-high transition) ở chân E và đượcLCD giữ ở bus đến khi nào chân E xuống mức thấp
Trang 15c Module chuyển đổi I2C cho LCD 1602
Hình 1.7 Module I2C
Môđun LCD I2C cho Arduino dùng để điều khiển hiển thị dữ liệu lên các màn hình 16x2; 16x4; 20x4; thông qua giao tiếp I2C
Ưu điểm khi dùng môđun LCD I2C:
Chỉ cần 2 chân tín hiệu (SDA và SCL) để truyền dữ liệu cần hiển thị từ Arduino tới LCD thay vì
7 chân như khi kết nối trực tiếp LCD với Arduino.Có thể hiển thị đồng thời tới 8 (hoặc hơn) các LCD mà vẫn chỉ cần 2 chân tín hiệu nếu trên
Trang 16Kết nối modun I2C với LCD
Hình 1.8 Cách kết nối với LCD
d Nguồn cấp
Hình 1.9 adapter 5vĐiện áp vào : 100-240 VĐiện áp ra : 5V-1AChiều dài cáp :1mĐầu jack chẩn micro
Trang 17e Cơ cấu chấp hành
Hình 1.10 động cơ chấp hànhĐiện áp vào : 5V
Đường kính trục : 2mm
Độ dài trục : 10mmKích thước :25x28x15mmTốc độ : 12000v/phútDòng tiêu thụ : 0.3 -0.4 A
Có thể thay thế động cơ bằng quạt thông gió, máy phun sương, bơm…
f Module relay 4 kênh 5V-220V-10A
Hình 1.11 module relay