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

LỜI CẢM ƠN

Em xin chân thành cảm ơn đến quý Thầy, Cô trường Cao đẳng CNTT Hữu Nghị

Việt – Hàn, những người trực tiếp giảng dạy, truyền đạt những kiến thức bổ ích cho

em, đó chính là những nền tảng cơ bản, là những hành trang vô cùng quý giá, là bước

đầu tiên cho em bước vào sự nghiệp sau này trong tương lai. Đặc biệt là thầy Trần

Trung Tín, đã giúp đỡ em trong một tháng qua, giải đáp những thắc mắc trong quá

trình kiến tập. Nhờ đó, em mới có thể hoàn thành được đồ án tốt nghiệp này

Trong quá trình làm đồ án, vì chưa có kinh nghiệm thực tế, chỉ dựa vào lý thuyết

đã học cùng với thời gian hạn hẹp nên bài báo cáo tốt nghiệp chắc chắn sẽ không tránh

khỏi những sai sót. Kính mong nhận được sự góp ý, chia sẽ từ quý Thầy, Cô và các

bạn để kiến thức của em ngày càng hoàn thiện hơn và rút ra những kinh nghiệm bổ ích

có thể áp dụng vào thực tiễn một cách hiệu quả trong tương lai

Kính chúc thầy cô luôn vui vẻ, hạnh phúc, dồi dào sức khỏe và thành công trong

công việc

Em xin chân thành cảm ơn

Đà Nẵng,ngày 29 tháng 05 năm 2013

Bùi Tấn Tài

SVTH : Bùi Tấn Tài – CCVT03A

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

MỤC LỤC

LỜI CẢM ƠN ................................................................................................................. i

MỤC LỤC ..................................................................................................................... ii

THUẬT NGỮ VIẾT TẮT ............................................................................................. v

DANH MỤC BẢNG ................................................................................................... vii

DANH MỤC HÌNH ................................................................................................... viii

MỞ ĐẦU ......................................................................................................................... 1

CHƯƠNG 1. TỔNG QUAN VỀ MẠNG GSM VÀ DỊCH VỤ NHẮN TIN NHẮN

SMS ................................................................................................................................. 3

1.1 TỔNG QUÁT VỀ TIN NHẮN SMS .................................................................. 3

1.1.1 Giới thiệu về SMS ........................................................................................ 3

1.1.2 Cấu trúc của một tin nhắn SMS ................................................................. 5

1.1.3 Tin nhắn SMS chuỗi .................................................................................... 5

1.1.4 SMS CENTER/SMSC ................................................................................. 5

1.1.5 Nhắn tin SMS quốc tế .................................................................................. 6

1.2 TỔNG QUÁT VỀ HỆ THỐNG THÔNG TIN DI ĐỘNG GSM..................... 7

1.2.1 Giới thiệu về hệ thống thông tin di động GSM ......................................... 7

1.2.2 Đặc điểm của hệ thống thông tin di động GSM ........................................ 7

1.2.3 Cấu trúc của hệ thống thông tin di động GSM ......................................... 8

1.2.3.1 Cấu trúc tổng quát ................................................................................. 8

1.2.3.2 Các thành phần của hệ thống thông tin di động GSM ........................ 8

1.2.4 Sử phát triển của hệ thống thông tin di động ở Việt Nam ....................... 9

CHƯƠNG 2. VI ĐIỀU KHIỂN PIC16F877A ........................................................... 10

2.1. GIỚI THIỆU PIC (Programmable Intelligent Computer ). ........................ 10

2.1.1. Giới thiệu về vi điều khiển PIC................................................................ 10

2.1.2. Ưu và nhược điểm của PIC ...................................................................... 11

2.2GIỚI THIỆU TỔNG QUÁT VỀ PIC16F877A ............................................... 11

2.2.1 Giới thiệu về PIC16F877A ........................................................................ 11

2.2.2 Sơ đồ khối của PIC 16F877A .................................................................... 14

2.3 KHẢO SÁT SƠ ĐỒ CHÂN, CHỨC NĂNG TỪNG CHÂN ......................... 15

2.3.1 Sơ đồ chân vi điều khiển PIC16F877A .................................................... 15

2.3.2 Tổ chức bộ nhớ ........................................................................................... 17

SVTH : Bùi Tấn Tài – CCVT03A

ii

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

2.3.2.1 Bộ nhớ chương trình ........................................................................... 17

2.3.2.2 Bộ nhớ dữ liệu ..................................................................................... 19

2.3.3 Các cổng I/O của PIC16F877A ................................................................. 19

2.4 BỘ CHUYỂN ĐỔI TƯƠNG TỰ - SỐ (ADC) ................................................ 22

2.4.1 Kết quả chuyển đổi AD ............................................................................. 22

2.4.2 Các bước chuyển đổi từ tương tự - số ...................................................... 23

2.4.3 Các thanh ghi ADC .................................................................................... 24

2.5 BỘ SO SÁNH COMPARATOR ...................................................................... 24

2.6 TRUYỀN THÔNG NỐI TIẾP EUART .......................................................... 26

2.6.1 Bộ EUSART hoạt động trong chế độ bất đồng bộ .................................. 26

2.6.1.1 Bộ phát bất đồng bộ EUSART ............................................................ 27

2.6.1.2 Bộ thu bất đồng bộ EUSART .............................................................. 28

2.6.1.3 Độ chính xác của xung clock với hoạt động không đồng bộ ........... 30

2.6.2 Bộ EUSART hoạt động trong chế độ đồng bộ ....................................... 32

2.7 HOẠT ĐỘNG ĐỊNH THỜI TIMER............................................................... 32

2.7.1 Bộ định thời TIMER0 ................................................................................ 32

2.7.2 Bộ định thời TIMER1 ................................................................................ 34

2.7.3 Bộ định thời TIMER2 ................................................................................ 36

2.8 NGẮT (INTERRUPT) ...................................................................................... 37

CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG CẢM BIẾN VÀ PHÁT

CẢNH BÁO MỰC NƯỚC, NHIỆT ĐỘ QUA MẠNG TIN NHẮN SMS .............. 39

3.1 GIỚI THIỆU MODULE SIM900, TẬP LỆNH AT COMMAND. ............... 39

3.1.1 Giới thiệu module SIM900 ........................................................................ 39

3.1.2 Đặc điểm của module SIM900 .................................................................. 40

3.1.3 Khảo sát sơ đồ chân và chức năng từng chân ......................................... 42

3.1.4 Khảo sát tập lệnh AT của module SIM900 ............................................ 44

3.2 XÂY DỰNG HỆ THỐNG ................................................................................ 46

3.3 THIẾT KẾ PHẦN CỨNG ................................................................................ 47

3.3.1 Cảm biến ..................................................................................................... 47

3.3.1.1 Led phát ................................................................................................ 47

3.3.1.2 Led thu ................................................................................................. 48

3.3.1.3 Cảm biến nhiệt độ LM35 ..................................................................... 48

SVTH : Bùi Tấn Tài – CCVT03A

iii

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

3.3.2 Nguồn cung cấp cho hệ thống ................................................................... 49

3.3.3 Đèn báo ....................................................................................................... 50

3.3.4 Vi điều khiển PIC 16F877A ...................................................................... 51

3.3.5 Sơ đồ mạch.................................................................................................. 52

3.4. LƯU ĐỒ GIẢI THUẬT ................................................................................... 53

3.4.1. Lưu đồ giải thuật tổng quát chương trình chính .................................. 53

3.4.2 Lưu đồ thuật toán chương trình con kiểm tra mực nước ..................... 54

3.4.3 Lưu đồ giải thuật chương trình con Cấu hình GSM .............................. 55

3.4.4 Lưu đồ giải thuật chương trình gửi tin nhắn .......................................... 56

CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC CỦA HỆ THỐNG ...................................... 57

4.1 KẾT QUẢ ĐẠT ĐƯỢC .................................................................................... 57

4.2 HÌNH ẢNH HOẠT ĐỘNG .............................................................................. 57

KẾT LUẬN .................................................................................................................. 64

TÀI LIỆU THAM KHẢO ........................................................................................... 65

PHỤ LỤC ..................................................................................................................... 66

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ..................................................... 82

SVTH : Bùi Tấn Tài – CCVT03A

iv

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

THUẬT NGỮ VIẾT TẮT

Từ viết Thuật ngữ tiếng Anh Thuật ngữ tiếng Việt tắt

Short Message Service Dịch vụ tin nhắn ngắn SMS

Programmable Interface Controller Giao diện điều khiển lập trình PIC

GSM Global System for Mobile Hệ thống thông tin di động số

Communications toàn cầu

CDMA Code Division Multiple Access Đa truy nhập phân chia theo mã

TDMA Time Division Multiple Access Đa truy cập phân chia theo thời

gian

3GPP Third Generation Partnership Project Dự án cộng tác bên thứ ba

ETSI European Telecommunications Viện các tiêu chuẩn viễn thông

Standards Institute Châu Âu

WAP Wireless Application Protocol Giao thức Ứng dụng Không

dây

Module nhận dạng thuê bao

SIM Subscriber Identity Module

Short message Service Centre

SMSC Trung tâm dịch vụ tin nhắn ngắn

GPRS General Packet Radio Service Dịch vụ vô tuyến gói tổng hợp

EDGE Enhanced Data Rates for Global Nâng cao tốc độ truyền dữ liệu

Evolution

TDM Time Division Multiplexing Điều chế phân chia theo thời

gian

NSS Network Switching Subsystem Mạng chuyển mạch hệ thống

con

BSS Base Station Subsystem Hệ thống trạm cơ sở phụ

MS Mobile Station Trạm di động

OSS Operation Subsystem Hoạt động hệ thống phụ

AUC Authentication Center Trung tâm nhận thực

VLR Visitor Location Register Địa chỉ đăng kí truy cập

HLR Home Location Register Địa điểm đăng kí thường trú

EIR Equipment Identity Register Bộ ghi nhận dạng thiết bị.

SVTH : Bùi Tấn Tài – CCVT03A

v

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

MSC Mobile-services Switching Centrer Trung tâm chuyển mạch các

dịch vụ mạng.

BTS Base Transceiver Station Trạm thu phát gốc.

PSPDN Packet Switch Public Data Network Mạng chuyển mạch số liệu

công cộng

CSPDN Circuit Switched Public Data Network Mạng số liệu công cộng chuyển

mạch kênh.

PSTN Public Switch Telephone Network Mạng điện thoại chuyển mạch

công cộng.

PLMN Public Land Mobile Network Mạng di động mặt đất.

Integrated Services Digital network Mạng số dịch vụ tích hợp. ISDN

Operation and Maintenance Center Trung tâm khai thác và bảo OMC

dưỡng.

ADC Analog Digital Converter Bộ chuyển đổi tín hiệu từ

analog sang digital

PWM Pulse Width Modulation Phương pháp điều chỉnh điện áp

Parallel Slave Port Cổng phụ song song PSP

Universal Serial Bus

Cổng nối tiếp chung USB

Serial Peripheral Interface

Giao tiếp ngoại vi nối tiếp SPI

SVTH : Bùi Tấn Tài – CCVT03A

vi

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

DANH MỤC BẢNG

Tên Trang Bảng

Bảng so sánh chức năng của 11 2.1

PIC16F877A và AT89C51

Bảng mô tả các chức năng từng chân của 15 2.2

PIC

Bảng mô tả các chức năng từng chân của 42 3.4

SIM900

SVTH : Bùi Tấn Tài – CCVT03A

vii

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

DANH MỤC HÌNH

Tên Trang Hình

Cấu trúc của hệ thống thông tin di động GSM 1.1 8

1.2 Các thành phần hệ thống GSM 8

2.1 Sơ đồ khối Vi điều khiển Pic16F877A 14

2.2 Sơ đồ chân vi điều khiển Pic16F877A 15

2.3 Bộ nhớ chương trình Pic 16F877A 18

2.4 Địa chỉ thanh ghi của Pic 16F877A 19

2.5 Sơ đồ khối của AD 22

2.6 Chu kỳ xung clock và tần số làm việc của ADC 22

2.7 Các cách lưu kết quả chuyển đổi 10bit A/D 23

2.8 Các thanh ghi liên quan đến bộ điều khiển A/D 24

2.9 Nguyên lý hoạt động của một bộ so sánh đơn giản 25

2.10 Sơ đồ khối đơn giản của bộ Comparator 25

2.11 Các thanh ghi liên quan đến bộ so sánh 26

2.12 Sơ đồ khối bộ truyền dữ liệu EUSART bất đồng bộ 28

2.13 Các thanh ghi liên quan đến quá trình truyền bất đồng bộ 28

2.14 Sơ đồ khối bộ nhận dữ liệu EUSART bất đồng bộ 29

2.15 Các thanh ghi liên quan đến quá trình nhận dữ liệu bất đồng 30

bộ

2.16 Cấu tạo thanh ghi TXSTA 30

2.17 Cấu tạo thanh ghi RCSTA 31

2.18 sơ đồ khối bộ định thời Timer0 33

2.19 Các thanh ghi liên quan đến bộ định thời Timer0 34

2.20 T1CON: Thanh ghi điều khiển Timer1 35

2.21 Sơ đồ khối Timer1 35

2.22 ác thanh ghi liên quan đến bộ định thời Timer1 36

2.23 T2CON: Thanh ghi điều khiển Timer2 37

2.24 Sơ đồ khối của bộ định thời Timer2 37

2.25 Các thanh ghi liên quan đến bộ định thời Timer2 37

SVTH : Bùi Tấn Tài – CCVT03A

viii

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

Module Sim900 42 3.1

Sơ đồ chân của Module Sim900 42 3.2

Sơ đồ khối hệ thống điều khiển thiết bị bằng SMS 46 3.3

Sơ đồ mạch led thu với bộ so sánh tương đương 48 3.4

Sơ đồ mạch cảm biến nhiệt độ LM35 48 3.5

Sơ đồ mạch nguồn cung cấp cho hệ thống 49 3.6

Sơ đồ mạch dèn báo hiệu 50 3.7

Sơ đồ mạch vi điều khiển PIC16F877A 51 3.8

Sơ đồ mạch cảm biến hồng ngoại 52 3.9

Hệ thống được cấp nguồn và sẵng sàng hoạt động 57 4.1

Tin nhắn đã được gửi tới điện thoại 58 4.2

Cảm biến đầu tiên hoạt động khi đổ nước vào 59 4.3

Tin nhắn đã được gửi tới điện thoại 59 4.4

Cảm biến thứ hai hoạt động khi đổ nước vào 60 4.5

Tin nhắn đã được gửi tới điện thoại 60 4.6

Cảm biến thứ ba hoạt động khi đổ nước vào 61 4.7

Tin nhắn đã được gửi tới điện thoại 61 4.8

Cảm biến thứ tư hoạt động khi đổ nước vào 62 4.9

Tin nhắn đã được gửi tới điện thoại 62 4.10

Tin nhắn đã được gửi tới điện thoại 63 4.11

SVTH : Bùi Tấn Tài – CCVT03A

ix

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

MỞ ĐẦU

Hệ thống giám sát mực nước từ xa thông qua tin nhắn SMS. Là một ứng dụng

của khoa học công nghệ đang được nghiên cứu và áp dụng để cảnh báo được sớm nhất

mức nước lũ có thể gây thiệt hại về người, sơ tán di chuyển một cách nhanh nhất sớm

nhất. Hệ thống này nhỏ gọn và làm việc hiệu quả mà không cần phải bảo dưỡng nhiều.

hệ thống sẽ được đặt những nơi nhạy cảm nhất như đầu nguồn con sông, ở đó hệ thống

sẽ đo và báo cáo mực nước qua tin nhắn SMS về cho các trạm theo dõi nhanh nhất và

chính xác nhất. Từ đó chúng ta có thể theo dõi mực nước và sơ tán được sớm khi có

nguy cơ xảy ra lũ

Đồ án được nghiên cứu, khảo sát và thực hiện với mục đích áp dụng những kiến

thức đã được học trong nhà trường để thiết kế, tạo ra một hệ thống giám sát mực nước,

nhiệt độ từ xa bằng tin nhắn SMS hoàn chỉnh. Hệ thống tích hợp module Sim900 và hệ

thống cảm biến hồng ngoại. Đối với hệ thống cảm biến, có các led cảm biến được đặt

chiếu vào nhau, và phát dữ liệu khi có vật cản che những led cảm biến đó. Qua xử lý,

dữ liệu sẽ được gửi về thiết bị đầu cuối (mobile) của người điều khiển để báo cho biết

mực nước đang ở mức cảnh báo nào hay mực nước chỉ bình thường.

Để thực hiện được các chức năng nêu trên, em đã tìm hiểu, nghiên cứu các vấn

đề có liên quan tới đề tài như : họ PIC16F877A, Module Sim900, các ngôn ngữ lập

trình tương ứng như CCS, bộ lệnh AT Command dành cho Module, và các vấn đề

khác liên quan tới đề tài.

Ý nghĩa khoa học của hệ thống là hạn chế thiệt hại do lũ lụt gây ra, hạn chế

những tổn thất nặng nề về người và của. Không dừng lại ở đó, hệ thống sẽ dần dần

phát triển qua nhiều mặt, ngoài cảnh báo lũ lụt ra còn cảnh báo để giảm nhẹ được

nhiều thiệt hại khác do thiên tai gây ra như cháy rừng, bão, động đất, sóng thần,…

Công nghệ là vô tận, biết vận dụng nó vào thực tiễn sẽ góp phần lợi ích to lớn

đến xã hội đang ngày càng phát triển mạnh mẽ. Vì vậy em đã chọn đề tà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" nhằm phục vụ cho công tác phòng chống lũ lụt và giảm nhẹ thiệt hại về

người

Đề tài này được thực hiện gồm 4 chương :

Chương 1: Tổng quan về mạng GSM và dịch vụ nhắn tin qua mạng SMS

Chương 2: Vi điều khiển PIC16F877A

SVTH : Bùi Tấn Tài – CCVT03A

1

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

Chương 3: Thiết kế và xây dựng hệ thống cảm biến và phát cảnh báo mực

nước, nhiệt độ qua mạng tin nhắn SMS

Chương 4: Kết quả đạt được của hệ thống

SVTH : Bùi Tấn Tài – CCVT03A

2

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

CHƯƠNG 1. TỔNG QUAN VỀ MẠNG GSM VÀ DỊCH VỤ

NHẮN TIN NHẮN SMS

1.1 TỔNG QUÁT VỀ TIN NHẮN SMS

1.1.1 Giới thiệu về SMS

SMS là từ viết tắt của Short Message Service. Đó là một công nghệ cho phép gửi

và nhận các tin nhắn giữa các điện thoại với nhau. SMS xuất hiện đầu tiên ở Châu âu

vào năm 1991. Ở thời điểm đó, nó bao gồm cả các chuẩn về GSM (Global System for

Mobile Communications). Một thời gian sau đó, nó phát triển sang công nghệ wireless

như CDMA và TDMA. Các chuẩn GSM và SMS có nguồn gốc phát triển bởi ETSI.

ETSI là chữ viết tắt của European Telecommunications Standards Institute. Ngày nay

thì 3GPP (Third Generation Partnership Project) đang giữ vai trò kiểm soát về sự phát

triển và duy trì các chuẩn GSM và SMS.

Như đã nói ở trên về tên đầy đủ của SMS là Short Message Service, từ cụm từ

đó, có thể thấy được là dữ liệu có thể được lưu giữ bởi một tin nhắn SMS là rất giới

hạn. Một tin nhắn SMS có thể chứa tối đa là 140 byte (1120 bit) dữ liệu. Vì vậy, một

tin nhắn SMS chỉ có thể chứa :

+ 160 ký tự nếu như mã hóa ký tự 7 bit được sử dụng (mã hóa ký tự 7 bit thì

phù hợp với mã hóa các ký tự latin chẳng hạn như các ký tự alphabet của tiếng Anh).

+ 70 ký tự nếu như mã hóa ký tự 16 bit Unicode UCS2 được sử dụng (các tin

nhắn SMS không chứa các ký tự latin như ký tự chữ Trung Quốc phải sử dụng mã hóa

ký tự 16 bit).

Tin nhắn SMS dạng text hỗ trợ nhiều ngôn ngữ khác nhau. Nó có thể hoạt động

tốt với nhiều ngôn ngữ mà có hỗ trợ mã Unicode, bao gồm cả Arabic, Trung Quốc,

Nhật bản và Hàn Quốc. Bên cạnh gửi tin nhắn dạng text thì tin nhắn SMS còn có thể

mang các dữ liệu dạng binary. Nó còn cho phép gửi nhạc chuông, hình ảnh cùng nhiều

tiện ích khác … tới một điện thoại khác.

Một trong những ưu điểm nổi trội của SMS đó là nó được hỗ trợ bởi các điện

thoại có sử dụng GSM hoàn toàn. Hầu hết tất cả các tiện ích cộng thêm gồm cả dịch vụ

gửi tin nhắn giá rẻ được cung cấp, sử dụng thông qua sóng mang wireless. Không

giống như SMS, các công nghệ mobile như WAP và mobile Java thì không được hỗ

trợ trên nhiều model điện thoại.

SVTH : Bùi Tấn Tài – CCVT03A

3

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

Sử dụng tin nhắn SMS ngày càng phát triển và trở lên rộng khắp :

- Các tin nhắn SMS có thể được gửi và đọc tại bất kỳ thời điểm nào.

Ngày nay, hầu hết mọi người đều có điện thoại di động của riêng mình và mang

nó theo người hầu như cả ngày. Với một điện thoại di động , bạn có thể gửi và đọc các

tin nhắn SMS bất cứ lúc nào bạn muốn, sẽ không gặp khó khăn gì khi bạn đang ở trong

văn phòng hay trên xe bus hay ở nhà…

- Tin nhắn SMS có thể được gửi tới các điện thoại mà tắt nguồn.

Nếu như không chắc cho một cuộc gọi nào đó thì bạn có thể gửi một tin nhắn

SMS đến bạn của bạn thậm chí khi người đó tắt nguồn máy điện thoại trong lúc bạn

gửi tin nhắn đó. Hệ thống SMS của mạng điện thoại sẽ lưu trữ tin nhắn đó rồi sau đó

gửi nó tới người bạn đó khi điện thoại của người bạn này mở nguồn.

- Các tin nhắn SMS ít gây phiền phức trong khi bạn vẫn có thể giữ liên lạc với

người khác

Việc đọc và viết các tin nhắn SMS không gây ra ồn ào. Trong khi đó, bạn phải

chạy ra ngoài khỏi rạp hát, thự viện hay một nơi nào đó để thực hiện một cuộc điện

thoại hay trả lời một cuộc gọi. Bạn không cần phải làm như vậy nếu như tin nhắn SMS

được sử dụng.

Các điện thoại di động và chúng có thể được thay đổi giữa các sóng mang

Wireless khác nhau.

Tin nhắn SMS là một công nghệ rất thành công và trưởng thành. Tất cả các điện

thoại mobile ngày nay đều có hỗ trợ nó. Bạn không chỉ có thể trao đổi các tin nhắn

SMS đối với người sử dụng mobile ở cùng một nhà cung cấp dịch vụ mạng sóng mang

wireless, mà đồng thời bạn cũng có thể trao đổi nó với người sử dụng khác ở các nhà

cung cấp dịch vụ khác.

- SMS là một công nghệ phù hợp với các ứng dụng Wireless sử dụng cùng với

nó.

Nói như vậy là do:

Thứ nhất, tin nhắn SMS được hỗ trợ 100% bởi các điện thoại có sử dụng hệ

thống GSM. Xây dựng các ứng dụng wireless trên nền công nghệ SMS có thể phát huy

tối đa những ứng dụng có thể dành cho người sử dụng.

Thứ hai, các tin nhắn SMS còn tương thích với việc mang các dữ liệu binary bên

cạnh gửi các text. Nó có thể được sử dụng để gửi nhạc chuông, hình ảnh, hoạt họa.

SVTH : Bùi Tấn Tài – CCVT03A

4

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

Thứ ba, tin nhắn SMS hỗ trợ việc chi trả các dịch vụ trực tuyến.

1.1.2 Cấu trúc của một tin nhắn SMS

Nội dung của một tin nhắn SMS được gửi đi sẽ được chia làm 5 phần như sau :

- Instructions to air interface : Chỉ thị dữ liệu kết nối với air interface (giao diện

không khí) .

- Instructions to SMSC : Chỉ thị dữ liệu kết nối với trung tâm tin nhắn SMSC

(short message service centre).

- Instructions to handset : Chỉ thị dữ liệu kết nối bắt tay.

- Instructions to SIM (optional) : Chỉ thị dữ liệu kết nối, nhận biết SIM

(Subscriber Identity Modules).

- Message body : Nội dung tin nhắn SMS.

1.1.3 Tin nhắn SMS chuỗi

Một trong những trở ngại của công nghệ SMS là tin nhắn SMS chỉ có thể mang

một lượng giới hạn các dữ liệu. Để khắc phục trở ngại này, một mở rộng của nó gọi là

SMS chuỗi (hay SMS dài) đã ra đời. Một tin nhắn SMS dạng text dài có thể chứa

nhiều hơn 160 kí tự theo chuẩn dùng trong tiếng Anh. Cơ cấu hoạt động cơ bản SMS

chuỗi làm việc như sau: điện thoại di động của người gửi sẽ chia tin nhắn dài ra thành

nhiều phần nhỏ và sau đó gửi các phần nhỏ này như một tin nhắn SMS đơn. Khi các

tin nhắn SMS này đã được gửi tới đích hoàn toàn thì nó sẽ được kết hợp lại với nhau

trên máy di động của người nhận.

Khó khăn của SMS chuỗi là nó ít được hỗ trợ nhiều so với SMS ở các thiết bị có

sử dụng sóng wireless.

1.1.4 SMS CENTER/SMSC

Một SMS Center (SMSC) là nơi chịu trách nhiệm luân chuyển các hoạt động liên

quan tới SMS của một mạng wireless. Khi một tin nhắn SMS được gửi đi từ một điện

thoại di động thì trước tiên nó sẽ được gửi tới một trung tâm SMS. Sau đó, trung tâm

SVTH : Bùi Tấn Tài – CCVT03A

5

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

SMS này sẽ chuyển tin nhắn này tới đích (người nhận). Một tin nhắn SMS có thể phải

đi qua nhiều hơn một thực thể mạng (netwok) (chẳng hạn như SMSC và SMS

gateway) trước khi đi tới đích thực sự của nó. Nhiệm vụ duy nhất của một SMSC là

luân chuyển các tin nhắn SMS và điều chỉnh quá trình này cho đúng với chu trình của

nó. Nếu như máy điện thoại của người nhận không ở trạng thái nhận (bật nguồn) trong

lúc gửi thì SMSC sẽ lưu trữ tin nhắn này. Và khi máy điện thoại của người nhận mở

nguồn thì nó sẽ gửi tin nhắn này tới người nhận.

Thường thì một SMSC sẽ họat động một cách chuyên dụng để chuyển lưu thông

SMS của một mạng wireless. Hệ thống vận hành mạng luôn luôn quản lí SMSC của

riêng nó và ví trí của chúng bên trong hệ thống mạng wireless. Tuy nhiên hệ thống vận

hành mạng sẽ sử dụng một SMSC thứ ba có vị trí bên ngoài của hệ thống mạng

wireless.

Bạn phải biết địa chỉ SMSC của hệ thống vận hành mạng wireless để sử dụng,

tinh chỉnh chức năng tin nhắn SMS trên điện thoại của bạn. Điển hình một địa chỉ

SMSC là một số điện thoại thông thường ở hình th0ức, khuôn mẫu quốc tế. Một điện

thoại nên có một thực đơn chọn lựa để cấu hình địa chỉ SMSC. Thông thường thì địa

chỉ được điều chỉnh lại trong thẻ SIM bởi hệ thống mạng wireless. Điều này có nghĩa

là bạn không cần phải làm bất cứ thay đổi nào cả.

1.1.5 Nhắn tin SMS quốc tế

Các tin nhắn SMS giữa các nhà điều hành được chia ra làm hai hạng mục gồm tin

nhắn SMS giữa các nhà điều hành cục bộ và tin nhắn SMS giữa các nhà điều hành

quốc tế với nhau. Tin nhắn SMS giữa các nhà điều hành cục bộ là tin nhắn mà được

gửi giữa các nhà điều hành trong cùng một quốc gia còn tin nhắn SMS giữa các nhà

điều hành quốc tế là tin nhắn SMS được gửi giữa các nhà điều hành mạng wireless ở

những quốc gia khác nhau.

Thường thì chi phí để gửi một tin nhắn SMS quốc tế thì cao hơn so với gửi trong

nước. Và chi phí gửi tin nhắn trong nội mạng thì ít hơn so với gửi cho mạng khác

trong cùng một quốc gia <= chi phí cho việc gửi tin nhắn SMS quốc tế.

Khả năng kết hợp của tin nhắn SMS giữa hai mạng wireless cục bộ hay thậm chí

là quốc tế là một nhân tố chính góp phần tới sự phát triển mạnh mẽ của hệ thống SMS

toàn cầu.

SVTH : Bùi Tấn Tài – CCVT03A

6

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

1.2 TỔNG QUÁT VỀ HỆ THỐNG THÔNG TIN DI ĐỘNG GSM

1.2.1 Giới thiệu về hệ thống thông tin di động GSM

GSM (Global System for Mobile communication) là hệ thống thông tin di động

số toàn cầu, là công nghệ không dây thuộc thế hệ 2G(second generation) có cấu trúc

mạng tế bào, cung cấp dịch vụ truyền giọng nói và chuyển giao dữ liệu chất lượng cao

với các băng tần khác nhau: 400Mhz, 900Mhz, 1800Mhz và 1900Mhz, được tiêu

chuẩn Viễn thông Châu Âu (ETSI) quy định.

GSM là một hệ thống có cấu trúc mở nên hoàn toàn không phụ thuộc vào phần

cứng, người ta có thể mua thiết bị từ nhiều hãng khác nhau.

Do nó hầu như có mặt khắp mọi nơi trên thế giới nên khi các nhà cung cấp dịch

vụ thực hiện việc ký kết roaming với nhau nhờ đó mà thuê bao GSM có thể dễ dàng sử

dụng máy điện thoại GSM của mình bất cứ nơi đâu.

Mặt thuận lợi to lớn của hệ thống GSM là ngoài việc truyền âm thanh với chất

lượng cao còn cho phép thuê bao sử dụng các cách giao tiếp khác rẻ tiền hơn đó là tin

nhắn SMS. Ngoài ra để tạo thuận lợi cho các nhà cung cấp dịch vụ thì hệ thống GSM

được xây dựng trên cơ sở hệ thống mở nên nó dễ dàng kết nối các thiết bị khác nhau từ

các nhà cung cấp thiết bị khác nhau.

Nó cho phép nhà cung cấp dịch vụ đưa ra tính năng roaming cho thuê bao của

mình với các mạng khác trên toàn thế giới. Và hệ thống GSM cũng phát triển thêm các

tính năng truyền dữ liệu như GPRS và sau này truyền với tốc độ cao hơn sử dụng

EDGE.

GSM hiện chiếm 85% thị trường di động với 2,5 tỷ thuê bao tại 218 quốc gia và

vùng lãnh thổ. Các mạng thông tin di động GSM cho phép có thể roaming với nhau do

đó những máy điện thoại di động GSM của các mạng GSM khác nhau ở có thể sử

dụng được nhiều nơi trên thế giới.

1.2.2 Đặc điểm của hệ thống thông tin di động GSM

- Cho phép gởi và nhận những mẫu tin nhắn văn bản bằng kí tự dài đến 126 kí tự.

- Cho phép chuyển giao và nhận dữ liệu, FAX giữa các mạng GSM với tốc độ

hiện hành lên đến 9.600 bps.

- Tính phủ sóng cao: Hệ thống GSM không chỉ cho phép chuyển giao trong toàn

mạng mà còn chuyển giao giữa các mạng GSM trên toàn cầu mà không có một sự thay

SVTH : Bùi Tấn Tài – CCVT03A

7

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

đổi, điều chỉnh nào. Đây là một tính năng nổi bật nhất của hệ thống GSM(dịch vụ

roaming).

- Sử dụng công nghệ phân chia theo thời gian TDM (Time division multiplexing)

để chia ra 8 kênh full rate hay 16 kênh haft rate.

- Công suất phát của máy điện thoại được giới hạn tối đa là 2 watts đối với băng

tần GSM 850/900Mhz và tối đa là 1 watts đối với băng tần GSM 1800/1900Mhz.

- Mạng GSM sử dụng 2 kiểu mã hoá âm thanh để nén tín hiệu âm thanh 3,1khz

đó là mã hoá 6 và 13kbps gọi là Full rate (13kbps) và haft rate (6kbps).

1.2.3 Cấu trúc của hệ thống thông tin di động GSM

1.2.3.1 Cấu trúc tổng quát

Hình 1.1 Cấu trúc của hệ thống thông tin di động GSM

Hệ thống GSM được chia thành nhiều hệ thống con như sau:

- Phân hệ chuyển mạch NSS (Network Switching Subsystem).

- Phân hệ trạm gốc BSS (Base Station Subsystem).

- Phân hệ bảo dưỡng và khai thác OSS (Operation Subsystem).

- Trạm di động MS (Mobile Station).

1.2.3.2 Các thành phần của hệ thống thông tin di động GSM

Hình 1.2 Các thành phần hệ thống GSM

SVTH : Bùi Tấn Tài – CCVT03A

8

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

AUC : Trung tâm nhận thực.

VLR : Bộ ghi định vị tạm trú.

HLR : Bộ ghi định vị thường trú.

EIR : Bộ ghi nhận dạng thiết bị.

MSC : Trung tâm chuyển mạch các dịch vụ mạng.

BSC : Bộ điều khiển trạm gốc.

BTS : Trạm thu phát gốc.

NSS : Phân hệ chuyển mạch.

BSS : Phân hệ trạm gốc.

MS : Trạm di động.

OSS : Phân hệ khai thác bảo dưỡng.

PSPDN : Mạng số liệu công cộngchuyển mạch gói.

CSPDN : Mạng số liệu công cộng chuyển mạch kênh.

PSTN : Mạng điện thoại chuyển mạch công cộng.

PLMN : Mạng di động mặt đất.

ISDN : Mạng số dịch vụ tích hợp.

OMC : Trung tâm khai thác và bảo dưỡng.

1.2.4 Sử phát triển của hệ thống thông tin di động ở Việt Nam

Hệ thống GSM đã vào Việt Nam từ năm 1993. Hiện, ba nhà cung cấp di động hệ

thống GSM lớn nhất của Việt Nam là VinaPhone, MobiFone và Viettel Mobile, cũng

là những nhà cung cấp chiếm thị phần nhiều nhất trên thị trường với số lượng thuê bao

mới tăng chóng mặt trong thời gian vừa qua.

Hiện nay có đến hơn 85% người dùng hiện nay đang là khách hàng của các nhà

cung cấp dịch vụ theo hệ thống GSM.

Cho tới thời điểm này, thị trường thông tin di động của Việt Nam đã có khoảng

70 triệu thuê bao di động. Khi mà ba “đại gia” di động của Việt Nam là VinaPhone,

MobiFone và Viettel đều tăng trưởng rất nóng với số lượng thuê bao mỗi ngày phát

triển được lên tới hàng trăm ngàn thuê bao.

SVTH : Bùi Tấn Tài – CCVT03A

9

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

CHƯƠNG 2. VI ĐIỀU KHIỂN PIC16F877A

2.1. GIỚI THIỆU PIC (Programmable Intelligent Computer ). 2.1.1. Giới thiệu về vi điều khiển PIC

Năm 1971 bộ vi xử lý đầu tiên ra đời đã mở ra một thời đại mới trong công nghệ

điện tử và tin học, nó đã ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công nghệ. Các

hệ thống được thiết kế dựa trên nền tảng của bộ vi xử lý (điển hình như PC) có khả

năng mà các hệ thống điện tử thông thường không thể thực hiện được.

Để thúc đẩy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dễ dàng lập

trình và giá thành thấp. Vi điều khiển tỏ ra rất hấp dẫn trong các ứng dụng điều khiển

điện tử vì có kích thước nhỏ, tuy nhỏ nhưng chức năng cũng rất đa dạng, dễ dàng tích

hợp vào trong hệ thống để điều khiển toàn hệ thống.

PIC là dòng vi điều khiển do hãng MICROCHIP sản xuất với công nghệ hiện đại,

phù hợp cho các ứng dụng đơn giản và hiện đại. Đang được sử dụng phổ biến trong

các ứng dụng dân dụng và công nghiệp bởi những đặc tính ưu việt của nó. Hơn nữa

việc lập trình cho PIC lại khá đơn giản bởi số mã lệnh ít, có nhiều công cụ hỗ trợ lập

trình bằng ngôn ngữ cấp cao như C. Hiện tại PIC có các dòng 8 bits và 16 bits. Trong

báo cáo này ta quan tâm đến PIC 8 bits cụ thể là PIC16F877A - một vi điều khiển với

tất cả đặc trưng cơ bản của PIC.

Các đặc điểm cơ bản của PIC có thể được tóm tắt như sau :

- PIC có nhiều chủng loại như PIC 8 bits (PIC10, PIC12, PIC16), hay PIC 16 bits

(PIC24F, PIC24H, …).

- PIC có thể được lập trình bằng ngôn ngữ Assembler hoặc C.

- Có 5 port I/O port A, port B, port C, port D, port E.

- Có 3 timer: Timer0 là 8 bits, Timer1 là 16 bits, Timer2 là 16 bits.

- Được tích hợp bộ chuyển đổi ADC.

- PIC có thể sử dụng Timer để tạo xung PWM.

- Phương thức cất giữ Sleep.

- Có bản lựa chọn dao động.

- Công suất tiêu thụ thấp.

- Cổng phụ song song (PSP) với 8 bit mở rộng, với RD, WR và CS điều khiển.

- Thực hiện truyền dữ liệu nối tiếp với máy tính thông qua cổng RS-232, mặt

khác PIC còn có thể giao tiếp với máy tính thông qua cổng USB.

SVTH : Bùi Tấn Tài – CCVT03A

10

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

2.1.2. Ưu và nhược điểm của PIC

Ta từng sử dụng họ 8051 và thấy được tính hữu dụng của nó qua các ứng dụng

cơ bản, đơn giản. Tuy nhiên đối với các ứng dụng phức tạp, đòi hỏi tốc độ cao, mức độ

tích hợp cao thì bản thân 8051 khó đáp ứng được ( hoặc ta phải đầu tư thêm chi phí

cho việc xử lí ngoại vi,…). PIC thì khác, hãy xem bảng so sánh sau :

Bảng 2.1 Bảng so sánh chức năng của PIC16F877A và AT89C51

STT Chức năng PIC16F877A AT89C51

I/O 5 Ports 4 Ports 1

Flash Memory 8k 4k 2

EEPROM 256bytes - 3

Timer 3 2 4

Interrupts 15 4 5

ADC 8 channel 10 bit - 6

PWM 2 - 7

Comparator 2 - 8

Instruction set 35 >100 9

10 Truyền thông SUART,I2C,MSSP,PSP UART

Khả năng tích hợp cao của PIC mang lại sự đơn giản nhưng hiệu quả trong thiết

kế và lập trình. Tuy vậy PIC không phải là tất cả, khi làm một sản phẩm, tính kinh tế là

quan trọng, sử dụng loại vi điều khiển nào mang lại hiệu quả cao nhất là tùy thuộc vào

người thiết kế.

2.2GIỚI THIỆU TỔNG QUÁT VỀ PIC16F877A

2.2.1 Giới thiệu về PIC16F877A

Khối xử lí trung tâm mà đóng vai trò chính là Pic 16F877A sẽ làm nhiệm vụ

chính là tiếp nhận và xử lí các dữ liệu đến và đi một cách tự động. Đề tài sử dụng PIC

16F877A vì những ưu điểm vượt trội của nó so với các vi điều khiển khác.Về mặt tính

năng và công năng thì có thề xem PIC vượt trội hơn rất nhiều so với 89 với nhiều

module được tích hợp sẵn như ADC 10 BIT, PWM 10 BIT, EEPROM 256 BYTE,

COMPARATER, VERF COMPARATER…Về mặt giá cả thì có đôi chút chênh lệch

như giá 1 con 89S52 khoảng 20.000 thì PIC 16F877A là 60.000 nhưng khi so sánh

như thế thì ta nên xem lại phần linh kiện cho việc thiết kế mạch nếu như xài 89 muốn

SVTH : Bùi Tấn Tài – CCVT03A

11

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

có ADC bạn phải mua con ADC chẳng hạn như ADC 0808 hay 0809 với giá vài chục

ngàn và bộ opamp thì khi sử dung PIC nó đã tích hợp cho ta sẵn các module đó có

nghĩa là bạn ko cần mua ADC, Opam, EPPROM vì PIC đã có sẵn trong nó. Ngoài

chúng ta sẽ gặp nhiều thuận lợi hơn trong thiết kế board, khi đó board mạch sẽ nhỏ

gọn và đẹp hơn dễ thi công hơn rất nhiều, vì tính về giá cả tổng cộng cho đến lúc thành

phẩm thì PIC có thể xem như rẻ hơn 89. Một điều đặc biệt nữa là tất cả các con PIC

được sử dụng thì đều có chuẩn PI tức chuẩn công nghiệp thay vì chuẩn PC (chuẩn dân

dụng).

Ngoài ra, PIC có ngôn ngữ hổ trợ cho việc lập trình ngoài ngôn ngữ Asembly còn

có ngôn ngữ C thì có thề sử dung CCS, HTPIC, MirkoBasic,… và còn nhiều chương

trình khác nữa để hỗ trợ cho việc lập trình bên cạnh ngôn ngữ kinh điển là asmbler thì

sử dụng MPLAB IDE. Bên cạnh đó với bề dày của sự phát triển lâu đời PIC đã tạo ra

rất nhiều diễn đàn sôi nổi về PIC cả trong và ngoài nước. Chính vì vậy chúng ta sẽ có

nhiều thuận lợi trong việc dễ dàng tìm kiếm các thông tin lập trình cho các dòng PIC.

Dòng PIC 16F877A được chọn sử dụng trong đề tài là dòng phổ thông với các

tính năng cơ bản và dễ cho việc sử dụng với:

- Tập lệnh để lập trình chỉ có 35 lệnh rất dễ nhớ và dễ học, có độ dài 16bit. Mỗi

lệnh đều được thực thi trong 1 chu kỳ xung clock. Tốc độ hoạt động tối đa cho phép

là 64MHz.

- 8 k Flash Rom.

- 256 Bytes EEPROM

- 4 Port điều khiển vào ra với tín hiệu điều khiển độc lập, với dòng ra cao có thề

kích trực tiếp các transirtor mà ko cần wa bộ buffer.

- 3 bộ định thời Timer0, Timer1, Timer2.

- 1 bộ định thời Timer1 là 16 bit có thể lập trình được.

- 2 bộ định thời Timer0, Timer2 là 8 bit có thể hoạt động trong chế độ sleep với

nguồn xung clock ngoài.

- 2 bộ module CCP ( bao gồm Capture bắt giữ, Compare so sánh, PWM điều chế

xung 10 bit) và 1 bộ module ECCP.

- 1 bộ ADC với 10 kênh ADC 10 bit .

- 2 bộ so sánh tương tự hoạt động độc lập.

- Bộ giám sát định thời Watchdog timer.

SVTH : Bùi Tấn Tài – CCVT03A

12

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

- Cổng giao tiếp song song 8 bit với các tín hiệu điều khiển.

- Chuẩn giao tiếp nối tiếp MSSP (SPI/I2C)

- Chuẩn giao tiếp nối tiếp USART (AUSART/EUSART) với 9bit địa chỉ

- Hỗ trợ giao tiếp I2C.

- 15 nguồn ngắt.

- Chế độ sleep tiết kiệm năng lượng.

- Chức năng bảo mật chương trình

- Nạp chương trình bằng cổng nối tiếp ICSP( In Circuit Serial Programming)

thông qua 2 chân.

- Có thể hoạt động với nhiều dạng Oscillator khác nhau.

- Tần số hoạt động tối đa là 64Mhz.

- Bộ nhớ Flash với khả năng ghi xóa được 100.000 lần

- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần

- Dữ liệu EEPROM có thể lưu trữ trên 40 năm

- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.

SVTH : Bùi Tấn Tài – CCVT03A

13

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

2.2.2 Sơ đồ khối của PIC 16F877A

Hình 2.1 Sơ đồ khối Vi điều khiển Pic16F877A

SVTH : Bùi Tấn Tài – CCVT03A

14

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

2.3 KHẢO SÁT SƠ ĐỒ CHÂN, CHỨC NĂNG TỪNG CHÂN

2.3.1 Sơ đồ chân vi điều khiển PIC16F877A

Hình 2.2 Sơ đồ chân vi điều khiển Pic16F877A

Thứ tự

Bảng 2.2 Bảng mô tả các chức năng từng chân của PIC

chân

Tên chân Hướng Mô tả chức năng và các đặc tính.

OSC1/CLKIN I Đầu vào của thạch anh hay ngõ vào của 9

xung clock ngoài.

OSC1/CLKOUT 10 O Đầu ra của bộ dao động thạch anh, nối

với thạch anh hay cộng hưởng trong

chế độ cộng hưởng của thạch anh.

I/P Ngõ vào Master Reset, chân này cho 1 MCLR/Vpp

phép reset chip ở mức thấp.

Port A là port vào ra hai chiều.

RA0/AN0 I/O RA0 có thể làm ngõ vào ADC hoặc 2

tương tự.

RA1/AN1 I/O RA1có thể làm ngõ vào ADC hoặc 3

SVTH : Bùi Tấn Tài – CCVT03A

15

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

tương tự.

I/O RA2 có thể làm ngõ vào ADC hoặc 4 RA2/AN2/VREF-

tương tự hoặc điện áp chuẩn âm.

I/O RA3 có thể làm ngõ vào ADC hoặc 5 RA3/AN3/VREF+

tương tự hoặc điện áp chuẩn dương.

RA4/T0CKI I/O RA4 có thể làm ngõ vào ADC hoặc 6

tương tự, xung clock cho bộ định thời

RA5/SS/AN4 I/O Timer0. 7

RA5 có thể làm ngõ vào ADC hoặc

tương tự.

PortB là port vào ra hai chiều.

RB0/INT 33 I/O Là chân vào ra hai chiều và có thể sử

dụng làm chân ngắt ngoài.

RB1 Chân vào ra hai chiều. 34 I/O

RB2 Chân vào ra hai chiều. 35 I/O

RB3/PGM Ngõ vào được lập trình ở mức thấp. 36 I/O

RB4 Interrup-on-change pin. 37 I/O

RB5 Interrup-on-change pin. 38 I/O

RB6/PGC Interrup-on-change pin or In-crcuit 39 I/O

Debugger pin.

RB7/PGD 40 I/O Interrup-on-change pin or In-crcuit

Debugger pin.

PORT C là cổng vào ra hai chiều.

RC0/T1OSO/T1CKI 15 I/O Là ngõ ra của Timer1 hoặc là ngõ vào

xung clock của Timer1.

RC1/T1OSI/CCP2 16 I/O Là ngõ ra của Timer1 hoặc ngõ vào

Capture2, ngõ ra Capture hay ngõ ra

PWM2. RC2/CCP1 17 I/O

Là ngõ vào (hoặc ra) compare2, đồng RC3/SCK/CSL 18 I/O

thời là ngõ vào PWM1. RC4/SDI/SDA 23 I/O

Dữ liệu ngoài SPI (chế độ SPI). RC5/SD0 24 I/O

Chân truyền không đồng bộ USART RC6/TX/CK 25 I/O

SVTH : Bùi Tấn Tài – CCVT03A

16

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

RC7/RX/DT 26 I/O hoặc đồng bộ với xung đồng hồ.

Chân đồng bộ USART hoặc đồng bộ

với dữ liệu.

Là cổng vào ra hai chiều hoặc là cổng I/O 19 RD0/PSP0

vào ra song song giao tiếp với bus của I/O 20 RD1/PSP1

vi xử lý. I/O 21 RD2/PSP2

I/O 22 RD3/PSP3

I/O 27 RD4/PSP4

I/O 28 RD5/PSP5

I/O 29 RD6/PSP6

I/O 30 RD7/PSP7

8 RE0/RD/AN5 Ngõ vào Analog 5.

9 RE1/WR/AN6 Ngõ vào Analog 6.

10 RE2/CS/AN7 Ngõ vào Analog 7.

12, 31 P Cung cấp điện áp âm cho vi xử lý. VSS

11, 32 P Cung cấp nguồn dương cho vi xử lý. VDD

Ghi chú: I = input ; O = output ; I/O = input/output ; P = power

2.3.2 Tổ chức bộ nhớ

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình

(Program memory) và bộ nhớ dữ liệu (Data Memory).

2.3.2.1 Bộ nhớ chương trình

Bộ nhớ chương trình của Vi điều khiển Pic 16F877A là bộ nhớ flash, dung lượng

bộ nhớ 64K word (1 word = 16bit).

Để mã hóa được địa chỉ của 64k word bộ nhớ chương trình, bộ đếm chương trình

có 21bit (PC<20:0>).

Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h

(Reset vertor). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0008h

(Interrupt vertor). Bộ nhớ chương trình bao gồm bộ nhớ Stack và được địa chỉ hóa bởi

bộ đếm chương trình

SVTH : Bùi Tấn Tài – CCVT03A

17

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

.

Hình 2.3 Bộ nhớ chương trình Pic 16F877A

SVTH : Bùi Tấn Tài – CCVT03A

18

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

2.3.2.2 Bộ nhớ dữ liệu

Bộ nhớ dữ liệu của Pic là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối

với Pic 18F26K20 bộ nhớ dữ liệu được chia ra làm 16 bank.

Hình 2.4 Địa chỉ thanh ghi của Pic 16F877A

2.3.3 Các cổng I/O của PIC16F877A

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương

tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương

tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.

SVTH : Bùi Tấn Tài – CCVT03A

19

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

Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo

cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng

chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp

sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập

thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự

tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của

từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được

thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó.

Vi điều khiển PIC16F877A có 4 cổng xuất nhập, bao gồm PORTA, PORTB,

PORTC, PORTD và PORTE.

 PORTA

PORTA (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều” (bidirectional

pin), nghĩa là có thể xuất và nhập được. Chức năng I/O này được điều khiển bởi thanh

ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là

input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược

lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều

khiển tương ứng với chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự

đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là

TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, và đối với PORTE là

TRISE). Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog

ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master

Synchronous Serial Port).

Đặc tính này sẽ được trình bày cụ thể trong phần sau. Các thanh ghi SFR liên

quan đến PORTA bao gồm:

PORTA (địa chỉ 05) : chứa giá trị các pin trong port A

TRISA (địa chỉ 85h) : điều khiển xuất nhập.

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp.

ADCON (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.

 PORTB

PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISB (địa chỉ 93h). Bên cạnh đó một số chân của PORTB còn được sử dụng trong

SVTH : Bùi Tấn Tài – CCVT03A

20

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

quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB

còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng

điện trở kéo lên được điều khiển bởi chương trình. Cấu trúc bên trong và chức năng cụ

thể của từng chân trong PORTB sẽ được trình bày cụ thể trong Phụ lục 1. Các thanh

ghi SFR liên quan đến PORTB bao gồm:

PORTB (địa chỉ 06h) : chứa giá trị các pin trong PORTB

TRISB (địa chỉ 86h) : điều khiển xuất nhập

OPTON_REG (địa chỉ 81h) : điều khiển ngắt ngoại vi và bộ Timer 0.

 PORTC

PORTC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1,

bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART. Các thanh ghi điều

khiển liên quan đến PORTC:

PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC

TRISC (địa chỉ 87h) : điều khiển xuất nhập

 PORTD

PORTD (RPD) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISD. Bên cạnh đó PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP

(Parallel Slave Port). Các thanh ghi điều khiển liên quan đến PORTC:

PORTC (địa chỉ 08h) : chứa giá trị các pin trong PORTC

TRISC (địa chỉ 88h) : điều khiển xuất nhập.

 PORTE

PORTE (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân

điều khiển của chuẩn giao tiếp PSP

Các thanh ghi liên quan đến PORTE bao gồm:

+ PORTE (địa chỉ 09h) : chứa giá trị các chân trong PORTE.

+ TRISE (địa chỉ 89h) : điều khiển xuất nhập và xác lập các thông số cho chuẩn

giao tiếp PSP.

+ ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển khối ADC.

SVTH : Bùi Tấn Tài – CCVT03A

21

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

2.4 BỘ CHUYỂN ĐỔI TƯƠNG TỰ - SỐ (ADC)

ADECLARE (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai

dạng tương tự và số. Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit

số tương ứng và được lưu trong hai thanh ghi ADRESH và ADRESL. Khi không sử

dụng bộ chuyển đổi ADECLARE, các thanh ghi này có thể được sử dụng như các

thanh ghi thông thường khác. Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu

vào hai thanh ghi ADRESH:ADRESL.

Hình 2.5 Sơ đồ khối của AD

Hình 2.6 Chu kỳ xung clock và tần số làm việc của ADC

2.4.1 Kết quả chuyển đổi AD

Có 2 cách lưu kết quả của chuyển đổi 10bit A/D , bên trái hoặc bên phải. Việc

lựa chọn các cách lưu được điều khiển bởi bit ADFM và được minh họa cụ thể trong

hình sau:

SVTH : Bùi Tấn Tài – CCVT03A

22

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

Hình 2.7 Các cách lưu kết quả chuyển đổi 10bit A/D

2.4.2 Các bước chuyển đổi từ tương tự - số

Thiết lập cấu hình cho port:

- Ngắt kết nối các đầu ra của bộ điều khiển

- Thiết lập cấu hình các chân ở dạng analog

 Thiết lập các thông số cho bộ chuyển đổi ADC

- Chọn xung clock cho bộ chuyển đổi ADC

- Chọn điện áp mẫu

- Chọn đầu vào cho bộ ADC

- Chọn dạng kết quả

- Chọn chế độ kết nối trễ

- Cho phép bộ chuyển đổi ADC hoạt động

 Thiết lập các cờ ngắt cho bộ ADC

- Clear cờ ngắt ADC

- Mở chế độ ngắt của bộ ADC

- Mở ngắt ngoài

- Mở ngắt toàn bộ

 Đợi cho tới khi quá trình lấy mẫu hoàn tất

 Bắt đầu quá trình chuyển đổi bằng cách set bit GO/DONE

 Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách:

- Kiểm tra bit GO/DONE

- Kiểm tra cờ ngắt ADC

 Đọc kết quả chuyển đổi ADC

 Xóa cờ ngắt ADC (tiếp tục thực hiện nếu cần tiếp tục chuyển đổi)

SVTH : Bùi Tấn Tài – CCVT03A

23

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

2.4.3 Các thanh ghi ADC

 INTCON (địa chỉ 0Bh,8Bh,10Bh,18Bh) : Cho phép các ngắt.

 PIR1 (địa chỉ 0Ch) : Chứa cờ ngắt AD (bit ADIF).

 PIR1 (địa chỉ 8Ch) : Chứa bit điều khiển AD (bit ADIE).

 ADCON0 (địa chỉ 1Fh) : Thanh ghi điều khiển A/D 0.

 ADCON1 (địa chỉ 9Fh) : Thanh ghi điều khiển A/D 1.

 ADRESH (địa chỉ 1Eh): Thanh ghi kết quả mức cao ADC .

 ADRESL (địa chỉ 9Eh): Thanh ghi kết quả mức thấp ADC .

 PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h) : Liên quan đến các ngõ vào

analog ở PORTA.

 PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h) : Liên quan đến các ngõ vào

analog ở PORTE.

Hình 2.8 Các thanh ghi liên quan đến bộ điều khiển A/D

2.5 BỘ SO SÁNH COMPARATOR

Bộ so sánh bao gồm hai bộ so sánh tín hiệu analog và được đặt ở PORTA. Ngõ

vào bộ so sánh là các chân RA3:RA0, ngõ ra là hai chân RA4 và RA5. Thanh ghi điều

khiển bộ so sánh là CMCON. Các bit CM2:CM0 trong thanh ghi CMCON đóng vai

trò lựa chọn các chế độ hoạt động cho bộ Comparator.

Cơ chế hoạt động của bộ Comparator như sau:

Tín hiệu analog ở chân V

SVTH : Bùi Tấn Tài – CCVT03A

24

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

Hình 2.9 Nguyên lý hoạt động của một bộ so sánh đơn giản

Hình 2.10 Sơ đồ khối đơn giản của bộ Comparator

Các bit C2OUT và C1OUT (CMCON<7:6>) đóng vai trò ghi nhạn sự thay đổi

tín hiệu analog so với điện áp đặt trước. Các bit này cần được xử lý thích hợp bằng

chương trình để ghi nhận sự thay đổi của tín hiệu ngõ vào. Cờ ngắt của bộ so sánh là

bit CMIF (thanh ghi PIR1). Cờ ngắt này phải được reset về 0. Bit điều khiển bộ so

sánh là bit CMIE (thanh ghi PIE).

Các thanh ghi liên quan đén bộ so sánh bao gồm:

− CMCON (địa chỉ 9Ch) và CVRCON (địa chỉ 9Dh) : xác lập các thông số cho

bộ so sánh.

− Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh) : chứa các bit cho phép

các ngắt.

− Thanh ghi PIR2 (địa chỉ 0Dh) : chứa cờ ngắt của bộ so sánh (CMIF).

− Thanh ghi PIE2 (địa chỉ 8Dh) : chứa cờ ngắt của bộ so sánh (CMIE).

SVTH : Bùi Tấn Tài – CCVT03A

25

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

Hình 2.11 Các thanh ghi liên quan đến bộ so sánh

2.6 TRUYỀN THÔNG NỐI TIẾP EUART

EUSART (Enhanced Universal Synchronous Asynchronous Receiver

Transmitter) là một bộ truyền thông nối tiếp. Nó có tất cả các bộ phát xung clock,

đăng ký thay đổi và bộ đệm dữ liệu cần thiết để thực hiện một đầu vào hay đầu ra dữ

liệu nối tiếp chuyển giao độc lập của thiết bị thực hiện chương trình. EUSART còn

được gọi là giao diện giao tiếp nối tiếp SCI (Serial Communication Interface).

Bộ EUSART là một trong hai hình thức giao tiếp nối tiếp vào ra.EUSART có thể

được cấu hình như là một hệ thống bất đồng bộ hoạt động song công mà có thể giao

tiếp với các thiết bị bên ngoài như là các thiết bị đầu cuối CRT và các máy tính cá

nhân nó cũng có thể được cấu hình như là một hệ thống đồng bộ hoạt động bán công

mà có thể giao tiếp với các mạch tích hợp A/D hay D/A, các EEPROM nối

tiếp….EUSART có thể được cấu hình để hoạt động một trong các chế độ sau:

 Bất đồng bộ ( song công: Asynchronous ).

 Đồng bộ chủ ( bán công: Master mode )

 Đồng bộ tớ ( bán công: Slave mode )

2.6.1 Bộ EUSART hoạt động trong chế độ bất đồng bộ

Ở chế độ truyền này EUSART hoạt động theo chuẩn NRZ (None-Return-to-

Zero), nghĩa là các bit truyền đi sẽ bao gồm 1 bit Start, 8 hay 9 bit dữ liệu (thông

thường là 8 bit) và 1 bit Stop. Bit LSB sẽ được truyền đi trước. Các khối truyền và

nhận data độc lập với nhau sẽ dùng chung tần số tương ứng với tốc độ baud cho quá

trình dịch dữ liệu (tốc độ baud gấp 16 hay 64 lần tốc độ dịch dữ liệu tùy theo giá trị

của bit BRGH), và để đảm bảo tính hiệu quả của dữ liệu thì hai khối truyền và nhận

phải dùng chung một định dạng dữ liệu.

SVTH : Bùi Tấn Tài – CCVT03A

26

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

Bộ EUSART bất đồng bộ bao gồm các thành phần quan trọng sau:

 Bộ phát tốc độ baud ( BRG )

 Mạch lấy mẫu

 Bộ phát bất đồng bộ.

 Bộ thu bất đồng bộ.

2.6.1.1 Bộ phát bất đồng bộ EUSART

Sơ đồ khối bộ phát EUSART bất đồng bộ được chỉ ra hình vẽ 2.12. Phần chính

của nó là thanh ghi dịch nối tiếp phát (TSR). Nó nhận dữ liệu từ thanh ghi đệm phát

TXREG. Thanh ghi TXREG được nạp dữ liệu bởi phần mềm.Thanh ghi TXR sẽ

không được nạp dữ liệu cho đến khi stop bit đã được phát đi trong lần nạp trước đó.

ngay khi stop bit được phát.TSR được nạp giá trị mới từ thanh ghi TXREG. Mỗi khi

TXREG phát dữ liệu đến TSR.TXREG rỗng và cờ TXIF được bật.Ngắt này có thể

được cho phép hoặc không cho phép bằng cách đặt hoặc xóa bit TXIE ( PIE<4>). Cờ

TXIF sẽ được đặt bất chấp trạng thái của bit TXIE và không thể được xóa bởi phần

mềm. Nó chỉ có thể được xóa khi dữ liệu mới được nạp vào thanh ghi TXREG. Trong

khi bit TXIF chỉ ra trạng thái của thanh ghi TXREG thì bit TRMT lại chỉ ra trạng thái

của thanh ghi TSR.Bit này chỉ có thể đọc, được đặt khi thanh ghi TSR rỗng.

Việc phát dữ liệu được phép bằng cách cho phép bit TXEN. Việc phát dữ liệu

thực sư không xảy ra cho đến khi thanh ghi TXREG được nạp dữ liệu và bộ BRG tạo

ra một clock dịch.Việc phát dữ liệu cũng có thể được bắt đầu bằng nạp thanh ghi

TXREG và cho phép bit TXEN.

Để có thể phát 9 bit dữ liệu , bit TX9 được đặt và 9 bit dữ liệu được ghi đến bit

TX9D.Bit thứ 9 phải được ghi trước khi ghi 8 bit dữ liệu đến TXREG.

Để thiết lập chế độ phát bất đồng bộ , các bước sau được thực hiện :

1) Thiết lập tốc độ Baud cho thanh ghi SPBRGH:SPBRG , nếu tốc độ baud được

yêu cầu cao , đặt bit BRGH.

2) Set chân điều khiển RX/DT và TX/CK bằng “1”.

3) Cho phép port nối tiếp bất đồng bộ bằng cách xóa bit SYNC và bit SPEN.

4) Nếu cần phát 9 bit dữ liệu , đặt bit TX9.

5) Set bit điều khiển CKTXP nếu dữ liệu phát bị đảo ngược.

6) Cho phép phát dữ liệu bằng cách đặt bit điều khiển TXEN, có thể ngắt bit

TXIF

SVTH : Bùi Tấn Tài – CCVT03A

27

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

7) Nếu ngắt được yêu cầu , cho phép bit TXIE. Trường hợp có sử dụng ngắt ,

phải bảo đảm rằng bit GIE và bit PEIE trong thanh ghi INTCON được đặt.

8) Nếu cần phát 9 bit dữ liệu , bit thứ 9 sẽ phụ thuộc vào bit dữ liệu TX9D

9) Nhận 8 bit dữ liệu từ thanh ghi TXREG. Có thể bắt đầu truyền dữ liệu.

Hình 2.12 Sơ đồ khối bộ truyền dữ liệu EUSART bất đồng bộ

Hình 2.13 Các thanh ghi liên quan đến quá trình truyền bất đồng bộ

2.6.1.2 Bộ thu bất đồng bộ EUSART

Sơ đồ khối của bộ thu được chỉ ra ở hình vẽ 2.14. Dữ liệu nhận trên chân

RC7/RX/DT và dồn vào khối khôi phục dữ liệu. Khối khôi phục dữ liệu thật ra là dịch

dữ liệu tốc độ cao, hoạt động nhanh gấp 16 lần tốc độ Baud. Một khi chế độ bất đồng

bộ được chọn thì việc tiếp nhận được phép bằng cách đặt Bit CREN (RCSTA<4>).

Trung tâm của bộ nhận là thanh ghi dịch nhận RSR. Sau khi lấy mẫu Bit Stop dữ

liệu nhận trong RSR được truyền đến thanh ghi RCREG. Nếu việc truyền hoàn tất thì

Bit Cờ RCIF lên 1. Ngắt thật sự cho phép hoặc không cho phép bằng cách đặt hoặc

xóa Bit RCIE. Cờ RCIF chỉ là 1 Bit chỉ đọc và được xó bởi phần cứng. Nó được xóa

khi thanh ghi RCREG được đọc và hoàn toàn không có dữ liệu. RCREG là 1 thanh ghi

bộ đệm đôi (Bởi vì nó cho 2 Byte dữ liệu có thể truyền và nhận đồng thời đến RCREG

SVTH : Bùi Tấn Tài – CCVT03A

28

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

FIFO và Byte thứ 3 bắt đầu được dịch chuyển đến thanh ghi RSR). Khi phát hiện ra

Bit Stop của Byte thừ 3 này, Nếu thanh ghi RCREG vẫn còn đầy thì Bit bào lỗi

trànOERR(RCSTA<1>), sẽ lên 1. Những dữ liệu trong RSR sẽ mất đi. Và thanh ghi

RCREG có thể được đọc 2 lần để lấy lại 2 Byte trong FIFO. Bit báo tràn OERR phải

được xóa trong phần mềm.

Để thiết lập chế độ thu bất đồng bộ, các bước sau được yêu cầu :

1. Khởi tạo thanh ghi SPBRGH:SPBRG, BRGH và BRG16 bit cho việc chọn sai

số tốc độ Baud.

2. Set chân điều khiển RX/DT và TX/CK bằng “1”.

3. Cho phép nhận qua Port nối tiếp bất đồng bộ bằng cách xóa Bit SYNC và cho

Bit SPEN lên 1.

4. Nếu ngắt xảy ra thì set Bit RCIE và Nếu sử dụng ngắt thì set bit GIE và PEIE

của thanh ghi INTCON.

5. Nếu nhận 9-Bit dữ liệu thì set Bit RX9 .

6. Set bit CKTXP nếu dữ liệu nhận bị đảo ngược.

7. Cho phép nhận dữ liệu bằng cách set Bit CREN.

8. Sau khi dữ liệu được nhận , Bit Cờ ngắt RCIF sẽ được set và cờ ngắt được

kích hoạt (nếu bit RCIE được set).

9. Đọc nội dung thanh ghi RCSTA để nhận bit dữ liệu thứ 9 và xác định các lỗi

xảy trong quá trình thu dữ liệu.

10. Nhận 8 bit dữ liệu thu được bằng cách đọc nội dung thanh ghi RCREG.

11. Nếu xuất hiện lỗi trong quá trình nhận thì xóa lỗi bằng cách xóa BitCREN

Hình 2.14 Sơ đồ khối bộ nhận dữ liệu EUSART bất đồng bộ

SVTH : Bùi Tấn Tài – CCVT03A

29

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

Hình 2.15 Các thanh ghi liên quan đến quá trình nhận dữ liệu bất đồng bộ

2.6.1.3 Độ chính xác của xung clock với hoạt động không đồng bộ

Hình 2.16 Cấu tạo thanh ghi TXSTA

Bit 7 CSRC : bit chọn nguồn xung.

Chế độ bất đồng bộ : không cần thiết

Chế độ đồng bộ :

1 = chế độ chủ (phát xung dao động nội từ BRG). +

0 = chế độ tớ ( xung dao dộng ngoại ). +

Bit 6 TX9 : bit cho phép truyền 9 bit.

+ 1 = chọn chế độ truyền 9 bit.

+ 1 = chọn chế độ truyền 8 bit.

Bit 5 TXEN : bit cho phép truyền.

+ 1 = cho phép truyền.

+ 0 = không cho phép truyền.

Bit 4 SYNC : bit chọn chế độ USART.

+ 1 = chế độ đồng bộ.

+ 0 = chế độ bất đồng bộ.

Bit 3 SEND8 : gửi bit ký tự bị mất.

Chế độ bất đồng bộ :

+ 1 = truyền ký tự bị mất

+ 0 = quá trình truyền ký tự bị mất kết thúc

Chế độ đồng bộ : không cần thiết

SVTH : Bùi Tấn Tài – CCVT03A

30

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

+ 1 = tốc độ nhanh.

+ 0 = tốc độ chậm.

Bit 1 TRMT : bit trạng thái dịch truyền thanh ghi.

+ 1 = TSR rỗng.

+ 0 = TSR đầy.

Bit 0 TX9D : bit thứ 9 của truyền dữ liệu, có thể là bit Parity.

Hình 2.17 Cấu tạo thanh ghi RCSTA

Bit 7 SPEN : bit cho phép Serial Port.

+ 1 = cho phép Serial Port (tức là cấu hình cho RC7/RX/DT và

RC6/TX/CK như chân Serial Port).

+ 0 = không cho phép.

Bit 6 RX9 : bit cho phép nhận 9 bit.

+ 1 = cho phép nhận 9 bit.

+ 0 = cho phếp nhận 8 bit.

Bit 5 SREN : bit cho phep nhận đơn độc.

Chế độ bất đồng bộ không dùng.

Chế độ đồng bộ - Master:

+ 1 = cho phép nhận đơn độc.

+ 0 = không cho phép.

Chế độ đồng bộ - Slave : không cần.

Bit 4 CREN : bit cho phép nhận tiếp tục.

Chế độ bất đồng bộ :

+ 1 = cho phép nhận tiếp tục.

Chế độ bất đồng bộ :

+ 1 = cho phép nhận tiếp tục.

+ 0 = không cho phép nhận tiếp tuc.

Chế độ đồng bộ :

+ 1 = cho phép nhận tiếp đến khi bit cho phép CREN bị xóa.

+ 0 = không cho phép nhận tiếp.

SVTH : Bùi Tấn Tài – CCVT03A

31

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

Bit 3 ADDEN : bit cho phép phat hiện địa chỉ.

Chế độ bất đồng bộ 9 bit (RX9 = 1):

+ 1 = cho phép phat hiện địa chỉ, cho phép nhắt và tải bộ đệm nhận khi

RSR<8> được SET.

+ 0 = không cho phép phát hiện địa chỉ, tất cả các Bytes được nhận và bit

thứ 9 có thể được sử dụng như là bit Parity.

Bit 2 FERR : bit báo lỗi khung truyền

+ 1 = lỗi khung truyền (có thể được chấp nhận bằng cách đọc thanh ghi

RCREG và nhận Byte tiếp theo).

+ 0 = không xuất hiện lỗi trong quá trình truyền nhận dữ liệu.

Bit 1 OERR : bit báo lỗi tràn bộ nhớ.

+ 1 = lỗi tràn ( có thể xóa bằng cách xóa bit CREN).

+ 0 = không báo lỗi tràn.

Bit 0 RX9D : bit thứ 9 của dữ liệu nhận ( có thể là bit parity nhưng phải được

tính toán bởi người dùng).

2.6.2 Bộ EUSART hoạt động trong chế độ đồng bộ

Giao diện EUSART đồng bộ được kích hoạt bằng cách set bit SYNC. Cổng giao

tiếp nối tiếp vẫn là hai chân RC7/RX/DT, RC6/TX/CK và được cho phép bằng cách

set bit SPEN. EUART cho phép hai chế độ truyền nhận dữ liệu là Master mode và

Slave mode. Master mode được kích hoạt bằng cách set bit CSRC (TXSTA<7>), Slave

mode được kích hoạt bằng cách Clear bit CSRC. Điểm khác biệt duy nhất giữa hai chế

độ này làMaster mode sẽ lấy xung clock đồng bộ từ bộ tạo xung baud BRG còn Slave

mode lấy xung clock đồng bộ từ bên ngoài qua chân RC6/TX/CK. Điều này cho phép

Slave mode hoạt động ngay cả khi vi điều khiển đang ở chế độ sleep.

2.7 HOẠT ĐỘNG ĐỊNH THỜI TIMER

2.7.1 Bộ định thời TIMER0

Bộ định thời/bộ đếm Timer0 có các đặc tính sau :

- Bộ định thời / bộ đếm 8 bit .

- Cho phép đọc và ghi .

- Bộ chia 8 bit lập trình được bằng phần mềm .

- Chọn xung clock nội hoặc ngoại .

- Ngắt khi có sự tràn từ FFh đến 00h

SVTH : Bùi Tấn Tài – CCVT03A

32

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

- Chọn cạnh cho xung clock ngoài

Bên dưới là sơ đồ khối của bộ định thời Timer 0 và bộ chia dùng chung với

WDT. Chế độ định thời (Timer) được chọn bằng cách xóa bit T0CS (

OPTION_REG<5> ) Trong chế độ định thời , bộ định thời Timer 0 sẽ tăng dần sau

mỗi chu kỳ lệnh ( không có bộ chia ) . Nếu thanh ghi TMR0 được ghi thì sự tăng sẽ bị

ngăn lại sau hai chu kỳ lệnh .

Chế độ đếm(Counter) được chọn bằng cách set bit T0SC ( OPTION_REG<5> ).

Trong chế độ đếm , Timer0 sẽ tăng dần ở mỗi cạnh lên hoặc cạnh xuống của chân

RA4/T0CKI . Sự tăng cạnh được xác định bởi bit Timer0 Source Edge Select , T0SE

(OPTION_REG<4> ) . Bộ chia chỉ được dùng chung qua lại giữa bộ định thời Timer0

và bộ định thời Watchdog . Bộ chia không cho phép đọc hoặc ghi .

Ngắt TMR0 được phát ra khi thanh ghi TMR0 tràn từ FFh đến 00h đối với 8 bit.

Sự tràn này sẽ set bit TMR0IF(INTCON<2>). Ngắt này có thể được giấu đi bằng cách

xóa đi bit TMR0IE (INTCON<5>) . Bit TMR0IF cần phải được xóa trong chương

trình bởi thủ tục phục vụ ngắt của bộ định thời Timer0 trước khi ngắt này được cho

phép lại.

Sơ đồ khối của Timer 0 như sau:

Hình 2.18 sơ đồ khối bộ định thời Timer0

Muốn Tmer 0 hoạt động ở chế độ Timer ta clear bit T0SC (OPTION_REG<5>),

khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kỳ xung đồng hồ (tần số vào

SVTH : Bùi Tấn Tài – CCVT03A

33

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

Timer 0 bằng 1/4 tần số oscillator). Khi giá trị thanh ghi TMR0 từ FFh trở về 00h, ngắt

Timer 0 sẽ xuất hiện.

Thanh ghi TMR0 cho phép ghi va xoa được giúp ta ấn định thời điểm ngắt Timer

0 xuất hiện một cách linh động . Muốn Timer 0 hoạt đọng o chế độ counter ta set bit

T0CS (OPTION_REG<5>). Khi đó xung tác động lên bộ đếm được lấy từ chân

RA4/T0CKI. Bit T0SE (OPTIN_REG<4>) cho phép lựa chọn cạnh tác động vào bộ

đếm. Cạnh tác động sẽ là cạnh lên nếu T0SE = 0 và cạnh tác động sẽ là cạnh xuống

nếu T0SE = 1.

Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON<2>) sẽ được set. Đây chính

là cờ ngắt của Timer 0. Cờ ngắt này phải được xóa bằng chương trình trước khi bộ

đếm bắt đầu thực hiện lại quá trình đếm .NGắt Timer 0 không thể đánh thức vi điều

khiển từ chế độ sleep

Bộ chia tần số (prescaler) được chia sẻ giữa Timer 0 và WDT (Watchdog Timer).

Điều đó có nghĩa là nếu bộ chia tần số được sử dụng cho timer 0 thì WDT sẽ không có

hỗ trợ của bộ chia tần số và ngược lại. Bộ chia tần số được điềi khiển bởi thanh ghi

OPTION_REG. Bit PSA (OPTION_REG<3>) xác định đối tượng tác động của bộ

chia tần số. Các bit PS2:PS0 (OPTION_REG<2:0>) xác định tỉ số của bộ chia tần số.

Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xóa chế độ hoạt động của bộ chia tần

số.

Các thanh ghi điều khiển liên quan đến Timer 0 bao gồm :

TMR0 (địa chỉ 01h,101h) : chứa giá trị đếm của Timer 0.

INTCON (địa chỉ 0Bh,8Bh,10Bh,18Bh)):cho phép ngắt hoạt .

OPTION_REG (địa chỉ 81h,181h) : điều khiển bộ chia tần số.

Hình 2.19 Các thanh ghi liên quan đến bộ định thời Timer0

2.7.2 Bộ định thời TIMER1

Bộ định thời Timer1 là một bộ định thời/bộ đếm 16 bit gồm hai thanh ghi

TMR1H ( byte cao ) và TMR1L ( byte thấp ) mà có thể đọc hoặc ghi . Cặp thanh ghi

SVTH : Bùi Tấn Tài – CCVT03A

34

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

này tăng số đếm từ 0000h đến FFFFh và một tràn sẽ xuất hiện khi có sự chuyển số

đếm từ FFFFh xuống 0000h . Ngắt, nếu được phép có thể phát ra khi có số đếm tràn và

được đặt ở bit cờ ngắt TMR1IF. Ngắt có thể được phép hoặc cấm bằng cách đặt hoặc

xóa bit cho phép ngắt TMR1IE.

Bộ định thời Timer1 có thể được cấu hình để hoạt động một trong hai chế độ sau:

- Định thời một khoảng thời gian ( Timer )

- Đếm sự kiện ( Counter )

Việc lựa chọn một trong hai chế độ được xác định bằng cách đặt hoặc xóa bit

chọn clock TMR1CS. Trong chế độ định một khoảng thời gian, bộ định thời tăng số

đếm lên sau mỗi chu kỳ lệnh. Trong chế độ đếm sự kiện, bộ định thời tăng sau mỗi

cạnh lên của clock ngoài đặt vào. Bộ định thời 1 có thể được phép hoặc cấm bằng

cách đặt hoặc xóa bit điều khiển TMR1ON.

Hình 2.20 T1CON: Thanh ghi điều khiển Timer1

Hình 2.21 Sơ đồ khối Timer1

Ngoài ra Timer 1 còn có chức năng reset input bên trong được điều khiển bởi một

trong hai khối CCP (Capture/Compare/PWM).Khi set bit T1OSCEN thì Timer 1 sẽ lấy

xung clock từ hai chân RC/T1OSI/CCP2 và RC0/T1OSO/T1CKI làm xung đếm.

Timer 1 sẽ bắt đầu đếm sau cạnh xuống đầu tiên của xung ngõ vào. Khi đó PORTC sẽ

bỏ qua sự tác động của hai bit TRISC<1:0> và PORTC<2:1> được gán giá trị 0 . Khi

SVTH : Bùi Tấn Tài – CCVT03A

35

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

clear bit T1OSCEN Timer 1 sẽ lấy xung đếm từ oscillator hoặc từ chân

RC0/T1OSO/T1CKI.

Timer 1 có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ

(Asynchronous). Chế độ đếm được quyết định bởi bit điều khiển T1SYNC

(T1CON<2>).

Khi T1SYNC = 1 xung đếm lấy từ bên ngoài sẽ không được đồng bọ hóa với

xung clock bên trong, Timer 1 sẽ tiếp tục quá trình đếm vi điều khiển đang ở chế độ

sleep và ngắt do Timer tạo ra khi bi tràn có khả năng đánh thức vi điều khiển. Ở chế độ

đếm bất đòng bộ, Timer 1 không thể được sử dụng để làm nguồn xung clock cho khói

CCP (Capture/Compare/Pulse width modulation).

Khi T1SYNC = 0 xung đếm vào Timer 1 sẽ được đồng bộ hóa với xung clock

bên trong. Ở chế độ này Timer 1 sẽ không hoat động khi vi điều khiẻn đang ở chế độ

sleep.

Các thanh ghi liên quan đến Timer 1 bao gồm:

INTCON (địa chỉ 0Bh, 8Bh,10Bh, 18Bh) : cho phép ngắt hoạt động.

PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer 1 (TMR1IF).

PIE1 (địa chỉ 8Ch): cho phép ngắt Timer 1 (TMR1IE).

TMR1L (địa chỉ 0Eh): chứa giá trị 8 bít thấp của bộ đếm Timer 1.

TMR1H (địa chỉ 0Fh): chứa giá trị 8 bít cao của bộ đếm Timer 1.

T1CON (địa chỉ 10h): xác lập các thông số cho Timer 1.

Hình 2.22 Các thanh ghi liên quan đến bộ định thời Timer1

2.7.3 Bộ định thời TIMER2

Bộ định thời Timer2 là bộ định thời 8 bit với một bộ chia và một bộ Postscaler.

Nó thường được dùng chung với bộ CCP trong chế độ PWM ( sẽ được đề cập ở phần

SVTH : Bùi Tấn Tài – CCVT03A

36

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

sau ). Thanh ghi TMR2 có thể đọc hoặc ghi và được xóa khi có bất kỳ tín hiệu reset

nào của thiết bị.

Bộ định thời Timer2 có một thanh ghi chu kỳ 8 bit. Bộ định thời tăng số đếm lên

từ 00h đến giá trị được ghi trong thanh ghi TR2 và sau đó reset lại giá trị 00h trong chu

kỳ kế tiếp. PR2 là thanh ghi có thể đọc hoặc ghi.Giá trị trùng hợp trong thanh ghi

TMR2 được đi qua bộ postscaler 4 bit để phát ra một ngắt TMR2(được đặt ở bit cờ

ngắt TMR2IF). Bộ định thời 2 có thể được tắt ( không hoạt động ) bằng cách xóa bit

điều khiển TMR2ON để giảm thiểu công suất tiêu tán nguồn.

Hình 2.23 T2CON: Thanh ghi điều khiển Timer2

Hình 2.24 Sơ đồ khối của bộ định thời Timer2

Hình 2.25 Các thanh ghi liên quan đến bộ định thời Timer2

2.8 NGẮT (INTERRUPT)

PIC16F877A có nhiều nguồn tạo ra hoạt động ngắt và được điều khiển bởi rất

nhiều thanh ghi: RCON; INTCON; INTCON2; INTCON3; PIR1, PIR2; PIE1, PIE2;

SVTH : Bùi Tấn Tài – CCVT03A

37

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

IPR1, IPR2. Bên cạnh đó mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng. Các cờ

ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái

của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuộc vào bit GIE và các bit điều khiển

khác. Bit điều khiển ngắt RB0/INT0 và TMR0 nằm trong thanh ghi INTCON, thanh

ghi này còn chứa bit cho phép các ngắt ngoại vi PEIE. Bit điều khiển các ngắt nằm

trong thanh ghi PIE1 và PIE2. Các cờ ngắt ngoại vi được chứa trong hai thanh ghi

chức năng đặc biệt : thanh ghi PIR1 và PIR2.Các bit cho phép ngắt tương ứng được

chứa trong hai thanh ghi PIE 1 và PIE 2.

Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương trình

ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực thi, bit GIE tự

động được xóa, địa chỉ lệnh tiếp theo của chương trình chính được cất vào trong bộ

nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0008h. Lệnh RETFIE được dùng

để thoát khỏi chương trình ngắt và quay trở về chương trình chính, đồng thời bit GIE

cũng sẽ được set để cho phép các ngắt hoạt động trở lại. Các cờ hiệu được dùng để

kiểm tra ngắt nào đang xảy ra và phải được xóa bằng chương trình trước khi cho phép

ngắt tiếp tục hoạt động trở lại để ta có thể phát hiện được thời điểm tiếp theo mà ngắt

xảy ra.

Khi một ngắt được đáp ứng, bit GIE được xóa và cấm tất cả các ngắt khác.Cờ

ngắt phải được xóa bởi phần mềm trước khi cho phép lại ngắt.Thông thường, trước

khi thực hiện các chương trình phục vụ ngắt, nội dung các thanh ghi w và status nên

được lưu lại để bảo đảm an toàn và được phục hồi trước khi trở lại chương trình chính.

Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi trạng

thái các Pin của PortB (PORTB interrupt-on-change), việc xác định ngắt nào xảy ra

cần 3 hoặc 4 chu kì lệnh tùy thuộc vào thời điểm xảy ra ngắt.

Trong quá trình thực thi ngắt, chỉ có giá trị của bộ đếm chương trình được cất

vào trong Stack, trong khi một số thanh ghi quan trọng sẽ không được cất và có thể bị

thay đổi giá trị trong quá trình thực thi chương trình ngắt. Điều này nên được xử lí

bằng chương trình để tránh hiện tượng trên xảy ra.

SVTH : Bùi Tấn Tài – CCVT03A

38

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

CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG CẢM

BIẾN VÀ PHÁT CẢNH BÁO MỰC NƯỚC, NHIỆT ĐỘ QUA

MẠNG TIN NHẮN SMS

3.1 GIỚI THIỆU MODULE SIM900, TẬP LỆNH AT COMMAND.

3.1.1 Giới thiệu module SIM900

Các modem được sử dụng từ những ngày đầu của sự ra đời máy tính. Từ Modem

là một từ được hình thành từ hai từ modulator và demodulator. Và định nghĩa đặc

trưng này cũng giúp ta hình dung được phần nào là thiết bị này sẽ làm cái gì. Dữ liệu

số thì đến từ một DTE, thiết bị dữ liệu đầu cuối được điều chế theo cái cách mà nó có

thể được truyền dữ liệu qua các đường dây truyền dẫn. Ở một mặt khác của đường

dây, một modem khác thứ hai điều chế dữ liệu đến và xúc tiến, duy trì nó.

Các modem ngày xưa chỉ tương thích cho việc gữi nhận dữ liệu. Đễ thiết lập một

kết nối thì một thiết bị thứ hai như một dialer thì được cần đến. Đôi khi kết nối cũng

được thiết lập bằng tay bằng cách quay số điện thoại tương ứng và một khi modem

được bật thì kết nối coi như được thực thi. Các máy tính loại nhỏ ở các năm 70 thâm

nhập vào thị trường là các gia đình, cùng với chi phí thì sự thiếu hụt về kiến thức kỹ

thuật trở thành một vấn đề nan giải.

Một modem GSM là một modem wireless, nó làm việc cùng với một mạng

wireless GSM. Một modem wireless thì cũng hoạt động giông như một modem quay

số. Điểm khác nhau chính ở đây là modem quay số thì truyền và nhận dữ liệu thông

qua một đường dây điện thoại cố định trong khi đó một modem wireless thì việc gữi

nhận dữ liệu thông qua sóng.

Giống như một điện thoại di động GSM , một modem GSM yêu cầu 1 thẻ sim

với một mạng wireless để hoạt động.

Module Sim900 là một trong những loại modem GSM. Nhưng Module Sim900

đựơc nâng cao hơn có tốc độ truyền dữ liệu nhanh hơn. Nó sử dụng hệ thống

GSM/GPRS hoạt động ở băng tầng EGSM 900Mhz, DCS 1800 Mhz và PCS

1900Mhz, tính năng GPRS của Sim900 có nhiều lớp

SVTH : Bùi Tấn Tài – CCVT03A

39

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

 8 lớp điện dung

 10 lớp điện dung

Và hỗ trợ GPRS theo dang đồ thị mã hóa CS-1, CS-2, CS-3 và CS-4.

3.1.2 Đặc điểm của module SIM900

1. Nguồn cung cấp khoảng 3,4 – 4,5V

2. Nguồn lưu trữ

3. Băng tần

 EGSM 900Mhz, DCS 1800 Mhz và PCS 1900Mhz, Sim900 có thể tự động tìm

kiếm các băng tần

 Phù hợp với GSM Pha 2/2+

4. Loại GSM là loại MS nhỏ

5. Kết nối GPRS

 GPRS có nhiều rãnh loại 8 ( lựa chọn )

 GPRS có nhiều rãnh loại 10 ( tự động )

6. Giới hạn nhiêt độ:

 Bình thường -300C tới +700C

 Hạn chế : - 350C tới -300C và +700C tới +800C

 Nhiệt độ bảo quản: -450C tới 850C

7. Dữ liệu GPRS:

 GPRS dữ liệu tải xuống: Max 85.6 kbps

 GPRS dữ liệu úp lên: Max 41.8 kbps

 Sơ đồ mã hóa: CS-1, CS-2, CS-3 và CS-4

 Sim900 hổ trợ giao thức PAP ,kiểu sử dụng kết nối PPP

 Sim900 tích hợp giao thức TCP/IP

 Chấp nhận thông tin được điều chỉnh rộng rãi

8. CSD:

 Tốc độ truyền dẫn CSD: 2; 4; 8; 9; 6; 14 KPPS

 Hỗ trợ USSD

9. SMS:

 MT, MO, CB, Text and PDU mode

 Bộ nhớ SMS: Sim, card

10. FAX:

SVTH : Bùi Tấn Tài – CCVT03A

40

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

 Nhóm 3 loại 1

11. Sim card:

 Hỗ trợ sim card: 1,8v ; 3v

12. Anten ngoài:

 Kết nối thông qua anten ngoài 500km hoặc đế anten

13. Âm thanh:

 Dạng mã hóa âm thanh.

 Mức chế độ (ETS 06.20)

 Toàn bộ chế độ (ETS 06.10)

 Toàn bộ chế độ tăng cường (ETS 06.50/ 06.06/ 06.80)

 Loại bỏ tiếng dội.

14. Giao tiếp nối tiếp và sự ghép nối:

 Cổng nối tiếp: 7 Cổng nối tiếp( ghép nối)

 Cổng kết nối có thể sử dụng với CSD Fax, GPRS và gửi lệnh ATCommand tới

mudule điều khiển

 Cổng nối tiếp có thể Sd chức năng giao tiếp

 Hỗ trợ tốc độ truyền 1200 BPS tới 115200 BPS

 Cổng hiệu chỉnh lỗi: 2 cổng nối tiếp TXD và RXD

 Cổng hiệu chỉnh lỗi chỉ sử dụng sữa lỗi

15. Quản lý danh sách:

 Hỗ trợ mẫu danh sách: SM, FD, LD, RC,ON, MC

16. Sim Application toolkit:

 Hỗ trợ SAT loại GSM 11,14 bản 99

17. Đồng hồ thời gian thực:

 Người cài đặt

18. Times function:

 Lập trình thông qua AT Command

19. Đặc tính vật lý (đặc điểm):

 Kích thước 50±0.15 x 33±0.15 x7.7±0.3mm

 Nặng 13.8 g

SVTH : Bùi Tấn Tài – CCVT03A

41

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

Hình 3.1 Module Sim900

3.1.3 Khảo sát sơ đồ chân và chức năng từng chân

Hình 3.2 Sơ đồ chân của Module Sim900

Bảng 3.1 Bảng mô tả các chức năng từng chân của SIM900

Tên chân Thứ tự Mô tả chức năng và các đặc tính

chân

VBAT chân của chip được dành riêng để kết nối tới nguồn cung 1

cấp, nguồn cung cấp của Sim900 là nguồn đơn VDAT là 3,4 3

5 V – 4,5 V

7

9

GND 2 Chân GND

4

6

SVTH : Bùi Tấn Tài – CCVT03A

42

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

8

10

11 VCHG

12 ADC Chân vào của bộ chuyển đổi tín hiệu tương tự sang số

13 TEMP-BAT

14 VRTC

15 VCC-EXT

16 NETLIGHT đầu ra dùng để chỉ báo mạng kết nối được hệ thống

17 PWRKEY chân này dùng để điều khiển hệ thống bật/tắt

18 KBC Kết nối bàn phím

20

22

24

26

19 STATUS báo trình trạng công việc

21 GPIO input/output port

35

23 BUZZER đầu ra chuông

25 SIM VCC nguồn cung cấp cho thẻ sim

27 SIM RST chân reset cho mạch sim

28 KBR chân kết nối với bàn phím

30

32

34

36

29 SIM DATA đầu ra dữ liệu chân sim

32 SIM CLK chân thời gian của sim

33 SIM chân dò tìm mạng

PRESENCE

37 DCD

38 DISP CS

SVTH : Bùi Tấn Tài – CCVT03A

43

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

DISP CLK 40

DISP DATA 42

DISP D/C 44

DISP RST 46 chân ra giao tiếp với màng hình

DTR 39 chân đầu cuối dữ liệu

RXD 41 chân nhận dữ liệu

TXD 43 chân truyền dữ liệu

RTS 45

CTS 47

RI 49

DBG RXD 48 đầu ra dùng để điều chỉnh trong nhận dữ liệu

DBG TXD 50 đầu ra dùng để điều chỉnh trong truyền dữ liệu

AGND 51 Chân GND

52

SPK1P 53 chân output

SPK1N 55

SPK2P 57

SPK2N 59

MIC1P 54 chân input

MIC1N 56

MIC2P 58

MIC2N 60

Ghi chú: I = input ; O = output ; I/O = input/output

3.1.4 Khảo sát tập lệnh AT của module SIM900

Các modem được sử dụng từ những ngày đầu của sự ra đời của máy tính. Từ

Modem là một từ được hình thành từ hai từ modulator và demodulator. Và định nghĩa

đặc trưng này cũng giúp ta hình dung được phần nào là thiết bị này sẽ làm cái gì. Dữ

liệu số thì đến từ một DTE, thiết bị dữ liệu đầu cuối được điều chế theo cái cách mà nó

có thể được truyền dữ liệu qua các đường dây truyền dẫn. Ở một mặt khác của đường

dây, một modem thứ hai điều chế dữ liệu đến và xúc tiến, duy trì nó.

SVTH : Bùi Tấn Tài – CCVT03A

44

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

Khi chúng ta xem trong RS232 port layout thì chuẩn RS232 miêu tả một kênh

truyền thông với bộ kết nối 25 chân DB25, nó được thiết kế để thực thi quá trình

truyền các lệnh đến modem được kết nối với nó. Thao tác này bao gồm cả các lệnh

quay một số điện thoại nào đó. Không may đó là các quá trình dùng RS232 với chi phí

thấp này chỉ thể hiện trên các máy tính ở các hộ gia đình trong những năm 70, và kênh

truyền thông thứ 2 không được thực thi. Thế nên nhất thiết phải có một phương pháp

được thiết lập để sử dụng kênh dữ liệu hiện tại để không chỉ truyền dữ liệu từ một

điểm đầu cuối này tới một điểm đầu cuối khác mà nó còn nhắm tới modem duy nhất.

Dennis Hayes đã đưa ra giải pháp cho vấn đề này trong năm 1977. Modem thông minh

( Smartmodem ) của ông sử dụng chuẩn truyền thông RS232 đơn giản kết nối tới một

máy tính để truyền cả câu lệnh và dữ liệu. Bởi vì mõi lệnh bắt đầu với chữ AT trong

chữ Attention nên ngôn ngữ điều khiển được định nghĩa bởi Hayes nhanh chóng được

biết đến với bộ lệnh Hayes AT. Chính vị sự đơn giản và khả năng thực thi với chi phí

thấp của nó, bộ lệnh Hayes AT nhanh chóng được sử dụng phổ biến trong các modem

của các nhà sản xuất khác nhau. Khi chức năng và độ tích hợp của các modem ngày

càng tăng cùng thời gian, nên làm cho ngôn ngữ lệnh Hayes AT càng phức tạp. Vì thế

nhanh chóng mỗi nhà sản xuất modem đã sử dụng ngôn ngữ riêng của ông ấy. Ngày

nay bộ lệnh AT bao gồm cả các lệnh về dữ liệu, fax, voice và các truyền thông SMS

Các lệnh AT là các hướng dẫn được sử dụng để điều khiển một modem. AT là

một cách viết gọn của chữ Attention. Mỗi dòng lệnh của nó bắt đầu với “AT” hay “at”.

Đó là lý do tại sao các lệnh modem được gọi là các lệnh AT. Nhiều lệnh của nó được

sử dụng để điều khiển các modem quay số sử dụng dây mối (wired dial-up modems),

chẳng hạn như ATD (Dial), ATA (Answer), ATH (Hool control) và ATO (return to

online data state), cũng được hỗ trợ bởi các modem GSM/GPRS và các điện thoại di

động.

Bên cạch bộ lệnh AT thông dụng này, các modem GSM/GPRS và các điện thoại

di động còn được hỗ trợ bởi một bộ lệnh AT đặc biệt đối với hệ thống GSM. Nó bao

gồm các lệnh liên quan tới SMS như AT+ CMGS (gửi tin nhắn SMS), AT+CMSS

(gửi tin nhắn SMS từ một vùng lư trữ), AT+CMGL (chuỗi liệt kê các tin nhắn SMS)

và AT+CMGR (đọc tin nhắn SMS).

SVTH : Bùi Tấn Tài – CCVT03A

45

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

Ngoài ra, các modem GSM còn hỗ trợ một bộ lệnh AT mở rộng. Những lệnh AT

mở rộng này được định nghĩa trong các chuẩn của GSM. Với các lệnh AT mở rộng

 Đọc,viết, xóa tin nhắn

 Gửi tin nhắn SMS

 Kiểm tra chiều dài tín hiệu

 Kiểm tra trạng thái sạc bin và mức sạc của bin.

 Đọc, viết và tìm kiếm về các mục danh bạ

này,bạn có thể làm một số thứ như sau:

Số tin nhắn SMS có thể được thực thi bởi một modem SMS trên một phút thì rất

thấp, nó chỉ khoảng từ 6 đến 10 tin nhắn SMS trên 1 phút.

MODULE Sim900

3.2 XÂY DỰNG HỆ THỐNG

VI ĐIỀU KHIỂN PIC16F877A

KHỐI NGUỒN

S M S

KHỐI CẢM BIẾN

K h ố i G i a o T i ế p

MOBILE

Hình 3.3 Sơ đồ khối hệ thống

CHỨC NĂNG TỪNG KHỐI:

* Khối giao tiếp SMS

Có chức năng gửi nhận tin nhắn SMS cho việc điều khiển các thiết bị. Khối này

cần 1 thiết bị điện thoại di động và 1 Module Sim900

- Thiết bị điện thoại di động : dành cho người sử dụng. Người sử dụng cần phải

đăng kí dịch vụ viễn thông đối với các nhà cung cấp dịch vụ trong nước.

SVTH : Bùi Tấn Tài – CCVT03A

46

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

- GSM Module Sim900 : Module này phải được gắn Sim của nhà cung cấp dịch

vụ và cũng cần phải có chức năng như một điện thoại di động để kết nối với vi điều

khiển PIC16F877A . Cái này được đặt cố định và thường xuyên kết nối với

Pic16F877A.

* Khối xử lý phần cứng

Khối xử lý phần cứng là khối trung tâm trong việc xử lý và điều khiển phần

cứng. Khối do một vi điều khiển PIC16F877A đảm nhận và có nhiệm vụ gửi nhận dữ

liệu với Module Sim900 một cách liên tục. Khi Module Sim900 gửi thông tin điều

khiển thì Khối xử lý phần cứng sẽ được lập trình để thực thi. Vi điều khiển có nhiệm

vụ giao tiếp với khối cảm biến hồng ngoại.

* Khối cảm biến

o Hồng ngoại

Là một Led phát và một Led thu hồng ngoại. Led phát là một Led hồng ngoại .

Khi mã lệnh có giá trị bit = ‘1’ thì Led phát hồng ngoại trong khoảng thời gian T của

bit đó . Khi mã lệnh có giá trị bit= ‘0’ thì Led không sáng . Do đó bên thu không nhận

được tín hiệu xem như bit = ‘0’. Led thu : Tia hồng ngoại từ phần phát được tiếp nhận

bởi Led thu hồng ngoại

o Nhiệt độ

Sử dụng ICLM35 là một cảm biến nhiệt độ hiệu chỉnh với độ chính xác 1 °

C. Khoảng đo từ -55 ° C đến 150 ° C. Đầu ra là tuyến tính và mỗi độ C bằng 10mV, do

đó:

- 150 ° C = 1500mV

- -40 ° C =-400mV

3.3 THIẾT KẾ PHẦN CỨNG

3.3.1 Cảm biến

3.3.1.1 Led phát

Led phát được nối trực tiếp lên nguồn 5v của mạch

Led phát phải chiếu trực tiếp vào led thu để đảm bảo giao tiếp được với nhau tốt

nhất

SVTH : Bùi Tấn Tài – CCVT03A

47

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

3.3.1.2 Led thu

Hình 3.4 Sơ đồ mạch led thu với bộ so sánh tương đương

Mạch gồm 4 bộ so sánh tương đương với một IC LM324, 4 led thu và 4 biến trở

Khi led phát chiếu trực tiếp vào led thu sẽ có tín hiệu vào cực dương của bộ so

sánh. Tại cực âm của bộ so sánh sẽ có điện áp tham chiếu tạo ra bởi biến trở, tùy vào

mức độ ánh sáng từ led phát đến led thu mà chúng ta điều chỉnh biến trở để cảm biến

không bị ảnh hưởng bởi ánh sáng bên ngoài. Tín hiệu sau khi ra bộ so sánh sẽ được

truyền tới bộ vi xử lý, tín hiệu này có mức tin cậy cao

3.3.1.3 Cảm biến nhiệt độ LM35

Hình 3.5 Sơ đồ mạch cảm biến nhiệt độ LM35

SVTH : Bùi Tấn Tài – CCVT03A

48

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

Đây là những cảm biến để đo nhiệt độ môi trường sử dụng LM35. Các đầu ra của

cảm biến được đưa vào bộ MUX. Các đặc điểm chung của cảm biến nhiệt độ LM35

như sau

+ Chân 1 : Chân nguồn đầu vào Vcc

+ Chân 2 : Chân đầu ra Vout

+ Chân 3 : Chân nối GND

Cảm biến LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp

đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius. Chúng cũng không

yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân chỉnh

Đặc điểm chính của cảm biến LM35

+ Điện áp đầu vào từ 4V đến 30V

+ Độ phân giải điện áp đầu ra là 10mV/oC

+ Độ chính xác cao ở 25 C là 0.5 C

+ Trở kháng đầu ra thấp 0.1 cho 1mA tải

Dải nhiệt độ đo được của LM35 là từ -55 C - 150 C với các mức điện áp ra khác

nhau. Xét một số mức điện áp sau :

- Nhiệt độ -55 C điện áp đầu ra -550mV

- Nhiệt độ 25 C điện áp đầu ra 250mV

- Nhiệt độ 150 C điện áp đầu ra 1500mV

3.3.2 Nguồn cung cấp cho hệ thống

Hình 3.6 Sơ đồ mạch nguồn cung cấp cho hệ thống

- Dùng IC LM2576 để tạo ra nguồn 3.3V cho mạch và đảm bảo điện áp ra cung

cấp cho mạch luôn ổn đinh.

SVTH : Bùi Tấn Tài – CCVT03A

49

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

- Dùng các tụ hóa ở đầu vào và đầu ra để lọc nhiễu cho nguồn vào và nguồn ra

của bộ tạo nguồn, chọn tụ đầu vào là 100 uF và đầu ra là 1000 uF

- Dùng đèn led để hiển trị trạng thái của nguồn.

3.3.3 Đèn báo

Hình 3.7 Sơ đồ mạch dèn báo hiệu

Các đèn D9 D10 D11 D12 hiển thị 4 mức cảm biến. Khi led thu nhận được ánh

sáng từ led phát thì tương ứng mỗi cặp led cảm biến, đèn báo hiệu sẽ sáng lên

Các đèn D8 D3 RV8 hiển thị nguồn vào và hiển thị khi module gửi tin nhắn

SVTH : Bùi Tấn Tài – CCVT03A

50

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

3.3.4 Vi điều khiển PIC 16F877A

Hình 3.8 Sơ đồ mạch vi điều khiển PIC16F877A

Khi nhận được tín hiệu cảm biến hồng ngoại và cảm biến nhiệt đọ, vi điều khiển

sẽ xử lý tín hiệu rồi giao tiếp với GSM để làm nhiệm vụ phát tin nhắn với nội dung và

lệnh được lập trình sẵng.

GSM có nhiệm vụ phát tin nhắn như chiếc điện thoại di động bình thường, nó sẽ

phát đi tin nhắn với nội dung cảnh báo qua điện thoại di động của người giám sát

SVTH : Bùi Tấn Tài – CCVT03A

51

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

3.3.5 Sơ đồ mạch

Hình 3.9 Sơ đồ mạch cảm biến hồng ngoại

SVTH : Bùi Tấn Tài – CCVT03A

52

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

3.4. LƯU ĐỒ GIẢI THUẬT

3.4.1. Lưu đồ giải thuật tổng quát chương trình chính

Bắt đầu

Khai báo biến

Khởi tạo SPI

Khởi tạo thanh ghi

Khởi tạo ngắt timer

Thiết lập ADC

Khởi tạo cấu hình GSM

Kiểm tra mực nước và đo nhiệt độ

Gửi tin nhắn

Kết thúc

SVTH : Bùi Tấn Tài – CCVT03A

53

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

Bắt đầu

Đọc dữ liệu

3.4.2 Lưu đồ thuật toán chương trình con kiểm tra mực nước

Đ

Sensor1==1 Num_count1==0

Gửi tin nhắn Num_count1++ Num_count2==0 Num_count3==0 Num_count4==0

S

Đ

Sensor2==1 Num_count2==0

Gửi tin nhắn Num_count2++ Num_count3==0 Num_count4==0

S

Đ

Sensor3==1 Num_count3==0

Gửi tin nhắn Num_count3++ Num_count4==0

S

Đ

Gửi tin nhắn Num_count4++

Sensor4==1 Num_count4==0

S

Kết thúc

SVTH : Bùi Tấn Tài – CCVT03A

54

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

3.4.3 Lưu đồ giải thuật chương trình con Cấu hình GSM

Bắt Đầu

Gửi Lệnh AT

Đ

S

Gửi lệnh AT + CMGF = 1 (Chuyển sang dạng Text)

S

Gửi lệnh AT&W (Lưu cấu hình)

Xóa Bộ Đệm BUFFER

Đ

Kết Thúc

SVTH : Bùi Tấn Tài – CCVT03A

55

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

3.4.4 Lưu đồ giải thuật chương trình gửi tin nhắn

Bắt đầu

Đọc dữ liệu

S

Đ

Index==0

Gửi tin nhắn: Hệ thống sẵn sàng hoạt động

S

Đ

Index==1

Gửi tin nhắn: Mực nước hiện tại là 1 và nhiệt độ hiện tại là temp

S

Đ

Index==2

Gửi tin nhắn: Mực nước hiện tại là 2 và nhiệt độ hiện tại là temp

S

Đ

Index==3

Gửi tin nhắn: Mực nước hiện tại là 3 và nhiệt độ hiện tại là temp

S

Đ

Gửi tin nhắn: Mực nước hiện tại là 4 và nhiệt độ hiện tại là temp

Index==4 S

Index==5

Gửi tin nhắn: Mực nước hiện tại là bình thường và nhiệt độ là temp

Kết thúc

SVTH : Bùi Tấn Tài – CCVT03A

56

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

CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC CỦA HỆ THỐNG

4.1 KẾT QUẢ ĐẠT ĐƯỢC

Hệ thống mạch báo lũ lụt qua tin nhắn điện thoại đã đạt được nhu ý muốn, hệ

thống đã thực hiện tốt việc báo mực nước (gồm 4 mức) theo ý muốn, đã nhận được dữ

liệu và phát tin nhắn thành công

Đầu tiên khi đổ nước vào ngăn chứa nước, vật cản led hồng ngoại sẽ nổi lên theo

nước. Khi vật cản che hai led phát và led thu của mức đầu tiên, mạch cảm biến đã so

sánh và hoàn thành nhiệm vụ để chuyển tín hiệu qua cho vi xử lý làm việc sau đó vi

điều khiển sẽ giao tiếp với module Sim900 và phát cảnh báo thành công tới số điện

thoại đã định sẵng với mức nước đầu tiên. Sau đó những mức nước còn lại cũng đã gửi

tin nhắn thành công.

Mạch cảm biến đã hoàn thành được công việc của nó là đưa tín hiệu mỗi mức

mực nước về cho vi xử lý

Mạch GSM đã xử lý được các thông tin mà mạch cảm biến đưa về để xử lý và

giao tiếp với module Sim900 và phát được tin nhắn cảnh báo tới người dám sát

4.2 HÌNH ẢNH HOẠT ĐỘNG

Hình 4.1 Hệ thống được cấp nguồn và sẵng sàng hoạt động

SVTH : Bùi Tấn Tài – CCVT03A

57

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

Sau khi cấp nguồn, GSM sẽ nhận mạng và Sim, sau khi nhận thành công hệ

thống sẽ gửi tin nhắn qua số điện thoại đã được lập trình sẵng với nội dung: Hệ thống

sẵn sàng hoạt động

Hình 4.2 Tin nhắn đã được gửi tới điện thoại

SVTH : Bùi Tấn Tài – CCVT03A

58

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

Hình 4.3 Cảm biến đầu tiên hoạt động khi đổ nước vào

Khi đổ nước vào khay đựng nước led màu xanh lá cây đầu tiên không sáng

tương ứng với cảm biến của mực nước đầu tiên

Hệ thống sẽ gửi tin nhắn với nội dung: Mực nước hiện tại là mức 1 và nhiệt độ

hiện tại là 30 oC (nhiệt độ tùy vào môi trường mà hệ thống đang hoạt động)

Hình 4.4 Tin nhắn đã được gửi tới điện thoại

SVTH : Bùi Tấn Tài – CCVT03A

59

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

Hình 4.5 Cảm biến thứ hai hoạt động khi đổ nước vào

Khi tiếp tục đổ nước vào thì led màu xanh lá cây thứ hai không sáng tương ứng

với cảm biến mực nước thứ hai

Hệ thống sẽ gửi tin nhắn với nội dung: mực nước hiện tại là mức 2 và nhiệt độ

hiện tại là 30 oC

Hình 4.6 Tin nhắn đã được gửi tới điện thoại

SVTH : Bùi Tấn Tài – CCVT03A

60

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

Hình 4.7 Cảm biến thứ ba hoạt động khi đổ nước vào

Mực nước lúc này là mực nước thứ ba Hệ thống thông báo mực nước hiện tại là 3 và nhiệt độ hiện tại là 30oC

Hình 4.8 Tin nhắn đã được gửi tới điện thoại

SVTH : Bùi Tấn Tài – CCVT03A

61

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

Hình 4.9 Cảm biến thứ tư hoạt động khi đổ nước vào

Khi mực nước lên mức thứ tư thì hệ thống sẽ nhắn tin với nội dung: mực nước

hiện tại là 4 và nhiệt độ hiện tại là 30 oC

Hình 4.10 Tin nhắn đã được gửi tới điện thoại

SVTH : Bùi Tấn Tài – CCVT03A

62

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

* Ngoài ra hệ thống còn phát tin nhắn nguội cảnh báo lặp lại, cứ mỗi 1 phút hệ

thống sẽ phát tin nhắn cảnh tình trạng hệ thống lúc đó như thế nào.

* Nếu chưa đổ nước vào thì sau mỗi 1 phút hệ thống sẽ gửi tin nhắn với nội

dung: mực nước hiện tại là bình thường và nhiệt độ hiện tại là 30 oC

Hình 4.11 Tin nhắn đã được gửi tới điện thoại

SVTH : Bùi Tấn Tài – CCVT03A

63

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

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

+ 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

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

SVTH : Bùi Tấn Tài – CCVT03A

64

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

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

SVTH : Bùi Tấn Tài – CCVT03A

65

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

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

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

 Lệnh AT+CMGF=[]

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

Ok

: 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

 Lệnh AT&W[]

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

 Lệnh ATE[]

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

Ok

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

1.2 Các lệnh về SMS

 Lệnh Xóa tin nhắn

AT+CMGD

SVTH : Bùi Tấn Tài – CCVT03A

66

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

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=

: 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

 Lệnh đọc tin nhắn:

AT+CMGR=[,mode]

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

: 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:,,[],[,,,,,,

>,]

Từ SMS-SUBMIT:

+CMGR:,,[][,,,,,[],,

>,]

Từ SMS-STATUS-REPORTs:

+CMGR: ,,,[],[],,

,

Từ SMS-COMMANDs:

+CMGR:,,[,,[],[],[],

]

Từ CBM storage

+CMGR:,,,,,

Nếu dữ liệu trả về dạng PDU(mode=0):

+CMGR: ,[],

Nếu lệnh bị lỗi thì trả về dưới dạng:

+CMS ERROR:

 Lệnh gửi tin nhắn SMS:

AT+CMGS

SVTH : Bùi Tấn Tài – CCVT03A

67

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

Nếu gửi tin nhắn dưới dạng text:

(+CMGF=1):

+CMGS=[,] text is entered

Nếu gửi tin nhắn dạng PDU:

(+CMGF=0):

+CMGS= PDU is given

Lệnh được thực hiện thành công thi dữ liệu trả về:

Dạng text : +CMGS:

OK

Dạng PDU : +CMGS:

OK

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

 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=[[,[,]]]text is entered

Z/ESC>

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

+CMGW:

OK

Lệnh sai:

+CMS ERROR:

Nếu viết tin nhắn dưới dạng PDU:

AT+CMGW=[,] PDU is given

 Lệnh gửi tin nhắn từ một ngăn nhớ nào đó:

AT+CMSS=[,[,]]

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

Dạng text: +CMGS: [,]

OK

Dạng PDU: +CMGS: [,]

OK

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

SVTH : Bùi Tấn Tài – CCVT03A

68

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

+CMS ERROR:

 Lệnh báo hiệu tin nhắn mới:

AT+CNMI=[[,[, [,[,]]]]]

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:

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

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

OK

 Lệnh reset mode

ATZ

OK

 Lệnh tắt chế độ echo

ATE0

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

SVTH : Bùi Tấn Tài – CCVT03A

69

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

- 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

#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

SVTH : Bùi Tấn Tài – CCVT03A

70

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

#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)

SVTH : Bùi Tấn Tài – CCVT03A

71

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

delay_100++;

else

{

counter++;

delay_100=0;

output_toggle(Led0);

adc=read_adc();

if((counter>60)&&(adc!=old_value))

{

counter=0;

enable=1;

}

old_value += Filter*(adc - old_value);

}

return 0;

}

#INT_RDA

void rda()

{

UART_ISR();

}

void GSM_init(void)

{

output_bit(GSM_PW,1);

output_bit(Led1,1);

output_float(GSM_SENSE);

}

void GSM_start(void)

{

//start up GSM module

SVTH : Bùi Tấn Tài – CCVT03A

72

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

delay_ms(2000);

lcd_init();

output_bit(GSM_PW,0);

output_bit(Led1,0);

delay_ms(2000);

output_bit(GSM_PW,1);

output_bit(Led1,1);

lcd_putc("\nGSM initializing");

delay_ms(5000);

lcd_putc("\nPlease wait.......");

delay_ms(5000);

lcd_putc("\n..to init Sim900");

delay_ms(5000);

lcd_putc("\nPlease wait.......");

delay_ms(5000);

lcd_putc("\n..to init Sim900");

delay_ms(5000);

lcd_putc("\nPlease wait.......");

delay_ms(5000);

lcd_putc("\n..to init Sim900");

}

void GSM_sync(void)

{

putc(13);//enter CR

delay_ms(1000);

output_bit(Led1,0);

new_frame=0;

frame_get=0;

printf("AT");

SVTH : Bùi Tấn Tài – CCVT03A

73

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

putc(13);//enter CR

delay_ms(1000);

printf("AT");

putc(13);//enter CR

delay_ms(1000);

printf("AT");

putc(13);//enter CR

delay_ms(1000);

}

void GSM_sel_mess_mode(char mode)

{

if(mode>0) //text mode

{

output_bit(Led1,0);

printf("AT+CMGF=1");

putc(13);//enter CR

output_bit(Led1,1);

delay_ms(1000);

output_bit(Led1,0);

printf("AT+CMGF=1");

putc(13);//enter CR

output_bit(Led1,1);

delay_ms(1000);

output_bit(Led1,0);

}

else //PDU mode

{

SVTH : Bùi Tấn Tài – CCVT03A

74

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

output_bit(Led1,0);

printf("AT+CMGF=0");

putc(13);//enter CR

output_bit(Led1,1);

delay_ms(1000);

output_bit(Led1,0);

printf("AT+CMGF=0");

putc(13);//enter CR

output_bit(Led1,1);

delay_ms(1000);

output_bit(Led1,0);

}

}

void lcd_display()

{

if(old_value !=new_value)

{

lcd_putc("\fNhiet do:");

new_value = old_value;

tmp_temp=(char)convertC2K(old_value);

Converter(tmp_temp);

lcd_gotoxy( 1,2 );

if(x!=0) lcd_send_byte(1,tmp[x]);

lcd_send_byte(1,tmp[y]);

lcd_send_byte(1,tmp[z]);

lcd_putc("oC");

}

}

SVTH : Bùi Tấn Tài – CCVT03A

75

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

char Converter(char n)

{

char tmp;

tmp=n;

x=n/100;

tmp=n%100;

y=tmp/10;

z=tmp%10;

}

float convertC2K(float adc)

{

float temp_value;

temp_value = (adc-139.25)/0.512;

return temp_value;

}

void KiemTraMucNuoc(char temp)

{

char sensor4

char sensor3

char sensor2

char sensor1.

if(sensor4==1)

{

delay_ms(10);

if((sensor4==1)&& (num_count4==0))

{

send_message(4,temp);

num_count4++;

output_toggle(Led0);enable1=1;

num_count3=0;num_count2=0;num_count1=0;

}

SVTH : Bùi Tấn Tài – CCVT03A

76

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

}

else if(sensor3==1)

{

delay_ms(10);

if((sensor3==1)&& (num_count3==0))

{

send_message(3,temp);

num_count3++;

output_toggle(Led0);enable1=1;

num_count2=0;num_count1=0;

}

}

else if(sensor2==1)

{

delay_ms(10);

if((sensor2==1)&& (num_count2==0))

{

send_message(2,temp);

num_count2++ ;

output_toggle(Led0);enable1=1;

num_count1=0;

}

}

else if(sensor1==1)

{

delay_ms(10);

if((sensor1==1)&& (num_count1==0))

{

send_message(1,temp);

num_count1++;

output_toggle(Led0);

enable1=1;

SVTH : Bùi Tấn Tài – CCVT03A

77

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

}

}

void clear_status()//XOA GIA TRI CUA CAM BIEN

{

if((sensor1==0)&&(sensor2==0)&&(sensor3==0)&&(sensor4==0) )

{

if((num_count1!=0)||(num_count2!=0)||(num_count3!=0)||(num_count4!=0))

{

num_count1=0;

num_count2=0;

num_count3=0;

num_count4=0;

enable1=0;

}

}

}

void main()

{

GSM_init();// thiet lap GSM

setup_spi(SPI_SS_DISABLED);// thiet lap SPI

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); // thiet lap timer

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_comparator(NC_NC_NC_NC);

enable_interrupts(INT_TIMER0); // thiet lap ngat

enable_interrupts(INT_RDA);

enable_interrupts(GLOBAL);

setup_adc(adc_clock_internal); // thiet lap ADC

setup_adc_ports(sAN0);

set_adc_channel(0);

Pic GSM 1 demo");

SVTH : Bùi Tấn Tài – CCVT03A

78

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

GSM_start();

GSM_sync();// dong bo GSM

GSM_sel_mess_mode(5);// khai bao chon tin nhan trong ma lenh AT control

printf("ATE1"); //echo on

putc(13);//enter CR

delay_ms(1000);//

printf("AT");

putc(13);//enter CR

delay_ms(1000);

output_bit(Led1,1);

printf("AT");

putc(13);//enter CR

delay_ms(1000);

output_bit(Led1,0);

printf("AT+CMGS=");

putc(34);//"

printf(PHONE_NUM);

putc(34);//"

putc(13);//enter CR

delay_ms(1000);//cho ki tu ">"

putc(0x1A);//CTRL+Z

output_bit(Led1,1);

delay_ms(2000);//

set_tris_b(0xff);

while(1)

{

lcd_display();

KiemTraMucNuoc(tmp_temp);// kiem tra muc nuoc va nhiet do

if((enable==1)&&(enable1==0))

{

send_message(10,tmp_temp);// ham gui tin nhan

SVTH : Bùi Tấn Tài – CCVT03A

79

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

enable=0;

}

clear_status();

}

}

void send_message(int index,char temp)

{

printf("ATE1"); //echo on

putc(13);//enter CR

delay_ms(1000);//

printf("AT");

putc(13);//enter CR

delay_ms(1000);

output_bit(Led1,1);

printf("AT");

putc(13);//enter CR

delay_ms(1000);

output_bit(Led1,0);

printf("AT+CMGS=");

putc(34);//"

printf(PHONE_NUM);

putc(34);//"

putc(13);//enter CR

delay_ms(1000);//cho ki tu ">"

if(index==0)

{

printf("He thong bao muc nuoc va nhiet do san sang hoat dong!");

}

else if(index==10)

{

SVTH : Bùi Tấn Tài – CCVT03A

80

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

printf("Muc nuoc hien tai la binh thuong va Nhiet do hien tai:%doC", temp);

}

else

printf("Muc nuoc va nhiet do hien tai: %d va %doC",index, temp);

delay_ms(1000);//

putc(0x1A);//CTRL+Z

output_bit(Led1,1);

delay_ms(2000);//

}

SVTH : Bùi Tấn Tài – CCVT03A

81

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

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

SVTH : Bùi Tấn Tài – CCVT03A

82