TỔNG QUAN VỀ ĐỀ TÀI
LÝ DO LỰA CHỌN ĐỀ TÀI
Ngày nay, sự phát triển vượt bậc của khoa học kỹ thuật đã đưa điện tử vào nhiều lĩnh vực, phục vụ cho nhu cầu chăm sóc sức khỏe và bảo vệ tính mạng, tài sản của con người.
Với sự cải thiện trong đời sống, việc sử dụng bếp gas ngày càng trở nên phổ biến, tuy nhiên, an toàn khi sử dụng gas là một vấn đề cần được chú trọng Tiếp xúc lâu dài với khí gas vượt mức cho phép có thể dẫn đến ngộ độc, thậm chí tử vong Hơn nữa, khí gas rò rỉ vào không khí có nguy cơ gây cháy nổ, ảnh hưởng nghiêm trọng đến an toàn của người sử dụng và những người xung quanh Do đó, việc phát hiện và xử lý sự cố rò gas là rất cần thiết, đặc biệt đối với sinh viên thường sử dụng bình gas mini không đảm bảo chất lượng Nhận thấy tầm quan trọng của vấn đề này, em đã chọn nghiên cứu về thiết bị cảnh báo rò rỉ khí gas, giúp nhận biết sự cố rò rỉ một cách dễ dàng, phục vụ cho các tòa nhà và hộ gia đình.
1.2 Giớ thiệu về đề tài
Trong xã hội hiện đại, khí đốt (khí Gas) đã trở thành lựa chọn phổ biến cho việc nấu ăn hàng ngày và trong các ngành công nghiệp Trước đây, khoảng 15 năm, chỉ có các thành phố lớn sử dụng khí đốt, trong khi nông thôn vẫn chủ yếu dùng bếp rạ và củi Hiện nay, gần như 99% hộ gia đình từ nông thôn đến thành phố đã chuyển sang sử dụng khí đốt Tuy nhiên, việc sử dụng khí gas cũng tiềm ẩn nguy cơ cháy nổ cao, đặc biệt khi có sự cố rò rỉ Chỉ cần một tia lửa điện từ ổ cắm hoặc thiết bị điện là có thể gây ra hỏa hoạn, ảnh hưởng nghiêm trọng đến tài sản và tính mạng con người Do đó, nghiên cứu của chúng tôi nhằm phát hiện khí gas và ngăn chặn hỏa hoạn, bảo vệ an toàn cho con người và tài sản.
Khi phát hiện khí gas rò rỉ, thiết bị sẽ tự động phát còi báo động để cảnh báo người trong nhà, đồng thời kích hoạt quạt thông gió thông qua việc đóng ngắt relay Trong trường hợp có cháy, nhiệt độ không khí trong phòng tăng nhanh và độ ẩm giảm xuống dưới ngưỡng cho phép đã được cài đặt, thiết bị sẽ khởi động máy bơm nước để phun sương làm giảm nhiệt độ và hỗ trợ chữa cháy hiệu quả.
Mục tiêu đồ án chúng em đặt ra sau khi hoàn thành xong là:
- Nắm bắt được cấu trúc phần cứng, sơ đồ khối, nguyên lý làm việc của mạch điều khiển.
- Tìm hiểu về lập trình Arduino
- Biết cách làm một đồ án hoàn chỉnh phục vụ cho việc làm đồ án tốt nghiệp về sau.
- Sản phẩm hoạt động ổn định với đầy đủ các chức năng cần thiết cho việc
“ cảnh báo khí gas và phòng chống cháy nổ “
- Sản phẩm nhỏ, gọn, mang tính thẩm mỹ cao.
- Giá thành sản phẩm phù hợp với người tiêu dùng hiện nay.
CHƯƠNG 2: THIẾT KẾ ĐỀ TÀI
Sau khi hoàn thiện bộ thiết bị cảnh báo khí ga và phòng chống cháy nổ sẽ có các chức năng sau :
Thực hiện chức năng cảnh báo khi phát hiện có khí gas và bật quạt thông gió hút khí gas ra khỏi phòng
Khi nhiệt độ phòng vượt quá mức cài đặt, thường không quá 45°C, Relay2 sẽ được kích hoạt để bật máy bơm phun nước, nhằm hạ nhiệt độ trong phòng và dập tắt lửa.
2.2 THIẾT KẾ PHẦN CỨNG 2.2.1 Sơ đồ khối chức năng
Hình 2.2.1 Sơ đồ khối chức của thiết bị
2.2.2 Giới thiệu về board Arduino mega2560
Arduino là một board mạch vi xử lý được phát triển tại Ivrea, Ý, nhằm tạo ra các ứng dụng tương tác với nhau và môi trường xung quanh Phần cứng của Arduino bao gồm một board mạch nguồn mở dựa trên vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit Các model hiện tại được trang bị 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số, tương thích với nhiều board mở rộng khác nhau.
Mạch Arduino bao gồm vi điều khiển AVR và nhiều linh kiện bổ sung, giúp dễ dàng lập trình và mở rộng với các mạch khác Một trong những đặc điểm nổi bật của Arduino là các kết nối tiêu chuẩn, cho phép người dùng kết nối với các module mở rộng, gọi là shield Các shield này có thể kết nối trực tiếp qua các chân khác nhau hoặc sử dụng giao thức I²C, cho phép nhiều shield hoạt động song song Arduino thường sử dụng các dòng chip megaAVR như ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560, cùng với một số vi xử lý khác tương thích Hầu hết các mạch có bộ điều chỉnh tuyến tính 5V và thạch anh dao động 16 MHz, trong khi một số thiết kế như LilyPad chạy ở 8 MHz và không có bộ điều chỉnh điện áp onboard Vi điều khiển Arduino có thể được lập trình sẵn với boot loader, cho phép tải chương trình trực tiếp vào bộ nhớ flash on-chip mà không cần bộ nạp bên ngoài, giúp đơn giản hóa quá trình sử dụng Arduino.
Khi sử dụng ngăn xếp phần mềm Arduino, các board được lập trình qua kết nối RS-232, tuy nhiên phương thức thực hiện phụ thuộc vào đời phần cứng Các board Serial Arduino có mạch chuyển đổi RS232 sang TTL, trong khi các board Arduino hiện tại được lập trình qua cổng USB nhờ chip chuyển đổi USB-to-serial như FTDI FT232 Một số biến thể như Arduino Mini và Boarduino không chính thức sử dụng adapter hoặc cáp USB-to-serial có thể tháo rời, Bluetooth hoặc các phương thức khác Nếu sử dụng công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được áp dụng.
Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển cho các mạch bên ngoài, với các phiên bản như Diecimila, Duemilanove và Uno có 14 chân I/O kỹ thuật số, trong đó 6 chân có khả năng tạo xung PWM và 6 chân có thể sử dụng như chân I/O số Các chân này được bố trí ở phía trên của board thông qua các header 0.10-inch (2.5 mm), và nhiều shield ứng dụng plug-in cũng được phát triển để sử dụng.
Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard.
Arduino có nhiều biến thể như Arduino-compatible và Arduino-derived, với một số có chức năng tương đương và có thể thay thế cho nhau Nhiều mở rộng cho Arduino được thực hiện bằng cách thêm driver đầu ra, thường được sử dụng trong giáo dục để đơn giản hóa cấu trúc của các robot nhỏ và 'con rệp' Một số board khác tương đương về điện nhưng có sự thay đổi về hình dạng, có thể duy trì hoặc không độ tương thích với các shield Một số biến thể còn sử dụng bộ vi xử lý hoàn toàn khác biệt, mang lại các mức độ tương thích khác nhau.
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng được phát triển bằng Java, hỗ trợ ngôn ngữ lập trình Processing và dự án Wiring.
Chương trình này được thiết kế dành cho người mới bắt đầu trong lĩnh vực phát triển phần mềm, bao gồm một trình soạn thảo mã với các tính năng như đánh dấu cú pháp, tự động khớp dấu ngoặc và canh lề tự động Ngoài ra, nó còn hỗ trợ biên dịch và tải chương trình lên board chỉ với một cú nhấp chuột Mỗi chương trình hoặc mã viết cho Arduino được gọi là một sketch.
Các chương trình Arduino được phát triển bằng ngôn ngữ C hoặc C++, sử dụng thư viện phần mềm "Wiring" để đơn giản hóa các thao tác input/output Người dùng chỉ cần định nghĩa hai hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có khả năng hoạt động hiệu quả.
Hàm setup() trong Arduino được thực thi khi khởi động chương trình, có nhiệm vụ thiết lập các cài đặt ban đầu, trong khi hàm loop() sẽ được gọi lặp đi lặp lại cho đến khi nguồn điện được tắt Một ví dụ điển hình cho một chương trình điều khiển vi điều khiển là việc làm cho một bóng đèn LED sáng và tắt.
In this Arduino code, the LED connected to pin 13 is set as an output in the setup function The loop function then turns the LED on for one second, followed by turning it off for another second, creating a blinking effect This simple program illustrates how to control an LED using digital signals and delays in milliseconds.
MỤC TIÊU ĐỒ ÁN
Mục tiêu đồ án chúng em đặt ra sau khi hoàn thành xong là:
- Nắm bắt được cấu trúc phần cứng, sơ đồ khối, nguyên lý làm việc của mạch điều khiển.
- Tìm hiểu về lập trình Arduino
- Biết cách làm một đồ án hoàn chỉnh phục vụ cho việc làm đồ án tốt nghiệp về sau.
- Sản phẩm hoạt động ổn định với đầy đủ các chức năng cần thiết cho việc
“ cảnh báo khí gas và phòng chống cháy nổ “
- Sản phẩm nhỏ, gọn, mang tính thẩm mỹ cao.
- Giá thành sản phẩm phù hợp với người tiêu dùng hiện nay.
CHƯƠNG 2: THIẾT KẾ ĐỀ TÀI
Sau khi hoàn thiện bộ thiết bị cảnh báo khí ga và phòng chống cháy nổ sẽ có các chức năng sau :
Thực hiện chức năng cảnh báo khi phát hiện có khí gas và bật quạt thông gió hút khí gas ra khỏi phòng
Khi nhiệt độ phòng vượt quá mức thiết lập, thường không quá 45°C, Relay2 sẽ được kích hoạt để bật máy bơm phun nước, giúp hạ nhiệt độ trong phòng và dập tắt lửa.
2.2 THIẾT KẾ PHẦN CỨNG 2.2.1 Sơ đồ khối chức năng
Hình 2.2.1 Sơ đồ khối chức của thiết bị
2.2.2 Giới thiệu về board Arduino mega2560
Arduino là một board mạch vi xử lý được phát triển tại Ivrea, Ý, nhằm tạo ra các ứng dụng tương tác hiệu quả Phần cứng của nó bao gồm một board mạch nguồn mở dựa trên vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit Các model hiện tại được trang bị 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số, tương thích với nhiều board mở rộng khác nhau.
Mạch Arduino bao gồm vi điều khiển AVR và nhiều linh kiện bổ sung, giúp lập trình dễ dàng và mở rộng với các mạch khác Điểm nổi bật của Arduino là các kết nối tiêu chuẩn, cho phép kết nối với các module mở rộng gọi là shield Một số shield giao tiếp trực tiếp qua các chân khác nhau, trong khi nhiều shield khác sử dụng bus I²C, cho phép xếp chồng và sử dụng song song Arduino thường sử dụng chip megaAVR như ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560, cùng với một số vi xử lý khác cho các mạch tương thích Hầu hết các mạch có bộ điều chỉnh tuyến tính 5V và thạch anh dao động 16 MHz, mặc dù một số thiết kế như LilyPad sử dụng 8 MHz và không có bộ điều chỉnh điện áp onboard Vi điều khiển Arduino có thể được lập trình với boot loader, cho phép tải chương trình vào bộ nhớ flash trên chip một cách đơn giản, giúp người dùng dễ dàng sử dụng máy tính như một bộ nạp chương trình.
Theo nguyên tắc, các board Arduino được lập trình qua kết nối RS-232, nhưng cách thực hiện phụ thuộc vào đời phần cứng Các board Serial Arduino có mạch chuyển đổi RS232 sang TTL, trong khi các board hiện tại được lập trình qua cổng USB nhờ chip chuyển đổi USB-to-serial như FTDI FT232 Một số biến thể như Arduino Mini và Boarduino không chính thức sử dụng board adapter hoặc cáp USB-to-serial tháo rời, Bluetooth, hoặc các phương thức khác Nếu sử dụng công cụ lập trình vi điều khiển truyền thống thay vì Arduino IDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được áp dụng.
Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển cho các mạch ngoài, với các phiên bản như Diecimila, Duemilanove và Uno có 14 chân I/O kỹ thuật số, trong đó 6 chân có khả năng tạo xung PWM và 6 chân có thể sử dụng như chân I/O số Các chân này được thiết kế nằm phía trên mặt board, kết nối qua các header 0.10-inch (2.5 mm), và nhiều shield ứng dụng plug-in cũng được thương mại hóa.
Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard.
Arduino có nhiều biến thể như Arduino-compatible và Arduino-derived, với một số phiên bản có chức năng tương đương và có thể thay thế cho nhau Nhiều mở rộng cho Arduino được thực hiện bằng cách thêm driver đầu ra, thường được sử dụng trong giáo dục để đơn giản hóa cấu trúc của các 'con rệp' và robot nhỏ Các board khác có thể tương đương về điện nhưng có sự khác biệt về hình dạng, đôi khi vẫn duy trì độ tương thích với các shield, đôi khi không Một số biến thể sử dụng bộ vi xử lý khác biệt, dẫn đến các mức độ tương thích khác nhau.
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng được phát triển bằng Java, hỗ trợ ngôn ngữ lập trình Processing và dự án Wiring.
Được thiết kế cho người mới bắt đầu trong lĩnh vực phát triển phần mềm, chương trình này cung cấp một trình soạn thảo mã với các tính năng như đánh dấu cú pháp, tự động khớp dấu ngoặc và tự động canh lề Nó cũng cho phép biên dịch và tải chương trình lên board chỉ với một cú nhấp chuột Mỗi chương trình hoặc mã viết cho Arduino được gọi là một sketch.
Các chương trình Arduino được lập trình bằng ngôn ngữ C hoặc C++, sử dụng thư viện phần mềm "Wiring" để đơn giản hóa các thao tác input/output Người dùng chỉ cần định nghĩa hai hàm để xây dựng một chương trình vòng thực thi (cyclic executive) có khả năng chạy hiệu quả.
Hàm setup() trong lập trình Arduino được sử dụng để thiết lập các cài đặt khi khởi động chương trình, trong khi hàm loop() được gọi liên tục cho đến khi nguồn tắt Một ví dụ điển hình về chương trình cho bộ vi điều khiển là điều khiển một bóng đèn LED sáng và tắt.
In this Arduino code, the LED connected to pin 13 is configured as an output in the setup function The loop function then turns the LED on for one second, followed by turning it off for another second, creating a blinking effect with a one-second delay between each state change.
Hầu hết các board Arduino đều có một đèn LED và điện trở kết nối giữa chân 13 và đất, điều này rất thuận tiện cho nhiều ứng dụng đơn giản Đoạn code được cung cấp không thể được nhận diện bởi một compiler C++ chuẩn như một chương trình hợp lệ Khi nhấn nút "Upload to I/O board" trong IDE, một bản sao của đoạn code sẽ được ghi vào một file tạm, kèm theo một header include bổ sung ở đầu và một hàm main() đơn giản ở cuối, để tạo thành một chương trình C++ có thể thực thi.
-Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chương trình, và sử dụng avrdude để upload chương trình lên board.
Nền tảng Arduino sử dụng vi điều khiển Atmel, vì vậy người dùng có thể phát triển phần mềm cho Arduino bằng cách sử dụng môi trường phát triển Atmel, bao gồm AVR Studio và các phiên bản Atmel Studio mới hơn.
Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega 1280, nổi bật với sự cải tiến về chip nhân Trong khi Arduino Mega 1280 sử dụng chip ATmega1280 với bộ nhớ flash 128KB, SRAM 8KB và EEPROM 4KB, Arduino Mega 2560 mang lại hiệu suất cao hơn và khả năng xử lý tốt hơn cho các dự án điện tử.
Bộ nhớ Flash: 256 KB, 8KB sử dụng cho Bootloader SRAM: 8 KB
Nguồn nuôi mạch: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc tròn DC
Arduino Mega 2560 là một mạch điều khiển nổi bật trong dòng Mega, sở hữu 54 chân digital IO và 16 chân analog IO, mang lại nhiều cải tiến vượt trội so với Arduino Uno Đặc biệt, bộ nhớ flash của Mega được nâng cấp gấp 4 lần so với phiên bản UNO R3 trước đó, cùng với việc trang bị 3 timer, giúp mở rộng khả năng lập trình và ứng dụng cho người dùng.
THIẾT KẾ ĐỀ TÀI
THIẾT KẾ PHẦN CỨNG
Hình 2.2.1 Sơ đồ khối chức của thiết bị
2.2.2 Giới thiệu về board Arduino mega2560
Arduino là một board mạch vi xử lý được phát triển tại thị trấn Ivrea, Ý, nhằm tạo ra các ứng dụng tương tác hiệu quả hơn Phần cứng của nó bao gồm một board mạch nguồn mở, sử dụng vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit Các model hiện tại được trang bị 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số, tương thích với nhiều board mở rộng khác nhau.
Mạch Arduino bao gồm vi điều khiển AVR và nhiều linh kiện bổ sung, cho phép lập trình dễ dàng và mở rộng với các mạch khác Một điểm nổi bật của Arduino là các kết nối tiêu chuẩn, giúp người dùng kết nối với các module mở rộng, gọi là shield Một số shield giao tiếp trực tiếp qua các chân, trong khi nhiều shield khác sử dụng bus I²C, cho phép xếp chồng và sử dụng song song Arduino thường sử dụng chip megaAVR như ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560, cùng với một số vi xử lý tương thích khác Hầu hết các mạch có bộ điều chỉnh tuyến tính 5V và thạch anh dao động 16 MHz, mặc dù một số thiết kế như LilyPad chạy ở 8 MHz và không có bộ điều chỉnh điện áp do kích thước hạn chế Vi điều khiển Arduino có thể được lập trình sẵn với boot loader, cho phép upload chương trình dễ dàng vào bộ nhớ flash on-chip mà không cần bộ nạp bên ngoài, làm cho việc sử dụng Arduino trở nên thuận tiện hơn.
Theo nguyên tắc, các board Arduino được lập trình qua kết nối RS-232, nhưng phương pháp thực hiện phụ thuộc vào đời phần cứng Các board Serial Arduino có mạch chuyển đổi RS232 sang TTL, trong khi các board Arduino hiện tại sử dụng cổng USB với chip chuyển đổi USB-to-serial như FTDI FT232 Một số biến thể như Arduino Mini và Boarduino không chính thức sử dụng board adapter hoặc cáp USB-to-serial có thể tháo rời, Bluetooth hoặc các phương thức khác Khi sử dụng công cụ lập trình vi điều khiển truyền thống thay vì Arduino IDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được áp dụng.
Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển cho các mạch ngoài, với các phiên bản như Diecimila, Duemilanove và Uno có 14 chân I/O kỹ thuật số, trong đó 6 chân hỗ trợ PWM và 6 chân có thể dùng làm input analog hoặc I/O số Các chân này được thiết kế nằm trên bề mặt board và kết nối qua các header 0.10-inch (2.5 mm) Ngoài ra, nhiều shield ứng dụng plug-in cũng được thương mại hóa để mở rộng khả năng của board.
Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard.
Có nhiều biến thể của Arduino như Arduino-compatible và Arduino-derived, với một số loại có chức năng tương đương và có thể thay thế cho nhau Nhiều mở rộng cho Arduino được thực hiện bằng cách thêm driver đầu ra, thường được sử dụng trong giáo dục để đơn giản hóa cấu trúc của các 'con rệp' và robot nhỏ Các board khác có thể tương đương về điện nhưng có sự thay đổi về hình dạng, đôi khi vẫn giữ độ tương thích với các shield, đôi khi không Một số biến thể sử dụng bộ vi xử lý khác biệt, dẫn đến các mức độ tương thích khác nhau.
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng được phát triển bằng Java, phục vụ cho ngôn ngữ lập trình Processing và dự án Wiring.
Chương trình này được thiết kế dành cho người mới bắt đầu trong lĩnh vực phát triển phần mềm, với một code editor tích hợp các tính năng như đánh dấu cú pháp, tự động khớp dấu ngoặc và canh lề Người dùng có thể biên dịch và tải chương trình lên board chỉ với một cú nhấp chuột Mỗi chương trình hoặc đoạn mã viết cho Arduino được gọi là một sketch.
Các chương trình Arduino được phát triển bằng ngôn ngữ C hoặc C++, sử dụng thư viện phần mềm "Wiring" để đơn giản hóa các thao tác nhập/xuất Người dùng chỉ cần định nghĩa hai hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có khả năng chạy hiệu quả.
Hàm setup() được gọi mỗi khi khởi động chương trình để thiết lập các cài đặt, trong khi hàm loop() được thực thi lặp đi lặp lại cho đến khi nguồn của board mạch tắt Một ví dụ điển hình cho một chương trình điều khiển đơn giản trên vi điều khiển là làm cho bóng đèn LED sáng và tắt, và trong môi trường Arduino, chương trình sẽ được viết theo cách tương tự.
In this Arduino code, the LED connected to pin 13 is configured as an output in the setup function The loop function repeatedly turns the LED on for one second, then turns it off for another second, creating a blinking effect This simple program effectively demonstrates basic LED control using digital signals.
Hầu hết các board Arduino đều có một đèn LED và điện trở kết nối giữa chân 13 và đất, điều này rất thuận tiện cho nhiều ứng dụng đơn giản Đoạn code được sử dụng không thể được đọc bởi một compiler C++ chuẩn như một chương trình hợp lệ Khi người dùng nhấn nút "Upload to I/O board" trong IDE, một bản sao của đoạn code sẽ được lưu vào một file tạm, kèm theo một header include bổ sung ở đầu và một hàm main() đơn giản ở cuối, nhằm tạo ra một chương trình C++ khả dụng.
-Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chương trình, và sử dụng avrdude để upload chương trình lên board.
Nền tảng Arduino sử dụng vi điều khiển Atmel, do đó, người dùng có thể phát triển phần mềm cho Arduino bằng môi trường Atmel, bao gồm AVR Studio hoặc các phiên bản Atmel Studio mới hơn.
Arduino Mega 2560 là phiên bản cải tiến của Arduino Mega 1280, với sự khác biệt chính nằm ở chip nhân Trong khi Arduino Mega 1280 sử dụng chip ATmega1280, thì Arduino Mega 2560 được trang bị chip mạnh mẽ hơn, mang lại hiệu suất cao hơn cho các dự án điện tử Arduino Mega 1280 có dung lượng bộ nhớ flash 128KB, SRAM 8KB và EEPROM 4KB.
Bộ nhớ Flash: 256 KB, 8KB sử dụng cho Bootloader SRAM: 8 KB
Nguồn nuôi mạch: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc tròn DC
Arduino Mega 2560 là một sản phẩm nổi bật trong dòng mạch Mega, sở hữu 54 chân digital IO và 16 chân analog IO, mang lại nhiều cải tiến so với Arduino Uno Đặc biệt, bộ nhớ flash của Mega được tăng gấp 4 lần so với phiên bản UNO R3 cũ, giúp nâng cao khả năng lưu trữ và xử lý dữ liệu Ngoài ra, board mạch này còn được trang bị 3 timer, hỗ trợ cho các ứng dụng phức tạp hơn.
Bo mạch Mega sở hữu 6 cổng interrupt, cho phép giải quyết hiệu quả nhiều bài toán phức tạp, điều khiển đa dạng các loại động cơ và xử lý đồng thời nhiều luồng dữ liệu số cũng như tương tự.
Ngoài việc phát triển được ưu tiên, việc kế thừa cũng được đặc biệt lưu ý.
THIẾT KẾ PHẦN MỀM
#include //khai báo thư viện Wire
#include //khai báo thư viện cho lcd
#define sw2 3 //Nút bấm số 2
#define sw3 4 //Nút bấm số 3
#define t_add 0 //Địa chỉ lưu giá trị nhiệt độ trong EEPROM
#define h_add 1 //Địa chỉ lưu giá trị gas trong EEPROM unsigned char mode = 0, count = 0, dem, state = 0; int humi, temp, t, h, gas, gass;
LiquidCrystal_I2C lcd(0x27, 16, 2); //chọn địa chỉ của lcd void setup() {
To set up the system, initialize the input and output pins with `pinMode`, including sw2 and sw3 as inputs with pull-up resistors, and coi, rl1, and rl2 as outputs Use `attachInterrupt` to configure an external interrupt for setting the system mode Read the temperature and humidity warning thresholds stored in EEPROM with `EEPROM.read`, adding a delay of 250 milliseconds between each read Set the coi output to LOW, initialize the DHT11 sensor with `dht.begin()`, and prepare the LCD display with `lcd.init()` and `lcd.backlight()` Display the project title "Do An Dien Tu 1" and the group name "nhom 8" on the LCD for one second before clearing the screen.
} void setMode(){ mode++; if(mode > 3) mode = 0;
} void hienThi(){ lcd.setCursor(0,0); lcd.print("T: "); delay(10); lcd.print(temp); delay(10); lcd.print(" C"); lcd.setCursor(9,0); lcd.print("H: "); delay(10); lcd.print(humi); delay(10); lcd.print(" %"); lcd.setCursor(0,1); lcd.print("setup .");
} void setndo(){ lcd.setCursor(0,1); lcd.print("Set up temp: "); lcd.print(t); delay(10); lcd.print(" "); if(!digitalRead(sw2)){ delay(50); if(!digitalRead(sw2)) t++;
} if(!digitalRead(sw3)){ delay(50); if(!digitalRead(sw3)) t ;
} } void setgas(){ lcd.setCursor(0,1); lcd.print("Set up gas: "); lcd.print(gas); delay(10); lcd.print(" "); if(!digitalRead(sw2)){ delay(50); if(!digitalRead(sw2)) gas++;
} if(!digitalRead(sw3)){ delay(50); if(!digitalRead(sw3)) gas ;
} } void loop() { // put your main code here, to run repeatedly: if(mode==0){ if(dem==0){ lcd.clear(); dem=1;
} if(dem==1){ humi = dht.readHumidity(); temp = dht.readTemperature(); gass = analogRead(A0); hienThi(); delay(10); if(temp > t){ digitalWrite(rl1,LOW);
} else digitalWrite(rl1,HIGH); if(gass > gas){ digitalWrite(rl2,LOW); digitalWrite(coi,HIGH);
EEPROM.write(h_add, gas); delay(50); mode = 0; dem = 0;
KẾT QUẢ VÀ ĐÁNH GIÁ
Sau 1 quá trình miệt mài nghiên cứu, thực hiện đồ án với sự chỉ bảo tận tình của các thầy trong khoa Điện tử viễn thông thì nhóm 2 chúng em đã hoàn thành đồ án và tạo ra được một bộ sản phẩm hoàn chỉnh Và dưới đây là hình ảnh Bộ thiết bị “ cảnh báo khí gas và phòng chánh cháy nổ “ sau khi đã hoàn thiện:
Hình 2.4.1.1 Thiết bị được lắp ráp hoàn chỉnh
+ Sản phẩm chạy ổn định.
Hệ thống điều khiển tự động cho phép bật tắt các thiết bị khi xảy ra sự cố Tuy nhiên, đây vẫn là một hệ thống thử nghiệm chưa được áp dụng rộng rãi trong thực tế, do đó chưa thể đánh giá đầy đủ hiệu suất và hiệu quả của thiết bị.