Bình thường cảm biến dị chuyển động người cho ra tín hiệu điện ở mức thấp,
khi có người đi ngang qua cảm biến, đầu ra của cảm biến cho ra tín hiệu điện mức cao cấp tới vi điều khiển.
động.
Modul sim nhận được lệnh AT từ vi điều khiển thì sẽ thực hiện cuộc gọi và gửi tin nhắn tới điện thoại người sử dụng thơng báo có trộm. Thời gian để thực hiện cuộc gọi, kết nối cuộc gọi và kết thúc cuộc gọi mất một khoảng thời gian khá dài nên trong đề tài này em chỉ thực hiện cuộc gọi thơng báo có trộm đến một số điện thoại. để gửi tin nhắn thì rất nhanh nên ta có thể gửi nhiều tin nhắn tới các điện thoại của các thành viên trong gia đình để thơng báo có trộm.
Cịi báo động khi được vi điều khiển cấp nguồn thì sẽ phát ra âm thanh báo động tại chỗ, để trộm biết rằng anh ta đã bị phát hiện.
Người sử dụng khi rời khỏi căn nhà hay trở về nhà muốn bật hoặc tắt hệ thống báo trộm thì sẽ thực hiện cuộc gọi tới modul sim. Có thể bật hay tắt hệ thống báo trộm bằng nhiều số điện thoại của các thành viên trong gia đình, do thời gian có hạn nên em chỉ điều khiển bật tắt hệ thống bằng một số của người sử dụng.
Một số lệnh AT sử dụng
• Lệnh thực hiện cuộc gọi ATDxxxxxxxxxxx;<CR>
- ATD lệnh AT thiết lập cuộc gọi
- xxxxxxxxxxx Số điện thoại người sử dụng - ;<CR> kết thúc lệnh thiết lập cuộc gọi • Lệnh nhận cuộc gọi
<CR><LF>RING<CR><LF>
<CR><LF>+CLIP: "0929047589",129,"",,"",0<CR><LF> - Kiểm tra xem có chng là có cuộc gọi đến
- Kiểm tra số điện thoại xem có phải số của người sử dụng • Lệnh gửi tin nhắn
AT+CMGS=”số điện thoại”<CR> - AT+CMGS lệnh AT gửi tin nhắn - Đến số điện thoại cần gửi
Hình 3.1. Modul PIR
Hình 3.2. Mạch nguyên lý modul PIR
Cảm biến sau khi phát hiện có người đi ngang qua sẽ cho ra tín hiệu, tín hiệu này rất yếu cần qua IC BIS0001 để khuếch đại tín hiệu. Biến trở RL2 và RT1 để chỉnh thời gian trễ. RL1 chỉnh thời gian trễ sau khi cảm biến nhận tín hiệu bao lâu thì cảm biến cho ra mức cao, trong modul này khoảng thời gian điều chỉnh là 5s. RT1 điều chỉnh thời gian giữ mức cao của cảm biến sau khi cảm biến cho ra mức cao, thời gian điều chỉnh tối đa là 30s. JP1 điều chỉnh cảm biến bắt tín hiệu liên tục hoặc tuần tự.
Hình 3.3. Sơ đồ kết nối chân cảm biến PIR
Cảm biến PIR hoạt động khi có người đi qua. Bình thường cảm biến PIR ở mức 0 khi có người đi ngang qua thì đầu ra lên mức 1.
3.1.2. Khối vi điều khiển
Hình 3.4. Sơ đồ kết nối chân ATMEGA32
Nguyên l ý hoạt động
Khối vi điều khiển sử dụng nguồn cung cấp 2.7V – 5.5 V DC, làm nhiệm vụ nhận tín hiệu từ cảm biến PIR sau đó truyền nhận lệnh điều khiển tới modul Sim548C qua các chân RXD và TXD. Đồng thời điều khiển còi báo động phát ra âm thanh.
Hình 3.5. Sơ đồ Module Sim548C
Nguyên lý hoạt động
Module sim548C có chức năng như chiếc điện thoại di động, nó nhận cuộc gọi thơng qua mạng GSM rồi chuyển xuống vi điều khiển thông qua chân TXD. Đồng thời, Module sim548C cũng nhận dữ liệu từ vi điều khiển qua chân RXD, thực hiện cuộc gọi đến thuê bao qua mạng GSM.
Tính tốn thơng số
Chân VRTC ngõ vào nguồn cho bộ thời gian thực của modul sim. Điện áp cấp cho chân này là 1.2V- 2.0V DC. Nguồn 3.3V qua 2 con diode, mỗi diode sụt áp khoảng 0.7V, điện áp vào chân VRTC khoảng 1.9V.
Chân NET LIGHT báo trạng thái kết nối mạng. Dùng transistor C1815 và led để quan sát trạng thái chân NET LIGHT trực quan.
3.1.4. Cịi báo động
Hình 3.6. Cịi báo
Gồm có cịi báo động phát ra âm thanh báo động có trộm tại chỗ.
3.1.5. Khối nguồn
a) Mạch nguồn sim548C và vi điều khiển
Hình 3.7. Sơ đồ khối nguồn cho sim548C và vi điều khiển
Nguyên l ý hoạt động
Cho nguồn 9V DC qua IC ổn áp LM2576HVT-ADJLB03 tạo ra nguồn tuyến tính 4V cấp cho chân Vbat của mạch sim 548C và chân 5,17,38 của vi điều khiển. IC ổn áp LM2576HVT-ADJLB03 biến đổi điện áp đầu vào từ 7V đến 60V, đầu ra từ 0V đến 60V. L1 và C1 tạo thành mạch lọc LC, điện trở R1 và R2 là 2 diode phân áp tạo ra điện áp 4V.
Hình 3.8. Sơ đồ nguồn dung LM1117
Sử dụng ic LM1117 với đầu vào là nguồn 4V đầu ra là 3.3 V cung cấp cho chân VGPS của modul Sim548C.
3.1.7. Sơ đồ mạch in
Hình 3.11. Bố trí linh kiện mạch in
Hình 3.12. Mạch thực
3.2. Thiết kế và thi công phần mềm3.2.1. Ý tưởng3.2.1. Ý tưởng3.2.1. Ý tưởng 3.2.1. Ý tưởng
Chương trình được thiết kế để vi điều khiển nhận tín hiệu báo có trộm từ cảm biến PIR, sau đó vi điều khiển gửi lệnh AT đến modul Sim548C để thực hiện cuộc gọi và gửi tin nhắn báo có trộm đến điện thoại di động, đồng thời điều khiển còi báo động phát ra âm thanh báo trộm.
Hình 3.13. Lưu đồ chương trình chính
Đầu tiên, khi vừa khởi động, vi điều khiển sẽ tiến hành khởi tạo các thanh ghi truyền dữ liệu để truyền dữ liệu nối tiếp. Hệ thống khởi động hoàn tất sẽ kiểm tra cảm biến PIR đầu vào, nếu có tín hiệu báo trộm thì hệ thống sẽ thực hiện gọi và gửi tin nhắn tới điện thoại đi động, bật cịi báo động. Nếu khơn g có hệ thống sẽ thực hiện chờ nhận tín hiệu báo trộm từ cảm biến PIR.
3.2.3. Lưu đồ bật ứng dụng GSM cho modul Sim548C
Hình 3.14. Lưu đồ bật ứng dụng GSM modul Sim548C
Bật ứng dụng GSM của modul sim548C sử dụng chân PWRKEY. Kéo chân PWRKEY lên mức 1 trong 700ms rồi kéo xuống mức 0, khi đó chân status lên mức 1 rồi xuống mức 0 trong 800ms. Đợi khi nào chân STATUS lên mức 1 thì kéo chân PWRKEY lên mức 1. Khi đó ứng dụng GSM của modul sim548C đã được bật.
Hình 3.15. Lưu đồ chương trình con đợi tín hiệu OK
Khởi tạo một biến time_out = 10 và cờ f_ok =0. Khởi tạo một vòng lặp trong khi time_out giảm dần, time_out >0 và cờ f_ok =1 thì kết quả trả về return 1 ngược lại trả về return 0.
3.2.5. Lưu đồ chương trình đợi tín hiệu báo gửi tin nhắn
Hình 3.16. Lưu đồ chương trình con đợi tín hiệu gửi tin nhắn
Khởi tạo một biến time_out = 10 và cờ f_wait_mes =0. khởi tạo một vòng lặp trong khi time_out giảm dần, time_out >0 và cờ f_wait_mes =1 thì kết quả trả về return 1 ngược lại trả về return 0.
Hình 3.17. Lưu đồ chương trình gửi lệnh lên modul Sim548C
Lệnh gửi lệnh AT lên modul sim548C là một chuỗi lệnh , hàm putchar() chỉ gửi được một kí tự. Dùng một biến dat và một vịng lặp đợi kí tự trống để qt một chuỗi kí tự .
3.2.7. Lưu đồ chương trình con gọi số điện thoại
Hình 3.18. Lưu đồ chương trình con thực hiện cuộc gọi báo trộm
Để điều khiển modul sim548C thực hiện một cuộc gọi đến số điện thoại đặt trước ta cần lấy số điện thoại, gửi lệnh AT chứa số điện thoại vừa lấy lên modul sim, đợi khi nào vi điều khiển nhận được tín hiệu ok thì gửi lệnh gọi, cuối cùng gửi lệnh kết thúc cuộc gọi.
Hình 3.19. Chương trình con gửi tin nhắn báo trộm
Để điều khiển modul sim548C gửi một tin nhắn đến số điện thoại đặt trước ta cần lấy số điện thoại, gửi lệnh AT chứa số điện thoại vừa lấy lên modul sim, đợi khi nào vi điều khiển nhận được tín hiệu ok thì gửi lệnh chứa nội dung tin nhắn, cuối cùng gửi lệnh kết thúc tin nhắn.
3.2.9. Lưu đồ chương trình cấu hình cho modul Sim548C
CHƯƠNG 4. KẾT QUẢ ,ĐÁNH GIÁ
4.1. Kết quả thực hiện
Tìm hiểu được về mạng điện thoại GSM, modul sim548C, vi điều khiển atmega32, cảm biến nhiệt thụ động dị chuyển động người, lựa chon và tính tốn các linh kiện cho đề tài. Thuyết minh rõ ràng toàn bộ các cơ sở phương pháp luận quá trình nghiên cứu bằng quyền đồ án.
Mô phỏng truyền nhận nối tiếp bằng phần mềm protus, vẽ mạch nguyên lý và mạch in bằng phần mềm altium, thiết kế chương trình bằng phần mềm codevisionAVR. Lắp ráp và chạy mạch thành công đáp ứng đúng yêu cầu đặt ra của đề tài là tự động báo trộm qua mạng điện thoại. Mạch gồm một modul tích hợp cả khố nguồn, khối điều khiển và khối modul sim.
Sau hơn 2 tháng thực hiện đề tài, em đã hoàn thành việc thiết kế và thi công mạch tự động báo trộm qua mạng điện thoại. Hệ thống đã được test thử và chạy rất ổn định. Song bên cạnh đó cịn tồn tại nhiều hạn chế, modul sim là một sản phẩm còn mới so với Việt nam và phải nhập khẩu nên chi phí cịn cao và ít phân phối trên thị trường, ít có tài liệu tham khảo nên triển khai còn chậm. Cảm biến dò chuyển động người rất dễ bị nhiễu bởi các nguồn nhiệt biến đổi, nơi có điện áp cao, nơi tập trung nhiều sóng điện từ, … nên gây ra hiện tượng báo động giả. Có thể thực hiện cuộc gọi và gửi tin nhắn tới nhiều số điện thoại để báo động nhưng trong đề tài em mới dừng lại ở một số điện thoại. Phần cứng phải được thiết kế và thi công với độ chính xác cao để hạn chế nhiễu và giúp mạch chạy ổn định.
4.2. Nguyên nhân và biện pháp khắc phục
Bên cạnh những hạn chế thì em cũng đã tìm cách khắc phục hạn chế. Tài liệu sách viết về modul sim đa phần là tiếng anh vì vậy em tìm hiểu thêm trên các trang web và trao đổi trên các trang diễn đàn điện tử. Cảm biến bị nhiễu bởi sóng điện thoại nên em bố trí ở vị trí hợp lý hơn đồng thời hạn chế nhiễu cảm biến bằng phần mềm, hạn chế nhiều hiện tượng báo động giả. Để phần cứng có độ chính xác cao hơn em đã làm mạch in bằng mạch công nghiệp.
Đây là một đề tài cịn mới và có rất nhiều tiềm năng. Xã hội ngày càng văn minh và các nhu cầu của con người cũng ngày càng cao. Đề tài có khả năng mở rộng và ứng dụng cao để điều khiển các thiết bị thông qua mạng điện thoại. Ở bất kì nơi đâu có mạng di động phủ sóng và với một chiếc điện thoại đi động hay một thiết bị kết nối mạng tương tự là ta đã có thể giám sát và điều khiển một hệ thống được trang trang bị một modun điều khiển kết nối với các thiết bị trong hệ thống.
Tắt bật hệ thống bằng cách thực hiện cuộc gọi đến modul sim. Để biết chính xác hệ thống đã được tắt bật chưa bằng cách gửi tin nhắn thông báo đến điện thoại người sử dụng.
Hạn chế hiện tượng báo động giả của cảm biến. Thay cảm biến dò chuyển động người thường bằng cảm biến vi sóng microwave là cảm biến cao cấp tích hợp cơng nghệ phát sóng microwave để loại trừ yếu tố nhiễu.
Khi có sự thay đổi bức xạ hồng ngoại và có chuyển động nhưng cảm biến PIR chưa phân biệt là do người hay cây cối, cảm biến microwave sẽ kích hoạt ngay sau đó để xác minh. Nó sẽ phát ra nguồn xung microwave vào mơi trường và đo sự phản hồi của sóng microwave, bộ xử lý sẽ phân tích sóng phản hồi để xác định có đối tượng người trong vùng kiểm sốt khơng. Điều này tăng tính chính xác của hệ thống giảm thiểu nguy cơ báo động giả.
kết hợp để tăng độ chính xác. Các cảm biến PIR thơng thường chỉ phân tích dựa trên 2 phân vùng khi đi qua lăng kính fresnel. Hãng Optex chuyên nghiệp về cảm biến an ninh đã xây dựng một công nghệ cảm biến cao hơn gọi là Quad-zone dựa trên 4 vùng cảm ứng.
Với kích thước cơ thể người đủ lớn để phủ kín 2 vùng lớn hoặc 4 vùng nhỏ thì mắt cảm biến mới kích hoạt. Cơ thể vật ni dùn có di chuyển trước cảm biến nhưng khơng phủ kín đủ phân vùng thì cảm biến cũng khơng kích hoạt.
Cơng nghệ mới nhất đó là của hãng UTC Fire & Security đã phát triển cảm biến PIR với mặt kính dùng gương trượt quang học tập trung.
Nhập số và thay đổi số điện thoại của người sử dụng từ bàn phím và hiển thị số điện thoại lên màn hình LCD.
được sơ bộ những yêu cầu và mục tiêu đề ra trong phần đầu xây dựng đề tài.
Hệ thống hoạt động tốt tuy còn nhiều điều cần cải thiện để ứng dụng vào thực tế. Đề tài là tổng hợp của nhiều kiến thức chuyên môn nhưng hơn hết sau thời gian làm việc cùng nhau nhóm đã học được nhiều điều từ kinh nghiệm làm việc nhóm, tác phong làm việc nhóm, khả năng quan sát cơng việc, lắng nghe sự chỉ đạo vv… đó chắc chắn sẽ là những kiến thức bổ ích giúp nhóm có thể phát triển tốt những tố chất của mình để làm việc thật tốt phục vụ cuộc sống và xa hơn là lợi ích nước nhà, một lần nữa em xin chân thành cảm ơn các thầy cô và đặc biệt là cô giáo hướng dẫn đã giúp chúng em hoàn thiện đề tài này.
Trong báo cáo tất cả kí hiệu của tập lệnh AT khơng phải là các từ viết tắt mà là các câu lệnh của AT dùng riêng cho modul Som Com .
TÀI LIỆU THAM KHẢO
[1]. Nguyễ n Tr ung Chí nh, Tập lệnh At của Module Si m548C dùng c ho GSM, 2009
[2]. SIMCom, AT Commands Set, Hardward Design Module Sim548C
[3] Giáo trình kỹ thuật vi xử lý, học viện cơng nghệ bưu chính viễn thơng, 2010 [4] Văn Thế Minh, kỹ thuật vi xử lý, ĐH bách khoa Hà Nội,2008
[4] Trần Đình Quế, ngơn ngữ lập trình C++, 2009 [5] Lê Trung Thắng, vi điều khiển AVR, 2008
[6] Nguyễn Phạm An Dũng, thông tin di động, nhà xuất bản bưu điện, Hà Nội 2009 [7] Vũ Đức Thọ, tính tốn mạng thơng tin di động số, nhà xuất bản giáo dục, Hà
Nội 1999
[8] Đỗ Xuân tiến, giáo trình vi xử lý và lập trình asemple cho vi xử lý, Hà Nội 2001 [9] Điện tử cơng suất, Lê Văn Doanh, Nguyễn Bính, Nguyễn Văn Nhờ, ĐH Quốc
Gia Hà Nội 2007
External RAM size : 0 Data Stack size : 512
*****************************************************/ #include <mega32.h>
#include <delay.h>
// Standard Input/Output functions #include <stdio.h>
//nhan tin hieu ok tu sim char ok[4]={'O','K',13,10}; char i_ok=0;
bit f_ok=0; //co bao ok //bao co the nhap gui tin nhan char _wait_mes[2]={'>',' '}; char i_wait_mes=0;
bit f_wait_mes=0;
// thong bao co cuoc goi den char ring[4]={'R','I','N','G'}; char i_ring=0; bit f_ring=0; bit pir_en=0; #include "thuvien_gsm.h" #ifndef RXB8 #define RXB8 1 #endif #ifndef TXB8 #define TXB8 0 #endif #ifndef UPE
#define UPE 2 #endif #ifndef DOR #define DOR 3 #endif #ifndef FE #define FE 4 #endif #ifndef UDRE #define UDRE 5 #endif #ifndef RXC #define RXC 7 #endif
#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<DOR)
#define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)
// USART Receiver buffer #define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE]; #if RX_BUFFER_SIZE <= 256
unsigned char rx_wr_index,rx_rd_index,rx_counter; #else
unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif
// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;
// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) {
char status,data; status=UCSRA; data=UDR;
if(i_ok==4) { i_ok=0; f_ok=1; } } else i_ok=0; if(_wait_mes[i_wait_mes]==data) { i_wait_mes++; if(i_wait_mes==2) { i_wait_mes=0; f_wait_mes=1; } } else i_wait_mes=0; if(ring[i_ring]==data) { i_ring++; if(i_ring==4) { i_ring=0; f_ring=1; } } else { i_ring=0; } #if RX_BUFFER_SIZE == 256
// special case for receiver buffer size=256 if (++rx_counter == 0)
#else
if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; #endif rx_buffer_overflow=1; } } } #ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index++]; #if RX_BUFFER_SIZE != 256