Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (515.39 KB, 19 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<small> TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI </small>
<b><small> KHOA CÔNG NGHỆ THÔNG TIN </small></b>
<b><small> </small></b>
<b><small> </small></b>
<b><small> KỲ THI KẾT THÚC HỌC PHẦN HỌC KỲ I NĂM HỌC 2022 -2023 </small></b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b><small>Giảng viên hướng dẫn: Nguyễn Văn Hách</small></b>
<small> </small>
<small> </small>
<b><small> Hà Nội, ngày 18 tháng 12 năm 2022</small></b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>MỤC LỤC</b>
<b><small>LỜI MỞ ĐẦU...2</small></b>
<b><small>CHƯƠNG 1 TỔNG</small>QUAN VỀ ĐỀ TÀI NGHIÊN CỨU<small>...3</small></b>
<b><small>1.1 Giới</small>thiệu bài toán<small>...3</small></b>
<b><small>1.2 Giải quyết bài toán...3</small></b>
<b><small>1.2.1 Board mạch nhúng mã nguồn mở Arduino...3</small></b>
<b><small>CHƯƠNG 3 DEMO CHƯƠNG TRÌNH...13</small></b>
<b><small>3.1 Khi không phát</small>hiện cháy nổ<small>...13</small></b>
<b><small>3.2 Khi phát</small>hiện cháy nổ<small>...13</small></b>
<b><small>KẾT LUẬN...15</small></b>
<b><small>DANH MỤC TÀI LIỆU THAM KHẢO...</small>17</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b> Lời mở đầu</b>
Hỏa hoạn luôn là một nguy cơ tiềm ẩn nhiều rủi ro trong sản xuất và sinh hoạt hàng ngày. Mặc dù đã có nhiều biện pháp và hệ thống được đưara để phát hiện và cảnh báo cháy nhưng nhiều thảm họa do cháy vẫn xảy ra, gây nhiều thiệt hại về người và của.
Ngày nay, khi khoa học công nghệ phát triển một cách mạnh mẽ, việc ứng dụng các thiết bị điện tử vào đời sống cũng ngày càng phổ biến hơn, nhất là với thời đại mà các hệ thống nhúng đang lên ngôi. Từ những ứng dụng đơn như đồng hồ kĩ thuật số, máy nghe nhạc...đến những ứng dụng cho xã hội như đèn giao thơng, bộ kiểm sốt trong nhà máy, cửa tự động..cho đến những ứng dụng mang tính quy mơ, tầm cỡ như robot, phi thuyền không người lái, kiểm soát nhà máy hạt nhân ,…
Với những kiến thức đã được học và tìm hiểu từ trường học và khoa học công nghệ của cuộc sống hiện đại, em cũng có mong muốn góp thêm phần nào sự phát triển xã hội bằng cách học hỏi và đưa ra những sản
<i><b>phẩm có ích cho cuộc sống. Do đó em đã chọn đề tài: “Sử dụng board mạch nhúng mã nguồn mở (Arduino, RaspberryPi v.v…) có khả năng kết nối Internet và các thiết bị cảm biến giám sát, hãy xây dựng hệ thống nhúng có chức năng giám sát, cảnh báo cháy nổ. ” để có một cơ </b></i>
hội học hỏi. Mặc dù đề tài này cũng rất sâu và rộng nhưng bản thân em lại cảm thấy rất hứng thú và say mê khi được giao làm về đề tài này. Tuy nhiên do sự hiểu biết còn hạn chế , thời gian làm bài lại có hạn nên bài làm cịn có rất nhiều sai sót, em kính mong thầy, cơ giúp đỡ em hoàn thành bài làm tốt hơn.
Em xin chân thành cảm ơn !
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU1. GIỚI THIỆU BÀI TỐN</b>
<b>1.1 Mơ tả bài tốn</b>
u cầu chính của hệ thống này là phát hiện hỏa hoạn, cháy, nổ.Chúng sẽ lấy thông tin từ khu vực xung quanh thông qua các cảm biến. Một số thiết bị cảm biến được sử dụng để phát hiện cháy, nổ như cảm biến lửa, cảm biến khí gas,…. Trong đó cảm biến lửa là phù hợp nhất để phát hiện cháy,nổ , nó có giá thành thấp và khả năng ứng dụng cao. Bài toán đặt ra là xây dựng hệ thống nhúng có chức năng giám sát, cảnh báo cháy nổ.Bao gồm các thiết bị cảm biến giám sát.Bằng cách sử dụng các board mạch nhúng mã nguồn mở để thiết kế và xây dựng hệ thống nhúng cho bài toán này.
<b>1.2 Giải quyết bài tốn</b>
Từ mơ tả, u cầu của bài tốn em phân tích và định hướng giải quyếtbài tốn bằng các cơng nghệ, thiết bị và phần mềm như sau:
<b>1.2.1 Board mạch nhúng mã nguồn mở Arduino</b>
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng cácứng dụng điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn.
Arduino giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện tử mà khơng cần phải có các cơng cụ chuyên biệt để phục vụ việc nạp code. Phần cứng và phần mềm của Arduino đều là nguồn mở - các sơ đồ đều được public trực tuyến nên bạn hồn tồn có thể mua linh kiện về và tự làm lấy. Arduino là một công cụ học tập, sáng tạo tuyệt vời giúp thực hiện bất cứ dự án nào một cách
dễ dàng. Ta có thể truy cập vào trang web chính thức của Arduino để tìm hiểu thêm thơng tin và các hướng dẫn lập trình cơ bản.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><small> </small>
<i>Hình 1.1 Mơ hình Simulino Uno </i>
<b> 1.2.2 Các linh kiện sử dụng </b>
<i> -Cảm biến lửa (Flame Sensor) :là một thiết bị điện tử có khả năng phát </i>
hiện và cảnh báo tia lửa trong môi trường xung quanh. Cảm biến phát hiện lửa thường được sử dụng cho các ứng dụng phát hiện lửa như: xe robot chữa cháy, cảm biến lửa,… Tầm phát hiện của cảm biến trong khoảng 80cm, góc quét là 60 độ, có thể phát hiện lửa tốt nhất là loại có bước sóng từ 760nm – 1100nm.
Cảm biến phát hiện lửa (flame sensor) có hai ngõ ra tín hiệu là Digital và Analog rất dễ dử dụng.
<small> </small>
<i>Hình 1.2 Mơ hình cảm biến lửa</i>
<i> -Bóng đèn led đỏ (Led Red) : là bóng đèn phát sáng màu đỏ.</i>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><small> </small>
<small> </small><i>1.3 Mơ hình bóng đèn led </i>
<i> - LCD (16x2) là một màn hình nhiều điểm ảnh để hiển thị thơng tin một</i>
cách dễ dàng hơn. Có nhiều loại LCD, trong bài này chúng ta dùng loại đơn giản 16×2.
<small> </small>
<i>1.4 Linh kiện LCD</i>
<i>- Mạch mở rộng chân I/O Expander PCF8574: Được sử dụng để mở </i>
rộng chân giao tiếp I/O của Vi điều khiển qua giao tiếp I2C, mạch có khả năng mở rộng 8 I/O giúp bạn giao tiếp được với nhiều thiết bị chỉ qua một vài bước thiết đặt đơn giản, mạch tích hợp DIP Switch giúp dễ dàng thay đổi địa chỉ I2C.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><small> </small>
<i>Hình 1.5 Linh kiện PCF8574</i>
<i>-Loa (Speaker): Loa là thiết bị phát ra âm thanh, loa được ứng dụng </i>
khá nhiều trong cuộc sống, loa xuất hiện trong dàn âm thanh chuyên nghiệp, loa cịn dùng cho dàn âm thanh gia đình.
<small> </small>
<i>Hình 1.6 Linh kiện speaker</i>
<b> 1.2.3 Các phần mềm hỗ trợ</b>
<i>-Proteus là phần mềm thiết kế có sự hỗ trợ của máy tính được sử </i>
dụng cho kỹ thuật điện và điện tử. Proteus có thể được sử dụng để tạo chất bán dẫn, mạch tích hợp, bảng dây in, thiết kế mơ-đun điện áp cao. Trong bài tốn này, phần mềm sẽ giúp xây dựng mô phỏng module hệ thống hỗ trợ phát hiện cảnh báo cháy,nổ.
<i>- Arduino IDE là một chương trình phần mềm mã nguồn mở cho phép</i>
người dùng viết và tải lên mã trong một môi trường làm việc thời gian thực. Vì mã này sau đó sẽ được lưu trữ trong đám mây, nó thường được sử dụng bởi những người đã tìm kiếm thêm một mức dư thừa. Hệ thống này hồn tồn tương thích với bất kỳ bo mạch phần mềm Arduino nào.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Arduino IDE có thể được triển khai trong các hệ điều hành Windows, Mac và Linux. Phần lớn các thành phần của nó được viết bằng JavaScriptđể chỉnh sửa và biên dịch dễ dàng. Mặc dù ý định chính của nó là dựa trên các mã viết, có một số tính năng đáng chú ý khác. Nó đã được trang bị một phương tiện để dễ dàng chia sẻ bất kỳ chi tiết nào với các bên liên quan dự án khác. Người dùng có thể sửa đổi bố trí nội bộ và sơ đồ khi cầnthiết. Có hướng dẫn trợ giúp chuyên sâu sẽ hữu ích trong q trình cài đặtban đầu. Các hướng dẫn cũng có sẵn cho những ai có thể khơng có nhiều kinh nghiệm với khung công tác Arduino. Phần mềm giúp soạn thảo mã nguồn, biên dịch để nhúng vào các bo mạch, các thiết bị của hệ thống hỗ trợ cảnh báo phát hiện cháy,nổ.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG MODULE HỆ THỐNGNHÚNG CÓ CHỨC NĂNG GIÁM SÁT , CẢNH BÁO</b>
<b>CHÁY NỔ</b>
<b>2.1 Thiết kế mô phỏng hệ thống</b>
Em sử dụng phần mềm Proteus để thiết kế mô phỏng sơ đồ module hệthống cảnh báo cháy, nổ. Đầu tiên em lựa chọn các linh kiện cần thiết trong phần mềm như sau:
<small> </small>
<i>Hình 2.1 Các linh kiện cần thiết</i>
Sau đó, bằng cách sử dụng các linh kiện cần thiết cùng một số linh kiện khá và kết nối các linh kiện đó một cách hợp lý, chính xác. Em thiết kế được sơ đồ mơ phịng hệ thống cảnh báo cháy, nổ như sau:
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><i>Hình 2.2 Sơ đồ mơ phỏng hệ thống</i>
<b>2.2 Lập trình cho hệ thống</b>
Bằng cách sự dụng phần mềm Arduino IDE để soạn thảo mã nguồn cho các thiết bị, board mạch arduino trong hệ thống. Em có mã nguồn cụ thể như sau:
<small> </small>
<i>Hình 2.3 Mã nguồn Arduino của hệ thống</i>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">hằng là lamp, speaker, sensor và gán cho giá trị là giá trị của chân kết nối của linh kiện đèn và loa với bo mạch.
<small> </small>
<i>Hình 2.4 Mã nguồn Arduino của hệ thống</i>
Tại hình 2.4 là mã nguồn của phần setup() trong nội dung mã nguồn. Những lệnh trong setup() sẽ được chạy khi chương trình của bạn khởi động. Hệ thống sẽ bắt đầu khởi tạo LCD ,dịch con trỏ tới hàng 0, cột 0 sau đó in ra màn hình dịng chữ “Thiet bi”, tiếp theo dịch con trỏ tới hàng0 ,cột 1 ,rồi in ra dòng chữ “Canh bao chay”.
Sau khi setup() chạy xong, những lệnh trong loop() được chạy. Chúngsẽ lặp đi lặp lại liên tục cho tới khi nào bạn ngắt nguồn của board
Arduino mới thôi.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><small> </small>
<i>Hình 2.5 Mã nguồn Arduino của hệ thống</i>
Bắt đầu trong phương thức loop(), ta khai báo biến và sử dụng câu điều kiện if để kiểm tra điều kiện khi đọc dữ liệu từ cảm biến nếu cảm biến chuyền về giá trị 1 thì sẽ thực hiện các câu lệnh bên trong câu điều kiện và hiển thị dòng chữ “Gia Tri Value” .Tiếp đó hệ thống sẽ dịch con trỏ tới hàng 0, cột 1 và hiển thị “Co chay” trên màn hình LCD. Cùng lúc đó hệ thống đèn và loa sẽ được bật phát cảnh báo có cháy.
<small> </small>
<i>Hình 2.6 Mã nguồn Arduino của hệ thống</i>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Tại hình 2.7 nếu cảm biến báo về giá trị 0 thì sẽ thực hiện các câu lệnh này. Các câu lệnh như hiển thị dòng chữ “Gia Tri Value” và “Binh Thuong” lên màn hình LCD.Cùng đó hệ thống đèn và loa sẽ tắt.
Sau khi đã soạn thảo xong mã nguồn, em tiến hành biên dịch mã nguồn sang file HEX và nhúng vào Board mạch của hệ thống.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><b>CHƯƠNG 3 : DEMO CHƯƠNG TRÌNH</b>
<b>3.1 Khi khơng phát hiện cháy, nổ</b>
Khi không phát hiện tia lửa hay khi giá trị logic mà cảm biến lửa truyềnvề mang giá trị 0.
<i>Hình 3.1 Tổng quan sơ đồ hệ thống khi khơng phát hiện cháy, nổ</i>
Tại hình 3.1 ta có thể thấy khi ta thiết lập giá trị nhận được của cảm biến hồng ngoại là 0 thì mà hình LCD hiển thị dòng chữ “Binh Thuong”.
<b>3.2 Khi phát hiện cháy,nổ</b>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><i>Hình 3.2 Tổng quan sơ đồ hệ thống khi phát hiện cháy, nổ</i>
Ta có thấy dễ dàng nhận thấy , khi giá trị cảm biến lửa thay đổi là 1 thì lập tức đèn báo sẽ đc bật, loa sẽ phát ra tiếng cảnh báo và màn hình LCD sẽ hiển thị dịng chữ “ Co chay”.
Qua đó, em nhận định hệ thống mô phỏng đã nhận mã nguồn mà em soạn thảo. Chạy đúng theo những gì đã thiết kế cho bài tốn, tiếp nhận và xử lý các thơng tin thu nhận về được từ các cảm biến tốt, đáp ứng được việc cảnh báo phát hiện tia lửa từ đó đưa ra những hành động xử lý tiếp theo cho hệ thống báo cháy.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><b>KẾT LUẬN</b>
Từ việc phân tích và thực hiện việc giải quyết bài toán bằng việc sử dụng các kiến thức đã học và tìm hiểu thêm các tài liệu tham khảo em thuđược những kiến thức và kỹ năng như sau:
Về kiến thức: Phân tích và trình bày được những nguyên lý cơ bản, các đặc trưng và các kiến thức nền tảng về vi xử lý, vi điều khiển. Trình bày được mơ hình tổng qt của hệ thống nhúng. Trình bày được các thành phần phần cứng và phần mềm của các hệ thống nhúng. Trình bày được các phương pháp thiết kế, cài đặt và kiểm thử các hệ thống nhúng. Trình bày được phương pháp thiết kế hệ thống nhúng với phần mềm Proteus. Có khả năng lập trình Arduino và sử dụng các phần mềm hỗ trợ.
Về kỹ năng: Có kỹ năng lập trình xây dựng trình điều khiển cho vi điều khiển, hệ thống nhúng. Vận dụng kiến thức để thiết kế hệ thống nhúng với bộ xử lý FPGA - Phân tích, thiết kế hệ thống vi xử lý, vi điều khiển, lắp ráp và kết nối các thành phần hệ thống. Thiết kế một hệ thống nhúng ứng dụng cụ thể trong thực tế.
Năng lực tự chủ và trách nhiệm: Có năng lực dẫn dắt về chun mơn phục vụ nghiệp vụ về quản lý dự án về công nghệ thơng tin; có sáng kiến trong q trình thực hiện nhiệm vụ được giao; có khả năng tự định
hướng, thích nghi với các mơi trường làm việc khác nhau; tự học tập, tíchlũy kiến thức, kinh nghiệm để nâng cao trình độ chun mơn nghiệp vụ về cơng nghệ thơng tin; có khả năng đưa ra được kết luận về các vấn đề chuyên môn, nghiệp vụ về công nghệ thơng tin; có năng lực lập kế hoạch,điều phối, phát huy trí tuệ tập thể; có năng lực đánh giá và cải tiến các hoạt động chuyên môn nghiệp vụ về cơng nghệ thơng tin
Việc phân tích và trình bày bài tốn có thể cịn nhiều sai sót, em rất mong nhận được những ý kiến đóng góp của thầy cô bài làm của em đượctốt và kiến thức được hoàn thiệt hơn.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>DANH MỤC TÀI LIỆU THAM KHẢO</b>
</div>