TỔNG QUAN VỀ HỆ THỐNG
Giới thiệu chung
Trong bối cảnh xã hội hiện đại, sự phát triển của khoa học kỹ thuật đã mang lại cuộc sống đầy đủ và tiện nghi hơn cho con người, đồng thời cũng dẫn đến sự gia tăng của cải vật chất Tuy nhiên, điều này đi kèm với sự gia tăng tệ nạn xã hội, đặc biệt là trộm cắp tài sản, với khoảng 15.000 vụ trộm xảy ra mỗi năm tại Việt Nam, chiếm từ 40-45% tổng số vụ phạm pháp hình sự Do đó, việc thiết lập một hệ thống bảo vệ và phát hiện hành vi trộm cắp tại nhà là vô cùng cần thiết để đảm bảo an toàn cho tài sản cá nhân.
Xuất phát từ nhu cầu bảo vệ tài sản và sự phát triển của công nghệ, nhóm chúng em đã quyết định nghiên cứu hệ thống cảnh báo chống trộm sử dụng cảm biến chuyển động PIR.
Cảm biến hồng ngoại hiện đang được ứng dụng phổ biến trong nhiều lĩnh vực, bao gồm hệ thống tránh chướng ngại vật cho xe, kiểm soát số dòng, thiết bị chống trộm, đo nhiệt độ, và tự động bật tắt đèn trong sản xuất.
Cảm biến hồng ngoại và việc chống trộm
Cảm biến hồng ngoại là một ứng dụng hiệu quả trong việc ngăn chặn kẻ gian đột nhập vào nhà Chúng nên được lắp đặt ở các vị trí quan trọng như cửa sổ và cửa ra vào Với tầm hoạt động từ 3-5m và vùng quét 360 độ, thiết bị này có khả năng phát hiện nhiệt và chuyển động của con người, ngay lập tức phát ra cảnh báo cho chủ nhà khi có kẻ trộm xâm nhập Ngoài ra, người dùng còn có thể kích hoạt các tính năng khác để nhanh chóng phát hiện bất kỳ ai tiếp cận ngôi nhà.
Cảm biến hồng ngoại và đo nhiệt độ
Ngoài những khả năng nhận biết chuyên biệt, những cảm biến hồng ngoại này có khả năng đo và nhận tín hiệu nhiệt độ của môi trường xung quanh.
Cảm biến hồng ngoại trong việc bật tắt đèn
Với các cảm biến hiện đại, việc bật tắt đèn trở nên dễ dàng và không cần tốn sức lực hay di chuyển Thiết bị có thể hoạt động như công tắc cảm ứng, tự động kích hoạt đèn khi phát hiện sự xuất hiện của con người trong vùng nhận diện Đặc biệt, các thiết bị này còn có khả năng hẹn giờ và cảm biến ánh sáng môi trường, giúp điều khiển hệ thống đèn một cách hợp lý và thông minh hơn.
Cảm biến hồng ngoài trong sản xuất
Cảm biến đóng vai trò quan trọng trong các hệ thống sản xuất và bán hàng, giúp tối ưu hóa quy trình bán hàng và quản lý hàng hóa trong kho Chúng giảm thiểu sai sót của nhân viên và giúp bộ phận giao nhận hàng tiết kiệm thời gian, đồng thời hạn chế tình trạng thất thoát hàng hóa.
Các yêu cầu cơ bản
- Hệ thống nhỏ gọn, tiết kiệm chi phí phù hợp với nhu cầu của các hộ gia đình
- Hệ thống đảm bảo được độ chính xác.
- Hoạt động ổn định trong điều kiện môi trường
- Đáp ứng mục đích là nhạy bén trong việc phát hiện chuyển động.
Phương pháp, phạm vi, giới hạn nghiên cứu
1.3.1 Phương pháp Đề tài được nghiên cứu bằng phương pháp lý thuyết với thực nghiêm với mục đích tạo ra một sản phẩm ứng dụng vào đời sống thực tế giúp phát hiện chuyển động để từ đó cảnh báo nhằm mục đích bảo vệ tài sản cho người sử dụng.
1.3.2 Phạm vi, giới hạn nghiên cứu
- Được dùng để phục vụ an toàn cho các tòa nhà, khách sạn, hộ gia đình khi phát hiện những chuyển động đi qua hệ thống.
- Giới hạn nghiên cứu trong 15 tuần.
Ý nghĩa thực tiễn
Giải pháp an toàn để bảo vệ tài sản trong các tòa nhà, khách sạn và hộ gia đình là sử dụng thiết bị cảnh báo chống trộm với thiết kế đơn giản và dễ sử dụng, dựa trên nguyên lý hoạt động của cảm biến PIR Mục tiêu nghiên cứu là phát triển một sản phẩm giá cả phải chăng, nhỏ gọn và phù hợp với đa số hộ gia đình, nhằm hạn chế mất mát tài sản và giảm thiểu tệ nạn trộm cắp, mang lại sự an toàn cho các gia đình.
XÂY DỰNG MÔ HÌNH HỆ THỐNG
Sơ đồ khối hệ thống
Hình 2.1 Sơ đồ khối hệ thống
Khối nguồn là bộ phận quan trọng trong hệ thống, có chức năng chuyển đổi điện áp từ nguồn adapto 12V-DC thành các đầu ra 5V-DC và 12V-DC, nhằm cung cấp nguồn điện ổn định cho các linh kiện trong hệ thống.
Khối đầu vào bao gồm mạch cảm biến, có chức năng nhận diện tia nhiệt phát ra từ các vật thể chuyển động Khi có vật thể di chuyển qua khối này, nó sẽ tiếp nhận tín hiệu và gửi thông tin về khối xử lý.
Khối xử lý là bộ phận quan trọng trong hệ thống, có chức năng nhận tín hiệu từ khối đầu vào, phân tích và xử lý các tín hiệu này, sau đó phát ra tín hiệu điều khiển cho khối báo động.
-Khối báo tín hiệu: sử dụng tín hiệu từ khối xử lý tiến hành cảnh báo khi có vật thể chuyển động trong vùng phát hiện.
+ Còi: Báo phát ra âm thanh khi có vật chuyển động vào vùng cảm biến
+ Led hiển thị: phát sáng khi có vật chuyển động vào vùng cảm biến.
+ Module sim800l: gọi và gửi tin nhắn cho người dùng. ồKhối nguồn
Khối báo tín hiệu Khối xử lý
Phân tích và lựa chọn cảm biến
Mọi vật thể đều được cấu tạo từ các phân tử nhỏ, và nhiệt là một dạng năng lượng phát sinh từ các dao động hỗn loạn, không trật tự của các phân tử này.
Các dao động phát ra tia nhiệt từ cơ thể con người, với nhiệt độ cơ thể trung bình khoảng 37 độ C Nguồn nhiệt này là đặc trưng của mỗi người, và khi sử dụng linh kiện cảm ứng thân nhiệt, chúng ta có thể phát triển thiết bị để phát hiện sự hiện diện của con người.
Cảm biến PIR (Passive InfraRed sensor) là thiết bị thụ động sử dụng tia hồng ngoại để phát hiện sự chuyển động của các vật thể nóng Tia hồng ngoại, phát ra từ các vật thể có nhiệt độ cao, bao gồm thân nhiệt của con người (khoảng 37 độ C), được cảm biến chuyển đổi thành tín hiệu điện thông qua tế bào điện Cảm biến này được gọi là thụ động vì nó không tạo ra nguồn nhiệt mà chỉ phản ứng với nhiệt tỏa ra từ các thực thể khác như con người và động vật.
Cảm biến PIR được chế tạo bằng cách kết nối hai cảm ứng pyroelectric tia nhiệt nằm ngang vào cực Gate của một transistor FET, nhằm khuếch đại tín hiệu điện.
Hình 2.2 Cơ chế cảm ứng của cảm biến
Bộ đầu dò PIR bao gồm hai cảm ứng PIR được lắp đặt nằm ngang, kết nối với cực Gate của một transistor FET khuếch đại Khi cảm biến pyroelectric đầu tiên phát hiện tia nhiệt, nó sẽ gửi tín hiệu; sau đó, khi nguồn nhiệt di chuyển sang cảm biến thứ hai, tín hiệu tiếp theo sẽ được phát ra Sự xuất hiện của hai tín hiệu này cho thấy có nguồn nhiệt di động và mạch điện tử sẽ phát ra tín hiệu điều khiển, có thể được sử dụng để bật tắt đèn hoặc báo động khi có người lạ vào nhà.
Cảm biến PIR (HC - SR501) có ba chân: VCC (3.8V - 5V) và GND (0V) để cấp nguồn cho mô-đun, trong khi chân OUT phát ra mức logic cao để phát hiện sự hiện diện của đối tượng.
Bài viết đề cập đến việc thiết bị được trang bị hai chiết áp (biến trở) cho phép điều chỉnh độ nhạy của cảm biến và thời gian phát hiện đối tượng Cụ thể, thời gian phát hiện có thể được điều chỉnh từ 0.3 giây đến 5 phút, mang lại sự linh hoạt trong việc sử dụng.
Cấu tạo của PIR bao gồm một kính hình bán cầu, được gọi là kính Fresnel, có chức năng chống tia tử ngoại và mở rộng góc dò cho PIR.
Hình ảnh kính Fresnel hội tụ các tia nhiệt vào vị trí của cảm biến PIR
Hình 2.4 Thấu kính Fresnel hấp thụ các tia nhiệt
Các nguồn nhiệt, bao gồm cả thân nhiệt của con người và động vật, phát ra tia hồng ngoại Qua kính Fresnel và bộ lọc, tia hồng ngoại được tập trung vào hai cảm biến hồng ngoại trong đầu dò, tạo ra điện áp được khuếch đại bằng transistor FET Khi có vật nóng di chuyển qua, hai cảm biến này phát ra tín hiệu, được khuếch đại để có biên độ đủ cao và đưa vào mạch so áp, từ đó kích hoạt thiết bị điều khiển hoặc báo động Cảm biến này có những ưu điểm và nhược điểm riêng.
+ Nó tiêu thụ ít năng lượng (từ 0.8W đến 1W)
Cảm biến PIR là thiết bị phát hiện chuyển động hiệu quả trong nhà, hoạt động đáng tin cậy cả ban ngày lẫn ban đêm.
+ Đầu dò của ánh sáng cảm biến chuyển động PIR không phát ra bất kỳ loại bức xạ nào và không có vấn đề về bức xạ.
+ Dễ bị can thiệp bởi các nguồn nhiệt khác nhau.
Khi nhiệt độ môi trường gần với nhiệt độ cơ thể con người, khả năng phát hiện và độ nhạy của cảm biến sẽ giảm đáng kể, dẫn đến nguy cơ hỏng hóc trong thời gian ngắn Ngoài ra, hiệu ứng cảm biến cũng bị ảnh hưởng bởi bức xạ RF.
Khả năng xuyên thấu của tia hồng ngoại thụ động tương đối hạn chế Khi bức xạ hồng ngoại từ cơ thể người bị cản trở bởi các vật thể khác, đầu dò thường gặp khó khăn trong việc tiếp nhận và đôi khi không thể cảm nhận được.
Thiết bị chống trộm hồng ngoại hoạt động dựa trên các mạch cảm biến hồng ngoại, tự động gửi tín hiệu đến hệ thống trung tâm khi phát hiện chuyển động trong vùng quét Hệ thống sẽ kích hoạt còi và đèn để cảnh báo có người di chuyển Trong số nhiều loại cảm biến hồng ngoại, cảm biến PIR HC-SR501 được chọn vì giá thành rẻ và dễ nghiên cứu, phù hợp với sinh viên.
Hình 2.5 Sơ đồ nguyên lý hoạt động
Thông số kỹ thuật của cảm biến PIR:
Phạm vi phát hiện: góc 360 độ hình nón, độ xa tối đa 6m
Nhiệt độ hoạt động: -15- 70 độ C
Điện áp hoạt động: DC 4.5V - 5V
Mức tiêu thụ dòng: 60 Ma
Thời gian trễ: 0, 3 giây- 18 giây
Thời gian báo: 30 giây có thể tùy chỉnh bằng biến trở.
Độ nhạy có thể điều chỉnh bằng 1 biến trở(Sx) và 1 biến trở điều chỉnh thời gian đóng của cảm biến (Tx)
Phân tích và lựa chọn bộ điều khiển
Arduino board là một bo mạch nguồn mở, dễ sử dụng và lập trình, được thiết kế với vi xử lý AVR (hoặc ARM cho Arduino Due), cổng USB và các chân analog input, digital I/O Ngôn ngữ lập trình Arduino dựa trên Wiring và được phát triển trên phần mềm Arduino IDE Arduino bao gồm cả bo mạch và phần mềm IDE, giúp người dùng thực hiện các dự án như chế tạo ô tô điều khiển từ xa hoặc hệ thống tưới cây tự động một cách đơn giản.
Một số bộ điều khiển thông dụng hiện nay:
Arduino Uno là board mạch đơn giản nhất, lý tưởng cho những người mới bắt đầu khám phá lĩnh vực điện tử Board này có 14 chân dữ liệu số, 6 chân đầu vào 5V, với khả năng phân giải 1024 mức, tốc độ hoạt động 16MHz và điện áp từ 7V đến 12V Kích thước của Arduino Uno là 5,5x7cm và sử dụng vi điều khiển ATmega328 8 bit.
Arduino Micro là một bo mạch vi điều khiển nhỏ gọn, kích thước 5x2cm, được phát triển dựa trên chip ATmega32U4 cùng với Adafruit Bo mạch này có 20 chân, trong đó có 7 chân hỗ trợ phát PWM, và sử dụng bộ dao động tinh thể 16MHz Ngoài ra, Arduino Micro còn được trang bị kết nối micro USB, giúp dễ dàng giao tiếp và lập trình.
Arduino Nano là bo mạch nhỏ nhất với kích thước chỉ 2x4cm, dễ dàng lắp đặt Nó được trang bị vi điều khiển ATmega328P tương tự như Uno, nhưng có 8 cổng ADC so với 6 cổng của Uno Đặc biệt, Nano không có giắc nguồn DC như các bo mạch Arduino khác, mà sử dụng cổng mini-USB cho cả lập trình và giám sát nối tiếp.
Arduino Pro là một thiết kế mới với tính năng không có chân số cố định, cho phép người dùng tùy chỉnh số chân sử dụng để tiết kiệm không gian Thiết bị này thường có hai loại nguồn là 3.3V và 5V, sử dụng vi điều khiển ATmega32U4 Arduino Pro bao gồm 20 chân input/output, trong đó có 7 chân PWM và 12 chân analog, cùng với thạch anh 16MHz để đảm bảo hiệu suất hoạt động.
Arduino Mega có 64 chân số, trong đó có 14 chân hỗ trợ phát PWM và 4 cổng truyền tiếp Kích thước của board là 5x10cm, sử dụng vi điều khiển AVR ATmega 2580 với nguồn cung cấp từ 7-12V.
Arduino Leonardo là một board mạch không có cổng USB dùng để lập trình, được thiết kế với chip điều khiển nhỏ gọn Board này kết nối qua COM ảo và có khả năng kết nối với chuột và bàn phím Vi điều khiển ATmega32u4 của nó có 14 chân digital (trong đó có 7 chân PWM) và 12 chân analog Kích thước của Arduino Leonardo là 68,6mm x 53,3mm.
Arduino Uno R3 là một trong những bộ cảm biến quan trọng và phù hợp nhất cho nhóm em, vì đây là loại board đơn giản, lý tưởng cho những người mới bắt đầu tìm hiểu Với chi phí thấp và tính năng linh hoạt, Arduino Uno R3 được sử dụng rộng rãi, giúp người dùng dễ dàng tiếp cận và học hỏi thông qua nhiều ví dụ có sẵn trên YouTube và các trang hướng dẫn.
Khi nhắc đến dòng mạch Arduino trong lập trình, Arduino UNO là cái tên nổi bật nhất Hiện tại, dòng mạch này đã phát triển lên thế hệ thứ 3 (R3).
Arduino Uno có 14 chân đầu vào/đầu ra số, trong đó 6 chân hỗ trợ đầu ra PWM, cùng với 6 đầu vào analog, kết nối USB, giắc cắm nguồn, và nút reset Thiết bị này tích hợp đầy đủ các thành phần cần thiết để hỗ trợ vi điều khiển, chỉ cần kết nối với máy tính qua cáp USB hoặc cấp nguồn bằng bộ chuyển đổi AC-DC hoặc pin.
Một vài thông số của Arduino UNO R3:
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 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 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
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 0.5KB dùng bởi bootloader
Bảng 2.1 Thông số của ArduinoUno R3
Các chân digital Arduino Uno có chức năng:
Hai chân serial 0 (RX) và 1 (TX) trên Arduino Uno có chức năng quan trọng trong việc giao tiếp dữ liệu TTL Serial Chân TX được sử dụng để gửi dữ liệu, trong khi chân RX dùng để nhận dữ liệu Hai chân này cho phép Arduino Uno kết nối và giao tiếp hiệu quả với các thiết bị mạch điện khác thông qua tín hiệu TX và RX.
- Chân PWM 3, 5, 6, 9, 10, 11: Cho phép bạn xuất ra xung PWM với 8bit
Chân giao tiếp SPI trên thiết bị bao gồm 10 (SS), 11 (MOSI), 12 (MISO) và 13 (SCK) Ngoài chức năng thông thường, các chân này còn hỗ trợ truyền dữ liệu qua giao thức SPI với các thiết bị khác.
Trên Arduino Uno có 1 đèn led màu cam đánh dấu số 13 (kí hiệu chữ L).
Thiết kế mạch đo và xử lý tín hiệu
Arduino Uno R3 Module HC-SR501
Arduino Uno R3 Mạch chuyển đổi i2c
Chân 9 Chân dương của loa
Chân 13 Chân dương của led
Bảng 2.2 Sơ đồ nối chân
Hình 2.8 Thiết kế hệ thống
Hệ thống được cấu thành từ bốn khối chính: khối báo tín hiệu bao gồm loa, đèn LED và module SIM800L, khối hiển thị với màn hình LCD, khối cảm biến sử dụng cảm biến PIR, và khối xử lý dựa trên Arduino Uno R3.
- Sơ đồ đấu nối được thể hiện ở trên Hình 2.8.
Giới thiệu về chuẩn giao tiếp i2c:
I2C là giao thức truyền tin nối tiếp đồng bộ sử dụng hai dây: SCL (serial clock) và SDA (serial data) Trong đó, SDA là đường truyền nhận dữ liệu, còn SCL là đường truyền xung nhịp Các đường SDA và SCL trên thiết bị thường có cấu hình cực góp hở (open-drain) hoặc collector hở (open-collector), vì vậy cần sử dụng điện trở kéo lên (pull-up resistor) với giá trị từ 1-10kΩ Ở trạng thái nghỉ, hai chân này duy trì mức cao Tốc độ truyền của I2C rất linh hoạt, cho phép điều chỉnh theo yêu cầu của ứng dụng.
100Kbits/s ở chế độ chuẩn (Standard mode), có thể lên tới 400Kbits/s ở chế độ nhanh(Fast mode) và cao nhất là 3, 4Mbits/s – Chế độ cao tốc (High speed mode).‐
Trên giao thức I2C, cấu trúc kết nối có thể là một chủ và một tớ (One Master-One Slave), một chủ và nhiều tớ (One Master-Multi Slave), hoặc nhiều chủ và nhiều tớ (Multi Master-Multi Slave) Đặc biệt, một thiết bị tớ cũng có thể hoạt động như một chip chủ nếu nó có khả năng tương ứng.
To establish communication for data transmission, a Master device first generates a Start Condition before sending the 7-bit address of the target Slave device, followed by a 1-bit READ/WRITE signal, which takes a total of 8 clock cycles.
Khi Master gửi xung trên SCL, nó sẽ nhận xung ACK từ Slave trên SDA Nếu xung ACK bằng 0, điều này có nghĩa là Slave đã phản hồi đúng địa chỉ Ngược lại, nếu xung ACK bằng 1 (NOT ACK), Master sẽ thực hiện các xử lý thích hợp, chẳng hạn như gửi Stop condition và thử lại với địa chỉ Slave khác Khi Slave phản hồi đúng địa chỉ, Master sẽ tiếp tục truyền hoặc nhận dữ liệu tùy thuộc vào bit READ/WRITE mà nó đã gửi.
Khi bit READ/WRITE=0, Master bắt đầu ghi dữ liệu vào Slave bằng cách gửi từng byte một, mất 8 xung clock cho mỗi byte Sau 8 xung, vào xung clock thứ 9, Slave sẽ phản hồi bằng tín hiệu ACK (kéo SDA=0) Nếu Slave không phát tín hiệu ACK (tín hiệu NOT ACK) tại xung thử thứ 9, Master sẽ kết thúc quá trình truyền bằng cách phát Stop condition Đặc biệt, khi Master gửi byte cuối cùng, nó cũng sẽ tạo ra Stop condition để hoàn tất quá trình truyền.
Khi bit READ/WRITE=1, Master yêu cầu đọc dữ liệu từ Slave, và Slave sẽ gửi từng byte dữ liệu qua SDA Master nhận byte dữ liệu và gửi tín hiệu ACK =0 (kéo SDA xuống thấp tại clock 9) sau mỗi byte Nếu Master không muốn nhận thêm dữ liệu, nó sẽ phát tín hiệu NOT ACK và tạo tín hiệu STOP Khi Master gửi địa chỉ của Slave là 0 và bit READ/WRITE=0, điều này có nghĩa là Master muốn thực hiện cuộc gọi chung tới tất cả các Slave Slave sẽ phát tín hiệu ACK nếu đồng ý, hoặc NACK nếu không đồng ý Cuộc gọi chung thường xảy ra khi Master muốn gửi dữ liệu đến các Slave, nhưng không có nghĩa là phát địa chỉ 0 với bit READ/WRITE=1, vì Master không thể nhận dữ liệu đồng thời từ nhiều Slave.
Giới thiệu về module sim800l
Module GMS sim800L là một thiết bị nhỏ gọn, chỉ với kích thước 25mm x 22mm, cho phép nhắn tin SMS, thực hiện cuộc gọi và kết nối GPRS Thiết bị này được điều khiển thông qua bộ lệnh AT và sử dụng chân kết nối rào đực thông dụng, mang lại sự tiện lợi cho người dùng.
+ Dòng cung cấp: 1A trở lên để đảm bảo trong quá trình khởi động cũng như thực hiện gọi điện hay gửi SMS
+ Dòng ở chế độ chờ: 10mA – rất tiết kiệm.
+ Hỗ trợ 4 băng tần phổ biến ở Việt Nam, sim mạng nào dùng cũng được
+ Khe cắm sim: chuẩn Micro sim ( sim IP4)
+ Chân NET: lắp anten , có thể dùng anten đi kèm hoặc ăn ten mở rộng
+ Chân VCC- GND: cấp nguồn dương- âm.
+ RST: chân reset: sử dụng khi cần khởi động lại module sim
+ RXD – TXD: giao tiếp chuẩn serial đặc trưng của module sim
+ RING: đổ chuông khi có cuộc gọi đến
+ SPKP, SPKN: ngõ ra âm thanh, nối với loa để phát âm thanh
+ MICP, MICN: ngõ vao âm thanh, phải gắn thêm Micro để thu âm thanh.
- Tập lệnh AT điều khiển cuộc gọi:
Mô tả: Hiển thị thông tin cuộc gọi đến
+ Lệnh: ATD[Số_điện_thoại];
Mô tả: Lệnh thực hiện cuộc gọi
Mô tả: Lệnh thực hiện kết thúc cuộc gọi , hoặc cúp máy khi có cuộc gọi đến
Mô tả: Lệnh thực hiện chấp nhận khi có cuộc gọi đến
- Tập lệnh AT điều khiển tin nhắn:
Để gửi và nhận tin nhắn dạng Text, bạn cần sử dụng lệnh AT+CMGS với cú pháp: AT+CMGS=”Số_điện_thoại” Sau khi gửi lệnh, hãy chờ cho đến khi ký tự ‘>’ xuất hiện, lúc này bạn có thể nhập nội dung tin nhắn.
Mô tả: Lệnh gửi tin nhắn
+ Lệnh: AT+CMGR=x x là địa chỉ tin nhắn cần đọc
Mô tả: Đọc một tin nhắn vừa gửi đến, lệnh được trả về nội dung tin nhắn, thông tin người gửi, thời gian gửi
+ Lệnh: AT+CMGDA="DEL ALL"
Mô tả: Xóa toàn bộ tin nhắn trong các hộp thư
Mô tả: Hiển thị nội dung tin nhắn ngay khi có tin nhắn đến
* Sau mỗi lệnh các bạn thường thấy thực chất nó là hai mã điều khiển tương ứng0x0D(hexa) , tương ứng 0x0A(hexa)
Lưu đồ thuật toán quá trình truyền nhận giữ liệu của i2c:
Hình 2.8 Sơ đồ thuật toán truyền, nhận của i2c
Kiểm tra xem đã truyền đủ 8 bit chưa
Next_byte or STOP Read buffer
Lưu đồ thuật toán hệ thống:
Hình 2.9 Sơ đô thuật toán của hệ thống
Khởi tạo LCD, USART, Serial, IO end Đọc giá trị cảm biến
Mở chuông, LED Hiển thị “CANH BAO” Hiện thị “AN TOAN”
Mô hình hóa và mô phỏng hệ thống
Khi không có vật chuyển động, biến PIR sẽ gửi tín hiệu logic 0 về bộ xử lý trung tâm, dẫn đến việc đèn không sáng, loa không phát ra âm thanh và màn hình LCD không hiển thị chữ.
Hình 2.10 Khi chưa có vật thể đi qua
Khi vật chuyển động qua cảm biến, tín hiệu sẽ chuyển từ 0 sang 1 và được gửi đến bộ xử lý thông tin Bộ xử lý này sẽ điều khiển đèn LED và loa phát ra tín hiệu cảnh báo, đồng thời hiển thị thông điệp "Cảm biến Cảnh báo" trên màn hình LCD.
Hình 2.11 Khi có vật thể đi qua
Chế tạo và thử nghiệm hệ thống
Chế tạo các bộ phận cơ khí
Phần vỏ ngoài của hệ thống cần đảm bảo độ bền và chắc chắn để chịu được va đập mà không bị vỡ, đồng thời phải nhỏ gọn và tiện lợi cho việc lắp đặt Quan trọng nhất là khả năng chống nước để ngăn ngừa tình trạng nước xâm nhập vào mạch bên trong, gây ra cháy hoặc hỏng hóc Do đó, nhóm chúng em đã chọn hộp nhựa có nắp tai trong suốt làm vỏ cho hệ thống, với nắp làm từ nhựa cứng trong suốt giúp dễ dàng quan sát mạch bên trong Ngoài ra, phần bao bọc bên ngoài được làm từ nhựa cách điện để tránh sự cố khi dây điện bị hở trong quá trình cấp nguồn cho hệ thống.
Hình 3.1 Phần vỏ của hệ thống
- Hộp của hệ thống được chia làm hai phần:
+ phần đế: gắn với Arduino Uno R3 và board test mini.
+ phần nắp trong suốt: gắn với cảm biến PIR và màn hình LCD.
Chế tạo các bộ phận điện- điện tử
Gắn Arduino Uno R3 và test board mini vào phần đế của hộp Sử dụng dây đực-đực để kết nối nguồn đất và nguồn 5V vào test board Tiếp theo, sử dụng dây cắm đực-cái để kết nối các chân nguồn và chân đất của cảm biến PIR, LED, loa, module SIM 800L, và I2C nối tiếp vào chân nguồn 5V và đất của test board.
+ Cắm chân Out của cảm biến vào test board sau đó cắm nối tiếp vào chân 8 của cảm biến.
+ Cắm chân dương của loa và led lần lượt vào test board sau đó cắm nối tiếp lần lượt vào chân 9 và chân 13 của Arduino.
Để kết nối Module sim800l với Arduino Uno, hãy cắm chân 4 và 5 của module vào chân 11 và 10 của Arduino Tiếp theo, kết nối chân SDA và SCL của I2C vào hai chân A4 và A5 của Arduino Cuối cùng, gắn các chân giao tiếp của I2C với các chân của LCD để hoàn tất quá trình kết nối.
Hình 3.2 Hệ thống hoàn chỉnh
Xây dựng chương trình điều khiển
The Arduino IDE, short for Arduino Integrated Development Environment, is a software tool that allows users to upload written code to Arduino boards and execute applications It serves as a programming environment specifically designed for Arduino hardware.
Bài viết đề cập đến các thành phần chính của một môi trường lập trình, bao gồm Editor (trình soạn thảo văn bản để viết code), Debugger (công cụ hỗ trợ tìm kiếm và sửa lỗi trong quá trình xây dựng chương trình) và Compiler hoặc Interpreter (công cụ biên dịch code thành ngôn ngữ mà vi điều khiển có thể hiểu và thực thi theo yêu cầu của người dùng).
Hiện nay, ngoài các board thuộc họ Arduino, thì Arduino IDE còn hỗ trợ lập trình với nhiều dòng vi điều khiển khác như ESP, ARM, PIC, …
1 Nút kiểm tra chương trình:
Phần mềm Arduino IDE được sử dụng để kiểm tra lỗi trong chương trình Khi phát hiện lỗi, nó sẽ hiển thị thông tin chi tiết về lỗi trong khu vực thông báo.
Hình 3.3 Cửa sổ làm việc chính của Arduino
2 Nút nạp chương trình xuống bo Arduino:
Quá trình nạp chương trình vào mạch Arduino bao gồm việc kiểm tra lỗi trước khi thực hiện việc nạp Điều này đảm bảo rằng chương trình được viết sẽ được tải xuống mạch một cách chính xác.
3 Hiển thị màn hình giao tiếp với máy tính:
Nhấp vào biểu tượng kính lúp để mở phần giao tiếp với máy tính, nơi hiển thị các thông số mà người dùng muốn Để hiển thị thông số lên màn hình, cần sử dụng lệnh Serial.print().
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.
5 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.
6 Sử dụng một số menu thông dụng trên phần mềm Arduino IDE:
Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu Hình 3.4: Giao diện của mục Examples
Trong phần menu File, bên cạnh các chức năng như mở và lưu file, có một mục quan trọng là Example Mục Example cung cấp các ví dụ sẵn có để lập trình viên tham khảo, giúp tiết kiệm thời gian lập trình Hình 3.10 minh họa việc chọn ví dụ cho led chớp tắt (blink) để nạp vào mạch Arduino.
Ví dụ về đèn LED chớp tắt thường được sử dụng để kiểm tra bo mạch khi mới mua Một menu phổ biến là menu Tools, nơi người dùng có thể chọn loại board khi kết nối bo Arduino với máy tính Phần mềm mặc định chọn bo Arduino Uno, nhưng nếu sử dụng loại bo khác, người dùng cần chọn kiểu bo phù hợp.
Khi sử dụng mạch Arduino, việc chọn cổng COM là rất quan trọng Để thực hiện điều này, người dùng cần vào phần Tools và chọn cổng COM tương ứng sau khi kết nối mạch với máy tính, như được minh họa trong Hình 3.12.
Khi kết nối board Arduino với máy tính, hãy chọn cổng COM, chẳng hạn như COM5 Lần sau khi sử dụng cùng một board Arduino, bạn không cần phải chọn lại cổng COM Tuy nhiên, nếu bạn kết nối một board Arduino khác, bạn sẽ cần chọn lại cổng COM theo quy trình tương tự.
Sau khi thực hiện các bước trên xong, người dùng sẽ bắt tay vào việc lập trình.
3.3.2 Cấu trúc cơ bản của một chương trình Arduino:
Một chương trình Arduino cơ bản có 2 phần chính Các bạn xem đoạn mã sau:
Phần setup() trong chương trình Arduino, được gọi là phần “cài đặt”, có chức năng chuẩn bị cho chương trình hoạt động Tất cả các câu lệnh trong phần này được đặt trong cặp dấu ngoặc nhọn ngay sau void setup().
Ví dụ: Muốn cài đặt chân 13 của board Arduino hoạt động ở chế độ xuất tín hiệu thì viết như sau:
Phần loop() trong chương trình chứa mã thực thi chính, nơi các lệnh được thực hiện liên tục Các câu lệnh này được đặt trong cặp ngoặc nhọn ngay sau dòng khai báo void loop().
Ví dụ: Muốn làm một bóng LED nối với chân 13 nhấp nháy liên tục thì viết như sau:
Giải thích đoạn mã trên:
Dòng 2: chân 13 bật lên mức cao để làm sáng bóng LED.
Dòng 3: ngưng chương trình trong 1 giây để bóng LED sáng trong 1 giây đó.
Dòng 3: chân 13 hạ xuống mức thấp để làm tắt bóng LED.
Dòng 5: ngưng chương trình trong 1 giây để bóng LED tắt trong 1 giây đó Sau đó chương trình bắt đầu lại từ dòng 2.
Dấu chấm phẩy và khoảng trắng
Các câu lệnh thường kết thúc bằng dấu chấm phẩy (;), đánh dấu sự kết thúc của câu lệnh Sau dấu chấm phẩy, bạn có thể viết lệnh mới ngay lập tức.
Các lệnh của 2 phần setup() và loop() được đặt trong cặp dấu ngoặc nhọn.
Kiểu dữ liệu void void đứng trước setup() hoặc loop() được gọi là “kiểu dữ liệu” (datatype).
Cách viết như các ví dụ vừa qua là bắt buộc.
Giới thiệu các hàm thông dụng:
Thiết lập một chân được xác định hoạt động ở chế độ nhập hay xuất tín hiệu.
- Cú pháp: pinMode(pin, mode)
Trong lập trình vi điều khiển, các tham số quan trọng bao gồm pin, là số chân cần thiết lập, và mode, chỉ định chế độ hoạt động của chân Có ba chế độ chính: INPUT, OUTPUT và INPUT_PULLUP Chế độ INPUT được sử dụng để đọc tín hiệu, OUTPUT để xuất tín hiệu, và INPUT_PULLUP tương tự như INPUT nhưng có thêm "điện trở kéo lên" Chúng ta sẽ khám phá chi tiết về INPUT_PULLUP trong các bài viết sau.
Thiết lập chân 13 hoạt động ở chế độ xuất tín hiệu:
Xuất tín hiệu ở mức cao (HIGH) hoặc thấp (LOW) trên một chân digital.
Mức cao là 5V với board 5V như board Uno hoặc 3.3V với board 3.3V Mức thấp là 0V.
- Cú pháp: digitalWrite(pin, value)
- Tham số: pin: là số chân cần xuất tín hiệu. value: mức tín hiệu là HIGH hoặc LOW
Dùng chân 13 để làm nhấp nháy bóng LED
Dừng chương trình một khoảng thời gian (tính bằng mili giây) tương ứng với giá trị tham số.
- Tham số: ms: số mili giây dùng để ngưng chương trình.
- Giá trị trả về: Không có.
String SMS = "WARNING"; sim.println(SMS); delay(100); sim.println((char)26);// ASCII code of CTRL+Z delay(5000); void callNumberr() { sim.println("AT"); updateSerial(); sim.println("ATD+ " + number + ';'); updateSerial();
Serial.println("calling"); delay(20000); // wait for 20 seconds sim.println("ATH"); updateSerial();
} void updateSerial() if (digitalRead(8) == HIGH ) { lcd.setCursor(5, 1); lcd.print("WARNING "); digitalWrite(led, HIGH ); digitalWrite(buzzer, HIGH);
Serial.println("send meggase"); lcd.setCursor(0, 1);
Serial.println("Goi ve may "); lcd.print("Goi ve may "); callNumberr(); lcd.setCursor(0, 1); lcd.print("Gui ve may ");
SendMessage(); lcd.setCursor(0, 1); lcd.print("Gui ve may ");
String _buffer; int buzzer = 9; int pir = 8; int led = 13;
String number = "+84984652803"; uint8_t index1; int demSms = 0;
Thử nghiệm và đánh giá hệ thống
Hình 3.4 Thử nghiệm hệ thống
Hệ thống hoạt động hiệu quả tương tự như mô phỏng lý thuyết, nhưng vẫn gặp khó khăn trong việc điều chỉnh thời gian trễ Một hạn chế khác là hệ thống không thể tự phân biệt giữa người thân và người lạ, cũng như các vật thể phát ra nhiệt độ khi di chuyển.
+ Là hệ thống thử nghiệm chưa áp dụng được trong thực tế nên chưa thể đánh giá hết được hiệu suất và hiệu quả của thiết bị.
Một hạn chế đáng chú ý là hệ thống cần phải khởi động lại sau mỗi lần cảnh báo, và mạch xử lý mất một khoảng thời gian ngắn để bắt đầu nhận và xử lý tín hiệu.
Hệ thống có khả năng tích hợp với camera giám sát, giúp người dùng dễ dàng theo dõi và đảm bảo an toàn cho gia đình cũng như tài sản của mình.
+ Mở rộng chức năng cảnh báo sự cố khác cho hệ thống.
+ Mở rộng số thiết bị cần điều khiển.
[1]Auth Baichtal John, Arduino for Beginners: Essential Skills Every Maker Needs [Book]
[2]Tác giả Tùng Vũ Trung Kiên-Phạm Văn Chiến-Nguyễn Văn , Giáo trình vi điều khiển PIC [Sách]- Hà Nội: Nhà xuất bản khoa học kỹ thuật, 2014.
[3]Auth.KS.Phạm Quang Huy, Lập trình điều khiển với Arduino [Book] - TP.HCM: Nhà xuất bản thanh niên, 2016
[4]TS.Trần Thu Hà, Giáo trình Điện tử cơ bản [Sách]-Đại học SPKT Tp.HCM, 2013.