Để từng bước làm chủ và có thể áp dụng họ vi điều khiển này vào các ứng dụng thực tiễn, nhằm giải quyết các bài toán cụ thể trong cuộc sống, trong phạm vi Project II, nhóm chúng em đã th
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO ĐỒ ÁN 2
Đề Tài: Đo nhiệt độ, độ ẩm khí ga
- Yêu cầu Đề Tài: Giao tiếp qua Module Bluetooth HC05 truyền
dữ liệu đo được về điện thoại hoặc PC Báo cho người dùng biết có
sự cố khi có rò rỉ khí độc.
Giáo viên hướng dẫn: Cô Đinh Thị Nhung
Họ và tên:
Nguyễn Vũ Tùng Giang 20101438 ĐTVT-08 K55
Phan Quốc Việt 20102782 ĐTVT-08 K55
Nguyễn Hữu Hiển 20101532 ĐTVT-08 K55
Trang 2LỜI NÓI ĐẦU
Kỹ thuật vi xử lý và điều khiển đã xuất hiện rất nhiều trong mọi lĩnh vực khoa học kỹ thuật hiện nay Với sự phát triển mạnh mẽ của công nghệ, nhiều họ vi xử lý
và điều khiển cùng với những tính năng mới xuất hiện ngày càng đa dạng Trong
đó họ vi điều khiển MSP430 hiện đang được ứng dụng rất rộng rãi trong nhiều lĩnh vực thực tiễn
Để từng bước làm chủ và có thể áp dụng họ vi điều khiển này vào các ứng dụng thực tiễn, nhằm giải quyết các bài toán cụ thể trong cuộc sống, trong phạm vi Project II, nhóm chúng em đã thực hiện đề tài: “Đo và hiển thị nhiệt độ, độ ẩm, của môi trường đồng thời đưa ra cảnh báo khi nồng độ khí gas của môi trường vượt quá giới hạn cho phép” Với ý kiến đóng góp của thầy giáo hướng dẫn cùng tinh thần tự tìm hiểu, nghiên cứu nhóm chúng em đã đưa ra được một sản phẩm chạy thực tế đáp ứng tương đối đầy đủ các yêu cầu được đưa ra trong đề tài.
Trang 3CHƯƠNG I: MÔ TẢ ĐỀ TÀI
1.1 Yêu cầu chức năng
- Đo được nhiệt độ, độ ẩm của môi trường.
- Đo được nồng độ khí gas trong môi trường và đưa ra cảnh báo.
- Hiển thị được giá trị nhiệt độ, độ ẩm của môi trường.
1.2 Yêu cầu phi chức năng
- Mạch hoạt động tốt ngay trong môi trường khắc nghiệt.
- Mạch thiết kế nhỏ gọn để có thể dễ dàng tiến hành lắp đặt.
- Chi phí thực hiện mạch thấp.
1.3 Các công cụ sử dụng
- IAR Embedded Workbench: trình biên dịch soạn thảo code.
- Altium Designer : phần mềm thiết kế mạch nguyên lý, mạch in
Trang 41.4 Sơ đồ khối của hệ thống
Trang 5CHƯƠNG II: THIẾT KẾ PHẦN CỨNG – PHÂN TÍCH ĐẶC ĐIỂM, CHỨC NĂNG CÁC KHỐI TRONG HỆ THỐNG
Dựa vào những yêu cầu chức năng, phi chức năng cùng sơ đồ khối của hệ thống, nhóm chúng em đã đưa ra bản thiết kế sơ đồ nguyên lý mạch như hình
vẽ, trong đó khối điều khiển sử dụng KIT phát triển LaunchPad MSP430, chạy trên MSP430G2553.
Hình 1: Sơ đồ nguyên lý hệ thống
Trang 6Sau đây, nhóm chúng em xin trình bày cụ thể sơ đồ, đặc điểm và chức năng của từng khối trong hệ thống.
2.1 KHỐI ĐIỀU KHIỂN – KIT LAUNCHPAD MSP430
Trong ứng dụng này, nhóm sử dụng vi điều khiển MSP430G2553 chạy trên KIT phát triển LaunchPad MSP430
Hình 2: Kit phát triển LaunchPad MSP
Kit LaunchPad MSP do hãng ST cung cấp, trên Kit bao gồm:
- Khối nguồn sử dụng nguồn DC 5V.
Trang 7- Khối mạch nạp tích hợp sẵn giúp người sử dụng có thể trực tiếp nạp và debug chương trình ngay trên Kit.
- Khối vi điều khiển gồm đế chíp và các jump cắm kết nối với I/O của vi điều khiển giúp người sử dụng có thể cắm bo mở rộng ứng dụng ra bên ngoài.
- Các linh kiện khác như: Led đơn, nút bấm …
Trong phạm vi Project II, nhóm chúng em sử dụng Kit để nạp chương trình và kết nối với các chân I/O của MSP430G2553 ra bo chức năng bên ngoài để giao tiếp với các cảm biến, điều khiển hiển thị, điều khiển cảnh báo.
Trang 92.3 KHỐI CẢNH BÁO
Khối cảnh báo sử dụng còi chíp 5V, khi nồng độ khí gas trong môi trường vượt quá giới hạn cho phép, khối điều khiển sẽ phát tín hiệu điều khiển đến khối cảnh báo và còi chíp sẽ kêu Khi nồng độ khí gas nằm trong giới hạn an toàn, khối điều khiển sẽ phát tín hiệu điều khiển tắt còi chíp.
Hình 4: Khối cảnh báo
Trang 10Trên bo mạch, các jump cắm được thiết kế để dễ dàng kết nối với các cảm biến.
Hình 5: Jump kết nối cảm biến
Trang 11- DATA: Chân dữ liệu để cảm biến giao tiếp với vi điều khiển.
- NC: chân không kết nối.
Trang 12- Sơ đồ kết nối vi xử lý:
Hình 7: Sơ đồ kết nối DHT11 với vi điều khiển
- 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:
Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại.
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.
Trang 13 Bước 1: gửi tín hiệu Start
Hình 8: Tín hiệu START gửi từ vi điều khiển
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
MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào.
Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.
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
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.
Trang 14Nế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.
Đọc dữ liệu: Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và
độ ẩm.
Bit 0:
Bit 1:
Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên
1 Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1
Trang 15Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay 50us Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì giá trị đo được là
1 Cứ như thế ta đọc các bit tiếp theo.
2.4.2 KHỐI CẢM BIẾN KHÍ GAS MQ2
- MQ2 là cảm biến khí, dùng để phát hiện các khí có thể gây cháy Nó được cấu tạo
từ chất bán dẫn SnO2 Chất này có độ nhạy cảm thấp với không khí sạch Nhưng khi trong môi trường có chất ngây cháy, độ dẫn của nó thay đổi ngay Chính nhờ đặc điểm này người ta thêm vào mạch đơn gian để biến đổi từ độ nhạy này sang điện áp.
- Khi môi trường sạch điện áp đầu ra của cảm biến thấp, giá trị điện áp đầu ra càng tăng khi nồng độ khí gây cháy xung quang MQ2 càng cao.
- MQ2 hoạt động rất tốt trong môi trường khí hóa lỏng LPG, H2, và các chất khí gây cháy khác Nó được sử dụng rộng rãi trong công nghiệp và dân dụng do mạch đơn giản và chi phí thấp.
Hình 9: Sơ đồ chân cảm biến MQ2
Trang 16- Trong mạch có 2 chân đầu ra là Aout và Dout Trong đó:
Aout: điện áp ra tương tự Nó chạy từ 0.3 - 4.5V, phụ thuộc vào nồng độ khí xung quanh MQ2.
Trang 17 Dout: điện áp ra số, giá trị 0,1 phụ thuộc vào điện áp tham chiếu và nồng độ khí mà MQ2 đo được.
Việc có chân ra số Dout rất tiện cho các ứng dụng đơn giản, không cần đến
vi điều khiển Khi đó ta chỉ cần chỉnh giá trị biến trở tới giá trị nồng độ ta muốn cảnh báo Khi nồng độ MQ2 đo được thấp hơn mức cho phép thì Dout
= 1 Đèn Led tắt Khi nồng độ khí đo được lớn hơn nồng khí cho phép, Dout
=0, đèn led sáng.
Trong đề tài này, nhóm chúng em sử dụng chân Dout của module để cảnh báo khi
có nồng độ khí gas trong môi trường Chân Dout sẽ được kết nối với 1 đầu in của MSP430G2553, khi tín hiệu đọc về là mức logic 1 thì cho tắt còi chíp, khi tín hiệu đọc về là 0 thì cho còi chíp kêu để cảnh báo.
Sau khi thiết kế sơ đồ nguyên lý, nhóm đã tiến hành đi dây và vẽ mạch in để có thể làm được mạch in bằng tay:
Hình 11: Sơ đồ mạch in của hệ thống
Trang 18CHƯƠNG II: LẬP TRÌNH PHẤN MỀM
Chương trình của hệ thống viết trên trình biên dịch IAR Embedded Workbench, chạy trên vi điều khiển MSP430G2553.
Code gồm các file:
- Main.c:Chứa chương trình chính, nêu rõ thuật toán của đề tài.
- Main.h: Chứa các khai báo thư viện, định nghĩa các chân I/O giao tiếp.
- Các file driver: dht11, lcd16x2,…đây là các file nêu rõ phương thức giao tiếp giữa vi điều khiển với các driver.
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer, Tan so Clock 1MHz
P1DIR = 0xff; // Cau hinh PORT1 là Output
P1OUT = 0x00;
Trang 19P2DIR |= BIT0|BIT1; // Cau hinh PORT2.0, PORT2.1 là Output P2DIR &= ~BIT2; // Cau hinh PORT2.2 là Input P2REN &= ~BIT2; // Cau hinh khong tro treo cho PORT2.2
/* Kieu So Nguyen Co Dau */
typedef signed char int8_t;
typedef signed int int16_t;
typedef signed long int int32_t;
/* Kieu So Nguyen Khong Dau */
Trang 20typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
typedef unsigned long int uint32_t;
// Khai bao cho DHT11 - PORT2
#define DHT_DDR_DATABIT0
#define DHT_DATA_OUTBIT0
#define DHT_DATA_IN BIT0
// Khai bao Speak - PORT2
// Khai bao MQ2 - PORT2
dht_Ok = DHT_GetTemHumi(&dht_nhiet_do,&dht_do_am);
Trang 21#include "main.h"
/******************************************************************************* Noi Dung : MCU gui yeu cau chuyen doi den DHT11.
Tham Bien : Khong.
Tra Ve : Khong.
********************************************************************************/ uint8_t DHT_GetTemHumi (uint8_t *tem,uint8_t *humi)
if(P2IN & DHT_DATA_IN)return DHT_ER ;
else while(!(P2IN & DHT_DATA_IN)); //Doi DaTa len 1
//delay_us(60);
_delay_cycles(60);
if(!(P2IN & DHT_DATA_IN))return DHT_ER;
else while(P2IN & DHT_DATA_IN); //Doi Data ve 0
//Bat dau doc du lieu
Trang 22//Ham Gui 4 Bit Du Lieu Ra LCD
void LCD_Send4Bit( uint8_t Data )
Trang 23void LCD_SendCommand (uint8_t command )
// Ham Khoi Tao LCD
void LCD_Init ( void )
LCD_SendCommand( 0x06 ); // tang ID, khong dich khung hinh
LCD_Clear(); // xoa toan bo khung hinh
}
//Ham Thiet lap vi tri con tro
void LCD_Gotoxy(uint8_t x, uint8_t y)
Trang 24address = (0xC0+x);
delay_ms(1);
LCD_SendCommand(address); //delay_ms(5);
_delay_cycles(5000);
}
// Ham Gui 1 Ki Tu Len LCD
void LCD_PutChar ( uint8_t Data ) {
P1OUT |= LCD_RS;
LCD_SendCommand( Data ); P1OUT &= ~LCD_RS;
Trang 25Hình ảnh sản phẩm mạch thật:
Trang 26CHƯƠNG III: KẾT LUẬN
Qua Project II, nhóm chúng em xin cảm ơn Viện Điện Tử - Viễn Thông cùng cô Đinh Thị Nhung đã giúp chúng em có cơ hội thực tiễn, tăng khả năng làm việc theo nhóm, khả năng tự tìm hiểu nghiên cứu một vấn đề mới, đồng thời giúp chúng
em tiếp cận những khó khăn thực tế khi thực hành ngoài thực tế…