điều chỉnh nhiệt độ độ ẩm trong phòng bằng 1 tới 2 cảm biến nhiệt độ độ ẩm DHT11, sử dụng (12) động cơ mini làm mát và (12) máy bơm mini điều chỉnh độ ẩm trong phòng qua Arduino và hiển thị trên màn hình LCD
Trang 1MỞ ĐẦ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ỗi phươ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 2CHƯƠNG 1: TỔNG QUAN VỀ CẤU TRÚC THIẾT BỊ 4
1 Tìm hiểu thực tế 4
2 Sơ đồ khối 5
3 Yêu cầu về thiết bị đo 6
4 Một số thiết bị đo nhiệt độ - độ ẩm 6
Đồng hồ đo nhiệt độ ẩm độ và đồng hồ điện tử để bàn HTC-1 6
Máy đo nhiệt độ độ ẩm TESTO 606-2 7
CHƯƠNG 2: TÌM HIỂU CÁC THIẾT BỊ VÀ XÂY DỰNG SƠ ĐỒ 9
1 Các thiết bị lắp ráp 9
a) ARDUINO UNO 9
Các chân năng lượng 10
Các cổng vào/ra 12
b) Màn hình LCD 13
c) Modul I2C 16
d) Cảm biến nhiệt độ - độ ẩm DHT11 16
e) Động cơ (máy bơm Mini 6-12V MB385) 20
f) Động Cơ Mini 3-6V V1 ( động cơ làm mát) 21
g) Module điều khiển động cơ L298 21
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM MÔ PHỎNG VÀ LẮP RÁP THIẾT BỊ THỰC 23
1 Thiết kế phần mềm 23
1.1 Sơ đồ thuật toán 23
1.2 Chương trình điều khiển 1 cảm biến với 2 động cơ 23
1.3 Chương trình điều khiển 2 cảm biến với 4 động cơ 26
2 Nhận xét kết quả và kết luận 31
3 Tài liệu tham khảo: 31
Trang 3CHƯƠNG 1: TỔNG QUAN VỀ CẤU TRÚC THIẾT BỊ
1 Tìm hiểu thực tế
Ngày nay,các bộ điều khiển đang có ứng dụng rộng rãi trong các lĩnh vực khoa học kỹthuật và đời sống xã hội, đặc biệt là trong tự động hoá và điềukhiển Giờ đây với nhu cầu chuyên dụng hoá,tối ưu hoá về thời gian không gian giá thành,bảo mật, tính chủ động trong công việc, ngày càng đòi hỏi khắt khe Vì thế mà việc đưa tự động hóa như diễn ra một điều tất yếu
Nhiệt ẩm kế hay còn được gọi với cái tên dễ hiểu hơn là máy đo nhiệt độ độ ẩm Đây là thiết bị có chức năng đo vàtheo dõi nhiệt độ, độ ẩm của không khí và môi trường một cách chính xác nhất
Nhiệt ẩm kế thường được chia thành 2 loại chính là nhiệt
ẩm kế điện tử tự động hiển thị kết quả đo trên màn hìnhđiện tử và nhiệt ẩm kế cơ yêu cầu người dùng phải tự đọccác thông số Ngoài ra, người ta có thể dựa thêm vào một
số các đặc điểm khác như loại cảm biến nhiệt độ (chấtlỏng, cặp kim loại, bán dẫn, hồng ngoại ); vị trí sử dụngthiết bị (cầm tay, treo tường, để bàn) để phân loại chitiết hơn nữa các loại máy đo độ ẩm và nhiệt độ
Môi trường không khí có tác động rất lớn đến sức khỏe, đờisống và các hoạt động sản xuất, xây dựng, nghiên cứu của con người Độ ẩm và nhiệt độ của không khí ở mứcquá cao hay quá thấp đều có thể dẫn đến những ảnhhưởng không tốt cho con người: trước tiên là gây ra cácbệnh như cảm cúm, nhức đầu, sau đó là gây hư hại, hỏnghóc như làm ẩm mốc, chập cháy các đồ dùng, thiết bịtrong gia đình, các loại hàng hóa, nông sản, thực phẩm,máy móc Khi sử dụng nhiệt ẩm kế, con người có thể theodõi được nhiệt độ và độ ẩm của môi trường, từ đó cónhững biện pháp giúp ứng phó khi xảy ra các hiện tượngnhiệt độ, độ ẩm không có lợi cho đời sống và sản xuất để
Trang 4bảo vệ sức khỏe và sử dụng các giải pháp tăng cường chấtlượng không khí (tạo ẩm, hút ẩm, điều hòa nhiệt độ) mộtcách hợp lý nhất Đặc biệt, đối với thời tiết nhiệt đới giómùa mưa nhiều, nóng ẩm và thường xuyên thay đổi tạiViệt Nam, một chiếc máy đo độ ẩm nhiệt độ sẽ vô cùngcần thiết, giúp bạn kịp thời điều chỉnh độ ẩm trong phòng,trong nhà kho để đề phòng các bệnh về đường hô hấpcho các thành viên trong gia đình cũng như đảm bảo cácloại máy móc, thiết bị, hàng hóa không bị hư hại.
Máy đo độ ẩm và nhiệt độ được ứng dụng rộng rãi, đa dạng trong nhiều lĩnh vực đời sống và sản xuất như:
Trong gia đình, trường học, khu mua sắm, tòa nhà:
đo nhiệt độ, độ ẩm trong phòng để kịp thời sử dụng thêm sự hỗ trợ của các loại quạt, điều hòa nhiệt độ, máytạo độ ẩm hoặc máy hút ẩm, giúp bảo vệ sức khỏe cho mọi người
Trong nông nghiệp: đo nhiệt độ, độ ẩm của các loại
nông sản, cà phê, ngũ cốc và của các phòng, nhà kho bảo quản nông sản, phân bón
Trong công nghiệp: đo nhiệt độ, độ ẩm của các loại
vât liệu như gỗ, hạt nhựa, bê tông và của các phòng, nhà kho bảo quản, các trung tâm vận hành máy móc
Trong y tế: đo độ ẩm, nhiệt độ tại các phòng khám,
trung tâm y tế, bệnh viện, các kho dược phẩm
2 Sơ đồ khối
4
LCDBơm 2
Bơm 1L298
Quạt 2
Quạt 1L298
Arduino UNO
Cảm biến
nhiệt độ
DHT!!
Trang 53 Yêu cầu về thiết bị đo
Việc lập trình phải thật chính xác, các linh kiện phải đảm bảo hoạt động tốt Trong quá trình vận hành phải đảm bảo khi nhiệt độ trên 31°C quạt sẽ quay và khi nhiệt độ dưới 27°C quạt sẽ ngừng quay.Khi độ ẩm dưới 82% thì máy bơm sẽhoạt động và khi độ ẩm trên 88% thì máy bơm sẽ ngừng hoạt động
4 Một số thiết bị đo nhiệt độ - độ ẩm
Đồng hồ đo nhiệt độ ẩm độ và đồng hồ điện tử để bàn HTC-1
Trang 6Độ phân giải humadity: 1% RH
Nguồn điện: 1 * Pin AAA 1.5V
Kích thước: 100 * 108 * 20 (mm)
Máy đo nhiệt độ độ ẩm TESTO 606-2
Trang 73) Đo độ ẩm vật liệu xây dựng, gỗ
+ 8,8-54,8% tính theo trọng lượng; sồi, vân sam, gỗ tùng, bạch dương, anh đào, quả óc chó
+ 7,0-47,9% tính theo trọng lượng; gỗ sồi, gỗ thông, phong, tro cây,
+ 0,9-22,1% tính theo trọng lượng; xi măng láng nền, bê tông
+ 0,0-11,0% tính theo trọng lượng; cán nền thạch cao
+ 0,7-8,6% tính theo trọng lượng; vữa xi măng
+ 0,6-9,9% tính theo trọng lượng; vôi vữa, thạch cao
Trang 8+ 0,1-16,5% tính theo trọng lượng; gạch
Độ chính xác: ±1 %
Tốc độ đo: 1 giây
Cấp bảo vệ IP: IP20
Pin: 2 pin AAA, thời lượng 200 giờ
Kích thước: 119 x 46 x 25 mm
Trọng lượng: 90 g
Phụ kiện kèm theo: Máy chính testo 606-2, nắp bảo vệ, túi đựng, pin
CHƯƠNG 2: TÌM HIỂU CÁC THIẾT BỊ VÀ XÂY DỰNG SƠ ĐỒ
1 Các thiết bị lắp ráp
a) ARDUINO UNO
Trang 9Mộ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
Điện áp vào giới hạn 6-20V 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
Trang 10EEPROM 1 KB (ATmega328)
Vi điều khiển
Arduino 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 áp khuyê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ạn trên, bạn sẽ làm hỏng Arduino UNO
Các chân năng lượng
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àyphả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ể
Trang 11 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
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
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
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
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
Trang 12củ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ệutrên SRAM.
Các cổng vào/ra
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có
2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
Mộ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ết nố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ần giao 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
Trang 13 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ác thiế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ày thì 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ải vẫ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
Figure 1: sơ đồ khối màn hình LCD
Trang 14Mà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ân rộ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 “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àn mạ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ên thườ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
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ới GND 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ều
Chân chọn chế độ đọc/ghi Nối chân R/W với logic 0 để LCD hoạt động ở chế độ ghi, nối với mức logic 1 để LCD
ở chế độ đọc.
6 E 0/1 I Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một
Trang 15+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
Trang 16c) Modul 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
d) Cảm biến nhiệt độ - độ ẩm DHT11
Cảm biến DHT11 đã được tích hợp trong một mạch duy nhất, bạn chỉ việc nối dây nguồn (Vcc, GND) và dây tín hiệu (Signal) vào mạch Arduino là xong
Trang 17- Nguyên lý hoạt động:
Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:
o Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại
o Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt
độ đo được
- Bước 1: gửi tín hiệu Start
o MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms Trong Code mình để 25ms Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm
o MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào
o Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà
Trang 18chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.
o Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong 80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với DHT
- Bước 2: đọc giá trị trên DHT11
o DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó:
§ Byte 1: giá trị phần nguyên của độ ẩm (RH%)
§ Byte 2: giá trị phần thập phân của độ ẩm (RH%)
§ Byte 3: giá trị phần nguyên của nhiệt độ (TC)
§ Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
§ Byte 5 : kiểm tra tổng
ð Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt
độ là chính xác, nếu sai thì kết quả đo không có nghĩa