SƠ ĐỒ KHỐI CỦA HỆ THỐNG VÀ CHỨC NĂNG CỦA TỪNG KHỐI

Một phần của tài liệu điều khiển từ xa các thiết bị bằng tin nhắn sms (Trang 69)

c. Nguyên lý làm việc của cảm biến gas

4.2 SƠ ĐỒ KHỐI CỦA HỆ THỐNG VÀ CHỨC NĂNG CỦA TỪNG KHỐI

4.2.1 Sơ đồ khối của hệ thống

Hình 4.1 : Sơđồ khối của hệ thống

4.2.2 Chức năng của các khối

Khối nguồn: Cung cấp nguồn hoạt động cho toàn bộ hệ thống. Gồm nguồn ngoài hoặc pin.

Trang 70

Khối Module SIM 900: Nhận tin nhắn hoặc cuộc gọi từ điện thoại người dùng gửi tới khối xử lý trung tâm và gửi tín hiệu trở lại.

Khối xử lý trung tâm: Xử lý bản tin nhận/gửi tới module GSM từ đó đưa ra hoạt

động thích hợp cho các khối khác.

Khối công suất: khuếch đại tín hiệu điều khiển sao cho phù hợp với công suất của tải

Khối cảm biến: Phát hiện khi có người lạđột nhập, rò gas…

Khối giao tiếp bàn phím màn hình LCD: Giúp người dùng có thể cài đặt hoặc hiển thị thông báo trạng thái hoạt động của mạch.

4.3 SƠ ĐỒ NGUYÊN LÝ CỦA HỆ THỐNG 4.3.1. Module điều khiển 4.3.1. Module điều khiển

4.3.1.1. Khối nguồn

Hình 4.2 Sơđồ nguyên lý khối nguồn

Dùng IC LM2576 chuyển đổi từ nguồn một chiều từ 9-30V sang nguồn một chiều 5V (VCC)để cung cấp cho Vi điều khiển và các khối cảm biến.

Nguồn 5V qua diode D2 (FR207) giảm xuống thành 4,3V (VBAT) cấp nguồn cho module SIM900

Sử dụng tụđiện, điện trởđể lọc và ổn định nguồn ra. Dùng đèn Led để báo trạng thái nguồn.

Trang 71

Hình 4.3 Sơđồ nguyên lý khối vi điều khiển

Sử dụng Vi điều khiển Atmega 8 với các chức năng đã được giới thiệu ở chương 3. Các nút bấm Program, Menu dùng để thao tác, cài đặt sốđiện thoại hoặc nhắn tin gọi

điện.

Sử dụng Led để báo trạng thái Debug (gỡ rối) Vi điều khiển.

4.3.1.3. Mạch hiển thị

Trang 72

Dùng LCD 16x2 hiển thị nội dung tin nhắn lưu giữ trong SIM điện thoại, cuộc gọi

đến hoặc hiển thị các thông báo khác của hệ thống.

Các tín hiệu cảm biến được nối vào jack P6 rồi đến vi điều khiển

4.3.1.4. Mạch công suất

Hình 4.5 Sơđồ nguyên lý mạch công suất

Sử dụng rơle để bật tắt thiết bịđiện. Tín hiệu điều khiển từ vi điều khiển đưa đến cực b của Transistor 2N2822 đểđiều khiển rơle bật tắt bóng đèn.

Trang 73

Hình 4.6 Sơđồ nguyên lý module SIM 900

Module SIM900 giao tiếp với Vi điều khiển theo chuẩn RS232, ghép nối với Simcard

để hệ thống có thể giao tiếp với mạng GSM.

Trang 74 4.4 SƠ ĐỒ MẠCH IN MODULE ĐIỀU KHIỂN

Trang 75

4.5. SƠ ĐỒ THUẬT TOÁN

Hình 4.8 Sơđồ thuật toán Giải thích thuật toán:

Khởi tạo hệ thống

Khởi tạo giá trị

Khởi tạo LCD

Khởi tạo Modem GSM Cập nhật dữ liệu Thực hiện lệnh điều khiển Hiển thị Bắt đầu

Trang 76

Chương trình có 3 hàm chính được gọi đến trong hàm Main đó là hàm Update, hàm Control và hàm Display:

Hàm Update thực hiện chức năng nhận các dữ liệu được gửi đến cổng Com lưu vào trong bộđệm và chờđược xử lý.

Hàm Control xử lý các dữ liệu đã được lưu trong bộđệm từ hàm Update sau đó đưa ra đáp ứng thích hợp của mạch.

Hàm Display thực hiện việc hiển thị các dữ liệu đã được lưu sẵn trong bộ đệm từ

hàm Update lên LCD.

Hàm Main của chương trình sau khi khởi tạo hệ thống, khởi tạo các giá trị ban đầu và khởi tạo cho Modem SIM900 sẽ lần lượt gọi các hàm Update, Control, Display liên tục nhận dữ liệu, xử lý và hiển thị dữ liệu.

4.6. KẾT QUẢ LUẬN VĂN

Trang 77

Hình 4.10 Mạch hoạt động của hệ thống Hoạt động của hệ thống:

Người dùng gửi tin nhắn từ sốđiện thoại đã được cài đặt sẵn tới sốđiện thoại của hệ

thống. Điều khiển bật/tắt thiết bịđiện.

Sau khi nhận và thực hiện lệnh từ tin nhắn người dùng, hệ thống sẽ tựđộng thực hiện cuộc gọi tới người dùng báo đã thực hiện.

Người dùng có thể kiểm tra tình trạng thiết bị bằng cách thực hiện cuộc gọi tới số điện thoại của hệ thống, hệ thống sẽ tự động ngắt cuộc gọi và gửi tin nhắn báo tình trạng thiết bị cho người dùng.

Đối với hệ thống cảnh báo: Khi cảm biến phát hiện có khí gas rò rỉ hoặc có người lạ đột nhập, hệ thống sẽ thực hiện cuộc gọi tới người dùng để cảnh báo cho người dùng biết có rò rỉ khí gas hoặc có người lạđột nhập.

Trang 78

4.7 KẾT LUẬN

Trên đây là toàn bộ quá trình thi công mạch. Kết quả đạt được như mục đích đặt ra ban

đầu. Mạch chạy ổn định và thực hiện được các yêu cầu đặt ra như bật tắt các thiết bị khi nhận được tin nhắn điều khiển của người dùng, tự động tạo cuộc gọi cảnh báo cho người dùng khi có sự cố rò rỉ khí gas hoặc có người lạđột nhập.

Trong quá trình thi công mạch em đã gặp một số khó khăn nhất định. Vì thời gian thực hiện có hạn, đồng thời sự thiếu sót về kinh nghiệm thực tế nên gặp nhiều khó khăn trong việc lựa chọn linh kiện dẫn đến trong quá trình thử nghiệm với mạch phải diễn ra nhiều lần mới đạt được kết quả như mong muốn.

Mặc dù gặp nhiều khó khăn, nhưng nhờ sự định hướng cùng những ý kiến đóng góp trong quá trình thực hiện mạch của giáo viên hướng dẫn là PGS.TS. Hoàng Mạnh Thắng

Trang 79 CHƯƠNG 5

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 5.1 KẾT LUẬN

Sau một thời gian nghiên cứu, thiết kế và thi công, đồ án đã được hoàn thành bằng sự

nỗ lực của em cùng sự hướng dẫn chỉ bảo chu đáo và tận tình của PGS.TS Hoàng Mạnh Thắng. Đồ án đã được hoàn thành đúng tiến độ và đáp ứng được các yêu cầu đã đặt ra của hệ thống là giám sát và điều khiển bằng tin nhắn SMS thông qua mạng GSM.

Kết quảđạt được:

Mạch điện đã được thiết kế và thi công hoàn chỉnh. Mạch được thử nghiệm nhiều lần và hoạt động ổn định, thực hiện các chức năng sau:

Thực hiện bật tắt các thiết bịđiện bằng tin nhắn SMS.

Cảnh báo cho người dùng khi có người lạđột nhập hoặc xảy ra rò rỉ khí gas. Kiểm tra tình trạng các thiết bịđiện để thông báo cho người dùng.

5.1.1 Ưu điểm

- Hệ thống hoạt động ở tất cả mọi vùng lãnh thổ trên thế giới có phủ sóng GSM. Vì vậy việc điều khiển không bị giới hạn bởi khoảng cách địa lý.

- Hệ thống hoạt động ở những vị trí khó khăn mà đường dây điện, điện thoại, cáp không có, chỉ cần mạng di động GSM phủ sóng

- Hệ thống có thể sử dụng các loại sim của các nhà cung cấp khác nhau như: Viettel, mobile…

- Cấu trúc tin nhắn điều khiển đơn giản, dễ kiểm soát

- Phần cứng được thiết kế đơn giản, sử dụng số linh kiện tối thiểu, kết nối chân ra đáp ứng nhu cầu phát triển đề tài sau này.

5.1.2 Khuyết điểm

- Hệ thống chỉ hoạt động ở vùng có phủ sóng điện thoại di động GSM. Nên ở

những vùng không phủ sóng GSM sẽ không sử dụng được tính năng của hệ

thống.

- Phải tốn chi phí gửi tin nhắn SMS đểđiều khiển thiết bị và nhận tín hiệu thông báo bằng SMS của thiết bị.

5.1.3 Khả năng ứng dụng thực tế của đề tài

Trang 80

- Có thể nhận tin nhắn điều khiển với số lượng và thời lượng không giới hạn. Chủ nhà có thể kiểm soát được các thiết bị cần theo dõi trạng thái trong nhà khi vắng nhà. - Có thểđiều khiển, kiểm tra trạng thái thiết bị từ xa thông qua điện thoại di động chí với 1 tin nhắn SMS.

Với những đặc điểm và tính năng trên, hệ thống sẽ trở thành sản phẩm tiêu dùng, đáp ứng nhu cầu xã hội. Đề tài mang tính hiện đại, thực tiễn cao và tính khả thi tốt trong thực tế.

5.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Đề tài mở có nhiều hướng phát triển và ứng dụng trong tương lai.

Phát triển thêm giao tiếp giữa các module điều khiển với nhau thông qua chuẩn RS485 điều khiển nhiều thiết bịđặt ở các vị trí khác nhau trong nhà tạo thành mạng cục bộ RS485 để mở rộng hoạt động của hệ thống.

Tích hợp thêm các loại cảm biến khác như cảm biến độ ẩm, cảm biến khói, … để

nâng cao hiệu quả giám sát.

Khai thác tính năng GPRS của modem GSM SIM 900 để có thể giám sát điều khiển qua GPRS.

Lập trình có thể tạo password trong cấu trúc của tin nhắn SMS để hệ thống được nâng cao cấp bảo mật bằng Password.

Khi ở gần thiết bị, có thể điều khiển được bằng tay thông qua công tắc được thiết kế

trong hệ thống mà không cần phải nhắn tin.

Mở rộng phạm vi ứng dụng chức năng điều khiển của hệ thống không chỉ sử dụng trong gia đình mà còn dùng trong công nghiệp vì việc này sẽ rất có lợi để tiết kiệm chi phí điều khiển của hệ thống.

Trang 81 PHỤ LỤC Mã nguồn chương trình

/***************************************************** This program was produced by the

CodeWizardAVR V2.03.4 Standard Automatic Program Generator

© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Chip type : ATmega8 Program type : Application Clock frequency : 8.000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 256

*****************************************************/ #include <mega8.h> //#include <stdio.h> #include <string.h> #include <delay.h> #include "lcd.h" //--- #define Device1 PORTB.0

#define LedDebug PORTB.1

#define GasSensor PIND.5 #define MoveSensor PIND.6 #define OpenDoor PIND.7

Trang 82 #define ON 1 #define OFF 0 //--- #define CR 0x0D #define LF 0x0A #define Begin_Update 1 #define Check_SMS 2 #define Check_Call 3 #define Check_GPRS 4 #define Finish_Update 5 #define ReceiveSMS_Sim900 1 #define Delete_SMS 2 #define Finish_Call 3 #define SendSMS_Sim900 4 #define SendSMS_Step1_Sim900 5 #define SendSMS_Step2_Sim900 6 #define SendSMS_Step3_Sim900 7 #define Calling_Sim900 8 #define Calling_Step1_Sim900 9 #define Unimplement_Sim900 99 #define EndCommand_Sim900 100 //--- #define CanhBaoDoGas 1 #define CanhBaoTrom 2 #define TrangThaiThietBi 3

Trang 83

//--- bit Flag_Reciever_SMS = OFF;

unsigned char PassPhone1[13] = {11,0,1,6,7,8,3,1,5,2,2,2}, PassPhone2[13] = {11,0,1,6,7,8,3,1,5,3,3,3};

unsigned char BufferDataSim900[40], BufferProgressDataSim900[40], PhoneNumberArrive[13], CountDataSim900, PC_UpdateDataSim900, PC_ProgressControlSim900, SimCount_NgoacKep, Stack_Restore_SMS, Times_UpdateData, PC_SendSMS;

unsigned int Times_ProgressControlSim900; //---

unsigned char BufferDisplay1[16], BufferDisplay2[16]; //---

bit Led_Toggle;

unsigned char Led_Blink_Times;

bit Device_Status; bit Calling_Status; bit Flag_GasSensor, Flag_OpenDoorSensor ; //---

Trang 84 void sys_init(void); void variable_init(void); void Data_Update(void); void Control(void); void Display(void); void ClearDisplay(void); void Sim900_Init(void); void UpdateDataSim900(void); void ProgressControlSim900(void); void Clear_BufferDataSim900(void); void Clear_BufferProgressDataSim900(void); void Read_SMS(char SMS_Number);

void Clear_SMS(char SMS_Number);

unsigned char Compare_Character(char data1,char data2); unsigned char Check_Pass(void);

void putchar(char c);

void putsf(char flash *string);

//--- void main(void) { sys_init(); lcd_init(); Sim900_Init(); variable_init(); strcpyf(BufferDisplay1,"Device Control "); strcpyf(BufferDisplay2," SMS ");

Trang 85 while (1) { Data_Update(); Control(); Display(); }; } //--- void sys_init(void) {

// Declare your local variables here // Input/Output Ports initialization // Port B initialization

// Func7=In Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=Out Func0=Out // State7=T State6=T State5=0 State4=T State3=T State2=T State1=0 State0=0

PORTB=0x00; DDRB=0x23;

// Port C initialization

// Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTC=0x00; DDRC=0x3F;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=P State6=P State5=P State4=P State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock

Trang 86

// Clock value: Timer 0 Stopped TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 1000.000 kHz // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x02; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

Trang 87

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x04;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;

UCSRB=0x98; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

// Global enable interrupts #asm("sei")

}

//--- void variable_init(void)

Trang 88 Clear_BufferDataSim900(); Clear_BufferProgressDataSim900(); Device_Status = 0; Calling_Status = OFF; } //--- void Data_Update(void) { UpdateDataSim900(); if( GasSensor ) {

if( Flag_GasSensor == OFF ) { Flag_GasSensor = ON; Times_ProgressControlSim900 = 0; PC_ProgressControlSim900 = SendSMS_Step1_Sim900; PC_SendSMS = CanhBaoDoGas; }; } else { Flag_GasSensor = OFF; }; //---

if( MoveSensor || OpenDoor ) {

if( Flag_OpenDoorSensor == OFF ) {

Flag_OpenDoorSensor = ON; Times_ProgressControlSim900 = 0;

Trang 89 PC_SendSMS = CanhBaoTrom; }; } else { Flag_OpenDoorSensor = OFF; }; } //---

Một phần của tài liệu điều khiển từ xa các thiết bị bằng tin nhắn sms (Trang 69)