Tương tác với thế giới thực: hệ thống nhúng tương tác với thế giới bên ngoàivới nhiều cách: cảm nhận môi trường, tác động trở lại môi trường, tốc độ tương tácphải đáp ứng thời gian thực,
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Đề tài bài tập lớn: “Cửa mật mã và cảm biến khí gas ”
Họ và tên sinh viên : Trần Minh Hiếu
Thân Mạnh Hiếu Nguyễn Thị Thu Hiền
Lê Quang Anh
Trang 2PHẦN 1 :Giới thiệu chung 3
1 Mục tiêu 3
2 Lĩnh vực 3
3 Yếu tố công nghệ 3
4 Giới thiệu chung 3
PHẦN 2: CƠ SỞ LÝ THUYẾT 4
1 Giới thiệu hệ thống nhúng 4
1.1 Khảo sát và phân tích bài toán 5
1.2 Giải pháp thiết kế 5
1.3 Các yêu cầu 5
2 Phần mềm hỗ trợ 6
2.1 Khái nệm về Adruino 6
2.2 Một số tính năng của Adruino 6
2.3 Tổng quan về ngôn ngữ Adruino 6
3 Giới thiệu về linh kiện trong đề tài 8
3.1 Cảm biến khí gas 8
3.2 Sử dụng mật mã để mở cửa 9
PHẦN 3: PHÂN TÍCH THIẾT KẾ 17
1 Yêu cầu, công việc đề ra 17
2 Xác định hệ thống cần xây dựng 17
3 Cảm biến khí gas 18
4 Đóng – mở cửa bằng mật mã 19
PHẦN 4: MÔ HÌNH VÀ CÁCH THỨC HOẠT ĐỘNG 22
1 Cảm biến khí gas và cách thức hoạt động 22
2 Khóa cửa mật mã và cách thức hoạt động 22
PHẦN 5 : ĐÁNH GIÁ VÀ KẾT LUẬN 23
TÀI LIỆU THAM KHẢO 23
Trang 3PHẦN 1 :GIỚI THIỆU CHUNG
4 Giới thiệu chung
Thời gian thực hiện : 1 tháng (từ đầu tháng 11 năm 2023 đến đầu tháng 12 năm
5 Lê Quang Anh
Giảng viên hướng dẫn : Nguyễn Văn Suyên
- Báo cáo bài tập lớn học phần : Lập trình hệ thống nhúng (3 tín chỉ)
- Hệ thống : khóa cửa mật mã và cảm biến khí gas
- Nội dung báo cáo bao gồm:
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiết kế
Chương 3: Mô hình và cách thức hoạt động
Trang 4PHẦN 2: CƠ SỞ LÝ THUYẾT
1 Giới thiệu hệ thống nhúng
Hệ thống nhúng (embedded system) là một thuật ngữ để chỉ một hệ thống có
khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ Đó làcác hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyêndụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc vàtruyền tin Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng
tự động hoá cao
Đặc điểm của hệ thống nhúng: Các hệ thống nhúng được thiết kế để thực hiệnmột số nhiệm vụ chuyên dụng chứ không phải đóng vai trò là các hệ thống máytính đa chức năng Một số hệ thống đòi hỏi ràng buộc về tính hoạt động thời gianthực để đảm bảo độ an toàn và tính ứng dụng; một số hệ thống không đòi hỏi hoặcràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chiphí sản xuất
Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệthống phức tạp nằm trong thiết bị mà nó điều khiển Phần mềm được viết cho các
hệ thống nhúng được gọi là firmware và được lưu trữ trong các chip bộ nhớ ROMhoặc bộ nhớ flash chứ không phải là trong một ổ đĩa Có tài nguyên giới hạn: các
hệ thống nhúng bị giới hạn nhiều hơn về phần cứng và chức năng phần mềm so vớimáy tính cá nhân
Tương tác với thế giới thực: hệ thống nhúng tương tác với thế giới bên ngoàivới nhiều cách: cảm nhận môi trường, tác động trở lại môi trường, tốc độ tương tácphải đáp ứng thời gian thực, có thể có hoặc không có giao diện giao tiếp với ngườidùng như máy tính cá nhân
Yêu cầu chất lượng ổn định và độ tin cậy cao: Nhiều loại thiết bị nhúng cónhững yêu cầu rất cao về chất lượng, tính ổn định và độ tin cậy Lỗi của hệ thốngnhúng có thể gây ra tai nạn khủng khiếp, lỗi trên hệ thống nhúng có thể không sửađược Vì vậy việc phát triển hệ thống nhúng yêu cầu quy trình kiểm tra - kiểm thử
Trang 5rất cẩn thận không sửa được Vì vậy việc phát triển hệ thống nhúng yêu cầu quytrình kiểm tra - kiểm thử rất cẩn thận.
1.1 Khảo sát và phân tích bài toán
Hiện nay, công nghệ ngày càng phát triển đi kèm với đó là càng nhiều tiệních hơn Trong đó việc tự động hóa đang được phổ biến nhiều hơn đến với cuộcsống hiện nay, cảm biến khí gas và sử dụng mật mã đã được áp dụng trong rấtnhiều các lĩnh vực Vì vậy những cảm biến khí gas và bảo mật bằng mật mã là mộttrong những thứ cần thiết và vô cùng quan trọng Nhận thấy vấn đề như vậy, chúng
em muốn tạo ra một hệ thống đơn giản để sử dụng cảm nhận mức độ khí gas đểbáo cháy và sử dụng mật mã để mở cửa Ở đây chúng em sử dụng cảm biến khígas: MQ-2, Arduino UNO Và hệ thống mở cửa: Arduino UNO, Keypad 4x4,Servo 90g
1.2 Giải pháp thiết kế
- Để cảm biến khí gas, em để cảm biến ở trong phòng bếp
- Để mở cửa, em sử dụng mật mã thay thế cho các loại khóa truyền thống
Để ở nơi cần mở cửa như cổng, cửa,… Dùng mật mã để nhận dạng và mở cửa
1.3 Các yêu cầu
- Hệ thống hoạt động tự động
- Làm việc với điện áp 3 – 5 VDC an toàn cho người sử dụng và tiết kiệm
- Có khả năng nâng cấp cải tiến
Trang 62 Phần mềm hỗ trợ
2.1 Khái nệm về Adruino
Arduino là một board mạch vi xử lý nhằm xây dựng các ứng dụng tương tácvới nhau hoặc với môi trường được thuận lợi hơn Được giới thiệu đến công chúngnăm 2005 những nhà thiết kế mong muốn mang đến một cách thức đơn giản chiphí thấp để khuyến khích sinh viên, người yêu thích có thể dễ dàng chế tạo ranhững thiết bị có khả năng tương tác với môi trường qua các cảm biến và cơ cấuchấp hành 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
Với Arduino bạn có thể ứng dụng vào những mạch đơn giản như mạch cảm
biến ánh sáng bật tắt đèn, mạch điều khiển động cơ, hoặc cao hơn nữa bạn có thểlàm những sản phẩm như: máy in 3D, Robot, khinh khí cầu, máy bay không ngườilái,
2.2 Một số tính năng của Adruino
+ Làm robot: Adruino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,
… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot
+ Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn
hình,… khi chơi các game như Tetris, phá gạch, Mario
+ Máy bay không người lái
+ Làm máy in
+ Điều khiểm cảm biến âm thanh, ánh sang
+ …
2.3 Tổng quan về ngôn ngữ Adruino
Arduino được khởi động từ năm 2005, là một dự án dành cho sinh viênInteraction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ý Cái tên
“Arduino” bắt nguồn từ một quán bar tại Ivrea, nơi các nhà sáng lập của dự án nàythường xuyên gặp mặt Bản thân quán bar được lấy tên từ Arduino, bá tước Ivrea,
Trang 7đồng thời là vua nước Italy từ năm 1002 đến năm 1014 Lý thuyết phần cứng đượcđóng góp bởi sinh viên người Colombia- Hernando Barragan Sau khi nền tảngWiring hoàn thành, các nhà nghiên cứu làm việc với nhau để giúp hoàn thiện nótheo tiêu chí nhẹ hơn, rẻ hơn và khả dụng hơn đối với cộng đồng mã nguồn mở.Ngôn ngữ lập trình Arduino là một ngôn ngữ lập trình dựa trên C/C++ vàcác thư viện phần mềm đi kèm, được sử dụng để lập trình các vi điều khiển(microcontroller) của bo mạch Arduino Arduino là một nền tảng pháttriển phần cứng mã nguồn mở, với các bo mạch vi điều khiển nhỏ gọn và dễ sửdụng.
Ngôn ngữ lập trình Arduino cung cấp một tập lệnh đơn giản và dễ hiểu, giúpngười mới bắt đầu trong lĩnh vực lập trình và điện tử có thể nhanh chóng tạo ra cácứng dụng nhúng đơn giản Nó cung cấp các hàm và thư viện phần mềm dễ sử dụng
để tương tác với phần cứng của bo mạch Arduino, bao gồm đọc và ghi dữ liệu từcác cảm biến và điều khiển các thiết bị ngoại vi như màn hình LCD, servo motor,đèn LED, và nhiều hơn nữa
Ngôn ngữ lập trình Arduino dựa trên ngôn ngữ C/C++, vì vậy người dùng cóthể sử dụng các cú pháp và tính năng của ngôn ngữ này để viết mã phức tạp hơnnếu cần thiết Tuy nhiên, ngôn ngữ Arduino cung cấp một số hàm và thư viện tiệních để giảm độ phức tạp và giúp người dùng tập trung vào việc phát triển ứng dụngnhúng mà không phải quá lo lắng về các vấn đề phức tạp của phần cứng và hệ điềuhành
Trang 83 Giới thiệu về linh kiện trong đề tài
3.1 Cảm biến khí gas
Cảm biến khí Gas (LPG/CO/CH4) MQ-2 sử dụng phần tử SnO2 có độ dẫnđiện thấp hơn trong không khí sạch, khi khí dễ cháy tồn tại, cảm biến có độ dẫnđiện cao hơn, nồng độ chất dễ cháy càng cao thì độ dẫn điện của SnO2 sẽ càng cao
và được tương ứng chuyển đổi thành mức tín hiệu điện
MQ-2 là cảm biến khí có độ nhạy cao với LPG, Propane và Hydrogen, tan (CH4) và hơi dễ bắt lửa khác, với chi phí thấp và phù hợp cho các ứng dụngkhác nhau
mê-Module được trang bị một biến trở để điều chỉnh độ nhạy của tín hiệu OUT.Các bạn có thể sử dụng nó để đặt ngưỡng sao cho khi biên độ của khí vượt quángưỡng, module sẽ ở mức thấp (LOW), và ngược lại
Với việc thiết lập như thế này các bạn có thể ứng dụng vào một số dự án cụthể Ví dụ: khi biên độ giao động của khí gas vượt quá ngưỡng, bạn có thể kíchhoạt Relay để còi báo kêu
Module bao gồm hai đèn LED Đèn LED dùng để báo nguồn và đèn LED cònlại dùng để báo trạng thái sáng khi mức khí vượt quá giá trị ngưỡng
Sơ đồ chân cảm biến khí gas
Cảm biến khí gas arduino có 4 chân:
VCC: Cấp nguồn cho cảm biến Khuyến cáo nguồn cấp cho cảm biến 3,3V GND: Là chân nối đất.
AOUT: Đầu ra mức ở CAO trong điều kiện yên tĩnh và mức THẤP khi phát
Trang 9hiện âm thanh Các bạn có thể kết nối với các chân Digital trên Arduino hoặc nốitrực tiếp với Relay.
DOUT: Nối với chân tin hiệu của mạch Arduino
3.2 Sử dụng mật mã để mở cửa
a, Động cơ servo SG90 180 độ [1]
Động cơ servo SG90 có kích thước nhỏ, là loại được sử dụng nhiều nhất để
làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng
Động cơ servo SG90 180 độ có tốc độ phản ứng nhanh, các bánh răng được
làm bằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư bánh răng, động cơ
RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễdàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM
Trang 10Cấu tạo động cơ Servo SG90
Nhìn chung, cấu tạo của động cơ này khá phức tạp Đối với các bạn lần đầu học lậptrình arduino, chúng ta chỉ cần chú ý về 3 dây của động cơ:
Dây màu cam: Nối với các chân PWM (3, 5, 6, 9, 10, 11)
Dây màu đỏ: Nối với nguồn (5.5V để hoạt động bình thường)
Dây màu nâu: Nối với cực âm (GND)
b, Bàn phím ma trận mềm 4x4 Keypad
Bàn phím ma trận mềm 4×4 nút được thiết kế với giao diện đơn giản giúp dễdàng giao tiếp với bất kì vi điều khiển nào Mặt sau dính thuận tiện để gắn bànphím trong nhiều ứng dụng dự án
Bàn phím 4×4 có tổng cộng 16 nút ở dạng Ma trận
Đây là một bàn phím màng không có bộ phận chuyển động Nó có một lớp phủgiống mô tả một bàn phím điện thoại với bốn nút chức năng bổ sung Một đầu nốinổi 8 chân được cung cấp để kết nối nó với các mạch điều khiển mirocontler củabạn
Thông số kỹ thuật:
Trang 11+ Module bàn phím ma trận 4x4 loại phím mềm.+ Độ dài cáp: 88mm.
+ Nhiệt độ hoạt động 0 ~ 70oC
+ Đầu nối ra 8 chân
Trang 12c Arduino UNO [3]
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điềukhiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đonhiệt độ - độ ẩm và hiển thị lên màn hình LCD,…
Thiết kế tiêu chuẩn của Arduino UNO sử dụng vi điều khiển ATmega328 vớigiá khoảng 90.000đ Tuy nhiên nếu yêu cầu phần cứng của bạn không cao hoặc túitiền không cho phép, bạn có thể sử dụng các loại vi điều khiển khác có chức năngtương đương nhưng rẻ hơn như ATmega8 (bộ nhớ flash 8KB) với giá khoảng45.000đ hoặc ATmega168 (bộ nhớ flash 16KB) với giá khoảng 65.000đ
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồnngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thì cấpnguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB.Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO
Các chân năng lượng:
• GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùngcá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ốivớ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 UNO, bạn nối cực dươngcủa nguồn với chân này và cực âm của nguồn với chân GND
• IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo
ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V
từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
• RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương vớiviệc chân RESET được nối với GND qua 1 điện trở 10KΩ
Trang 13Một số thông số kĩ thuật :
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Đ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 hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Trang 14d) LCD 1602 Xanh Lá 5V
Ngày nay, thiết bị hiển thị LCD 1602(Liquid Crystal Display) được sử dụngtrong rất nhiều các ứng dụng của VĐK LCD 1602 có rất nhiều ưu điểm so với cácdạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (chữ, số, kí tự đồ họa); dễdàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tiêu tốn rất
ít tài nguyên hệ thống, giá thành rẻ,…
Thông số kĩ thuật của sản phẩm LCD 1602:
- Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển
- Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển
- Chân số 3 - VE : điều chỉnh độ tương phản của LCD
- Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1": + Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
- Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0”
để ghi hoặc nối với logic “1” đọc
- Chân số 6 - E : chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus
Trang 15DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này nhưsau:
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khiphát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên(low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân Exuống mức thấp
LCD 1602 Xanh dương 5v
- Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thôngtin với MPU Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu đượctruyền trên cả 8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệu đượctruyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7)
- Chân số 15 - A : nguồn dương cho đèn nền
- Chân số 16 - K : nguồn âm cho đèn nền
e) Còi Chíp 5V 9.5x12MM
Còi chip là linh kiện thường được dùng trong các mạch điện tử với mục đích tạo ra tín hiệu âm thanh với 3 loại còi chíp có điện áp khác nhau, bạn có thể lựa chọn để phù hợp với mục đích sử dụng
Trang 16 Âm thanh đầu ra: Bíp bíp
Biên độ âm thanh: > 80dB
Trang 17e, Giao tiếp I2C
I2C ( Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng
bộ được phát triển bởi Philips Semiconductors, sử dụng để truyền nhận
dữ liệu giữa các IC với nhau chỉ sử dụng hai đường truyền tín hiệu
Các bit dữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi 1 tín hiệu đồng hồ
Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại
IC khác nhau như các loại vi điều khiển, cảm biến, EEPROM, …
Cấu tạo :
SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi
SDA - Serial Data Line : Đường truyền nhận dữ liệu