You are on page 1of 49

ĐẠI HỌC THÁI NGUYÊN

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG


KHOA CÔNG NGHỆ TỰ ĐỘNG HÓA
----------

BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

Đề Tài: XÂY DỰNG HỆ THỐNG CẢNH BÁO VỊ TRÍ CHÁY


CHO NHÀ CAO TẦNG
Giáo viên hướng dẫn: Ths. Trần Hồng Hải
Sinh viên thực hiện: Dương Phú Quang
Lớp: KTĐ-ĐT K14A

Thái Nguyên, tháng03, năm 2019


LỜI NÓI ĐẦU
Trong những năm gần đây trên thế giới cùng với sự phát triển mạnh mẽ của ngành
công nghiệp chế tạo linh kiện bán dẫn và vi mạch tổng hợp, một hướng phát triển mới của
các vi xử lý đã hình thành đó là các vi điều khiển. Với nhiều ưu điểm, vi điều khiển đã
được sử dụng rộng rãi trên nhiều lĩnh vực khác nhau. Bằng cách áp dụng vi điều khiển vào
trong quá trình sản xuất và xử lý, vi điều khiển đã thực sự thể hiện được ưu thế của mình
so với các thiết bị điều khiển thông thường. Vì nhiều những lý do trên, trong các trường
Đại Học, Cao Đẳng, vi xử lý thực sự trở thành một môn học hết sức quan trọng, trong đó
board mạch Arduino gần như là một môn học sử dụng để trang bị cho chúng ta những kiến
thức cơ bản về vi xử lý, từ đó mở rộng ra các loại vi xử lý khác có cấu trúc phức tạp hơn
như 8051,AVR, ...
Qua đợt thực tập này, đã giúp em hình dung được thực tế vi xử lý áp dụng như thế
nào trong cuộc sống hiện đại, cụ thể chính là đề tài: Xây dựng hệ thống cảnh báo vị trí
cháy cho nhà cao tầng.
Nội dung gồm 3 chương:
Chương 1: Tổng quan về hệ thống
Chương 2: Phân tích, thiết kế hệ thống
Chương 3:Kết quả

LỜI CẢM ƠN
Em xin chân thành cảm ơn Trường Đại học Công Nghệ Thông Tin & Truyền Thông
Thái Nguyên đã tạo điều kiện cho em có cơ hội học tập được các kiến thức mới, bổ ích để
chuẩn bị sẵn sàng hành trang tương lai cho em bước vào đời.
Cảm ơn thầy Trần Hồng Hải, các thầy, cô khoa Công Nghệ Tự Động Hóa đã tận tình
hướng dẫn em hoàn thành tốt đề tài thực tập chuyên ngành này, giúp cho em được mở
rộng thêm các kiến thức mới mà chưa được học trong trường và giúp em định hướng thêm
một con đường tương lai có thể đi.
Một lần nữa em xin cảm ơn các thầy, cô nhiều!
TỔNG QUAN
1.1. Đặt vấn đề
Trong năm 2019, cả nước đã xảy ra 2.989 vụ cháy, khiến 73 người tử vong, 163 người bị
thương. Tổng thiệt hại của vụ cháy lên tới 1.590 tỷ đồng. Lực lượng phòng cháy chữa
cháy đã lập biên bản hơn 27.500 trường hợp vi phạm về cháy nổ, đồng thời huy động
46.300 lượt cán bộ chiến sĩ trực tiếp cứu chữa 1.539 vụ cháy. Những vụ cháy liên quan
đến nhà cao tầng, chợ, trung tâm thương mại, khu chung cư có chiều hướng gia tăng.
Đầu tiên phải kể đến là vụ cháy xảy ra tại chung cư Carina Plaza (số 1648 Võ Văn Kiệt,
phường 16, quận 8, TP.HCM) vào rạng sáng 23/3/2018, làm 13 người tử vong và hàng
chục người khác bị thương. Vụ hỏa hoạn đã làm cháy 13 xe ô tô, 150 xe máy và ảnh
hưởng đến phần kết cấu của tòa nhà chung cư.
Những ngày cuối năm 2018, vụ cháy xảy ra tại nhà hàng Ruby trên đường Nguyễn Trãi,
phường Xuân Hòa, Thị xã Long Khánh, tỉnh Đồng Nai lại khiến người dân địa phương vô
cùng bàng hoàng khi có tới 7 người thiệt mạng.
Đây cũng là năm xảy ra nhiều vụ cháy nổ đặc biệt nghiêm trọng về số người chết và thiệt
hại về tài sản. Trong những năm gần đây, tình hình cháy trên địa bàn toàn quốc có những
diễn biến phức tạp. Tuy số vụ cháy có chiều hướng giảm nhưng vẫn xảy ra những vụ cháy
lớn gây hậu quả nghiêm trọng. Đặc biệt vào mùa khô và các đợt lễ, tết... Nguyên nhân chủ
yếu là do bất cẩn trong sinh hoạt và việc sử dụng điện của người dân.
Tóm lại, việc lắp đặt hệ thống an ninh gia đình có chức năng báo cháy là nhu cầu chính
đáng và cần thiết, giúp người dùng an tâm hơn và phòng tránh được các rủi ro đáng tiếc.
Từ thực tiễn hỏa hoạn của nước ta, nên em lựa chọn đề tài: Xây dựng hệ thống cảnh báo vị
trí cháy cho nhà cao tầng.
1.2. Mục tiêu
Xây dựng hệ thống cảnh báo vị trí cháy cho nhà cao tầng, phát hiện kịp thời khi
xảy ra sự cố cháy, thông báo vị trí, cảnh báo có xảy ra cháy để con người kịp xử lý sự cố
cháy giúp giảm thiếu tối đa thiệt hại về người tài sản do sự cố cháy gây ra.
1.3. Nội dung của đề tài
Xây dựng hê thống cảnh báo vị trí cháy cho nhà cao tầng. Cách kết nối qua cổng
COM, hiển thị và cảnh báo cho người dùng qua chương trình được thiết kế trên giao diện
Windows Form.
1.4. Phạm vi nghiên cứu
- Từ việc phân tích đã đưa ra nhưng vẫn đề chính cần giải quyết mà bài toán đặt ra:
- Tìm hiểu cơ bản về Arduino và cảm biến khói.
- Xây dựng sơ đồ khối, từ đó xây dựng mạch nguyên lý, mô phỏng trên proteus.
- Thực hiện lắp ráp linh kiện trên mạch in. Để nạp cho Arduino em sử dụng phần mền
ArduinoIDE.
- Xây dựng giao diện kết nối cổng COM. Sử dụng phần mềm Visual Studio.
- Viết báo cáo tổng hợp về quy trình thực hiện đề tài.
CÁC THÀNH PHẦN LIÊN QUAN

2.1. Giới thiệu chung về Arduino


Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người
tự chế ra sản phẩm của mình) 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à gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tại các
trường đại học danh tiếng như MIT, Stanford, Camegie Mellon phải sử dụng; hoặc ngay
cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển
các ứng dụng Android tương tác với cảm biến và các thiết bị khác.
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các
thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật
của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập
trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập
trình. Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn
mở từ phần cứng tới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một
board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị.
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào
thế kỷ thứ 9 là King Arduin. Arduino chính thức được đưa ra giới thiệu vào năm 2005 như
là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong
những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII). Mặc
dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng
mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên. Hiện nay
Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh
ra Arduino.
Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ
được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trong cộng
đồng nguồn mở (open- source). Tuy nhiên tại Việt Nam Arduino vẫn còn chưa được biết
đến nhiều.
Arduino cơ bản là một nền tảng mẫu mở về điện tử (open-source electronics
prototyping platform) được tạo thành từ phần cứng lẫn phần mềm. Về mặt kỹ thuật có thể
coi Arduino là 1 bộ điều khiển logic có thể lập trình được. Đơn giản hơn, Arduino là một
thiết bị có thể tương tác với ngoại cảnh thông qua các cảm biền và hành vi được lập trình
sẵn. Với thiết bị này, việc lắp ráp và điều khiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ
hết. Arduino được phát triển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử
cũng như lập trình trên vi xử lí và mọi người có thể tiếp cận dễ dàng hơn với thiết bị điện
tử mà không cần nhiều về kiến thức điện tử và thời gian. Sau đây là nhưng thế mạnh của
Arduino so với các nền tảng vi điều khiển khác:
 Chạy trên đa nền tảng: Việc lập trình Arduino có thể thể thực hiện trên các hệ điều hành
khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên di động.
 Ngôn ngữ lập trình đơn giản dễ hiểu.
 Nền tảng mở: Arduino được phát triển dựa trên nguồn mở nên phần mềm chạy trên
Arduino được chia sẻ dễ dàng và tích hợp vào các nền tảng khác nhau.
 Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng module nên việc mở
rộng phần cứng cũng dễ dàng hơn.
 Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị.
 Dễ dàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà không lo lắng về
ngôn ngữ hay hệ điều hành mình đang sử dụng.
 Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng.Về mặt chức
năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega
và loại mở rộng thêm chức năng cho bo mạch chính. Các bo mạch chính về cơ bản là
giống nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ
nhớ, hay kích thước có sự khác nhau. Một số bo có trang bị thêm các tính năng kết nối
như Ethernet và Bluetooth. Các bo mở rộng chủ yếu mở rộng thêm một số tính năng cho
bo mạch chính
2.1.1. Giới thiệu về ngôn ngữ lập trình cho Arduino.
Arduino IDE là 1 phần mềm giúp chúng ta nạp code đã viết vào board mạch và thực
thi ứng dụng. Arduino IDE là chữ viết tắt của Arduino Integrated Development
Environment, một công cụ lập trình với các board mạch Arduino. Nó bao gồm các phần
chính là Editor (trình soạn thảo văn bản, dùng để viết code), Debugger (công cụ giúp tìm
kiếm và sửa lỗi phát sinh khi build chương trình), Compiler hoặc interpreter (công cụ giúp
biên dịch code thành ngôn ngữ mà vi điều khiển có thể hiểu và thực thi code theo yêu cầu
của người dùng).
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế
cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm. Môi trường lập
trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++
rất quen thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư viện code được viết
sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Arduino IDE là phần mềm dùng để lập trình cho Arduino. Môi trường lập trình
Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh
osx và Linux. Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí
và có thể mở rộng thêm bởi người dùng có kinh nghiệm.
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và do ngôn
ngữ lập trình này dựa trên nền tảng ngôn ngữ c của AVR nên người dùng hoàn toàn có thể
nhúng thêm code viết bằng AVR vào chương trình nếu muốn. Hiện tại, Arduino IDE có
thể download từ trang chủ http://arduino.cc/ bao gồm phiên bản sau: Arduino 1.8.8
2.1.2. Giao diện phần mền Arduino IDE

Hình 2.2: Giao diện phần mền Arduino IDE


Giao diện của phần mềm Arduino IDE có nhiều phần, tuy nhiên chúng ta chú ý đến
những phần quan trọng như được nêu ra trong hình trên. Chức năng của từng phần như
sau:
Nút kiểm tra chương trình: Dùng để kiểm tra xem chương trình được viết có lỗi
không. Nếu chương trình bị lỗi thì phần mềm Arduino IDE sẽ hiển thị thông tin lỗi ở vùng
thông báo thông tin.
Nút nạp chương trình xuống bo Arduino: Dùng để nạp chương trình được viết xuống
mạch Arduino. Trong quá trình nạp, chương trình sẽ được kiểm tra lỗi trước sau đó mới
thực hiện nạp xuống mạch Arduino.
Hiển thị màn hình giao tiếp với máy tính: Khi nhấp vào biểu tượng cái kính lúp thì
phần giao tiếp với máy tính sẽ được mở ra. Phần này sẽ hiển thị các thông số mà người
dùng muốn đưa lên màn hình. Muốn đưa lên màn hình phải có lệnh Serial.print() mới có
thể đưa thông số cần hiển thị lên màn hình
Vùng lập trình: Vùng này để người lập trình thực hiện việc lập trình cho chương trình
của mình.
Vùng thông báo thông tin: Có chức năng thông báo các thông tin lỗi của chương trình
hoặc các vấn đề liên quan đến chương trình được lập.
2.1.3. Sử dụng một số menu thông dụng trên phần mềm Arduino IDE
 Phần Example (ví dụ):

Hình 2.3: Lấy ví dụ có sẵn trong Arduino IDE


Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập trình có thể tham khảo, giảm
bớt thời gian lập trình.
 Chọn loại board sử dụng:

Hình 2.4: Lựa chọn loại board sử dụng


Khi mới kết nối bo Arduino với máy tính ta click vào Tools->board để chọn loại board
sử dụng. Phần mềm chọn sẵn kiểu bo là bo Arduino Uno, nếu người dùng dùng kiểu bo
khác thì chọn kiểu bo đang dùng.
 Chọn cổng COM

Hình 2.5: Chọn cổng COM


Khi lần đầu gắn mạch Arduino vào máy tính, người sử dụng cần nhấn chọn cổng
COM bằng cách vào Tools -> Serial Port (một số phiên bản dùng từ Port) sau đó nhấn
chọn cổng COM, ví dụ như COM5. Những lần sau khi đưa chính board Arduino đó vào
máy tính thì không cần chọn cổng COM, nếu đưa bo Arduino khác vào máy thì cần phải
chọn lại cổng COM
2.1.4. Cấu trúc của một chương trình Arduino IDE

 Khai báo biến


#define
Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là
gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên.
Ví dụ #define led 13
Chú ý: sau #define thì không có dấu “,” (dấy phẩy)
Khai báo các kiểu biến khác như: int (kiểu số nguyên), float, …
 Thiết lập (void setup( ))
void setup()
{
…..
}
Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm tra
chương trình thì chương trình sẽ báo lỗi
Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào.
Trong đó:
Dùng để truyền dữ liệu từ board Arduino
Serial.begin(9600)
lên máy tính

pinMode(bien,kiểu vào hoặc ra);


Dùng để xác định kiểu chân là vào hay ra
ví dụ: pinMode(chanD0,INPUT);

Bảng 2.1: Lựa chọn tốc độ truyền dữ liệu, kiểu chân vào ra
 Vòng lặp
Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm vụ mà
chúng ta mong muốn, thường bắt đầu bằng:
voidloop()
{
……………….
}
 Một số câu lệnh, cấu trúc thường gặp
Ký hiệu, câu lệnh Ý nghĩa Câu lệnh
Dấu // dùng để giải thích, khi nội
dung giải thích nằm trên 1 dòng, khi kiểm tra chương
//
trình thì phần kiểm tra sẽ bỏ qua phần này, không kiểm
tra
Define nghĩa là định nghĩa, xác định. Câu lệnh này nhằm
#define biến chân
gán tên 1 biến vào 1 chân nào đó. Ví dụ #define led 13
/*….
Ký hiệu này cũng dùng để giải thích, nhưng giải thích
….. */
dành cho 1 đoạn, tức có thể xuống dòng được

Dùng để tắt, mở 1 chân ra. Cú pháp của nó là


digitalWrite(chân, trạng digitalWrite(chân,trạng thái chân).Ở đây trạng thái có thể
thái); là HIGH hoặc LOW. Ví dụ: digital(led,HIGH); , hoặc
digital(led,LOW);
Có ý nghĩa dùng để băm xung (PWM), thường dùng
analogWrite(chân, giá trị);
để điều khiển tốc độ động cơ, độ sáng led,
Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại
digitalRead(chân);
chân muốn đọc
analogRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog tại
chân muốn đọc
Delay nghĩa là chờ, trì hoãn, duy trì. Lệnh này dùng
delay(thời gian); để duy trì trạng thái đang thực hiện chờ một thời gian.
Thời gian ở đây được tính bằng mili giây
if nghĩa là nếu, sau if là dấu (), bên trong dấu ngoặc là
if() một biểu thứ so sánh. Ví dụ trong bài về cảm biến độ ẩm
{ đất (phần 5) thì:
Các câu lệnh if (giatriAnalog>500) //nếu giá trị đọc được của biến
} giatriAnalog lớn hơn 500
else () {
{ digitalWrite(Led,HIGH); //Ra lệnh cho led sáng
Các câu lệnh delay(1000);//chờ 1s
} }
else nghĩa là ngược lại

Serial.print() In ra màn hình máy tính, lệnh này in không xuống dòng
In ra màn hình máy tính, in xong xuống dòng, giá trị tiếp
Serial.println()
theo sẽ được in ở dòng kế tiếp
Bảng 2.2: Một số câu lệnh, cấu trúc thường gặp
2.2. Giới thiệu các thiết bị sử dụng trong hệ thống
2.2.1. Khối xử lý trung tâm
2.2.1.1. Arduino
 Ưu điểm:
- Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ được
sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trong cộng đồng
nguồn mở (open- source). Tuy nhiên tại Việt Nam Arduino vẫn còn chưa được biết đến
nhiều.
-Arduino cơ bản là một nền tảng mẫu mở về điện tử (open-source electronics prototyping
platform) được tạo thành từ phần cứng lẫn phần mềm. Về mặt kỹ thuật có thể coi Arduino
là 1 bộ điều khiển logic có thể lập trình được. Đơn giản hơn, Arduino là một thiết bị có thể
tương tác với ngoại cảnh thông qua các cảm biền và hành vi được lập trình sẵn. Với thiết
bị này, việc lắp ráp và điều khiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ hết. Arduino
được phát triển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử cũng như lập
trình trên vi xử lí và mọi người có thể tiếp cận dễ dàng hơn với thiết bị điện tử mà không
cần nhiều về kiến thức điện tử và thời gian. Sau đây là nhưng thế mạnh của Arduino so
với các nền tảng vi điều khiển khác:
 Chạy trên đa nền tảng: Việc lập trình Arduino có thể thể thực hiện trên các hệ điều
hành khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên di động.
 Ngôn ngữ lập trình đơn giản dễ hiểu.
 Nền tảng mở: Arduino được phát triển dựa trên nguồn mở nên phần mềm chạy trên
Arduino được chia sẻ dễ dàng và tích hợp vào các nền tảng khác nhau.
 Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng module nên việc
mở rộng phần cứng cũng dễ dàng hơn.
 Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị.
 Dễ dàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà không lo lắng
về ngôn ngữ hay hệ điều hành mình đang sử dụng.
 Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng.Về
mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính
có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính. Các bo mạch
chính về cơ bản là giống nhau về chức năng, tuy nhiên về mặt cấu hình như số
lượng I/O, dung lượng bộ nhớ, hay kích thước có sự khác nhau. Một số bo có trang
bị thêm các tính năng kết nối như Ethernet và Bluetooth. Các bo mở rộng chủ yếu
mở rộng thêm một số tính năng cho bo mạch chính.
Nhược điểm: + Giá thành khá cao.
2.2.1.2. Vi điều khiển 8051

Hình 2.6: Vi điều khiển AT89C51


 Ưu điểm:
+ Họ vi điều khiển 8051 là một họ vi điều khiển điển hình, phổ biến, dễ sử dụng
+ Giá thành rẻ
 Nhược điểm:
+ Phải sử dụng mạch nạp để nạp chương trình cho 8051
+ Bộ nhớ RAM nội có dung lượng thấp chỉ có 128 bytes
+ Số lượng các bộ giao tiếp với ngoại vi được tích hợp sẵn trong 8051 ít, không có
các bộ ADC, PWM, truyền dữ liệu song song … Khi muốn sử dụng các chức năng này ta
phải sử dụng them các IC bên ngoài và khó thực hiện vì dễ bị nhiễu nếu không biết cách
chống nhiễu tốt.
2.2.1.3. Vi điều khiển PIC

Hình 2.7: Vi điều khiển PIC 16F77A


 Ưu điểm:
+ PIC là một vi điều khiển mà cũng bao gồm RAM, ROM, CPU, bộ đếm thời gian,
truy cập, ADC (analog để chuyển đổi kỹ thuật số), DAC (kỹ thuật số để chuyển đổi
analog). PIC vi điều khiển cũng hỗ trợ các giao thức như CAN, SPI, UART, LIN, CAN,
Ethernet, SPI, I2S cho một interfacing với các thiết bị ngoại vi bổ sung.
+ Giá thành không quá đắt.
 Nhược điểm:
+ Phải sử dụng mạch nạp để nạp chương trình cho PIC.
 Từ những ưu, nhược điểm trên em lựa chọn bo mạch Arduino nano

Hình 2.8 : Sơ đồ chân arduino nano


Vi điều khiển ATmega328 (họ 8bit)
Điện áp hoạt động 5V – DC
Tần số hoạt động 16 MHz
Dòng tiêu thụ 30mA
Đ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 PWM)
Số chân Analog 8 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 40 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 2KB dùng bởi bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Bảng 2.3: Đặc điểm kỹ thuật Arduino nano
 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 nano có thể giao tiếp với thiết bị khác thông qua 2
chân này.
- 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.
- SPI: Bốn chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) được sử dụng cho SPI
(Giao diện ngoại vi nối tiếp). SPI là một bus giao diện và chủ yếu được sử dụng để
truyền dữ liệu giữa các bộ vi điều khiển và các thiết bị ngoại vi khác như cảm biến,
thanh ghi và thẻ SD.
- Chân AREF : Chân này được sử dụng làm điện áp tham chiếu cho điện áp đầu vào
- LED 13: trên Arduino nano có 1 đèn led màu .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 nano 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.
 Các chân năng lượng
- GND (Ground): cực âm của nguồn điện cấp cho Arduino nano. 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 nano, 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.
- 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Ω.
2.2.2. Khối cảm biến
2.2.2.1. Cảm biến MQ2
Cảm Biến MQ21. Giới thiệu:- 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 2.9: Sơ đồ chân MQ2


Hình 2.10: Hình ảnh MQ2
- Trong đó:
• Chân 1,3 là A
• Chân 2,5 là B
• Chân 4,6 là C

Hình 2.11: Sơ đồ mắc MQ2


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
quang MQ2.
• 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 ta mắc 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.

• Ta có thể ghép nối vào mạch Realy để điều khiển bật tắt đèn, còi, hoặc thiết bị cảnh
báo khác.- Một điều khó khăn khi làm việc với MQ2 là chúng ta khó có thể quy từ điện áp
Aout về giá trị nồng độ ppm. Rồi từ đó hiển thị và cảnh báo theo ppm. Do giá trị điện áp
trả về từng loại khí khác nhau, lại bị ảnh hưởng nhiệt độ, độ ẩm.

2.2.2.2. Cảm biến báo khói KN-SM02

Hình 2.12: Cảm biến báo khói KN-SM02


Cảm biến báo khói không dây KN-SM02 báo động khi phát hiện khói, báo khói KN-
SM02 có thể báo động tại chỗ hoặc dùng kết hợp với trung tâm.
Báo khói không dây KN-SM02 sử dụng nguồn PIN 9v, thời gian sử dụng từ 9 – 12
tháng. Báo khói KN-SM02 thường được lắp đặt ở độ cao tối đa 6m với diện tích sàn 60m2
trong phạm vi bán kinh 5m.

Khi sử dụng kết hợp với hệ thống trung tâm, báo khói không dây KN-SM02 sẽ phát
tín hiệu về trung tâm khi phát hiện rò rỉ khói. Đồng thời bản thân thiết bị này cũng được
tích hợp sẵn còi hú báo động khi có khói.
Thông số kỹ thuật cảm biến báo khói KN-SM02
 Báo động độc lập tại chỗ và gửi tín hiệu không dây về hệ thống trung tâm khi có
khí rò rỉ (nếu dùng kết hợp với trung tâm).
 Dùng pin: 1 viên 9V.
 Tiết kiệm nguồn pin, pin sử dụng được gần 1 năm.
 Vùng cảm ứng: độ cao gắn dưới 6m, diện tích sàn 60m vuông, bán kính 5m.
 Tần số hoạt động: 433 MHz.
 Tiếng báo động lớn trên 80 dB.
 Khoảng cách truyền không dây: 60m (không vật cản), xuyên vật cản.
 Phụ kiện kết hợp với trung tâm báo trộm.
2.2.2.3. Cảm biến báo khói cháy ES-908
Cảm biến báo khói cháy ES-908 được thiết kế để sử dụng trong nhà như: nhà ở, villa
và căn hộ, ... Được làm từ những linh kiện chất lượng cao có nguồn gốc rõ ràng, kỹ thuật
tiên tiến, báo động chính xác, tiêu thụ ít năng lượng.
- Một pin 9V có thể hoạt động lên đến 1 năm. Cảm biến báo khói cháy ES-908 dễ
dàng lắp đặt, không cần thợ chuyên nghiệp. Còi báo động bên trong đầu báo kêu khi có
báo động. Bằng cách sử dụng kết nối mở rộng, tín hiệu báo cháy có thể kết nối từ đầu báo
này đến đầu báo khác trong cùng một mạng hoặc kết nối đến những hệ thống khác.
Hình 2.13: Cảm biến báo khói cháy ES-908
 Đặc điểm cảm biến báo khói cháy ES-908
- Kết hợp cả đầu báo khói quang và còi báo động trên cùng một đầu báo.
- Có nút kiểm tra và Reset.
- Hoạt động ở điện áp 9V.
- Chỉ thị tình trạng Pin yếu.
- Dễ dàng lắp đặt.
- LED hiển thị 360º .
- Kết nối đến 30 đầu báo khói thành một mạng đơn.
- Ngõ ra có thể giao tiếp đến các hệ thống an ninh khác.
 Đặc điểm kỹ thuật
- Nguồn cung cấp: Pin PP3 (H6F22) DC9V.
- HIển thị: đèn chớp đỏ 50s một lần trong điều kiện bình thường.
- Ngõ ra tiếp điểm: có sẵn, có thể lựa chọn hoặc nối mạng hoặc tiếp điểm.
5mA/30VDC.
- Nối mạng: Tối đa 30 đầu báo trên một mạng, có sẵn, thể lựa chọn hoặc nối mạng
hoặc tiếp điểm.
- Âm thanh: 85dB.
- Phạm vi giám sát: 40m2.
- Nhiệt độ làm việc: -10 đến 50.
- Độ ẩm: 95%.
- Kích thước: 140 x 54mm(DxH, bao gồm đế).
- Vật liệu và màu sắc: ABS màu trắng.
- Khối lượng: 235g.
 Chi tiết sản phẩm:
Mô hình SFL-908
cảm biến Tùy chọn tốc độ quang
Điện áp làm việc AC110-240V hoặc 9V DC
Dòng tĩnh <30mA
Dòng báo động <200mA
Phù hợp với tiêu chuẩn UL217, giá trị kiểm tra trên mỗi
Độ nhạy khói
inch phản ứng của máy dò Misty 3,2%
Pin sạc cung cấp điện trong 24 giờ khi cắt điện AC
Nhiệt độ làm việc -10 ~ 50 ° C
Âm lượng báo thức 85dB (3m)
Vật chất ABS
Thứ nguyên 120 * 45mm
 Lựa chọn cảm biến khói MQ2 vì:
 Giá thành rẻ, dễ lập trình.
 Phù hợp với yêu cầu đề tài.
 Thiết bị nhỏ gọn.
2.2.3. Còi chip 5V

Hình 2.14: Còi chip


 Thống số kỹ thuật
 Nguồn: 3.5V - 5.5V.
 Dòng điện tiêu thụ: <25mA.
 Tần số cộng hưởng: 2300Hz ± 500Hz.
 Biên độ âm thanh: >80 dB.
 Nhiệt độ hoạt động: -20 °C đến +70 °C.
 Kích thước: Đường kính 12mm, cao 9,7mm.
2.2.4. Đèn led

Hình 2.15: Cấu tạo và nguyên lý hoạt động của đèn chip led
2.3. Giới thiệu phần mềm Visual Studio 2010
2.3.1. Tổng quan:

 Visual Studio 2010 Ultimate là công cụ xây dựng, lập trình mã nguồn để quản trị thông
tin hệ thống phát triển phần mềm của doanh nghiệp, xây dựng các ứng dụng cho máy để
bàn và các ứng dụng web.
 Visual Studio 2010 Ultimate được xem là một trong nhữn công cụ thiết kế tốt nhất hiện
nay với việc phát triển phần mềm, triển khai các giải pháp doanh nghiệp

Hình 2.15: Giao diện phần mềm Visual Studio 2010


 Visual Studio 2010 Ultimate được tăng cường thêm những giải pháp giảm thiểu nguy
cơ trong quá trình phát triển thiết kế.
 Visual Studio 2010 Ultimate tạo ra các giải pháp về phần mềm, phát triển một số công
cụ tuyệt vời của ứng dụng lập trình.
 Có thể nói Visual Studio 2010 Ultimate là phần mềm không thể thiếu dành cho những
Kỹ thuật viên phần mềm và một số công ty phát triển phần mềm.
 Những tính năng chính của Visual Studio 2010 Ultimate:
 Phát triển mã nguồn, phần mềm.
 Thực hiện giải pháp phần mềm.
 Ứng dụng lập trình.
2.3.2. Giới thiệu Windown Form C#

Hình 2.16: Tạo một project mới để lập trình

Hình 2.17: Giao diện Form[Design] và toolbox hỗ trợ xây dựng giao diện
Hình 2.18: Form lập trình cho giao diện

2.3.3. Ứng dụng của Windows Form

Các chương trình quản lý tài chính dân sự sản xuất, quản lý doanh nghiệp...
 Tạo ứng dụng với giao diện đồ họa giao tiếp với người dùng
 Hiển thị thông tin.
 Nhận thông tin từ người dùng.
 Phản ứng với những hoạt động của người dùng( gõ chuôt, bàn phím,...)
 Kết nối qua mạng.
 Phần mềm văn phòng Microsoft Office
 Phần mềm quản lý dự án MS Project
 Phầ mềm lập trình Visual Studio

2.4. Giới thiệu chung về phần mềm mô phỏng Proteus
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao
gồm phần thiết kế mạch và viết chương trìn điều khiển cho các họ vi điều khiển như
MCS-51, PIC, AVR, … Proteus là phần mềm mô phỏng mạch điện tử của Lancenter
Electronics, mô phỏng cho hầu hết các linh kiên điện tử thông dụng, đặn biệt hỗ trợ cho
các MCU như PIC, 8051, AVR, Motorola.
Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES dùng để
vẽ mạch in. Proteus là công cụ mô phỏng cho các loại vi điều khiển khá tốt, nó hỗ trợ các
dòng vi điều khiển PIC, 8051, PIC, dsPIC, AVR, HC1, …các giao tiếp I2C, SPI, CAN,
USB, Ethenet…ngoài ra còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả.

Hình 2.19: Giao diện khởi động phần mềm Proteus.


2.4.1. Thư viện Arduino trong Proteus

Thư viện Arduino là một bổ sung rất hay cho phần mềm mô phỏng Proteus nó giúp
cho việc mô phỏng Arduino được thuận tiện và dễ dàng hơn thay vì chỉ mô phỏng được
chip ATmega328(nhân của Arduino)
 Thư viện bao gồm các linh kiện sau:
 Arduino Uno (Phiên bản chip ATmega328 chân DIP)
 Arduino Uno (Phiên bản chip ATmega328 chân SMD):
 Arduino Mega
 Arduino Lilypad
 Arduino Nano
 Cảm biến siêu âm Ultrasonic V2

Hình 2.20:Các linh kiện trong thư viện Arduino cho Proteus.
THIẾT KẾ HỆ THỐNG

3.1. Sơ đồ khối

Hình 3.1: Sơ đồ khối


 Chức năng các khối:
- Khối cảm biến: có chức năng nhận tín hiệu ở ngưỡng đặt và gửi giá trị đo được cho
Ardiuno khi có tín hiệu yêu cầu.
- Khối xử lý trung tâm(Arduino nano): có chức năng điều khiển module cảm biến
rung WS 420 đo độ rung, xử lý các tín hiệu đo được.
- Khối chấp hành (Còi báo): có chức năng cảnh báo khi độ rung vượt ngưỡng cho
phép.
- Khối nguồn: có chức năng cấp nguồn 5V cho toàn hệ thống
3.2. Sơ đồ nguyên lý
3.2.1. Khối xử lý trung tâm

Hình 3.2: Arduino nano


(…)
3.2.2. Khối cảm biến

Hình 3.3: Cảm biến rung


(…)
3.2.3. Còi báo

Hình 3.4: Còi chíp


(…)
3.2.4. Sơ đồ nguyên lý tổng quát

Hình 3.5: Sơ đồ nguyên lý tổng quát


(…)

-Khối vi điều khiển (Arduino nano): có chức năng xử lý các tín hiệu được module cảm
biến rung WS-420 gửi về

- Khối cảm biến(WS-420): có chức năng đo đô rung từ vật và gửi giá trị đo được cho
Arduino khi có tín hiệu yêu cầu
Arduino nano Module cảm biến rung WS-420
5V Vcc
GND GND
D9 D0

Bảng 3.1. Đấu nối chân module cảm biến rung WS-420 với Arduino nano

-Có chức năng kêu khi rung động vượt ngưỡng cho phép

3.2.4. Sơ đồ mạch in mạch điều khiển.


Hình 3.6: Sơ đồ mạch in mạch điều khiển

3.3. Xây dựng hệ thống lập trình Arduino


3.3.1. Lưu đồ thuật toán
Bắt đầu

DigitalRead (D0)

Serial.println(measurement)

if
(measurement
> 5000)

DigitalWrite (ledPin,
HIGH)

Hình 3.8:Lưu đồ thuật toán

3.3.2.CODE chương trình Arduino:


int ledPin = 13;
int EP =9;
void setup() {
pinMode (ledPin, OUTPUT);
pinMode (EP, INPUT); //cài đặt đầu vào để chân DOut cảm biến đo
Serial.begin(9600); //init serial 9600
// Serial.println("----------------------Vibration demo------------------------");
}
void loop(){
long measurement =TP_init();
delay(50);
// Serial.print("measurment = ");
Serial.println(measurement);
if (measurement > 2000){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
}

long TP_init(){
delay(1000);
long measurement=pulseIn (EP, HIGH); //Đợi chân tích hiệu kích lên mức cao và trả về
số đo
return measurement;
}

3.4. Dotnetbar
Hình 3.9: Hình ảnh giao diện được thiết kế có sử dụng một số control trong dotnetbar

3.5. Xây dựng mạch kết nối


Hình 3.10: Sơ đồ mạch kết nối

3.6. Kiểm thử hệ thống


Hình 3.11: Hình ảnh mạch phần cứng

Hình 3.12: Khi nhấn chạy giao diện thiết kế nhưng chưa chọn cổng COM khi nhấn
connect sẽ hiện ra cảnh báo
Hình 3.13: Lựa chọn cổng COM để kết nối

Hình 3.14: Nhấn Connect để nối kết, khi độ rung ở dưới ngưỡng cảnh báo
Hình 3.15: Khi độ rung vượt ngưỡng cho phép sẽ đưa ra cảnh báo

Hình 3.16: Nhấn Disconnect sẽ ngắt kết nối


Hình 3.17: Nhấn Exit để thoát kết nối sẽ hiện lên thông báo

CHƯƠNG 4: KẾT LUẬN


4.1 Kết luận hệ thống
- Hệ thống đã chạy và đáp ứng được những yêu cầu mà bài toán đặt ra:
+ Đo được độ rung
+Tạo được giao diện nhận độ rung chạy trên Windown Form.
+ Kết nối mạch phần cứng với visual studio để hiển thị dữ liệu thu được từ cảm biến lên
form giao diện thiết kế
4.2. Kết quả thu được
* Như vậy, với đề tài: Xây dựng hệ thống cảnh báo va đập cho thiết bị.
-Qua đề tài em đã thu được các kiến thức về:
+Đã xây dựng được hệ thống cảnh báo va đập cho thiết bị và hiện thị độ rung lên
Window Form.
+Đem lại những kiến thức lập trình visual studio
+ Hiểu được cách kết nối và truyền dữ liệu thành công cho thiết bị
+ Tìm hiểu về Window Form: Xây dựng thành công phần mềm Window Form hiện thị
cảnh báo
+Hiểu và sử dụng được bo mạch điều khiển Arduino
4.2. Hướng phát triển đề tài
 Xây dựng hệ thống giám và cảnh báo va đập cho thiết và sử dụng module sim gửi tin
nhắn về điện thoại. Kết hơp với giao diện xây dựng trên Windown.

LỜI CẢM ƠN
Trong thời gian thực hiện đề tài thực tập chuyên ngành, em đã nhận được nhiều sự
giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô và bạn bè. Em xin gửi lời cảm
ơn chân thành đến ThS.Trần Hồng Hải đã tận tình hướng dẫn, chỉ bảo em trong suốt quá
trình em thực hiện đề tài thực tập chuyên ngành. Em cũng xin chân thành cảm ơn các thầy
cô giáo trong trường Đại học Công nghệ thông tin và Truyền thông nói chung, các thầy cô
trong khoa Công nghệ Tự động hóa nói riêng đã dạy cho em kiến thức về các môn đại
cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và
tạo điều kiện giúp đỡ em trong suốt quá trình học tập.Em xin chân thành cảm ơn gia đình
và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học
tập và hoàn thành đề tài thực tập chuyên ngành.
Trong quá trình làm bài báo cáo thực tập chuyên ngành, khó tránh khỏi sai sót, rất
mong các thầy, cô bỏ qua. Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn
còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, em rất mong nhận được
ý kiến đóng góp thầy, cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt
hơn trong những bài báo cáo sắp tới.
TÀI LIỆU THAM KHẢO
[1]. http://arduino.vn/bai-viet/557-cach-su-dung-cam-bien-rung-voi-arduino
[2]. https://iotmaker.vn/cam-bien-rung-ws
420.html?fbclid=IwAR1SnMrWqI0SdNLo3pwQ6895yntUiAgox9v1sIeLV7G4F0Th1AZ
dP0hNtFI
[3]. https://www.youtube.com/watch?v=235BLk7vk00
[4]. http://www.dientuvietnam.net/forums
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………

Thái Nguyên, ngày tháng năm 2019


Giảng viên hướng

You might also like