Tìm hiểu về nền tảng Arduino và xây dựng bộ báo cháy tự động

24 107 2
Tìm hiểu về nền tảng Arduino và xây dựng bộ báo cháy tự động

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠ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 : “Tìm hiểu tảng Arduino xây dựng báo cháy tự động” Ngày …Tháng …Năm 2020 NGUYỄN MINH TUẤN - CNTĐH K15A MỤC LỤC DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU Chương TÌM HIỂU VỀ LẬP TRÌNH ARDUINO 1.1.Lịch sử hình thành tảng Arduino 1.2.Giới thiệu mơi trường lập trình Arduino - Arduino IDE 1.3.Cấu trúc chương trình Arduino IDE 11 Chương 12 TÌM HIỂU VỀ CÁC THIẾT BỊ PHẦN CỨNG 12 2.1.Vi điều khiển Atmega328 12 2.2.IC chuyển đổi USB sang UART CH340G 13 2.3.Còi báo 13 2.4.Cảm biến phát khói MQ2 14 2.5.Cảm biến phát lửa .15 Chương 16 THIẾT KẾ VÀ CHẾ TẠO BỘ BÁO CHÁY TỰ ĐỘNG 16 3.1.Sơ đồ khối 16 3.2.Nguyên lý hoạt động mạch in 18 3.3.Code-chương trình 18 3.4.Giao diện tương tác người dùng HMI 20 3.5.Vận hành thiết bị 21 Chương 22 KẾT LUẬN 22 NGUYỄN MINH TUẤN - CNTĐH K15A 4.1 Những điều thực đề tài .22 4.2 Hướng phát triển 22 TÀI LIỆU THAM KHẢO 23 PHỤ LỤC 24 NGUYỄN MINH TUẤN - CNTĐH K15A DANH MỤC HÌNH ẢNH Hình 1.1: Arduino Uno .7 Hình 1.2: Arduino mega 2560 Hình 1.3: Arduino Due .7 Hình 1.4: Phần mềm Arduino IDE Hình 1.5: Menu File Hình 1.6: Menu Tools 10 Hình 1.7: Chọn cổng Serial Port 10 Hình 1.8: Một chương trình Arduino 11 Hình 2.1: Sơ đồ chức chân Atmega328 .12 Hình 2.2: Chip CH340G 13 Hình 2.3: Cịi báo 13 Hình 2.4: Cảm biến MQ2 .14 Hình 2.5: Cảnh biến phát lửa 15 Hình 3.1: Sơ đồ khối hệ thống 16 Hình 3.2: Cáp USB type B .16 Hình 3.3: Sơ đồ nguyên lý khối điều khiển 17 Hình 3.4: Sơ đồ nguyên lý khối giao tiếp với máy tính cấp nguồn 17 Hình 3.5: Sơ đồ nguyên lý khối cảm biến còi cảnh báo .17 Hình 3.6: Hình 3D mạch in pcb .18 Hình 3.7: Chương trình thiết bị 19 Hình 3.8: Giao diện HMI .20 Hình 3.9: Cắm module cảm biến vào header 21 Hình 3.10: Thơng số hoạt động thiết bị 21 NGUYỄN MINH TUẤN - CNTĐH K15A LỜI NÓI ĐẦU Ngày khoa học công nghệ phát triển cách mạnh mẽ, việc ứng dụng cho hệ thống nhúng ngày trở nên phổ biến vào đời sống, từ ứng dụng đơn giản : điều khiển LED, bật tắt thiết bị điện tử… đến ứng dụng cho xã hội như: điều khiển đèn giao thông, hệ thống thang máy, cửa tự động… ứng dụng lớn điều khiển robot, tên lửa… Với kiến thức học tìm hiểu từ trường học sống tại, em muốn góp phần phát triển xã hội cách học hỏi đưa sản phẩm có ích cho sống Đề tài “Tìm hiểu tảng Arduino xây dựng báo cháy tự động” ví dụ nhỏ thiết bị hữu ích gia đình Nội dung để tài gồm chương: - Chương 1: Tìm hiểu lập trình Arduino - Chương 2: Tìm hiểu thiết bị phần cứng - Chương 3: Thiết kế chế tạo báo cháy tự động Trong suốt trình thực đề tài, em giúp đỡ thầy Khoa Cơng nghệ Tự động hóa, đặc biệt thầy ThS Vũ Thành Vinh Em xin chân thành cám ơn! NGUYỄN MINH TUẤN - CNTĐH K15A Chương TÌM HIỂU VỀ LẬP TRÌNH ARDUINO 1.1.Lịch sử hình thành tảng Arduino Arduino khởi động vào năm 2005 dự án dành cho sinh viên trại Interaction Design Institude Ivera (Viện thiết kế tương tác Ivrea) Ivrea, Italya Cái tên “Arduino” đến từ quán bar đó, nơi mà nhà sáng lập dự án thường xuyên gặp mặt Các thiết bị dựa tảng Arduino lập trình ngôn ngữ riêng Ngôn ngữ dựa ngôn ngữ Wiring viết cho phần cứng nói chung vài mơi trường phát triển tích hợp (IDE) chạy máy tính cá nhân Và Wiring lại biến thể C/C++ Sau tảng Wiring hoàn thành, nhà nghiên cứu làm việc với để giúp nhẹ hơn, rẻ khả dụng cộng đồng mã nguồn mở, số nhà nghiên cứu David Cuarlielles phổ biến ý tưởng Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, không tốn cho người yêu thích, sinh viên giới chuyên nghiệp để tạo thiết bị có khả tương tác với môi trường thông qua cảm biến cấu chấp hành Thông tin thiết kế phần cứng cung cấp công khai để muốn tự làm mạch Arduino tay tự thực (mã nguồn mở) Người ta ước tính khoảng giữ năm 2011 có 300.000 mạch Arduino thức thương mai hóa, vào năm 2013 có khoảng 700.00 mạch đến tay người tiêu dùng NGUYỄN MINH TUẤN - CNTĐH K15A Phần cứng Arduino gốc sản xuất công ty Italy tên làm Smart Projects Một vài board dẫn xuất từ Arduino thiết kế công ty Mỹ tên SparkFun Electronics Nhiều phiên Arduino sản xuất phù hợp cho nhiều mục đích sử dụng: Hình 1.1: Arduino Uno Hình 1.2: Arduino mega 2560 Hình 1.3: Arduino Due NGUYỄN MINH TUẤN - CNTĐH K15A 1.2.Giới thiệu mơi trường lập trình Arduino - Arduino IDE Giao diện phần mềm Arudino IDE có nhiều phần, nhiên cần ý đến phần quan trọng nên hình dây Hình 1.4: Phần mềm Arduino IDE Chức phần sau:  Nút kiểm tra chương trình: Dùng để kiểm tra xem chương trình viết có lỗi hay khơng Nếu chương trình bị lỗi phần mềm Arduino IDE 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 board Arduino: Dùng để nạp chương trình viết xuống mạch Arduino Trong trình nạp, chương tình kiểm tra lỗi trước sau thực nạp xuống Arduino  Hiển thị hình giao tiếp máy tính: Khi nhấp vào biểu tượng kính lúp phần giao tiếp với máy tính mở Phần hiển thị thông số mà người dùng muốn đưa lên hình Muốn đưa lên hình phải có lệnh Serial.print() đưa thơng số cần hiển thị lên hình  Vùng lập trình: Vùng để người lập trình thực việc lập trình cho chương trình  Vùng thơng báo thơng tin: Có chức thơng báo thơng tin lỗi chương trình vấn đề liên quan đến chương trình lập  Sử dụng số menu thông dụng phần mềm Arduino IDE: NGUYỄN MINH TUẤN - CNTĐH K15A Có vài menu phần mềm IDE, nhiên thông dụng menu File, ngồi tính mở file hay lưu file, phần menu có mục đáng ý Example Phần Example (ví dụ) đưa ví dụ sẵn để người lập trình tham khảo, giảm bớt thời gian lập trình Hình bên thể việc chọn ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino Ví dụ led chớp tắt thường dùng để kiểm tra board mua Hình 1.5: Menu File Một menu thường sử dụng khác Menu Tools Khi bắt đầu 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 board Arduino Uno, người dùng sử dụng kiểu board khác chọn kiểu board dùng NGUYỄN MINH TUẤN - CNTĐH K15A Hình 1.6: Menu Tools Bên cạnh việc chọn board phần quan trọng chọn cổng COM Hình bên minh họa cho việc chọn cổng COM Khi lần đầu gắn mạch Arduino vào máy tính, người dùng cần nhấn chọn cổng COM cách vào Tools ->Serial Port sau nhấn chọn cổng COM, ví dụ COM Những lầm sau kh đưa board Arudino vào máy tính khơng cần chọn cổng COM, đưa board khác vào phải chọn lại cổng COM Hình 1.7: Chọn cổng Serial Port NGUYỄN MINH TUẤN - CNTĐH K15A 10 1.3 Cấu trúc chương trình Arduino IDE Phần đưa cấu trúc chương trình Arduino IDE Hai hàm bắt buộc phải có hàm setup() loop() Các lệnh hàm setup() chạy chương trình khởi động Ở hàm ta sử dụng để khai báo giá trị biến, thiết lập thông số Sau hàm setup() chạy xong, lệnh hàm loop() chạy Các lệnh hàm lặp lại vô hạn Bất ta nhấn nút Reset , chương trình trở trạng thái Arduino cấp nguồn Hình 1.8: Một chương trình Arduino NGUYỄN MINH TUẤN - CNTĐH K15A 11 Chương TÌM HIỂU VỀ CÁC THIẾT BỊ PHẦN CỨNG 2.1.Vi điều khiển Atmega328 Vi điều khiển sử dụng cho ứng dụng Atmega328 Hình 2.9: Sơ đồ chức chân Atmega328 Atmega328 chíp vi điều khiển sản xuất bảng hãng Atmel thuộc họ MegaAVR Nó vi điều khiển bit dựa kiến trúc RISC nhớ chương trình 32kb ISP flash ghi xóa hàng nghìn lần, 1kb EEPROM, nhớ RAM vơ lớn giới vi xử lý bit (2kb SRAM) Với 23 chân sử dụng cho kết nối vào I/O, 32 ghi, timer/counter lập trình, có ngắt nội ngoại, giao thức truyền thông nối tiếp USART, SPI, I2C Ngồi sử dụng biến đổi tương tự ADC 10 bít mở rộng tới kênh, … NGUYỄN MINH TUẤN - CNTĐH K15A 12 2.2 IC chuyển đổi USB sang UART CH340G IC CH340G chip chuyển đổi bus USB nhận chuyển đổi USB sang truyền thông nối tiếp, chuyển USB sang IrDA hồng ngoại chuyển USB sang giao tiếp máy in Trong chế độ truyền thông nối tiếp, CH340G cung cấp tín hiệu liên lạch MODEM chung, sử dụng để khuếch đại giao tiếp nối tiếp bất đồng máy tính nâng cấp trực tiếp thiết bị nối tiếp lên bus USB Hình 2.10: Chip CH340G 2.3.Còi báo Còi sử dụng để cảnh báo người dùng mà cảm biến phát khói lửa mơi trường Cịi sử dụng nguồn 5Vdc Hình 2.11: Cịi báo NGUYỄN MINH TUẤN - CNTĐH K15A 13 2.4.Cảm biến phát khói MQ2 MQ2 cảm biến khí để phát khí gây cháy Nó cấu tạo từ chất bán dẫn SnO2 Chất có độ nhạy cảm thấp với khơng khí sạch, khí mơi trường có chất gây chấy, độ dẫn thay đổi Chính nhờ đặc điểm người ta thêm vào mạch đơn giản để biến đổi độ nhạy sang điện áp Khi môi trường điện áp đầu cảm biến thấp, giá trị điện áp đầu tăng nồng độ cháy xung quanh MQ2 cao MQ2 hoạt động tốt mơi trường khí hóa lỏng LPG, H2 khí dễ gây cháy khác Nó sử dụng rộng rãi công nghiệp dân dụng mạch đơn giản, chi phí thấp Trên thị trường có nhiều loại module cảm biến khí gas tích hợp sẵn có cách sử dụng đơn giản hiệu Trong module có sử dụng cảm biến khí gas MQ2 Khi phát khí gas rị rỉ module xuất tín hiệu dạng DOUT_ dạng số AOUT_dạng tương tự Người sử dụng tùy vào mục đích sử dụng để lựa chọn tín hiệu phù hợp Hình 2.12: Cảm biến MQ2 Tổng quan module:  Aout: Điện áp tương tự Có giá trị khoảng từ 0.3->4.5V, phụ thuộc vào nồng độ khí xung quanh cảm biến  Dout : Điện áp số, có giá trị phụ vào điện áp tham chiếu nồng độ khí đo NGUYỄN MINH TUẤN - CNTĐH K15A 14 Ưu điểm: Việc có chân số Dout thuận tiện để mắc ứng dụng đơn giản, không cần đến vi điều khiển Khi ta cần chỉnh biến trở tới giá trị nồng độ ta muốn cảnh báo Khi nông độ MQ2 đo thấp mức cho phép Dout =1, đèn led tắt Khi nồng độ đo lớn nồng độ cho phép, Dout = 0, đèn led sáng Nhược điểm: Một điều khó khăn làm việc với MQ2 ta khó quy từ điện áp Aout giá trị nồng độ ppm 2.5.Cảm biến phát lửa Mọi vật có nhiệt độ lớn 0°K phát tia hồng ngoại bước sóng khác nhau, ví dụ hơng ngoại remote điều khiển có bước sóng từ 0.75-1.4µm lửa thường dải 760-1100nm Cho nên ta dùng led thu tín hiệu hồng ngoại để bắt tín hiệu hồng ngoại mà lửa phát  Nguyên lý hoạt động: Khi modue hoạt động chân tin hiệu báo tín hiệu thiết bị điều khiển Lúc tín hiệu chân Dout:   Tín hiệu mức 1: Khơng có lửa Tín hiệu mức 0: Có lửa Hình 2.13: Cảnh biến phát lửa NGUYỄN MINH TUẤN - CNTĐH K15A 15 Chương THIẾT KẾ VÀ CHẾ TẠO BỘ BÁO CHÁY TỰ ĐỘNG 3.1.Sơ đồ khối Hình 3.14: Sơ đồ khối hệ thống  Nguồn cấp cho thiết bị đồ án lấy từ nguồn máy tính thơng qua cáp USB Hình 3.15: Cáp USB type B  Khối xử lý (Atmega328, CH340G…) xử lý tín hiệu nhận từ cảm biến phát khói cảm biến phát lửa, sau truyền liệu lên phần mềm máy tính NGUYỄN MINH TUẤN - CNTĐH K15A 16 Hình 3.16: Sơ đồ nguyên lý khối điều khiển Hình 3.17: Sơ đồ nguyên lý khối giao tiếp với máy tính cấp nguồn  Khối cảm biến bao gồm cảm biến phát khói cảm biến phát lửa Khi xuất khói lửa mơi trường cịi xe kêu lên người dùng biết Hình 3.18: Sơ đồ nguyên lý khối cảm biến còi cảnh báo NGUYỄN MINH TUẤN - CNTĐH K15A 17 3.2 Nguyên lý hoạt động mạch in  Nguyên lý hoạt động thiết bị Khi cấp nguồn mạch hoạt động theo chương trình thiết lập vi điều khiển Chu trình hoạt động mơ hình hệ thống thu nhận tín hiệu cảm biến Các tín hiệu trung tâm xử lý truyền tải lên phần mềm máy tính để người dùng biết thơng số mơi trường, phát khói hay lửa cịi kêu để người tìm cách khắc phục  Mạch in pcb Mạch in thiết kế từ phần mềm vẽ mạch chuyên dụng OrCad, Altium,… Đối với đồ án mạch in vẽ Altium Hình 3.19: Hình 3D mạch in pcb 3.3.Code-chương trình điều khiển thiết bị Với mơi trường lập trình đơn giản, dễ sử dụng, ngôn ngữ dể hiểu dựa tảng C/C++ quen thuộc với người làm kỹ thuật Adruino IDE lựa chọn thích hợp NGUYỄN MINH TUẤN - CNTĐH K15A 18 Hình 3.20: Chương trình thiết bị Chương trình thiết bị chia thành phần:  Phần 1: từ dòng -> dịng 4: phần có nhiệm vụ khai báo chân kết nối cảm biến với vi điều khiển  Phần 2: hàm void setup(): có nhiệm vụ : khởi tạo serial để kết nối với máy tính định nghĩa chân vào  Phần 3: hàm void loop(): ta đọc giá trị analog cảm biến phát khói MQ2 đọc giá trị digital cảm biến phát lửa in lên máy tính đưa cảnh báo có NGUYỄN MINH TUẤN - CNTĐH K15A 19 3.4 Giao diện tương tác người dùng HMI Hình 3.21: Giao diện HMI Giao diện HMI viết ngôn ngữ C# Visual Studio 2013 gồm phần:  Phần 1: Cài đặt thông số cho việc truyền nhận máy tính vi điều  Phần 2: Dữ liệu đo hiển thị 2s/lần lên hình lưu khiển liệu dạng file Excel NGUYỄN MINH TUẤN - CNTĐH K15A 20 3.5 Vận hành thiết bị  B1: Cắm module cảm biến phát lửa phát khói lên header tương ứng Hình 3.22: Cắm module cảm biến vào header   B2: Cấp nguồn cho mạch thông qua dây cáp USB type B B3: Kết nối giao diện HMI với bo mạch thông qua cổng USB Khi mà phát lửa khói dịng chữ đo thơng số hiển thị màu đỏ để cảnh báo người dùng cịi kêu lên Hình 3.23: Thơng số hoạt động thiết bị NGUYỄN MINH TUẤN - CNTĐH K15A 21 Chương KẾT LUẬN Sau thời gian nghiên cứu tìm hiểu đề tài này, đến thiết bị báo cháy tự động thiết kế, chế tạo thành công 4.1 Những điều thực đề tài  Tìm hiểu biết cách thức hoạt động tảng Arduino  Tìm hiểu nguyên lý hoạt động cảm biến phát khói cảm biến phát lửa  Tìm hiểu biết thêm ngơn ngữ lập trình C# để viết giao diện theo dõi thông số thiết bị  Thiết kế chế tạo thiết bị báo cháy tự động 4.2 Hướng phát triển  Nghiên cứu chế tạo sản phẩm phát nhiều khí gây nguy hại đến người mội trường  Tích hợp thiết bị hệ thống nhà tự động, smarthome để nâng cao chất lượng đảm bảo an toàn cho người dùng Do thời gian kiến thức cịn hạn hẹp nên khơng thể tránh thiếu sót thực đề tài Rất mong nhận đánh giá, góp ý quý báo quý thầy cô bạn NGUYỄN MINH TUẤN - CNTĐH K15A 22 TÀI LIỆU THAM KHẢO https://components101.com/sites/default/files/component_datasheet/MQ2%20Gas %20sensor.pdf http://rogerbit.com/wprb/wp-content/uploads/2018/01/Flame-sensor-arduino.pdf http://arduino.vn/ NGUYỄN MINH TUẤN - CNTĐH K15A 23 PHỤ LỤC Code chương trình nạp vào vi điều khiển #define buzzer // Định nghĩa chân điều khiển Còi int smoke_sensor = A3; // Định nghĩa chân analog để đọc liệu từ cảm biến khói #define flame_sensor 11 // Định nghĩa chân đoc tín hiệu digital cảm biến lửa int flame_detected; void setup() { Serial.begin(115200); // khởi tạo serial baudeatr 115200 pinMode(buzzer,OUTPUT); // định nghĩa còi đầu pinMode(flame_sensor,INPUT); // định nghĩa chân Dout cảm biến lửa đầu vào } void loop() { while(Serial.available()) { char inChar = (char)Serial.read(); if(inChar=='s') { while(1) { if(Serial.available()) { inChar = (char)Serial.read();} if(inChar=='d') { break;} int adc_value = analogRead(smoke_sensor); // đọc tín hiệu analog từ chân A3 Serial.print(adc_value); // in liệu lên phần mềm máy tính Serial.print("\r"); flame_detected = digitalRead(flame_sensor); // đọc giá trị cảm biến lửa Serial.print(flame_detected); //in liệu lên phần mềm máy tính Serial.print("\n"); delay(2000); if(adc_value>200||flame_detected==0) // có khói lửa { digitalWrite(buzzer,HIGH); // còi kêu delay(3000); digitalWrite(buzzer,LOW); } else // khơng có khói lửa { digitalWrite(buzzer,LOW); // còi tắt } } } } } NGUYỄN MINH TUẤN - CNTĐH K15A 24 ... loop() { while(Serial.available()) { char inChar = (char)Serial.read(); if(inChar=='s') { while(1) { if(Serial.available()) { inChar = (char)Serial.read();} if(inChar=='d') { break;} int adc_value

Ngày đăng: 29/07/2020, 07:30

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan