Thiết kế và thi công phần mềm

Một phần của tài liệu điều khiển từ xa bằng di động và điện thoại cố định (Trang 74 - 97)

2) Nội dung các phần thuyết minh và tính toán:

4.4 Thiết kế và thi công phần mềm

4.4.1 Ý tƣởng chƣơng trình

Chương trình được thiết kế để vi điều khiển nhận tin nhắn từ module SIM300CZ, sau đó xử lý tin nhắn và tiến hành điều khiển các thiết bị.

4.4.2 Lƣu đồ chƣơng trình chính

BEGIN Khởi tạo truyền

dữ liệu nối tiếp UART Báo có tin nhắn mới ?

Nhận tin nhắn

Xử lý tin nhắn và Điều khiển thiết bị Báo cáo kết quả xử lý và

điều khiển S

Đ

Hình 4.17 : Lưu đồ chương trình chính

Giải thích lưu đồ :

Đầu tiên, khi vừa khởi động hoặc reset, 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. Sau đó vi điều khiển sẽ thực hiện chờ nhận tin báo có tin nhắn mới từ module SIM300CZ. Nếu tin báo gửi tới là tin báo có tin nhắn mới, vi điều khiển sẽ thực hiện gửi lệnh điều khiển đọc tin nhắn mới từ module.

Sau khi nhận tin nhắn từ module, vi điều khiển sẽ tiến hành xử lý nội dung tin nhắn để điều khiển thiết bị.

Cuối cùng vi điều khiển tiến hành điều khiển module gửi tin nhắn trả lời báo kết quả điều khiển và kết thúc quá trình điều khiển.

Sau khi thực hiện xong quá trình, vi điều khiển quay lại ban đầu tiếp tục chờ có tin nhắn mới.

4.4.3 Lƣu đồ chƣơng trình xử lý tin nhắn

Xử lý tin nhắn Lấy nội dung tin nhắn và số

điện thoại gửi Mật khẩu đúng ?

Cú pháp đúng ? Điều khiển thiết bị

Báo sai mật khẩu

Báo sai cú pháp RET Đ S Đ S

Hình 4.18 : Lưu đồ chương trình xử lý tin nhắn

Để xử lý tin nhắn, trước tiên vi điều khiển thực hiện tách lấy phần nội dung của tin nhắn và số điện tho ại đã gửi tin nhắn tới. Sau đó vi điều khiển sẽ tiến hành phân tích nội dung lệnh điều khiển. Trước tiên là kiểm tra mật khẩu, nếu mật khẩu sai vi điều khiển sẽ thực hiện gửi tin nhắn báo sai mật khẩu cho thuê bao gửi tin nhắn điều khiển. Nếu mật khẩu là đúng, sẽ kiểm tra tiếp cú pháp điều khiển, nếu cú pháp đúng, vi điều khiển sẽ tiến hành điều khiển thiết bị, nếu không sẽ thực hiện gửi tin nhắn báo sai cú pháp cho thuê bao gửi tin nhắn điều khiển.

4.4.4 Lƣu đồ chƣơng trình điều khiển thiết bị

Mã điều khiển ngắn ? Điều khiển kiểm tra ?

Điều khiển mở/tắt tất cả thiết bị Điều khiển mở/tắt từng thiết bị Kiểm tra thiết bị

Kiểm tra thiết bị Đ

S Đ

S Điều khiển thiết bị

RET

Để điều khiển thiết bị, trước tiên sẽ phải kiểm tra lệnh điều khiển. Lệnh điều khiển có 2 loại, lệnh điều khiển ngắn và lệnh điều khiển dài. Lệnh điều khiển ngắn là lệnh điều khiển chỉ có 1 ký tự tắt ho ặc mở, nếu gặp lệnh này sẽ thực hiện tắt hoặc mở toàn bộ các thiết bị. Lệnh điều khiển dài là lệnh điều khiển thực hiện cho từng thiết bị, khi gặp lệnh này chỉ thực hiện điều khiển cho 1 thiết bị xác định. Vi điều khiển sẽ kiểm tra lệnh điều khiển là ngắn hay dài dựa vào chiều dài của lệnh.

Nếu lệnh điều khiển là ngắn, vi điều khiển sẽ tiến hành kiểm tra lệnh là tắt, mở để thực hiện điều khiển cho toàn bộ thiết bị.

Nếu lệnh điều khiển là dài, vi điều khiển sẽ kiểm tra từng cụm lệnh (các cụm lệnh cách nhau bằng khoảng trắng), ở mỗi cụm lệnh nếu đúng sẽ thực hiện điều khiển thiết bị tương ứng. Các cụm lệnh sẽ được kiểm tra lần lượt cho đến hết chiều dài lệnh điều khiển. Ở mỗi cụm lệnh, vi điều khiển sẽ tiến hành kiểm tra cụm lệnh đó thực hiện nhiệm vụ gì và thực hiện điều khiển thiết bị theo nhiệm vụ đó. Sau khi thực hiện điều khiển xong cụm lệnh này, vi điều khiển thực hiện tiếp cụm lệnh tiếp theo cho đến khi hết chiều dài lệnh.

Sau khi thực hiện xong các lệnh điều khiển, vi điều khiển sẽ tiến hành kiểm tra trạng thái cúa thiết bị và để báo kết quả điều khiển.

4.4.5 Lƣu đồ chƣơng trình nhận dữ liệu

NHANDL

Có dữ liệu đến ?

Nhận ký tự

Ký tự kết thúc ? Lưu ký tự

Tăng địa chỉ lưu

RET Thiết lập bộ nhớ lưu dữ liệu Đ S Đ Đ S

Hình 4.20 : Lưu đồ chương trình con nhận dữ liệu

Khi có các dữ liệu từ module SIM300CZ gửi qua, chương trình sẽ tiến hành nhận dữ liệu và lưu bộ nhớ RAM nội của vi điều khiển.

4.4.6 Lƣu đồ chƣơng trình gửi dữ liệu

GUIDL

Đang bận gửi dữ liệu ?

Gặp ký tự cuối ? Tăng lên ký tự tiếp theoGửi ký tự

RET

S

Đ Đ

S

Hình 4.21 : Lưu đồ chương trình con gửi dữ liệu

Chương trình sẽ gửi các lệnh điều khiển cũng như dữ liệu từ vi điều khiển đến module SIM300CZ.

4.4.7 Lƣu đồ chƣơng trình lấy địa chỉ

LAYDC

X : địa chỉ đầu của dữ liệu được nhận về

Ký tự đầu số điện thoại ?

Lấy địa chỉ đầu lưu số điện thoại

Tăng lên đến ký tự tiếp theo

Ký tự đầu dữ liệu ?

Lấy địa chỉ đầu dữ liệu

Tăng lên đến ký tự tiếp theo

Địa chỉ cuối dữ liệu ?

Lấy địa chỉ cuối dữ liệu

RET S Đ S Đ S Đ

Hình 4.22 : Lưu đồ chương trình con lấy địa chỉ

Khi nhận được nội dung tin nhắn từ module SIM300CZ. Để xử lý điều khiển, vi điều khiển phải xác định các vùng dữ liệu có ích cho mục đích điều khiển, gồm vùng dữ liệu chứa số điện thoại đã gửi tin nhắn điều khiển và vùng nhớ chứa nội dung điều khiển. Chương trình con lấy địa chỉ làm nhiệm vụ lấy các địa chỉ bắt đầu của vùng nhớ lưu số điện thoại, địa chỉ bắt đầu và kết thúc của vùng nhớ lưu nội dung điều khiển.

4.4.8 Lƣu đồ chƣơng trình điều khiển thiết bị

MOTBI

Mở chân điều khiển thiết bị (Set)

Thiết bị đã mở ? Tắt chân điều khiển thiết bị (Clear)

RET

S Đ

Hình 4.23: Lưu đồ chương trình con điều khiển mở thiết bị

TATTBI

Tắt chân điều khiển thiết bị (Clear)

Thiết bị đã tắt ? Mở chân điều khiển thiết bị (Set)

RET

S Đ

Hình 4.24 : Lưu đồ chương trình con tắt thiết bị

Hai chương trình con này sẽ thực hiện mở và tắt thiết bị khi được yêu cầu.

4.4.9 Lƣu đồ chƣơng trình kiểm tra thiết bị

KTRATBI

Thiết bị 1 tắt ? Thiết bị 2 tắt ? Thiết bị 1 tắt, thiết bị 2 tắt

(KTRATB = 53) Thiết bị 1 tắt, thiết bị 2 mở

(KTRATB = 54)

Thiết bị 2 tắt ? Thiết bị 1 mở, thiết bị 2 tắt

(KTRATB = 55) Thiết bị 1 mở, thiết bị 2 mở (KTRATB = 56) RET Đ Đ Đ S S S

Chương trình sẽ kiểm tra trạng thái thiết bị là mở hay tắt để báo cho vi điều khiển biết.

4.4.10 Lƣu đồ c hƣơng trình gửi tin nhắn

GUITN

Gửi chuỗi “AT+CMSS=”

Gửi dấu “,”

Gửi kết quả kiểm tra thiết bị (KTRATB)

Gửi số điện thoại

Gửi ký tự ENTER

RET

Hình 4.26: Lưu đồ chương trình con gửi tin nhắn

Chương trình sẽ gửi mã lệnh AT gửi tin nhắn đến cho module SIM300CZ để module thực hiện gửi tin nhắn cho số điện tho ại đã gửi tin nhắn điều khiển đến.

4.4.11 Khởi tạo cho module SIM300CZ

Để module SIM300CZ có thể thực hiện tốt chức năng nhận và gửi tin nhắn cũng như giao tiếp với vi điều khiển, ta cũng phải tiến hành cấu hình cho module trước khi sử dụng. Việc khởi tạo module SIM300CZ được tiến hành như sau:

Bảng 4.1 : Các bước thiết lập cấu hình cho module SIM300CZ

TT LỆNH GIẢI THÍCH

(1). ATE1<CR> Mở chế độ echo lệnh, phục vụ cho việc hiển thị

(2). AT&W<CR> Lưu cài đặt

(3). AT+CMGF=1<CR> Cài đặt quá trình truyền nhận tin nhắn được thực hiện ở chế độ text

(4). AT+CNMI=2,1,0,0,0<CR> Thiết lập báo cho vi điều khiển khi module nhận được tin nhắn mới, khi có tin nhắn mới module sẽ gửi chuỗi lệnh +CMTI:”SM”,1 để báo cho vi điều khiển biết có tin nhắn mới

(5). AT+CSAS<CR> Lưu cài đặt

(6). AT+ CMGW=3<CR>sai mat khau <CTRL+Z>

Cài đặt tin nhắn trả lời báo các kết quả điều khiển

(7). AT+CMGW=4<CR>sai cu phap <CTRL+Z>

(8). AT+CMGW=5<CR>thiet bi 1 tat, thiet bi 2 tat <CTRL+Z>

(9). AT+CMGW=6<CR>thiet bi 1 tat, thiet bi 2 mo <CTRL+Z>

(10). AT+CMGW=7<CR>thiet bi 1 mo, thiet bi 2 tat <CTRL+Z>

(11). AT+CMGW=8<CR>thiet bi 1 mo, thiet bi 2 mo <CTRL+Z>

CHƢƠNG 5 :

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI

5.1 Kết quả thực hiện

Sau hơn 3 tháng thực hiện đề tài, nhóm đã hoàn thành việc thiết kế và thi công mô hình điều khiển thiết bị từ xa bằng điện thoại di động dùng SMS. Hệ thống đã được test thử và chạy rất ổn định.

 Về phần cứng: gồm 4 board

- Board Module sim300CZ giao tiếp mạng GSM nhận tin nhắn điều khiển và truyền tin nhắn phản hồi.

- Board vi điều khiển 89C52 xử lý tin nhắn, xuất tín hiệu điều khiển, nhận biết trạng thái của thiết bị.

- Board thiết bị nhận tín hiệu điều khiển từ vi điều khiển bằng mức điện áp để kích triac dẫn nguồn 220V qua thiết bị công suất nhỏ.

- Board hiển thị LCD hiển thị các lệnh trong quá trình làm việc của vi điều khiển.

 Về phần mềm:

- Khởi tạo các thông số ban đầu cho Module sim300CZ bằng cách kết nối với máy tính thông qua cổng COM.

- Hoàn thành chương trình cho vi điều khiển với các tính năng sau:

+ Hệ thống có tính bảo mật cao vì khi điều khiển phải nhập đúng password.

+ Hệ thống điều khiển được 2 thiết bị điện dân dụng với công suất nhỏ như đèn, quạt…

+ Có tin nhắn phản hồi sau khi thực hiện lệnh điều khiển.

+ Có khả năng kiểm tra trạng thái của thiết bị hiện tại bằng lệnh trước khi gửi tin nhắn điều khiển.

5.2 Mô tả hệ thống

Hệ thống bao gồm các khối Module SIM300CZ, vi điều khiển, khối công suất được mắc cố định đặt tại địa điểm chứa thiết bị điều khiển.

Khi người sử dụng ở xa không thể trực tiếp điều khiển thiết bị, người sử dụng có thể kiểm tra trạng thái hoặc điều khiển thiết bị bằng cách gửi tin nhắn SMS theo cú pháp :

Trong đó :

<mật khẩu> : 1234 <nội dung điều khiển> :

99: kiểm tra thiết bị 1: mở tất cả các thiết bị 0: tắt tất cả các thiết bị 00 01: tắt thiết bị 1, tắt thiết bị 2 00 11: tắt thiết bị 1, mở thiết bị 2 10 01: mở thiết bị 1, tắt thiết bị 2 10 11: mở thiết bị 1, mở thiết bị 2

Khi nhận được tin nhắn mới, Module Sim300CZ sẽ gửi lệnh +CMTI: “SM”, 1 đến vi điều khiển thông qua chân TXD để báo cho vi điều khiển biết có tin nhắn mới. Vi điều khiển nhận được lệnh thông qua chân RXD (P3.0) sẽ gửi lại lệnh AT+CMGR=1 qua chân TXD (P3.1) đến module để đọc nội dung tin nhắn vừa nhận được. Module nhận được lệnh này qua chân RXD sẽ gửi nội dung tin nhắn đến vi điều khiển.

Sau khi nhận được nội dung tin nhắn, vi điều khiển tiến hành xử lý tin nhắn và gửi tín hiệu điều khiển ra chân P2.7 (thiết bị 1), P2.5 (thiết bị 2) để điều khiển. Sau khi điều khiển, vi điều khiển nhận biết trạng thái thiết bị thông qua chân P2.6 (thiết bị 1), P2.4 (thiết bị 2), và điều khiển module gửi tin nhắn báo kết quả điều khiển bằng lệnh: AT+CMSS=<chỉ số>, <số điện tho ại> trong đó:

<Chỉ số>: số chỉ thị kết quả điều khiển thiết bị tương ứng với vị trí tin nhắn lưu trong sim: 3: sai mật khẩu 4: sai cú pháp 5: thiết bị 1 mở, thiết bị 2 mở 6: thiết bị 1 tắt, thiết bị 2 mở 7: thiết bị 1 mở, thiết bị 2 tắt 8: thiết bị 1 mở, thiết bị 2 mở

<số điện thoại>: số điện thoại thuê bao gửi tin nhắn điều khiển thiết bị

Cuối cùng, vi điều khiển gửi lệnh điều khiển AT+CMGD=1 cho module để xóa tin nhắn điều khiển. Quá trình trên được lặp lại khi có tin nhắn điều khiển mới đến.

5.3 Ƣu điểm và khuyết điểm của hệ thống

- Sử dụng mạng viễn thông GSM trong truyền thông mang tính công nghiệp. - Hệ thống hoạt động ở những vị trí khó khăn mà đường dây điện thoại không

có, chỉ cần được mạng di động 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….

- 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.

- Hệ thống có thể điều khiển thiết bị công suất nguồn 220V. - Hệ thống được bảo mật bằng password.

- Hệ thống có dùng LCD hiện thị quá trình làm việc của vi điều khiển nên dễ dàng phát hiện sai và sữa chữa cho phần mềm

- Nếu ở gần thiết bị, có thể điều khiển công tắt được thiết kế cho từng thiết bị trong module mà không cần phải gửi tin nhắn.

 Khuyết điểm

- Chỉ dừng ở điều khiển được 2 thiết bị công suất. - Password không thay đổi được.

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

- Hệ thống được lập trình chỉ điều khiển thiết bị dùng tin nhắn SMS dạng text. - Phải tốn chi phí gửi SMS

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

Đề tài đáp ứng được những nhu cầu của xã hội:

- 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. - 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

- Khi gần thiết bị, có thể điều khiển bằng tay thông qua công t ắt được thiết kế trong hệ thống mà không cần nhắn tin.

Với những đ ặc điểm và tính năng trên, hệ thống có thể 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.5 Hƣớng phát triển

Đây là một đề tài khá mới mẻ, nên có nhiều hướng phát triển trong tương lai: - Mở rộng số thiết bị cần điều khiển.

- Lập trình có thể thay đổi password để tăng tính bảo mật.

Phần C

PHỤ LỤC VÀ

TÀI LIỆU THAM KHẢO

PHỤ LỤC I :

MÃ NGUỒN CHƢƠNG TRÌNH

;================================

;GIAO TIEP MODULE SIM 300CZ CO GIAO TIEP LCD ;================================ CHECK BIT 00H DEN BIT P2.7 HTDEN BIT P2.6 QUAT BIT P2.5 HTQUAT BIT P2.4 NHO EQU 21H DCSODT EQU 22H DCDULIEU EQU 23H KYTU1 EQU 24H KYTU2 EQU 25H DCCUOI EQU 26H KTRATB EQU 27H CONTRO EQU 28H TTGUI EQU 29H

TNTLOI EQU 2AH

KTGUI EQU 2BH KTULF EQU 2CH ;================================ ;MAIN PROGRAM ;================================ ORG 0000H CALL KHOITAOLCD MOV A,#080H CALL MADK CALL DELAY100MS MOV SCON, #01010010B

MOV TMOD,#00100000B ;truyen dl mod 1

MOV TH1,#-3 ;Toc do truyen 9600 Baud <=> 9600bps SETB TR1

CLR CHECK

X0: MOV CONTRO,#07FH CLR RI

MOV A,#01H CALL MADK CALL DELAY100MS MOV A,#080H CALL MADK CALL DELAY100MS MOV KTULF,#2 CALL NHANDL MOV R1,#030H MOV A,@R1 MOV NHO,A CALL HIENTHI L1: INC R1 MOV A,@R1 MOV NHO,A CALL HIENTHI CJNE @R1,#13,L1 CALL DELAY1S MOV DPTR,#CMTI MOV R0,#030H CALL SOSANH JNB CHECK,X0 MOV A,#01H CALL MADK CALL DELAY100MS MOV A,#080H CALL MADK CALL DELAY100MS MOV CONTRO,#07FH MOV DPTR,#CMGR1 MOV TTGUI,#0 CALL GUIDL MOV KTULF,#5

CALL NHANDL CALL LAYDC MOV CONTRO,#07FH MOV R1,DCSODT MOV A,@R1 MOV NHO,A CALL HIENTHI D1: INC R1 MOV A,@R1 MOV NHO,A CALL HIENTHI CJNE @R1,#34,D1 CALL DELAY1S MOV A,#01H CALL MADK CALL DELAY100MS MOV A,#080H CALL MADK CALL DELAY100MS MOV CONTRO,#07FH MOV R1,DCDULIEU D3: MOV A,@R1 CJNE A,#13,D2 JMP TIEP D2: MOV NHO,A CALL HIENTHI INC R1 CJNE R1,#123,D3 MOV R1,#128 JMP D3

TIEP: CALL DELAY1S MOV A,#01H CALL MADK

CALL DELAY100MS MOV A,#080H CALL MADK CALL DELAY100MS MOV R0,DCDULIEU MOV DPTR,#MABAOVE

CALL SOSANH ; kiem tra ma bao ve cua tin nhan JNB CHECK,LBT MOV DCDULIEU,R0 MOV A,DCCUOI CJNE A,#128,KT KT1: CLR C SUBB A,R0 SUBB A,#5 JMP KT2 KT: JNC KT1 CLR C SUBB A,R0 KT2: CJNE A,#2,DK1 MOV DPTR,#DKTAT CALL SOSANH JNB CHECK,DKA CALL TATDEN

Một phần của tài liệu điều khiển từ xa bằng di động và điện thoại cố định (Trang 74 - 97)

Tải bản đầy đủ (PDF)

(97 trang)