Xây dựng hệ thống giám sát mực nước, nhiệt độ và phát cảnh báo qua mạng tin nhắn SMS/GSM - 10

KẾT LUẬN

Qua thời gian nghiên cứu, thi công, đồ án đã cơ bản được hoàn thành. Bằng sự nỗ lực cố gắng của bản thân và sự phân chia công việc hợp lí, chặt chẽ, phù hợp thời gian, bên cạnh đó còn là sự hướng dẫn nhiệt tình, tận tâm của thầy Trần Trung Tín, đồ án này đã được hoàn thành đúng thời gian như đã định và đã đạt được yêu cầu đặt ra theo yêu cầu là thiết kế và thi công hệ giám sát mực nước, nhiệt độ bằng tin nhắn SMS. Trong quá trình thực hiện đề tài, em đã thu được những kết quả nhất định như sau:

Mạch điện với các module nhỏ trên mạch được thiết kế, thi công hoàn chỉnh và đã được thử nghiệm nhiều lần và đã thoạt động ổn định trong thực tế.

Xây dựng được mô hình giám sát mực nước, nhiệt độ qua tin nhắn điện

thoại

Trong đồ án này, em đã trình bày về chức năng, cấu trúc của từng khối module

nhỏ trên board mạch điện tích hợp. Như vậy, giúp người đọc có thể nắm bắt, hiểu được chức năng của từng module một cách dễ dàng. Bên cạnh đó, nội dung của đề tài được trình bày khá chi tiết rõ ràng bằng cách sử dụng những từ ngữ thông dụng, các hình ảnh đi kèm giúp người đọc dễ hiểu và có thể thực hiện một cách tương tự, đạt hiệu quả trong một thời gian ngắn.

Tuy nhiên đề tài có có nhiều hạn chế mà em chưa đi sâu vào nghiên cứu như:

+ Hệ thống chỉ dừng lại ở việc chỉ phát tin nhắn cảnh báo mực nước và phát cảnh báo nguội sau mỗi 1 phút.

+ Hệ thống chưa thể phát tin nhắn báo mực nước đang giảm

Có thể bạn quan tâm!

Xem toàn bộ 104 trang tài liệu này.

+ Chưa thể xử lý cuộc gọi và tin nhắn trả lại từ người quản lí.

+ Không thể tự reset lại chương trình khi bị lỗi

Xây dựng hệ thống giám sát mực nước, nhiệt độ và phát cảnh báo qua mạng tin nhắn SMS/GSM - 10

Ngoài ra ứng dụng của hệ thống GSM Sim900 còn rất nhiều như là: điều khiển thiết bị trong nhà, điều khiển vận hành các thiết bị từ xa, báo cháy từ xa, báo khí hậu thời tiết, v.v…

Cuối cùng, theo nhận định chủ quan của em thì đồ án đã được hoàn thành đúng thời gian cho phép và đã trình bày khá đầy đủ các mảng kiến thức liên quan, các vấn đề liên quan tới đề tài. Sau này em sẽ cố gắng học hỏi và phát triển hệ thống trở nên hiện đại hơn

TÀI LIỆU THAM KHẢO

TÀI LIỆU TIẾNG VIỆT

[ 1 ]. Ngô Hải Bắc ,Lập trình giao tiếp máy tính qua cổng RS232,

www.dientuvietnam.net, (2009).

[ 2 ]. Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc và lập trình họ vi điều khiển 8051 , Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội, (2005)

[ 3 ]. Phạm Minh Hà, Kỹ thuật mạch điện tử , Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội, (2005).

[ 4 ]. Đỗ Xuân Thụ, Kỹ thuật điện tử, Nhà xuất bản Giáo dục, Hà Nội, (2000).

[ 5 ]. Trần Xuân Trường, Tài liệu sử dụng CCS, www.picvietnam.com, (2009).

[ 6 ]. Giáp Văn Vỹ, Lập trình C cho PIC, www.picvietnam.com, (2007).

MỘT SỐ TRANG WEB THAM KHẢO

[ 7 ]. www.alldatasheet.com

[ 8 ]. www.dientuvietnam.com

[ 9 ]. www.google.com.vn

[ 10 ]. www.hlab.com.vn

[ 11 ]. www.picvietnam.com

[ 12 ]. www.4tech.com.vn

PHỤ LỤC

1. TẬP LỆNH AT CỦA MODULE

1.1 Các lệnh khởi tạo GSM Module Sim900

Lệnh AT<cr>

Nếu lệnh thực hiện đựợc thì trả về: Ok

Bắt đầu thực hiện các lệnh tiếp theo.

Nếu lệnh không thực hiện được thì trả về dạng:

+CMS ERROR <err>

Lệnh AT+CMGF=[<mode>] <cr> Nếu lệnh thực hiện đựợc thì trả về:

Ok

<mode> : 0 dạng dữ liệu PDU 1 dạng dữ liệu kiểu text

Nếu lệnh không thực hiện được thì trả về dạng:

+CMS ERROR <err>

Lệnh AT&W[<n>]

Nếu lệnh thực hiện đựợc thì trả về: Ok

Lưu cấu hình cho GSM Module Sim900

Nếu lệnh không thực hiện được thì trả về dạng:

+CMS ERROR <err>

Lệnh ATE[<value>]

Nếu lệnh thực hiện đựợc thì trả về: Ok

<value> 0 Tắt chế độ Echo

1 Bật chế độ Echo

Nếu lệnh không thực hiện được thì trả về dạng:

+CMS ERROR <err>

1.2 Các lệnh về SMS

Lệnh Xóa tin nhắn AT+CMGD

Ví dụ: muốn xóa một tin nhắn nào đó được lưu trên sim thì ta thực hiện lệnh sau. AT+CMGD=<index> <cr>

<index>: vị trí ngăn nhớ lưu tin nhắn Nếu lệnh thực hiện đựợc thì trả về:

Ok

Nếu lệnh không thực hiện được thì trả về dạng:

+CMS ERROR <err>

Lệnh đọc tin nhắn: AT+CMGR=<index>[,mode] <cr>

<index> : số nguyên, đó là vị trí ngăn nhớ chứa tin nhăn cần đọc

<mode> : 0 dạng dữ liệu PDU

1 dạng dữ liệu kiểu text

Nếu như lệnh được thực hiện thì kiểu dữ liệu trả về dưới dạng text ( mode=1): Từ SMS-DELIVER:

+CMGR:<stat>,<oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca

>,<length>]<CR><LF><data> Từ SMS-SUBMIT:

+CMGR:<stat>,<da>,[<alpha>][,<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca

>,<length>]<CR><LF><data>

Từ SMS-STATUS-REPORTs:

+CMGR: <stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st> Từ SMS-COMMANDs:

+CMGR:<stat>,<fo>,<ct>[,<pid>,[<mn>],[<da>],[<toda>],<length><CR><LF>

<cdata>]

Từ CBM storage

+CMGR:<stat>,<sn>,<mid>,<dcs>,<page>,<pages><CR><LF><data> Nếu dữ liệu trả về dạng PDU(mode=0):

+CMGR: <stat>,[<alpha>],<length><CR><LF><pdu> Nếu lệnh bị lỗi thì trả về dưới dạng:

+CMS ERROR: <err>

Lệnh gửi tin nhắn SMS: AT+CMGS

Nếu gửi tin nhắn dưới dạng text: (+CMGF=1):

+CMGS=<da>[,<toda>]<CR> text is entered <ctrl-Z/ESC> Nếu gửi tin nhắn dạng PDU:

(+CMGF=0):

+CMGS=<length><CR> PDU is given <ctrl-Z/ESC> Lệnh được thực hiện thành công thi dữ liệu trả về:

Dạng text : +CMGS: <mr> OK

Dạng PDU : +CMGS: <mr> OK

Lệnh bị lổi : +CMS ERROR: <err>

Lệnh viết tin nhắn rồi lưu vào ngăn nhớ: AT+CMGW

Nếu viết tin nhắn dưới dạng text : AT+CMGW=[<oa/da>[,<tooa/toda>[,<stat>]]]<CR>text is entered <ctrl-

Z/ESC> <ESC>

Lệnh được thực hiện đúng thì dữ liệu trả về dạng:

+CMGW: <index> OK

Lệnh sai:

+CMS ERROR: <err>

Nếu viết tin nhắn dưới dạng PDU: AT+CMGW=<length>[,<stat>]<CR> PDU is given <ctrl-Z/ESC>

Lệnh gửi tin nhắn từ một ngăn nhớ nào đó: AT+CMSS=<index>[,<da>[,<toda>]]

Nếu lệnh được thực hiện thành công dữ liệu trả về dạng: Dạng text: +CMGS: <mr> [,<scts>]

OK

Dạng PDU: +CMGS: <mr> [,<ackpdu>] OK

Nếu lệnh bị lỗi:

+CMS ERROR: <err>

Lệnh báo hiệu tin nhắn mới: AT+CNMI=[<mode>[,<mt>[,<bm> [,<ds>[,<bfr>]]]]]

Nếu lệnh được thưch hiện đúng thì dữ liệu trả về dạng: OK

Nếu lệnh bị lỗi:

+CMS ERROR: <err>

1.3 Các lệnh khác

Lệnh nghỉ AT+CFUN

Ví dụ muốn tắt hết chức năng liên quan đến truyền nhận sóng RF và các chức năng liên quan đến sim thì gõ lệnh:

AT+CFUN=0 <cr> OK

Lệnh chuyển từ chế độ nghỉ sang chế độ hoạt động bình thường AT+CFUN

Ví dụ sim đang ở chế độ nghỉ ta muốn chuyển sang chế độ hoạt động bình thường thi gõ lệnh:

AT+CFUN=1 <cr> OK

Lệnh reset mode ATZ <cr>

OK

Lệnh tắt chế độ echo ATE0 <cr>

1.4 Các lệnh kiểm tra ban đầu

- Lấy thông tin cơ bản về điện thoại di động hay modem GSM/GPRS. Ví dụ như tên của nhà sản xuất (AT+CGMI), số model (AT+CGMM), số IMEI (International Mobile Equipment Identity) (AT+CGSN) và phiên bản phần mềm (AT+CGMR).

- Lấy các thông tin cơ bản về những người kí tên dưới đây. Thí dụ, MSISDN (AT+CNUM) và số IMS (International Mobile Subscriber Identity) (AT+CIMI).

- Lấy thông tin trạng thái hiện tại của điện thoại di động hay modem GSM/GPRS. Ví dụ như trạng thái hoạt động của điện thoại (AT+CPAS), trạng thái đăng kí mạng mobile (AT+CREG), chiều dài sóng radio (AT+CSQ), mức sạc bin và trạng thái sạc bin (AT+CBC).

- Đọc (AT+CPBR), viết (AT+CPBW) hay tìm kiếm (AT+CPBF) các mục về danh bạ điện thoại (phonebook).

- Thực thi các nhiệm vụ liên quan tới an toàn, chẳng hạn như mở hay đóng các khóa chức năng (AT+CLCK), kiểm tra xem một chức năng được khóa hay chưa (AT+CLCK) và thay đổi password (AT+CPWD).

- Điều khiển hoạt động của các mã kết quả/các thông báo lỗi của các lệnh AT. Ví dụ, bạn có thể điều khiển cho phép hay không cho phép kích hoạt hiển thị thông báo lỗi (AT+CMEE) và các thông báo lỗi nên được hiển thị theo dạng số hay theo dạng dòng chữ (AT+CMEE=1 hay AT+CMEE=2).

- Thiết lập hay thay đổi cấu hình của điện thoại di dộng hay modem GSM/GPRS. Ví dụ, thay đổi mạng GSM (AT+COPS), loại dịch vụ của bộ truyền tin (AT+CBST), các thông số protocol liên kết với radio (AT+CRLP), địa chỉ trung tâm SMS (AT+CSCA) và khu vực lưu trữ các tin nhắn SMS (AT+CPMS).

- Lưu và phục hồi các cấu hình của điện thoại di động hay modem GSM/GPRS. Ví du, lưu (AT+COPS) và phục hồi (AT+CRES) các thiết lập liên quan tới tin nhắn SMS chẳng hạn như địa chỉ trung tâm tin nhắn SMS.

2. CODE

#include "..Include/pic_gsm_demo.h"

#include "myLCD16x2.c"

#include <math.h>

#define Led0 PIN_C1

#define Led1 PIN_C2

#define GSM_PW PIN_E2

#define GSM_SENSE PIN_E1

#define TEXTMODE 5;

#define PDUMODE 0;

#define UART_emptyIn() {RxHead=0;RxTail=0;}

#define RXBUFSIZE 70

#define TIME_OUT (int32)5000000

#define PHONE_NUM "01214522546"

int16 delay_100;

char timed_getc(void); int1 frame_get;

int1 new_frame;

void GSM_init(void); void GSM_start(void); void GSM_sync(void);

void GSM_sel_mess_mode(char mode); int UART_getc_timeout();

int UART_getc_blocking(); unsigned int check_new_message(); int read_message();


int RxBuf[RXBUFSIZE]; int RxHead = 0;


void UART_ISR()//source from MDK8051 project

{

char c; c=getc();

RxBuf[RxHead] = c; RxHead++;

if (RxHead > (RXBUFSIZE - 1))// check for wrap around. RxHead = 0;

}


#int_TIMER0 TIMER0_isr()

{

if(delay_100 < 40)

Xem tất cả 104 trang.

Ngày đăng: 23/05/2023
Trang chủ Tài liệu miễn phí