Top Banner
Đồ án tt nghip - i - PHN A GII THIU
164

Điều khiển thiết bị bằng sms

Jul 24, 2015

Download

Documents

Ola Trần

Điều khiển thiết bị bằng sms
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- i -

PHẦN A

GIỚI THIỆU

Page 2: Điều khiển thiết bị bằng sms

Bộ Giáo Dục Và Đào Tạo Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam

Trường Đại Học Sư Phạm Kỹ Thuật Độc lập – Tự Do – Hạnh Phúc Thành Phố Hồ Chí Minh

----oΟo---- ----oΟo----

KHOA ĐIỆN - ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên : Phạm Văn Nam MSSV:04101101

Nguyễn Trọng Kiên MSSV:04101081

Khoa : Điện - Điện tử

Ngành : Kỹ thuật Điện – Điện Tử

Lớp : 04101

Khóa : 2004 – 2009

1. Tên đề tài: Điều khiển thiết bị trong nhà từ xa bằng tin nhắn SMS. 2. Cơ sở ban đầu: ............................................................................................................

…………………………………………………………………………….................. ……………………………………………………………………………………….. ………………………………………………………………………………………..

3. Nội dung các phần thuyết minh: …………………………………………………... ..................................................................................................................................... ………………………………………………………………………………………. ……………………………………………………………………………………….

4. Các bản vẽ: ………………………………………………………………………….. ………………………………………………………………………………………. ……………………………………………………………………………………….

5. Giáo viên hướng dẫn: TRẦN THU HÀ 6. Ngày giao nhiệm vụ: 7. Ngày hoàn thành nhiệm vụ:

Thông qua bộ môn

Ngày … tháng… năm 2008 Ngày … tháng… năm 2008

Giáo viên hướng dẫn Chủ nhiệm bộ môn

Trần Thu Hà

Page 3: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- iii -

LỜI MỞ ĐẦU Tới nay, đã 62 năm sau khi bóng bán dẫn được phát minh, linh kiện nhỏ bé

tương ứng với trạng thái bật - tắt này đã thay đổi cả thế giới bằng sự có mặt trong mọi thiết bị điện tử hiện đại như điện thoại di động, máy tính, máy nghe nhạc... Những máy tính điện tử đầu tiên như ENIAC dùng các ống chân không, tương tự như bóng đèn điện, để tính toán. Máy tính đặt trong một phòng lớn và cần nhiều chuyên viên vận hành. Ngày nay công nghệ chế tạo linh kiện bán dẫn có những phát triển thực sự bùng nổ, đậm nét để hỗ trợ cho sự phát triển của công nghệ thông tin, và sự tự động hóa trong công nghiệp … Với độ tích hợp ngày càng cao, công suất tiêu tán bé hơn, thông minh hơn, nó đã làm thay đổi hẳn cấu trúc của nền công nghiệp hiện tại.

Chính sự phát triển vượt bậc đó của công nghệ bán dẫn mà những ứng dụng triệt để, không ngừng của nó và của khoa học kỹ thuật tiên tiến đã làm thế giới của chúng ta đã và đang làm thay đổi thế giới của chúng ta từng ngày theo hướng hiện đại hơn, văn minh hơn ... Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như độ chính xác cao, tốc độ nhanh, gọn nhẹ. Đó là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao.

Chính vì lẽ đó mà ngày nay điện tử trở thành một ngành khoa học đa nhiệm vụ, đa chức năng. Công nghệ điện tử đã trở thành một lĩnh vực không thể thiếu trong thế giới hiện đại. Điện tử đã và đang đáp ứng những nhu cầu, những đòi hỏi ngày càng cao và không ngừng từ tất cả các lĩnh vực công-nông-ngư-nghiệp cho đến những nhu cầu thiết yếu đời sống hàng ngày của con người.

Một trong những ứng dụng rất quan trọng và khá đặc trưng của công nghệ điện tử là kỹ thuật tự động điều khiển từ xa. Nó đã góp phần rất lớn trong việc điều khiển các thiết bị từ xa, được ứng dụng rộng rãi trong các lĩnh vực của đời sống. Công nghệ điện tử trở thành một khâu mấu chốt trong trong hệ thống thông tin liện lạc. Các ứng dụng của nó trong hệ thống thông tin liên lạc vào các lĩnh vực văn hóa, kinh tế, khoa học, đặc biệt là khoa học không gian ngày càng phổ biến rộng rãi và giữ một vai trò không thể thiếu. Chính vì thế mà xã hội loài người đã phát triển không ngừng. Thêm vào đó là trong vài năm gần đây, mạng Internet đã phát triển mạnh mẽ do bởi có nhiều nhà cung cấp dịch vụ ra đời, bên cạnh đó máy tính ngày càng có chất lượng được cải tiến đồng thời giá thành vừa phải với mọi tầng lớp xã hội tạo ra bước ngoặt quan trọng trong lĩnh vực thông tin để đáp ứng nhu cầu nhiều mặt của con người.

Hiện nay, do nhu cầu sử dụng các hệ thống, thiết bị tự động của người dân ngày càng tăng. Đồng thời, mạng điện thoại di động phát triển rộng khắp và các thiết bị điện thoại di động ngày càng có mức giá phù hợp với người dân. Đó là những mặt thuận lợi của việc hình thành ý tưởng điều khiển các thiết bị bằng cách sử dụng các tin nhắn SMS. Đây là một hình thức điều khiển thiết bị thuận lợi, tiết kiệm được nhiều thời gian cho việc điều khiển thiết bị, vừa tiết kiệm được chi phí lắp đặt khi sử dụng.

Page 4: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- iv -

Xuất phát từ ý tưởng và tình hình thực tế nêu trên, chúng tối quyết định chọn đề tài “ĐIỀU KHIỂN THIẾT BỊ TỪ XA QUA TIN NHẮN SMS”. Đề tài này được chia làm ba phần như sau:

Phần A: GIỚI THIỆU ĐỀ TÀI.

Phần B: NỘI DUNG CHÍNH CỦA ĐỀ TÀI.

Phần C: PHỤ LỤC.

Page 5: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- v -

LỜI CẢM TẠ Trên con đường học vấn của mình, tới nay chúng em đã đi qua bao chặng

đường từ tiểu học, trung học cơ sở, trung học phổ thông và hiện bây giờ là giảng đường Đại học. Và cứ đi qua mỗi chặng đường như vậy thì chúng em lại như được lớn hơn, trưởng thành hơn cả trong kiến thức chuyên sâu lẫn trong suy nghĩ. Với chúng em thì môi trường Đại học Sư Phạm Kỹ Thuật với quãng thời gian dài 5 năm đã trở thành một khoảng thời gian không thể nào quên. Ở ngôi trường này, chúng em đã tiếp thu, học tập được biết bao những kiến thức chuyên môn trong lĩnh vực khoa học kỹ thuật. Không những thế Đại học Sư Phạm Kỹ Thuật còn là nơi cho chúng em tôi luyện, rèn giũa ngọn lửa tinh thần, lòng say mê khoa học. Hơn thế nữa, tất cả những điều đó sẽ trở thành hành trang tốt cho chúng em, để cho chúng em thêm vững bước trên con đường sự nghiệp của mình.

Chúng em xin gửi lời chân thành cảm ơn tới mỗi ngôi trường thân yêu mà chúng em đã đi qua. Chúng em sẽ nhớ mãi và ghi lòng tạc dạ những công lao to lớn của các thầy cô đã dìu dắt chúng em từ những bước đi chập chững để trở thành một người công dân có ích cho xã hội, cho tổ quốc như ngày hôm nay.

Kính lời cảm ơn khoa Điện tử cùng các thầy cô của Khoa đã hết sức cố gắng, nhiệt tình truyền thụ cho chúng em không chỉ những kiến thức chuyên môn quí báu trong lĩnh vực khoa học công nghệ điện tử mà còn là những kinh nghiệm sư phạm quí báu. Bên cạnh đó còn tạo những điều kiện hết sức thuận lợi để chúng em có được môi trường, những điều kiện học tập tốt nhất.

Chúng em xin gửi lời cảm ơn sâu sắc tới cô Trần Thu Hà. Cô đã trực tiếp hướng dẫn, theo sát, ân cần chỉ bảo chúng em từng bước, kịp thời một cách nhiệt tình từ khi bắt đầu đồ án cho tới khi hoàn thành đồ án.

Bên cạnh đó, gia đình đã trở thành nguồn động viên to lớn về vật chất lẫn tình thần không thể thiếu giúp chúng em thêm can đảm, tự tin để hoàn thành đồ án này. Xin gửi lời biết ơn vô vàn tới cha, mẹ đã luôn ủng hộ con trong suốt thời gian làm đồ án.

Cuối cùng là lời cảm ơn chân thành tới các bạn đồng nghiệp đã có những giúp đỡ kịp thời, những đóng góp ý kiến thật lòng trong suốt thời gian làm đồ án, giúp cho đồ án hoàn thiện hơn.

Tp. Hồ chí Minh_ tháng… năm 2008.

Thay mặt nhóm thực hiện

Phạm Văn Nam

Page 6: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- vi -

MỤC LỤC Trang

Phần A Giới thiệu ………………………………………………………………..i

Nhiệm vụ đề tài ………………………………………………………………………ii

Lời mở đầu ………………………………………………………………………… iii

Lời cảm tạ …..…………………………………………………………………….iv

Mục lục …………………………………………………………………………….vi

Danh mục các bảng ………….……………………………………………………x

Danh mục các hình ……………………………………………………………….xi

Phần B Nội dung ……………………………………………………………….1

Chương 1 Dẫn nhập ………………………………………………………………2

1.1. Giới thiệu đề tài …..….…………………………………………………2 1.2. Ý nghĩa khoa học của đề tài ……..………………………………………..3 1.3. Mục đích nghiên cứu ……………………………………………………….3 1.4. Giới hạn đề tài ………..…...………………………………………………4

Chương 2 Cơ sở lí luận ………………………………………………………….5

2.1. Tình hình nghiên cứu trong nước và ngoài nước ….……..….…………………5 2.1.1 Ngoài nước ..…………………………………………………………5 2.2.1 Trong nước …..………………………………………………………7

2.2. Ý tưởng thiết kế ….….……………………………………………………8 2.3. Đề cương nghiên cứu chi tiết ….…..………………………………………8 2.4. Phương pháp nghiên cứu ….…………………………………………….9 2.5. Phương tiện nghiên cứu ……..……………………………………………9 2.6. Kế hoạch thực hiện ………………………………………………………..9

Chương 3 Truyền dữ liệu và giao tiếp máy tính ………………………………10

3.1. Tổng quan về tin nhắn SMS ………………………………………………10

3.1.1 Giới thiệu về SMS …..……………………………………………10 3.1.2 Cấu trúc một tin nhắn SMS ………………………………………..10 3.1.3 Tin nhắn SMS chuỗi/tin nhắn SMS dài ………………….…………..12 3.1.4 SMS centre/SMSC …………………………………………………13 3.1.5 Nhắn tin SMS quốc tế ……………………………………………..13 3.1.6 SMS Gateway ……….…………………………………………..14 3.1.7 Mã nguồn mở và phần mềm SMS gateway …………………………17

3.2. Tổng quan về hệ thống truyền dữ liệu .…………………………………..17

Page 7: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- vii -

3.2.1 Cấu trúc một hệ thống thông tin ………………………………….17

3.2.2 Phân loại các hệ thống thông tin …………………………………19

3.2.2.1. Phân loại theo đường truyền ………………………………19 3.2.2.2. Phân loại theo tín hiệu trên đường truyền ……………….19 3.2.2.3. Phân loại theo số bit trên một đường dây ………………….19 3.2.2.4. Phân loại dựa vào xung nhịp đồng hồ Ck của bộ phát và bộ thu ..19 3.2.2.5. Phân loại theo chiều tín hiệu trên đường truyền ……………….19

3.2.3 Giao tiếp song song bất đồng bộ …………………………………19

3.2.3.1. Sơ đồ khối …………………………………………………..19 3.2.3.2. Hoạt động của hệ thống ……………………………………21

3.2.4 Giao tiếp nối tiếp bất đồng bộ ……………………………………21

3.2.4.1. Phát dữ liệu nối tiếp ………………………………………..22 3.2.4.2. Thu dữ liệu nối tiếp …………………………………………..22

3.3. Kỹ thuật ghép nối và giao tiếp máy tính ………………………………….23

3.3.1 Cổng nối tiếp RS232 …………………………………………….23

3.3.1.1 Giới thiệu ………………………………………………….…23 3.3.1.2 Các loại kết nối ……………………………………………23 3.3.1.3 Đặc tính điện …………………………………………….25 3.3.1.4 Các phương pháp giao tiếp ……………………………………..25 3.3.1.5 Thủ tục giao tiếp …………………………………………….27 3.3.1.6 Các loại cáp ………………………………………………..27 3.3.1.7 Thủ tục truyền nhận ………………………………………29

3.3.2 Giao tiếp điện thoại với máy tính qua USB Modem ………………….30

3.3.2.1 Giới thiệu ……………………………………………………30 3.3.2.2 Cài đặt và sử dụng Driver cho USB Modem ………………..31 3.3.2.3 Kiểm tra Com Portname …………………………………..35 3.3.2.4 Kiểm tra những Mobile phone được hỗ trợ tập lệnh AT ………38

Chương 4 Thiết kế ………………………………………………………………40

4.1. Phương án thiết kế ….………………………………………………………..40

4.2. Sơ đồ khối toàn hệ thống và chức năng từng khối ….……………………40

4.3. Sơ đồ nguyên lí phần cứng hệ thống. …………………………………….42

4.4. Sơ đồ nguyên lí các khối của hệ thống ..…………………………………43

4.4.1 Khối xử lí trung tâm ……………………………………….…………..43 4.4.2 Khối cảm biến ………………………………………………………….63

Page 8: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- viii -

4.4.3 Khối giao tiếp LCD và Keypad ………………………………………..66 4.4.4 Khối công suất …………………………………………………………76

Chương 5 Xây dựng phần mềm điều khiển ……………………………………81

5.1. Xây dựng phần mềm điều khiển cho phần cứng …………………………….81

5.2. Xây dựng phần mềm điều khiển trên máy tính ………………………….84

Chương 6 Thi công ……………………………………………………………90

6.1. Thi công phần cứng …..………………………………………………….90

6.2. Giao diện phần mềm trên máy tính ……………..………………………94

Chương 7 Kết luận ………………………………………………………………95

7.1. Tóm tắt …..………………………………………………………………95 7.2. Hướng phát triển đề tài ……….…………………………………………97

Phần C Phụ lục ………………………………………………………………98

Hướng dẫn sử dụng phần mềm ………………………………………………150

Tài liệu tham khảo ……………………………………………………………153

Page 9: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- ix -

DANH MỤC CÁC BẢNG CHƯƠNG 3

Bảng 1 Chức năng các chân của chuẩn RS232 loại 9 chân và 25 chân. ………..24

Bảng 2 Kết nối loại 9 chân với 25 chân chuẩn RS232. ………………………27

Bảng 3 Kết nối loại 25 chân với 25 chân chuẩn RS232. ………………….27

Bảng 4 Kết nối loại 9 chân với 9 chân chuẩn RS232. ………………………..28

Bảng 5 Kết nối loại 9 chân với 25 chân chuẩn RS232. ……………………….28

CHƯƠNG 4

Bảng 6 Chọn xung cho ADECLARE. ………………………………………49

Bảng 7 Bảng lực chọn cấu hình điều khiển cho thanh ghi ADECLAREON1. ….51

Bảng 8 Thanh ghi hỗ trợ. ……………………………………………………60

Bảng 9 Thanh ghi liên quan. ………………………………………………..61

Bảng 10 Đặc tính điện của cảm biến LM35. ………………………………64

Bảng 11 Đặc tính điện của LCD. ……………………………………………68

Bảng 12 Đặc tính thời gian của LCD. ………………………………………69

Bảng 13 Các lệnh điều khiển hiển thị LCD. …………………………………70

Page 10: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- x -

DANH MỤC CÁC HÌNH CHƯƠNG 2

Hình 1 Các thiết bị kết nối với máy tính thông qua GSM modem. ……………….6

Hình 2 Kết nối các thiết bị với máy tính thông modem GSM. …………………….6

Hình 3 Sơ đồ khối điều khiển các thiết bị trong nhà thông qua mạng Internet. …7

CHƯƠNG 3

Hình 4 Một SMS gateway hoạt động như một relay giữa hai SMSC. ………….12

Hình 5 Một ứng dụng tin nhắn SMS dạng text kết nối các SMSC không cần SMS

gateway. ………………………………………………………………………12

Hình 6 Một ứng dụng tin nhắn SMS dạng text kết nối các SMSC thông qua một SMS gateway. …………………………………………………………………….15

Hình 7 Một ứng dụng tin nhắn SMS dạng text kết nối một nhóm các điện thoại (hay các modem thông qua SMS gateway). ……………………………………..16

Hình 8 Sơ đồ một hệ thống thông tin. ……………………………………………17

Hình 9 Sơ đồ kết nối thu phát dữ liệu. ……………………………………………19

Hình 10 Cấu trúc giao tiếp nối tiếp bất đồng bộ ………………………………….20

Hình 11 Quá trình thu nhận dữ liệu nối tiếp bất đồng bộ. ………………………..21

Hình 12 Hình dạng đầu kết nối hai loại cáp 9 và 25 chân. ……………………….23

Hình 13 Cấu trúc một Frame dữ liệu thông thường. ……………………………..25

CHƯƠNG 4

Hình 14 Sơ đồ khối hệ thống điều khiển thiết bị điện bằng tin nhắn SMS. …..…..39

Hình 15 Sơ đồ nguyên lí hệ thống điều khiển thiết bị điện thông qua mạng tin nhắn SMS. ………………………………………………………………………………41

Hình 16 Sơ đồ chân của PIC 16F877A. …………………………………………..43

Hình 17 Sơ đồ kết nối PIC 16F877A. ……………………………………………44

Hình 18 Sơ đồ khối bên trong của PIC 16F877A. ………………………………..46

Hình 19 Cấu trúc thanh ghi ADECLAREN0. …………………………………..49

Hình 20 Cấu trúc thanh ghi ADELAREON1. ………………………………..50

Hình 21 Sơ đồ thời gian lấy mẫu. …………………………………………….52

Hình 22 Sơ đồ ngõ vào tương tự. ……………………………………………..53

Page 11: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

- xi -

Hình 23 Sơ đồ chu kì Tad. ……………………………………………………..53

Hình 24 Bảng tổng hợp các bit và thanh ghi liên quan. …………………………54

Hình 25 Cấu tạo thanh ghi TXSTA. ………………………………………..55

Hình 26 Sơ đồ bộ truyền dữ liệu bất đồng bộ UART. ……………………….59

Hình 27 Sơ đồ nhận dữ liệu. …………………………………………………61

Hình 28 Sơ đồ kết nối cảm biến LM35 với PIC. ……………………………..62

Hình 29 Sơ đồ đặc tính của ứng dụng. ………………………………………63

Hình 30 Sơ đồ chân kết nối. …………………………………………………63

Hình 31 Sơ đồ kết nối vi điều khiển PIC với LCD và Keypad. ………………65

Hình 32 Hình dạng thực tế của LCD YM1602C (mặt trước và mặt sau). …....66

Hình 33 Sơ đồ chân của LCD trong thực tế. …………………………………….67

Hình 34 Cấu trúc theo sơ đồ khối của LCD ………………………………68

Hình 35 sơ đồ chẩn của IC Max232. ……………………………………….71

Hình 36 Sơ đồ cấu tạo bên trong và kết nối bên ngoài cho Max232. …………….72

Hình 37 Sơ đồ kết nối của PIC với thiết bị công suất. …………………………..75

Hình 38 Hình dạng thực tế, sơ đồ mạch điện và kí hiệu lý thuyết. ………………75

Hình 39 Đặc tuyến V-I của Triac. ………………………………………………..76

Hình 40 Các dạng nảy của Triac. ………………………………………………..77

Hình 41 Một ứng dụng của Triac trong mạch điện. ………………………………77

Hình 42 cấu trúc bên trong của Opto Moc3020. …………………………………78

CHƯƠNG 6

Hình 43 Sơ đồ bố trí linh kiện trên board mạch. …………………………………89

Hình 44 Sơ đồ chạy dây linh kiện của mạch trên lớp TOP. ………………….90

Hình 45 Sơ đồ chạy dây linh kiện trên lớp BOTTOM. ……………………….91

Hình 46 Mạch phần cứng thi công hoàn chỉnh. ………………………………92

Hình 47 Giao diện điều khiển, hiện thị của phần mềm trên máy tính. ………….93

Page 12: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

GVHD_Trần Thu Hà ‐ 1 -

PHẦN B

NỘI DUNG

Page 13: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 1 Dẫn Nhập

GVHD_Trần Thu Hà ‐ 2 -

CHƯƠNG 1

DẪN NHẬP 1.1. GIỚI THIỆU ĐỀ TÀI

Ngày nay cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật, công nghệ kỹ thuật điện tử mà trong đó là kỹ thuật tự động điều khiển đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp, cung cấp thông tin ... Do đó là một sinh viên chuyên ngành điện tử, chúng ta phải biết nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện tử nói riêng. Bên cạnh đó còn là sự thúc đẩy sự phát triển của nền kinh tế nước nhà.

Qua những đợt đi thực tập tốt nghiệp tại nhà máy và tham quan thực tế các doanh nghiệp sản xuất, chúng tôi đã được thấy nhiều khâu được tự động hóa trong quá trình sản xuất. Thêm vào đó, ngày nay hệ thống mạng điện thoại di động và các thiết bị điện thoại di động ngày càng được phổ biến trong cuộc sống. Cùng với đó là nhu cầu cuộc sống ngày càng tăng. Từ đó đã hình thành, nảy sinh một ý tưởng về việc điều khiển các thiết bị tự động trong nhà thông qua tin nhắn SMS.

Như chúng ta cũng đã biết, gần như các thiết bị tự động trong nhà máy, trong đời sống của các gia đình ngày nay đều hoạt động độc lập với nhau, mỗi thiết bị có một quy trình sử dụng khác nhau tuỳ thuộc vào sự thiết lập, cài đặt của người sử dụng. Chúng chưa có một sự liên kết nào với nhau về mặt dữ liệu. Nhưng đối với hệ thống điều khiển thiết bị từ xa thông qua tin nhắn SMS thì lại khác. Ở đây, các thiết bị điều khiển tự động được kết nối với nhau thành một hệ thống hoàn chỉnh qua một một thiết bị trung tâm và có thể giao tiếp với nhau về mặt dữ liệu.

Điển hình của một hệ thống điều khiển thiết bị trong nhà từ xa thông qua tin nhắn SMS gồm có các thiết bị đơn giản như bóng đèn, quạt máy, lò sưởi đến các thiết bị tinh vi, phức tạp như tivi, máy giặt, hệ thống báo động … Nó hoạt động như một ngôi nhà thông minh. Nghĩa là tất cả các thiết bị này có thể giao tiếp với nhau về mặt dữ liệu thông qua một đầu não trung tâm. Đầu não trung tâm ở đây có thể là một máy vi tính hoàn chỉnh hoặc có thể là một bộ xử lí đã được lập trình sẵn tất cả các chương trình điều khiển. Bình thường, các thiết bị trong ngồi nhà này có thể được điều khiển từ xa thông qua các tin nhắn của chủ nhà. Chẳng hạn như việc tắt quạt, đèn điện … khi người chủ nhà quên chưa tắt trước khi ra khỏi nhà. Hay chỉ với một tin nhắn SMS, người chủ nhà có thể bật máy điều hòa để làm mát phòng trước khi chủ nhà trong một khoảng thời gian nhất định. Còn khi có chuyện gì đó sảy ra ra đối với ngôi nhà mang tính khẩn cấp như cháy chẳng hạn. Lúc này, ngôi nhà sẽ tự động phát hiện ra hỏa hoạn nhờ vào các cảm biến thì lập tức dữ liệu đó sẽ được gởi đến hệ thống điều khiển trung tâm. Khi hệ thống trung tâm đã xử lý xong dữ liệu thì nó sẽ lập tức ra lệnh điều khiển

Page 14: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 1 Dẫn Nhập

GVHD_Trần Thu Hà ‐ 3 -

đóng tất cả các đường ống dẫn khí, tắt hết các thiết bị đang hoạt động trong ngồi nhà này và báo động gửi tin nhắn cho người chủ nhà và có thể tự động gọi điện báo cho lực lượng phòng cháy chữa cháy. Ngoài ra, hệ thống còn mang tính bảo mật. Nghĩa là chỉ có chủ nhà hay người biết mật khẩu của ngôi nhà thì mới điều khiển được ngôi nhà này.

Từ những yêu cầu thực tế, những đòi hỏi ngày càng cao của cuộc sống, cộng với sự hợp tác, phát triển mạnh mẽ của mạng di động nên chúng tôi đã chọn đề tài " điều khiển thiết bị trong nhà từ xa qua tin nhắn SMS " để đáp ứng được nhu cầu ngày càng cao của con người và góp phần vào sự tiến bộ, văn minh, hiện đại của nước nhà.

1.2. Ý NGHĨA KHOA HỌC CỦA ĐỀ TÀI

Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, các thiết bị điện tử ra đời ngày càng nhiều về chủng loại cũng như tính năng sử dụng. Bên cạnh đó nhu cầu sử dụng các thiết bị một cách tự động ngày càng cao, con người ngày càng muốn có nhiều thiết bị giải trí cũng như các thiết bị sinh hoạt với kỹ thuật và công nghệ ngày càng cao. Có thể ở Việt nam chưa phát triển mạnh mẽ trong lĩnh này nhưng hiện nay ở trên thế giới, nhất là các quốc gia thuộc Châu âu hay Mĩ thì mô hình ngôi nhà tự động được điều khiển từ xa đã phát triển rất mạnh mẽ. Chúng được biết đến như ngôi nhà thông minh nổi tiếng của Bill Gate chẳng hạn. Với sự kết hợp chặt chẽ giữa các thiết bị điện tử tinh vi và phần mềm xây dựng tương ứng, Bill Gate đã xây dựng được mô hình ngôi nhà thông minh, tự động hoàn toàn và còn cho phép điều khiển từ xa thông qua một bộ điều khiển trung tâm.

Từ những nhu cầu thực tế đó, người thực hiện muốn đưa một phần những kỹ thuật hiện đại của thế giới áp dụng vào điều kiện thực tế trong nước để có thể tạo ra một hệ thống điều khiển thiết bị trong nhà từ xa thông qua tin nhắn SMS nhằm đáp ứng nhu cầu ngày càng cao của con người. Đề tài lấy cơ sở là tin nhắn SMS để điều khiển thiết bị. Bên cạnh đó, các thiết bị này cũng có thể được điều khiển tại nhà thông qua giao diện phần mềm xây dựng. Việc sử dụng tin nhắn SMS để điều khiển thiết bị có thuận lợi là tiết kiệm chi phí, mang tính cạnh tranh và cơ động cao (nghĩa là ở chỗ nào có phủ sóng mạng điện thoại di động ta cũng có thể điều khiển thiết bị được). Ngoài ra, sản phẩm của đề tài này có tính mở, có thể áp dụng cho nhiều đối tượng khác nhau trong dân dụng cũng như trong công nghiệp.

1.3. MỤC ĐÍCH NGHIÊN CỨU

Đồ á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 điều khiển tự động từ xa bằng tin nhắn SMS hoàn chỉnh. Hệ thống tích hợp module điều khiển giám sát (có cả camera), module đo nhiệt độ và module công suất cho cho các thiết bị trong nhà cùng các module tiện ích khác. Với module đo nhiệt độ thì cảm biến nhiệt độ sẽ gởi thông tin dữ liệu về bộ xử lí trung tâm. Qua xử lí, nhiệt độ sẽ được cập nhật liên tục

Page 15: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 1 Dẫn Nhập

GVHD_Trần Thu Hà ‐ 4 -

trên giao diện phần mềm xây dựng theo biểu đồ thời gian một cách trực quan. Module điều khiển giám sát, bên cạnh các chức năng điều khiển cơ bản thì nó còn liên tục cập nhật hình ảnh bên trong của ngôi nhà tới người chủ (tức trên điện thoại di động của người chủ nhà). Và một khi có hỏa hoạn sảy ra thì nó sẽ tự động thi hành các thao tác cần thiết được lập trình sẵn để bảo vệ ngôi nhà.

1.4. GIỚI HẠN ĐỀ TÀI

Để thực thi một hệ thống điều khiển thiết bị từ xa thông qua tin nhắn SMS áp dụng cho một ngôi nhà hoàn chỉnh như nói trên là rất phức tạp và rất tốn kém. Để đáp ứng việc điều khiển toàn bộ các thiết bị này đòi hỏi phải có một lượng thời gian, kiến thức nhất định. Bên cạnh đó còn là vấn đề tài chính. Với lượng thời gian và kiến thức có hạn, trong đề tài này nhóm thực hiện chỉ thực thi một phần của hệ thống hoàn chỉnh đó. Đó là điều khiển đóng mở đèn, đo và hiển thị nhiệt độ phòng theo thời gian được hiển thị trên phần mềm ứng dụng. Ngoài ra còn có chức năng báo cháy khi sảy ra hỏa hoạn.

Với những gì đã trình bày trên, nhóm đã tiến hành nghiên cứu, khảo sát và thực hiện và dự kiến đạt được các mục tiêu đặt ra như sau:

Điều khiển các thiết bị trong nhà (cụ thể là điều khiển hai thiết bị công suất trung bình) bằng tin nhắn SMS tại ví trí có phủ sóng của mạng điện thoại di động đang hoạt động trong nước như Viettel, Mobile Phone, Vina Phone …

Hiển thị trạng thái các thiết bị, đo và cập nhật nhiệt độ liên tục theo biểu đồ thời gian trên giao diện màn hình phần mềm xây dựng.

Tự động gửi tin nhắn ngược trở lại cho chủ nhà, với nội dung tin nhắn chứa thông tin hoạt động của các thiết bị điện và nhiệt độ của ngôi nhà (nếu như người sử dụng có lựa chọn chức năng này). Ngoài ra, hệ thống còn có chức năng tự động báo cháy bằng cách gửi một tin nhắn SMS tới người chủ.

Xây dựng giao diện phần mềm đơn giản, dễ sử dụng được điều khiển trên máy tính với giao diện bằng hai ngôn ngữ lựa chọn tiếng Anh hoặc tiếng Việt.

Page 16: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 2 Cơ Sở Lí Luận

GVHD_Trần Thu Hà ‐ 5 -

CHƯƠNG 2

CƠ SỞ LÍ LUẬN 2.1. TÌNH HÌNH NGHIÊN CỨU NGOÀI NƯỚC VÀ TRONG NƯỚC

2.1.1 NGOÀI NƯỚC

Hiện nay trên thế giới, việc sử dụng tin nhắn SMS để điều khiển thiết bị từ xa không còn vấn đề mới mẻ nữa vì được nghiên cứu và đã áp dụng vào thực tế trong các nhà máy xí nghiệp. Kĩ thuật này được ra đời vào cuối tháng 8/2000, khi đó có đến 6.3 triệu GSM (Global System for Mobile communications) được sử dụng tại South Africa. Theo thống kê thì tổng số người dùng GSM vào năm 2005 được dự đoán là 11 triệu người chỉ tính riêng South Africa. Hiện tại có 49 mạng GSM tại Africa với sự phát triển ghê ghớm hơn nữa trong tương lai. Kĩ thuật GSM có khả năng truyền tin wireless với phạm vi rất rộng lớn và đảm bạo độ tin cậy cao. Chính vì vậy, người dùng có thễ gửi tin nhắn SMS để điều khiển thiết bị từ xa mang lại hiệu quả cao. Người dùng chỉ cần sử dụng điện thoại di động của mình (bất cứ loại hoặc thương hiệu) để theo dõi và kiểm soát những ứng dụng trong công nghiệp và nông nghiệp. Những hệ thống được điều hiển bởi SMS (SMS Control Systems) thì chỉ cần điều khiển thông qua việc gửi nhận tin nhắn SMS. Điều này có nghĩa là việc điều khiển có phạm vi rất xa. Hệ thống điều khiển bằng tin nhắn SMS được thiết kế để điều khiển những thiết bị và ứng dụng :

Máy móc nhà xưởng. Hệ thống xử lí nước thải. Nông nghiệp thủy lợi. Lò sưởi, ướp lạnh, máy điều hòa.

Chúng ta sẽ nêu ra một mô hình sử dụng tin nhắn SMS trong việc điều khiển trong tự động hóa của Công Ty KlinkMann.

GSM-Control là phần mềm trên Window được sử dụng bằng 2 phương pháp điều khiển từ xa trong tự động hóa và những ứng dụng khác sử dụng chuẩn GSM-Modem, phone, network. Dựa trên chuẩn GSM-Modem và những thiết bị có tính năng GSM, GSM-Control cho phép ta tạo ra một mạng điều khiển không dây và giám sát ứng dụng mà giá thấp nhất và dễ dàng vận chuyển. Tất cả việc điều khiển đều thông qua SMS với độ tin cậy cao.

Page 17: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 2 Cơ Sở Lí Luận

GVHD_Trần Thu Hà ‐ 6 -

Hình 48 Các thiết bị kết nối với máy tính thông qua GSM modem

Công việc chính của GSM-Control là làm cầu nối giao tiếp giữa GSM (dùng tin nhắn SMS để gửi nhận tín hiệu điều khiển) với Window. Bằng cách sử dụng tin nhắn SMS với Phone trên tay làm HMI (giao diện giao tiếp với người) để điều khiển PLC, truy cập dữ liệu DDE/OPC/SQL để điều khiển các phần mềm như Excel/Scada. Sau khi nhận tín hiệu điều khiển thì chúng sẽ gửi trả lại tin nhắn SMS để báo tình trạng cho người dùng

Hình 49 Kết nối các thiết bị với máy tính thông modem GSM

Page 18: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 2 Cơ Sở Lí Luận

GVHD_Trần Thu Hà ‐ 7 -

2.1.2 TRONG NƯỚC

Ở phạm vi trong nước, trước khi thực hiện đề tài này thì vẫn chưa có nhóm nghiên cứu nào thực hiện, tiến hành nghiên cứu đầy đủ về một hệ thống điều khiển thiết bị điện bằng tin nhắn SMS. Tuy nhiên, vẫn có những nghiên cứu phát triển, ứng dụng làm nền tảng cho đề tài này được thực hiện. Chẳng hạn như đề tài nghiên cứu: “điều khiển các thiết bị điện trong nhà thông qua mạng internet ” của tác giả Trần Ngọc Minh và Lê Anh Tài, sinh viên trường ĐH Sư Phạm Kỹ Thuật khóa 2000-2005. Trong đề tài này, hai tác giả Trần Ngọc Minh và Lê Anh Tài đã sử dụng yếu tố chính là mạng Internet để điều khiển các thiết bị điện, điện tử ở trong nhà chẳng hạn như điều khiển, giám sát và cho hiển thị được hình ảnh thông qua camera và các tính năng khác. Tác giả đã nghiên cứu và cho đi vào các ứng dụng như: tìm hiểu các vấn đề về internet, các giao thức truyền thông, giao tiếp, dịch vụ từ phía máy chủ. Hệ thống thiết kế giao diện điều khiển trên máy chủ (sever) và trang web điều khiển trên máy khách (client). Giao diện gồm có nhiều cửa sổ, được xây dựng tương ứng với từng phần cứng và bao gồm các tinh năng điều khiển thiết lập. Ngôn ngữ Java và HTML được lựa chọn trong thiết kế và điều khiển. Hệ thống có chiều dài bus truyền dẫn tín hiệu không quá 1200m. Hệ thống có sơ đồ khối như hình sau.

Hình 50 Sơ đồ khối điều khiển các thiết bị trong nhà thông qua mạng Internet

Page 19: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 2 Cơ Sở Lí Luận

GVHD_Trần Thu Hà ‐ 8 -

Với hệ thống như trên, tác giả đã khai thác, ứng dụng rất tốt sự phát triển của mạng internet vào trong thực tế. Song, theo ý kiến chủ quan thì đề tài này vẫn còn một số thiếu sót cần khắc phục chẳng hạn như: hệ thống trên chỉ ứng dụng cho những địa điểm, vị trí nào có gắn mạng internet và trong quá trình thực thi hệ thống thì ngoài việc giao diện phần mềm xây dựng hoạt động ổn định thì phải luôn đảm bảo được sụp mạng sảy ra bất ngờ. Nếu hệ thống không duy trì được những yếu tố trên thì sẽ không thực thi được quá trình điều khiển thiết bị điện trong nhà. Bên cạnh đề tài nêu trên còn có một số đề tài khác đề cập đến vấn đề điều khiển thiết bị từ xa khác. Nhưng vẫn chưa có đề tài nào sử dụng tin nhắn SMS để điều khiển thiết bị. Tuy nhiên, các đề tài đi trước đã tạo nền tảng cho việc phát triển ý tưởng điều khiển thiết bị từ xa qua tin nhắn SMS.

Tóm lại, việc nghiên cứu sử dụng tin nhắn SMS hiện nay tại Việt Nam đang còn rất mới mẻ và chưa đi vào thực tiễn ứng dụng nhiều. Hầu hết các nghiên cứu đều là nghiên cứu tự phát của cá nhân những người hay nhóm người muốn tìm hiểu về công nghệ này, vẫn chưa phải là một hoạt động nghiên cứu mang tính chuyên nghiệp để có thể đưa vào ứng dụng. Mặc dù vậy việc nghiên cứu vẫn có những nhen nhóm khi tập đoàn điện lực EVN đã sử dụng công nghệ nhắn tin SMS để điều khiển máy cắt thông qua Modem điện thoại của họ. Ước tính 35 triệu thuê bao di động ở Việt Nam năm 2008. Dịch vụ về SMS cũng bắt đầu tăng lên đáng kể. Điều này là một lợi thế cho việc nghiên cứu và phát triển các ứng dụng trong điều khiển tự động hóa

2.2. Ý TƯỞNG THIẾT KẾ:

Dùng mạng điện thoại di động của các nhà cung cấp dịch vụ như Viettel, Mobi, Vina, S-Fone để gửi tin nhắn SMS điều khiển các thiết bị và có thể nhận đáp ứng lại từ các thiết bị cho biết tình trạng hoạt động của các thiết bị.

2.3. ĐỀ CƯƠNG NGHIÊN CỨU CHI TIẾT

Đề tài này được thực hiện gồm 3 phần:

Phần A: GIỚI THIỆU, giới thiệu một cách khái quát về đề tài.

Phần B: NỘI DUNG, gồm 7 chương.

Chương 1: Dẫn nhập, nêu lên những vấn đề hiện nay có liên quan đến đề tài, tầm quan trọng của vấn đề và hướng giải quyết vấn đề đó.

Chương 2: Cơ sở lý luận, trình bày tổng quát đề cương nghiên cứu, các phương pháp, cách thức nghiên cứu và kế hoạch để thực hiện đề tài.

Chương 3: Truyền dữ liệu và giao tiếp máy tính, giới thiệu tổng quát hệ thống truyền dữ liệu và các kỹ thuật ghép nối và giao tiếp máy tính.

Chương 4: Thiết kế .

Page 20: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 2 Cơ Sở Lí Luận

GVHD_Trần Thu Hà ‐ 9 -

Chương 5: Xây dựng phần mềm điều khiển, giải thuật và các chương trình điều khiển.

Chương 6 : Thi công.

Chương 7: Kết luận.

Phần C: PHỤ LỤC.

2.4. PHƯƠNG PHÁP NGHIÊN CỨU

Trong đề tài này người thực hiện đã sử dụng các phương pháp nghiên cứu:

- Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin từ sách, tạp chí về điện tử và truy cập từ mạng internet.

- Phương pháp quan sát: khảo sát một số mạch điện thực tế đang có trên thị trường và tham khảo thêm một số dạng mạch từ mạng Internet.

- Phương pháp thực nghiệm: từ những ý tưởng và kiến thức vốn có của mình kết hợp với sự hướng dẫn của giáo viên, người thực hiện đã lắp ráp thử nghiệm nhiều dạng mạch khác nhau để từ đó chọn lọc những mạch điện tối ưu.

2.5. PHƯƠNG TIỆN NGHIÊN CỨU

Với đề tài này, người thực hiện dựa vào sách giáo khoa và những kiến thức được trang bị trong quá trình học tập cùng với sự trợ giúp của máy tính và những thông tin trên mạng. Ngoài ra, còn có những thiết bị trợ giúp trong quá trình thiết kế mạch do người thực hiện tự trang bị.

2.6. KẾ HOẠCH THỰC HIỆN

- Tuần 1 : Chọn đề tài, chính xác hóa đề tài, thu thập thông tin và tìm kiếm tài liệu có liên quan.

- Tuần 2 : Tìm ra thuật giải để giải quyết vấn đề.

- Tuần 3 : Kiểm tra thực tế bằng việc ráp thử.

- Tuần 4 : Thi công.

- Tuần 5 : Đánh máy, in ấn.

- Tuần 6 : Kiểm tra và hoàn thiện đề tài.

Page 21: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 10 -

CHƯƠNG 3

TRUYỀN DỮ LIỆU VÀ GIAO TIẾP MÁY TÍNH

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

3.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 tín 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 1992. Ở 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 lí tự latin chẳng hạn như các lí 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.

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.

Page 22: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 11 -

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 công nghệ 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 …

Thứ ba, tin nhắn SMS hỗ trợ việc tri trả các dịch vụ trực tuyến. Nghĩa là nó cho phép thực hiện việc chi trả các dịch vụ trực tuyến một cách thuận lợi. Ví dụ như, bạn muốn phát triển một ứng dụng download nhạc chuông mang tính thương mại và thu phí sử dụng từ người sử dụng cho mỗi lần download nhạc chuông đó. Một cách rất thuận lợi để thực thi ứng dụng này đó là sử dụng một số điện thoại từ nhà cung cấp mạng có khả năng tri trả ngược lại tới tiện ích này thông qua việc sử dụng một sóng

Page 23: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 12 -

mang wireless. Và để có thể tải nhạc chuông này người sử dụng phải soạn một tin nhắn có nội dụng cũng như cấu trúc tin nhắn được qui định bởi nhà cung cấp dịch vụ và gửi tin nhắn này tới một số điện thoại đã được tích hợp sẵn chức năng tri trả trực tuyến mà người phát triển ứng dụng xây dựng. Ứng dụng SMS mà bạn sử dụng sau đó sẽ gửi trả lại cho bạn một hay nhiều tin nhắn SMS có kèm theo cả nhạch chuông (chẳng hạn ) và thông báo chi phí phải trả cho việc sử dụng ứng dụng đó. Chi phí này sẽ gồm cả chi phí sử dụng dịch vụ hàng tháng của điện thoại di động này hay là được khấu trừ từ thẻ card dùng di động của bạn. Nó tùy thuộc vào thỏa thuận giữa bạn và người phát triển ứng dụng đó.

3.1.2 CẤU TRÚC MỘT TIN NHẮN SMS

Nội dung của một tin nhắn SMS khi đượ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.

3.1.3 TIN NHẮN SMS CHUỖI/TIN NHẮN SMS DÀ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.

Page 24: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 13 -

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.

3.1.4 SMS CENTRE/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 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 thứ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 với cả.

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

Page 25: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 14 -

3.1.6 SMS GATEWAY

Một khó khăn của tin nhắn SMS là các SMSC được phát triển, xây dựng bởi các công ty sử dụng giao thức truyền thông riêng của họ và hấu hết các giao thức này đều thuộc quyền sở hữu. Chẳng hạn như Nokia có một SMSC protocol được gọi là CIMD nhưng một nhà điều hành như CMG lại có SMSC protocol được gọi là EMI. Chúng ta không thể kết nối hai SMSC nếu như chúng không được hỗ trợ giao thức SMSC chung. Để giải quyết khó khăn này, một SMS gateway được đặt giữa hai SMSC ra đời. Gateway này sẽ được minh họa ở hình dưới. SMS gateway hoạt động như một relay giữa hai SMSC. Nó chuyển đổi thông tin dữ liệu từ một SMSC protocol SMS sang một SMSC protocol khác. Giải pháp này được sử dụng cho hai sóng mang wireless khác nhau để kết nối liên thông giữa các SMSC, Như thế các tin nhắn SMS từ các nhà cung cấp mạng khác nhau có thể gửi cho nhau mà không gặp trở ngại nào.

Hình 51 Một SMS gateway hoạt động như một relay giữa hai SMSC

Bên cạnh các sóng mang wireless, các nhà cung cấp và những người phát triển các ứng dụng SMS còn có thể phát triển một SMS gateway hữu ích. Chúng ta sẽ xem xét ở tình huống sau. Giả sử bạn là nhà phát triển một ứng dụng tin nhắn SMS dạng text. Để gửi và nhận các tin nhắn SMS trên sever của bạn, một giải pháp là kết nối các SMSC của các sóng mang wireless. Các sóng mang wireless khác nhau có thể được sử dụng SMSC từ các nhà cung cấp dịch vụ khác nhau. Điều đó có nghĩa là ứng dụng tin nhắn SMS dạng text của bạn cần được hỗ trợ SMSC đa dụng- các protocol chuyên dụng. (Điều này được mô tả trong hình dưới). Và kết quả là thời gian phát triển và độ phức tạp của các ứng dụng tin nhắn SMS dạng text tăng.

Page 26: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 15 -

Hình 52 Một ứng dụng tin nhắn SMS dạng text kết nối các SMSC không cần SMS gateway.

Để giải quyết khó khăn trên một SMS gateway được thiết lập để thực thi các kết nối SMSC với nhau. Ngày nay, các ứng dụng tin nhắn SMS dạng text chỉ cần biết làm như thế nào để kết nối với SMS gateway. Để hỗ trợ cho các SMSC nhiều hơn nữa, bạn chỉ cần tinh chỉnh các thiết lập cài đặt cho SMS gateway và không cần phải thay đổi mã nguồn của ứng dụng tin nhắn SMS dạng text đó. Như thế việc sử dụng SMS gateway có thể rút ngắn thời gian của sự phát triển các ứng dụng tin nhắn SMS dạng text.

Để kết nối một SMS gateway, chúng ta phải sử dụng một SMSC protocol chẳng hạn như SMPP và CIMD. Một vài SMS gateway còn hỗ trợ giao diện HTTP/HTPS. HTTP/HTPS thì sử dụng dễ hơn so với SMSC protocol. Và khó khăn ở đây là nó không có nhiều chức năng hỗ trợ SMS. Chẳng hạn như một SMS gateway thì không hỗ trợ việc gửi các tin nhắn có nội dung chứa bức ảnh thông qua giao diện HTTP/HTTPS.

Page 27: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 16 -

Hình 53 Một ứng dụng tin nhắn SMS dạng text kết nối các SMSC thông qua một SMS gateway.

Bên cạnh việc sử dụng kết nối trực tiếp tới SMSC của một sóng mang wireless. Có một cách khác để gửi và nhận tin nhắn SMS dạng text trên máy tính đó là sử dụng một điện thoại di động hay một modem GSM/GPRS. Để làm được chức năng này thì ứng dụng tin nhắn SMS dạng text phải kết nối, giao tiếp được với điện thoại di động hay modem GSM/GPRS bằng cách sử dụng các lệnh AT command.

Một vài SMS gateway có tương thích với giao tiếp kết nối của điện thoại di động hay moidem GSM/GPRS. Để gửi và nhận các tin nhắn SMS dạng text từ một điện thoại di động hay một GSM/GPRS modem thì ứng dụng tin nhắn SMS dạng text thì ứng dụng tin nhắn SMS chỉ cần biết cách giao tiếp với SMS gateway và không cần phải biết về lệnh AT command.

Page 28: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 17 -

Hình 54 Một ứng dụng tin nhắn SMS dạng text kết nối một nhóm các điện thoại (hay các modem thông qua SMS gateway).

3.1.7 MÃ NGUỒN MỞ VÀ PHẦN MỀM SMS GATEWAY

Như đã nói ở trên thì một SMS gateway có nhiều chức năng rất trong hệ thống tin nhắn SMS. Vì vậy, phần mềm dành cho SMS gateway có thể rất phức tạp và phần mềm khá phức tạp này thì thừơng rất đắt. May mắn là có một gói phần mềm SMS gateway mã nguồn mở có thể được dowload miễn phí từ web. Gói phần mềm SMS gateway miễn phí chất lượng cao này chính là Kannel, nó được viết bằng ngôn ngữ C. Kannel có thể giao tiếp kết nối với các SMSC, điện thoại di động và các GSM/GPRS modem. Nó có giao diện HTTP/HTTPS dành cho việc gửi và nhận các tin nhắn SMS.

3.2. TỔNG QUÁT HỆ THỐNG TRUYỀN DỮ LIỆU

Không giống với việc truyền thông tin bằng cách phát và thu tín hiệu tương tự như âm thanh và hình ảnh, việc truyền dữ liệu được thực hiện bằng cách phát tuần tự (liên tiếp) các mã nhị phân lên đường truyền. Các mã này được tạo ra, lưu trữ và xử lí bởi các máy tính và các ngoại vi.

Đường truyền dùng để truyền dữ liệu là các đường truyền số (digital) nghĩa là tín hiệu chỉ có thể ở một trong hai trạng thái khác biệt được biểu thị bằng mức logic 0 hoặc 1. Trong khi đó tín hiệu tương tự có thể chiếm một trạng thái bất kì trên một dải liên tục.

3.2.1 Cấu trúc một hệ thống thông tin

Sơ lược các khối trong hệ thống:

Page 29: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 18 -

Hình 55 Sơ đồ một hệ thống thông tin

Nguồn tín hiệu:

Là tín hiệu cần truyền đi, có thể là tín hiệu không điện hoặc tín hiệu điện. Do vậy, cần phải có một bộ chuyển đổi các tín hiệu không điện thành tín hiệu điện trước khi đưa lên đường truyền.

Thông thường dùng các cảm biến để dò lấy tín hiệu này và thực hiện quá trình chuyển đổi thành tín hiệu điện.

Khối truyền tin:

Nhận tín hiệu điện từ nguồn tín hiệu đưa đến sau đó thực hiện sự biến đổi cho phù hợp với đường truyền trước khi phát lên đó.

Khối này thường gồm: mạch điều chế tín hiệu, một bộ dồn kênh, bộ phát tín hiệu.

Đường truyền:

Có nhiều dạng như đường truyền hữu tuyến, vô tuyến, tương tự, số…

Bản chất của đường truyền có ảnh hưởng rất nhiều khối khác trong sơ đồ.

Khối nhận tin:

Nhận lấy tín hiệu từ đường truyền gửi xuống và thực hiện việc chuyển đổi nhằm lấy lại thông tin ban đầu.

Khối nhận tin thường gồm: một bộ giải điều chế tín hiệu (tách sóng mang), một bộ phân kênh tín hiệu.

Cơ cấu chấp hành:

Nhận tín hiệu từ khối nhận tin đưa đến sau đó biến đổi đại lượng điện đầu vào thành đại lượng đồng dạng với đại lượng vào của nguồn tín hiệu.

Cơ cấu chấp hành có thể là một màn hình hiển thị hoặc loa, rờle dể đóng ngắt thiết bị …

Page 30: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 19 -

3.2.2 Phân loại các hệ thống thông tin

3.2.2.1. Phân loại theo đường truyền

- Đường truyền hữu tuyến. - Đường truyền vô tuyến.

3.2.2.2. Phân loại theo tín hiệu trên đường truyền

- Tín hiệu tương tự. - Tín hiệu số.

3.2.2.3. Phân loại theo số bit trên một đường dây

- Mỗi bit chiếm lấy một đường truyền (song song): Dữ liệu gồm nhiều bit sẽ xuất đồng thời trên đường truyền.

- Nhiều bit trên một đường truyền (nối tiếp): Các bit sẽ nối tiếp nhau xuất hiện trên một đường truyền duy nhất.

3.2.2.4. Phân loại dựa vào xung nhịp đồng hồ Ck của bộ phát và bộ thu

- Truyền đồng bộ: khi xung nhịp nơi phát và nơi thu như nhau và cùng góc pha.

+ Ưu điểm của cách truyền này là tốc độ truyền rất cao nhưng độ an toàn về thông tin khá thấp (sai vài bit). Việc chi phí cho thiết kế đường truyền khá cao.

- Truyền bất đồng bộ: khi xung nhịp nơi phát và thu không cần giống nhau.

+ Theo phương pháp này, dữ liệu được truyền đi với tốc độ chậm hơn nhưng độ an toàn cao, đặc biệt chi phí cho việc thiết kế đường truyền tương đối thấp, thích hợp cho truyền xa.

3.2.2.5. Phân loại theo chiều tín hiệu trên đường truyền

- Loại đơn công: tín hiệu chỉ truyền theo một chiều duy nhất mà không có chiều ngược lại.

- Loại song công: tín hiệu có thể truyền theo cả hai chiều một cách đồng thời.

- Loại bán song công: tín hiệu có thể truyền theo hai chiều nhưng không cùng lúc, tức là phải thay đổi luân phiên.

3.2.3 Giao tiếp song song bất đồng bộ

3.2.3.1. Sơ đồ khối:

Page 31: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 20 -

Hình 56 Sơ đồ kết nối thu phát dữ liệu

Khi truyền dữ liệu với tốc độ từ thấp đến trung bình trên khoảng cách ngắn người ta có thể dùng đường truyền song song bất đồng bộ.

Ví dụ, như việc kết nối một máy tính với một thiết bị ngoại vi như máy in.

Hệ thống giao tiếp song song bất đồng bộ này có đặc điểm là: mỗi bit chiếm lấy một đường truyền và xung đồng bộ nơi phát không nhất thiết phải bằng xung đồng bộ của nơi thu. Do đó, ngoài các đường dây cho các bit còn cần thêm các đường tín hiệu để thực hiện việc bắt tay giữa phần phát và phần thu.

Giả sử thực hiện việc truyền song song 8 bit thì ít nhất có 9 đường dây (một đường mass giữa phần phát và phần thu).

Để nơi phát và thu có thể truyền và thu được chính xác dữ liệu thì nhất thiết phải cần đến các tín hiệu bắt tay: Strobe, Ack và Busy\ .

DO ÷ D7 : là các đường dữ liệu (data bus).

Strobe, Ack, Busy\: là các đường tín hiệu bắt tay nhằm phối hợp giữa phần phát và phần thu.

Strobe : do máy phát gửi ra nhằm báo cho máy thu biết rằng đã có dữ liệu gửi ra trên đường truyền DO ÷ D7 .

ACK : do phần phát đưa ra nhằm báo cho phần phát biết rằng phần thu đã thu xong một kí tự.

Busy : là tín hiệu do phần thu đưa ra nhằm báo cho phần phát biết rằng phần thu đang bận với một tác vụ nào đó nên chưa thể thu được kí tự tiếp theo.

Ví dụ một quá trình truyền dữ liệu giữa máy tính và máy in:

Page 32: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 21 -

- CPU chờ cho tới khi đường tín hiệu Busy\ lên mức cao tức là máy in đã sẵn sàng nhận dữ liệu.

- CPU xuất mã của kí tự kế tiếp ra port song song.

- Sau đó, CPU đưa xung Strobe lên ‘1’. Tín hiệu này báo cho máy in biết rằng đã có dữ liệu mới trên đường truyền.

- Máy in tiến hành nhận dữ liệu và khi đã hoàn tất công việc liên quan đến kí tự cuối cùng nó sẽ trả Busy\ về mức cao. Máy in đưa xung ACK lên cao để báo cho CPU biết nó đang sẵn sàng nhận kí tự tiếp theo.

3.2.3.2. Hoạt động của hệ thống:

Phần phát:

- Đọc giá trị của đường Busy\ cho đến khi Busy\ = ‘1’ tức là phần thu không bận.

- Sau đó phần phát gửi data ra bus dữ liệu.

- Cho chân Strobe = ‘1’ để báo cho phần thu biết kí tự đã sẵn sàng.

- Đọc chân ACK cho đến khi chân này lên ‘1’ tức là phần thu đã thu xong kí tự.

- Cho chân Strobe = ‘0’ để tránh trường hợp phần thu thu thêm một lần nữa.

- Chuẩn bị dữ liệu kế tiếp theo để xuất đi nếu như chưa truyền hết.

Phần thu:

- Khi cần thu một dữ liệu nó phải đưa chân Busy\ lên ‘1’ để báo cho phần phát biết rằng nó không bị bận và sẵn sàng nhận kí tự.

- Sau đó phần thu đọc giá trị của tín hiệu Strobe cho đến khi chân này lên ‘1’ tức là phần phát đã gửi dữ liệu ra đường truyền.

- Cho chân Busy\ = ‘0’ để phần phát tạm thời ngưng lại và cho chân ACK = ‘0’ để khoan thay đổi data.

- Xử lí data (cất vào vùng nhớ đệm).

- Cho chân Busy\ = ‘1’.

3.2.4 Giao tiếp nối tiếp bất đồng bộ

Cấu trúc :

Hình 57 Cấu trúc giao tiếp nối tiếp bất đồng bộ

Page 33: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 22 -

Giao tiếp nối tiếp bất đồng bộ là giao tiếp mà xung đồng hồ của bộ phát và bộ thu được tạo ra một cách riêng rẽ và không cần phải bằng nhau.

Các bit lần lượt chiếm lấy đường truyền, việc giao tiếp cần phải thêm các bit khung (thông tin khung) bao gồm:

• Bit khởi động (start).

• Bit dừng (stop).

• Bit chẵn lẻ (parity).

Thành phần chính của hệ thống là các thanh ghi dịch.

Tại phần phát, thanh ghi dịch là thanh ghi vào song song ra nối tiếp.

Tại phần thu, thanh ghi dịch là thanh ghi vào nối tiếp ra song song.

Hình 58 Quá trình thu nhận dữ liệu nối tiếp bất đồng bộ

3.2.4.1. Phát dữ liệu nối tiếp:

Khi cần phát dữ liệu, CPU phần phát sẽ gửi data tới thanh ghi phát bằng cách đưa dữ liệu đến các ngõ vào song song của thanh ghi dịch sau đó tác động mức 1 lên chân LD để cho thanh ghi nạp lấy giá trị này.

Khi LD không còn tác động nữa thì thanh ghi dịch sẽ lưu trữ lại giá trị này. Sau đó, dưới tác động của xung đồng hồ nơi phát, các bit của dữ liệu cần phát sẽ lần lượt dịch đến ngõ ra nối tiếp để đưa lên đường truyền.

3.2.4.2. Thu dữ liệu nối tiếp:

Khi phần thu nhận dạng được bit khởi động, CPU phần thu sẽ phát tín hiệu điều khiển xung Ck thu.

Lúc này dưới tác động của xung Ck thu, từng bit dữ liệu trên đường truyền sẽ lần lượt được dịch vào thanh ghi phần thu cho đến khi xuất hiện bit dừng thì CPU phần thu sẽ phát tín hiệu để đọc dữ liệu tại các ngõ ra song song của thanh ghi dịch.

Bit khởi động (Start) nhằm báo cho phần thu biết thời điểm nhận một dữ liệu mới, bit này có trạng thái ngược với trạng thái thường xuyên của đường truyền (có trạng thái = ‘1’).

Page 34: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 23 -

Khi dùng bit Parity, trạng thái logic của bit này phụ thuộc vào kí tự dữ liệu đặc trưng và việc lập phần cứng là kiểm tra parity chẵn hay lẻ.

Bit parity là bit 0 hoặc bit 1 tùy theo việc kiểm tra chẵn hay lẻ và dữ liệu đó như thế nào.

Chú ý rằng bit parity có dự phần vào việc tính tổng số bit 1 là chẵn hay lẻ trong toàn dữ liệu.

Sau đó bằng cách tính tổng số bit trong mỗi kí tự, máy thu có thể phát hiện được lỗi khi truyền. Phương pháp này tuy không đạt được độ tin cậy 100% (vì nếu số bit lỗi là số chẵn thì máy thu không thể phát hiện được lỗi) nhưng lại tương đối đơn giản và có hiệu quả.

Các bit Stop là khoảng cách bảo vệ tối thiểu giữa các khung kí tự.

3.3. KỸ THUẬT GHÉP NỐI VÀ GIAO TIẾP MÁY TÍNH

3.3.3 Cổng nối tiếp RS232:

3.3.1.1 Giới thiệu:

Giao thức truyền thông nối tiếp là một con đường cho phép các thiết bị khác nhau có thể giao tiếp với thế giới bên ngoài của nó. Nó được gọi là nối tiếp vì các bit dữ liệu được truyền đi theo kiểu nối tiếp nhau trên một đường dây đơn. Một máy tính để bàn có port nối tiếp được biết tới như là một port truyền thông hay port COM được sử dụng để kết nối một modem chẳng hạn hay bất kỳ thiết bị nào khác, có nhiều hơn một cổng (port) COM ở máy tính để bàn. Các Port nối tiếp này được điều khiển bởi một CHIP đặc biệt gọi là UART (Universal Asynchronous Receiver Transmitter). Các ứng dụng khác nhau sử dụng các chân khác nhau trên port nối tiếp này và nó chủ yếu dựa vào chức năng được yêu cầu. Nếu như bạn cần kết nối máy tính (PC) của bạn chẳng hạn tới các thiết bị khác dùng Port nối tiếp thì bạn phải đọc sổ tay hướng dẫn cho thiết bị đó để biết được các chân ở cả trên hai mặt được kết nối với nhau như thế nào và các thiết lập cần thiết đối với nó.

Các lợi thế của giao thức truyền thông nối tiếp:

Giao thức truyền thông nối tiếp có một vài lợi thế hơn so với với giao thức truyền thông song song. Một trong những lợi thế đó là khoảng cách truyền dẫn, kết nối nối tiếp có thể gửi dữ liệu tới một thiết bị điều khiển xa hơn so với kết nối song song. Và cáp kết nối của kết nối nối tiếp cũng đơn giản hơn so với kết nối song song và nó sử dụng ít số dây hơn.

Kết nối nối tiếp cũng được sử dụng cho giao tiếp hồng ngoại, ngày nay các thiết bị như laptop và máy in có thể giao tiếp thông qua các đường hồng ngoại.

3.3.1.2 Các loại kết nối:

Page 35: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 24 -

Có hai loại bộ kết nối là 9 chân và 25 chân, cả hai đều được gọi là đầu cắm loại D (D-Type plug). D-Type plug có thể là đực mà cũng có thể là cái. Hình 1 dưới chỉ ra những chi tiết về hai loại này.

Hình 59 Hình dạng đầu kết nối hai loại cáp 9 và 25 chân

Mô tả các chân :

Chức năng Chân Loại 9 chân Loại 25

chân

Ngõ vào nhận dữ liệu nối tiếp RD 3 2

Ngõ ra truyền dữ liệu nối tiếp TD 2 3

Yêu cầu gửi (Báo cho Modem biết là UART đã sẵn sàng trao đổi dữ liệu)

RTS 7 4

Xóa để gửi (Modem đã sẵn sàng) CTS 8 5

Trạng thái dữ liệu sẵn sàng(Modem hình thành 1 kết nối).

DSR 6 6

Nối đất SG 5 7

Page 36: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 25 -

Phát hiện bộ vận chuyển dữ liệu DECLARED 1 8

Dữ liệu đầu cuối sẵn sàng DTR 4 20

Ring Indicator RI 9 22

Bảng 14 Chức năng các chân của chuẩn RS232 loại 9 chân và 25 chân

Các thiết bị sử dụng cáp nối tiếp để phục vụ cho việc giao tiếp của nó thì chia ra làm hai loại:

a) DTE (Data Terminal Equipment).ví dụ về DTE là các máy tinh, máy in và các thiết bị đầu cuối.

b) DECLAREE (Data Communication Equipment). Ví dụ về DECLAREE là các modem.

3.3.1.3 Đặc tính điện

Đặc tính điện xác định tín hiệu giữa DTE và DECLAREE. Tín hiệu số được dùng trong mọi trao đổi. Mức điện áp logic của RS-232D nằm trong khoảng ±15V.

Các đường dữ liệu sử dụng logic âm: mức logic 1 tương ứng với điện áp trong khoảng (-5V , -15V); mức logic 0 chiếm khoảng (+5V, +15V).

Các đường điều khiển sử dụng logic dương: từ +5V đến +15V tương ứng với điều kiện ON (hay TRUE) và từ -5V đến -15V tương ứng với điều kiện OFF (hay FALSE)

Ở chuẩn giao tiếp này, mức nhiễu được giới hạn là 2V. Do đó ngưỡng nhỏ nhất của ngã vào là ± 3V. Điện áp lớn nhất trên đường dây khi không tải là ± 25V.

Một số đặc điểm về điện khác :

- Điện trở tải RL

có giá trị trong khoảng từ 3 kΩ đến 7 kΩ

- Điện dung tải CL

không quá 2500 pF

- Để ngăn chận sự dao động, tốc độ thay đổi điện áp (slew rate) không được vượt quá 30V/μs

Thời gian chuyển mức tín hiệu từ ON sang OFF hay ngược lại:

- Đối với các đường điều khiển, không được vượt quá 1ms.

- Đối với các đường dữ liệu không được vượt quá 4% thời gian của một bit hoặc 1ms.

Tốc độ truyền dữ liệu là 20 kbps và không quá 15m.

3.3.1.4 Các phương pháp giao tiếp

Page 37: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 26 -

Có hai phương pháp giao tiếp cho chuẩn giao tiếp truyền thông nối tiếp, đó là đồng bộ và bất đồng bộ.

Giao tiếp truyền thông nối tiếp đồng bộ:

Trong giao tiếp truyền thông nối tiếp đồng bộ, bộ nhận phải biết khi nào thì đọc bit kế tiếp tới từ bên gửi, điều này có thể đạt được bằng cách phối hợp xung Clock giữa bên phát và bên thu.

Trong hầu hết các dạng của GTTTNT, nếu như không có dữ liệu sẵn sàng tại thời điểm cho để truyền thì một kí tự nhồi sẽ được gửi thay vào đó cho nên dữ liệu luôn được truyền giữa bên gửi và bên nhận. Tuy nhiên nó sẽ mắc hơn vì các mạch điện điều khiển và dây nối thêm bên ngoài cần được mắc thêm để có thể phối hợp, chia sẻ tín hiệu xung Clock giữa bên phát và bên thu.

Giao tiếp truyền thông nối tiếp bất đồng bộ:

Giao tiếp truyền thông nối tiếp bất đồng bộ cho phép dữ liệu được truyền đi mà không cần phải gửi một tín hiệu xung clock tới bên nhận từ bên gửi.Thay vào đó, các bit đặc biệt được thêm vào tới mỗi word để thực hiện việc đồng bộ dữ liệu giữa bên gửi và bên nhận.

Khi một word được đưa tới UART phục vụ cho việc truyền bất đồng bộ, một bit được gọi là "Start bit" được thêm vào đầu của mỗi word mà được truyền đi. Bit Start được sử dụng để thông báo tới bên nhận rằng một word sắp được gửi tới, và đẩy xung clock ở bộ nhận vào trong quá trình đồng bộ với xung clock của bộ truyền

Hình 60 Cấu trúc một frame dữ liệu thông thường.

Sau Start Bit, các bit dữ liệu riêng của word được gửi, mỗi bit trong word được truyền một cách chính xác giống nhau về gian ở tất cả các bit. khác.

Khi toàn bộ dữ liệu word được gửi, bộ truyền sẽ cho một Parity Bit mà nó được tạo ra bởi bộ truyền. Parity Bit được sử dụng tại bên nhận để thực thi việc kiểm tra các lỗi đơn giản. Sau đó thì sẽ có tối thiểu một Stop Bit được gửi bởi bộ truyền.

Nếu như Stop Bit không xuất hiện khi mà nó được cần đến thì UART coi như toàn bộ word đó bị hu và sẽ thông báo một Framing Error (một lỗi Frame)

Phần cứng của các giao tiếp truyền thông nối tiếp chuẩn trong PC không được hỗ trợ các hoạt động đồng bộ.

Page 38: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 27 -

3.3.1.5 Thủ tục giao tiếp

Handshaking

Handshaking là một thủ tục được sử dụng để kiểm tra đường truyền giữa DTE & DECLAREE trước khi truyền dữ liệu. Dữ liệu được truyền và nhận trên hai chân 2 và 3 tương ứng (cho cả hai loại 25 & 9 chân).

- DTE sẽ yêu cầu gửi dữ liệu tới DECLAREE (RTS).

- DECLAREE sẽ chỉ cho DTE rằng nó đã sẵn sàng cho việc nhận dữ liệu (CTS).

Cho nên cả hai RTS và CTS được sử dụng để điều khiển dòng dữ kiệu giữa DTE và DECLAREE. Data Set Ready (DSR) là một chỉ thị dấu hiệu từ DECLAREE (chẳng hạn như modem) đang ở trạng thái ON. Tương tự, DTR (ví dụ như PC) chỉ ra Data Set là DTE đang ở trạng thái ON. Data Carrier Detect (CD) chỉ ra rằng một sóng mang tốt đang được nhận từ modem điều khiển.

Baud rate (Tốc độ baud)

Tốc độ Baud là một thông số đo chỉ ra tốc độ của quá trình truyền dẫn trong giao tiếp truyền thông bất đồng bộ. Nó thể hiện số bit mà thực sự được gửi qua đường truyền nối tiếp. Số baud bao gồm cả các bit overhead Start, Stop và Parity mà được tạo ra bởi UART bên gửi và được xóa bởi UART bên nhận.

3.3.1.6 Các loại cáp:

Cáp modem

Một cáp modem bình thường chay thẳng với chân số 1 nối tới chân 1, chân 2 nối tới chân 2,...Cuối cùng nó sẽ được kết nối tới điểm đầu cuối hay PC qua một bộ (đầu) kết nối cái, và điểm cuối của còn lại của nó được kết nối tới modem là một bộ (đầu) kết nối đực.

Mô tả tín hiệu 9-pin DTE

25-pin DECLAREE

Chú ý

Carrier Detect (CD) 1 8 From Modem

Receive Data (RD) 2 3 From Modem

Transmit Data (TD) 3 2 From

Terminal/Computer

Data Terminal Ready(DTR) 4 20 From

Terminal/Computer

Signal Ground (SG) 5 7 From Modem

Page 39: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 28 -

Cáp modem Null

Khi bạn cần kết nối hai thiết bị với DTE hay DECLAREE, ví dụ như kết nối hai PC với nhau, thì trong trường hợp này bạn cần phải sử dụng tới cáp có chân kết nối được mô tả như hình dưới (25 tới 25). Cáp này được gọi là cáp modem Null.

D-Sub 1 D-Sub 2

Receive Data (RD) 3 2 Transmit Data

Transmit Data 2 3 Receive Data

Data Terminal Ready 20 6+8 Data Set Ready +

Carrier Detect

System Ground 7 7 System Ground

Data Set Ready + Carrier Detect

6+8 20 Data Terminal

Ready

Request to Send 4 5 Clear to Send

Clear to Send 5 4 Request to Send

Bảng 16 Kết nối loại 25 chân với 25 chân chuẩn RS232

Mô tả tín hiệu Chân Mô tả tín hiệu

Recieve Data 2 3 Transmit Data

Transmit Data 3 2 Recieve Data

Data Terminal Ready 4 6+1 Data Set Ready +

Carrier Detect

System Ground 5 5 System Ground

Data Set Ready + 6+1 4 Data Terminal Ready

Data Set Ready (DSR) 6 6 From Modem

Request to Send (RTS) 7 4 From

Terminal/Computer

Clear to Send (CTS) 8 5 From Modem

Ring Indicator (RI) 9 22 From Modem

Bảng 15 Kết nối loại 9 chân với 25 chân chuẩn RS232

Page 40: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 29 -

Carrier Detect

Request to Send 7 8 Clear to Send

Clear to Send 8 7 Request to Send

Bảng 17 Kết nối loại 9 chân với 9 chân chuẩn RS232

9 pin 25 pin

Recieve Data 2 2 Transmit Data

Transmit Data 3 3 Recieve Data

Data Terminal Ready

4 6+8 Data Set Ready +Carrier

Detect

System Ground 5 7 System Ground

DataSet Ready+Carrier

Detect 6+1 20 Data Terminal Ready

Request to Send 7 5 Clear to Send

Clear to Send 8 4 Request to Send

Bảng 18 Kết nối loại 9 chân với 25 chân chuẩn RS232

3.3.1.7 Thủ tục truyền nhận

Thủ tục phát tin TxD

- Thiết bị đầu cuối (hay máy vi tính) gởi tín hiệu DTR (Data Terminal Ready - Sự sẵn sàng của thiết bị đầu cuối có số liệu) mức thấp cho Modem báo nó sẵn sàng.

- Modem gởi trả lời thiết bị đầu cuối (TBĐC) bằng tín hiệu DSR (Data Set Ready) mức thấp. Thông thường, modem được đóng mạch nguồn nuôi bởi DTR và báo hiệu đã đóng mạch bởi DSR.

- Nếu thiết bị đầu cuối có một ký tự (Character) sẵn sàng gởi đi, nó gởi RTS (Request To Send - yêu cầu gởi) mức thấp cho Modem.

- Modem gởi tín hiệu CD (Carrier Detect - phát hiện sóng mang) cho TBĐC để báo rằng nó đã liên lạc được với máy vi tính.

- Khi Modem đã hoàn toàn sẵn sàng phát số liệu lên đường dây, nó phát xung nhịp (Modem Clock) và tín hiệu CTR (Clear To Send) tới thiết bị đầu cuối.

- TBĐC gởi các ký tự số liệu (SUD) TxD cho Modem.

Page 41: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 30 -

- Khi thiết bị đầu cuối gởi xong số liệu, nó nâng mức RTS lên cao báo cho Modem là đã phát xong .

- Modem trả lời thiết bị đầu cuối bằng cách kết thúc tín hiệu CTS về mức cao, báo đã hoàn thành việc truyền tin TxD.

Thủ tục nhận tin RxD Khi một thiết bị đầu cuối nhận tin nối tiếp từ đường dây, trình tự diễn ra như sau:

- TBĐC thu gởi DTR mức thấp cho modem báo sẵn sàng.

- Modem thu giữ trả lời bởi DSR.

- Modem thu nhận tín hiệu CD từ đường dây và kích thích phát tín hiệu nhịp modem (Modem Clock) cho tín hiệu thu.

- TBĐC phát tín hiệu RTS mức thấp cho modem biết là sẵn sàng thu.

- Modem nhận tín hiệu RTS và phát CTS mức thấp cho thiết bị đầu cuối thu biết modem sẵn sàng nhận tin.

- Modem nhận tín hiệu TxD đã điều chế ở trên đường dây đưa vào bộ giải điều chế và truyền chuỗi tín hiệu RxD cho thiết bị đầu cuối thu.

- Khi thu xong, TBĐC thu nâng RTS lên cao báo cho modem biết việc thu một lời tin đã xong.

- Modem thu nâng mức CTS lên cao để báo đã kết thúc việc thu các tín hiệu RxD.

3.3.4 Giao tiếp điện thoại với máy tính qua USB Modem

3.3.2.5 Giới thiệu

Trong đề tài này sử dụng việc kết nối Mobile với máy tính thông qua chức năng USB Modem của Mobile Motorola. USB Modem có chức năng kết nối Internet cho một chiếc máy tính giống như ADSL Modem. Nhưng đề tài sẽ không dùng USB Modem vào mục đích kết nối với Internet mà sử dụng với mục đích là tạo ra một cổng COM nối tiếp để truy xuất và điều khiển Mobile với máy tính thông qua tập lệnh AT. Lúc này Mobile sẽ có chức năng như một GSM Modem, cho phép lập trình để điều khiển việc gửi nhận tin nhắn SMS thông qua tập lệnh AT. Hầu hết các điện thoại hỗ trợ tập lệnh AT đều đã tích hợp GSM Modem trong phần cứng của máy. Muốn sử dụng chức năng USB Modem của Mobile thì cần phải cài đặt Driver cho việc giao tiếp của Mobile với máy tính. Driver đấy được cung cấp bởi hãng sản xuất ra Mobile. Khi đã cài đặt Driver cho máy tính thì sẽ nhận được một cổng COM, cổng COM này là mặc định và phải kiểm tra để biết được đây là COM mấy. Điều này rất quan trọng để truy xuất giao tiếp giữa Mobile và máy tính . Vì trong đề tài sử dụng Mobile đã có sẵn là Motorola A1200 nên việc trình bày sẽ hướng theo quy định của hãng Motorola. Đối

Page 42: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 31 -

với một số loại điện thoại khác thì có thể lấy cổng COM bằng cách cài đặt chương trình quản lý riêng theo từng hãng. Trong đề tài này việc giao tiếp với máy tính và Mobile có thể không nhất thiết phải là Motorola mà quan trong nhất là Mobile phải hỗ trợ trợ tập lệnh điều khiển AT. Ví dụ như Nokia có rất nhiều đời máy lập trình được thông qua tập lệnh AT. Vì vậy đề tài này vẫn có thể sử dụng một điện thoại Mobile với chi phí thấp để ứng dụng trong thực tế.

3.3.2.6 Cài đặt và sử dụng Driver cho USB Modem

Đối với các điện thoại đã tích hợp sẵn chức năng USB Modem thì việc cài driver cũng như điều khiển thông qua tập lệnh AT sẽ trở nên dễ dàng hơn.

Vì đề tài sử dụng A1200 của Motorola nên việc cài đặt Driver sẽ theo hướng dẫn của hãng sản xuất.

Phần cứng kết nối : Mobile, cáp USB

Phần mềm :

USBMODEM_DRIVER_A1200 hoặc Handset_USB_Driver_32_v3.4.0.msi (cho hầu hết điện thoại Motorola).

Cài đặt Driver :

Đối với USBMODEM_DRIVER_A1200

Chỉnh Mobile theo dạng kết nối là USB Modem. Sau đó gắn Cáp USB nối tiếp giữa Mobile và máy tính. Lúc này máy tính sẽ hiện lên yêu cầu.

Sau đó chọn “No, not this time” rối bấm Next

Page 43: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 32 -

Chọn “Install from a list or specific location (Advanced)”, tiếp tục bấm Next

Sau đó xuất hiện bảng yêu cầu tiếp theo

Ta chọn “ Include this location in the search”, sau đó nhấn Browse và chọn Driver trên máy tính. Sau đó bấm Next để tiếp tục việc cài đặt

Đối với Handset_USB_Driver_32_v3.4.0.msi : việc cài đặt này không cần phải cắm cáp giữa Mobile và máy tính, việc cái đặt cũng trở nên dễ dàng hơn, nhưng chỉ hỗ trợ một số loại Mobile của Hãng Motorola

Page 44: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 33 -

Sau khi nhấp vào file SETUP, ta thấy xuất hiện bảng yêu cầu

Bấm Next để tiếp tục việc cài đặt

Sau đó xuất hiện bảng yêu câu sau

Chọn “I agree” sau đó nhấn Next để tiếp tục

Sau đó việc cài đặt được tiến hành và bấm Close để kết thúc quá trình cài đặt :

Page 45: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 34 -

Giao tiếp của Mobile không có USB Modem với máy tính :

Đề tài sẽ chỉ sử dụng Mobile Motorola nhưng với các điện thoại khác muốn sử dụng cổng COM để truy xuất tập lệnh AT vẫn có thể được, cụ thể là Nokia, là hãng điện thoại lớn hỗ trợ tập lệnh AT cho hầu hết Mobile của Hãng. Khi cài đặt phần mềm

Page 46: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 35 -

của hãng thì sẽ xuất hiện cổng COM cho việc truy xuất. Các điện thoại cần được hỗ trợ tập lệnh AT thì mới có thể điều khiển được.

3.3.2.7 Kiểm tra Com Portname :

Có 2 cách kiểm tra xem USB Modem kết nối vào máy tính được gán cho cổng Com thứ mấy :

Cách 1: Bấm chuột phải vào My Computer chọn Properties :

Sau đó chọn tab Hardware trên bảng System Properties:

Chọn Device Manager

Page 47: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 36 -

Sau đó hiện ra bảng điều hành các thiết bị kết nối :

Nhấp vào mục Modem thấy xuất hiện một Modem vừa cài đặt là Motorola USB Modem.

Ta nhấp chuột phải chọn Properties

Ta tiếp tục chọn Advance Port setting:

Page 48: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 37 -

Cuối cùng ta thấy tên cổng Com Port dùng để truy xuất.

Tại phần COM port Number ta có thể thay đổi tên cổng COM mà ta muốn trong giới hạn của Main Board

Cách 2 : dùng chương trình có sẵn là HyperTerminal

Ta nhấp Start → Accessories → Communications →HyperTerminal

Ta đặt tên cho kết nối và chọn Icon như hình :

Page 49: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 38 -

Sau khi nhấn OK ta được khung chọn lựa cho cổng Com kết nối như sau

Lúc này ta có thể chọn Motorola USB Modem cho việc kết nối Internet, trong đề tài sử dụn COM3, là cổng truy xuất dữ liệu của Mobile và máy tính. COM3 chỉ xuất hiện sau khi đã cài đặt USB Modem.

3.3.2.8 Kiểm tra những Mobile phone được hỗ trợ tập lệnh AT

Microsoft HyperTerminal là một chương trình nhỏ được cung cấp bởi Microsoft Windows. Ta sẽ dùng chương trình này để gửi lệnh AT đến Mobile. Chúng tôi đã trình bày về cách lấy chương trình này ở phần trên nếu đã được cài đặt sẵn trên máy tính. Nếu như, trên máy tính không được cài sẵn chương trình này thì chúng ta sẽ tiến hành cài đặt lại như sau :

Control Panel → Add/Remove Program → Windows Setup → Communications list box item → Details button để install MS HyperTerminal

Page 50: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 3 Truyền Dữ Liệu và Giao Tiếp Máy Tính

GVHD_Trần Thu Hà ‐ 39 -

Trước khi nhóm bắt đầu lập trình cho những ứng dụng chứa tập lệnh AT thì nhóm đã kiểm tra xem mobile đấy có hỗ trợ tập lệnh AT hay không.

Để sử dụng MS HyperTerminal cho việc gửi lệnh AT điều khiển Mobile thì cần phải làm theo những bước như sau:

a. Đặt một thẻ SIM hợp lệ vào điện thoại di động hoặc GSM / GPRS modem. Bạn có thể có được một thẻ SIM bằng cách đăng ký vào các mạng GSM dịch vụ của một nhà điều hành mạng không dây.

b. Kết nối điện thoại di động hoặc GSM / GPRS modem với một máy tính và cài đặt phần mềm để diều khiển modem.

c. MS HyperTerminal chạy bằng cách chọn Start → Programs → Accessories → Communications → HyperTerminal.

d. Trong Connection Description, nhập một tên và chọn một biểu tượng cho các bạn muốn kết nối. Sau đó bấm vào nút OK.

Page 51: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 40 -

CHƯƠNG 4

THIẾT KẾ 4.1. PHƯƠNG ÁN THIẾT KẾ

Gồm 2 phương án thiết kế như sau:

Phương án 1 : Dùng bộ GSM MODEM để kết nối máy tính : chi phí và giá thành khá đắt. Thích hợp cho lập trình lệnh AT dễ dàng và đầy đủ tín năng cho lập trình với lệnh AT.

Phương án 2: Dùng điện thoại di động có chức năng USB MODEM để kết nối máy tính. Việc lập trình cho USB MODEM cũng tương tự như GSM MODEM nhưng có hạn chế hơn vì một số loại điện thoại hỗ trợ USB MODEM nhưng không hỗ trợ lệnh AT

Phương án lựa chọn : chọn phương án 2 vì tận dụng điện thoại sẵn có. Hầu hết các điện thoại Nokia đều có USB Modem và hỗ trợ lệnh AT. Lệnh AT là lệnh dùng để điều khiển điện thoại theo ý muốn của người dùng thông qua tập lệnh

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

Hình 61 Sơ đồ khối hệ thống điều khiển thiết bị điện bằng tin nhắn SMS

Page 52: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 41 -

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 hai thiết bị điện thoại di động :

Thiết bị điện thoại di động thứ nhất: 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.

Thiết bị điện thoại di động thứ hai: Điện thoại 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 Modem đề có thể kết với máy tính. Việc kết nối cần có phần mềm của hãng cung cấp điện thoại. Cái này được đặt cố định và thường xuyên kết nối với máy tính.

Khi người sử dụng nhắn một tin SMS có nội dung là một lệnh yêu cầu điều khiển thiết bị. Ví dụ : light_1 on, light_2 on, light_1 off, ….. thì điện thoại kia sẽ nhận tin nhắn và được xử lí bởi Khối Xử Lí Phần Mềm và Giao Tiếp.

Khối Xử Lí Phần Mềm và Giao Tiếp :

Có chức năng đọc tin nhắn SMS từ điện thoại thông qua chức năng Modem của điện thoại. Khối này có nhiệm vụ trung tâm và quan trọng trong việc xử lí và điều khiển phần mềm. Việc xử lí sẽ do phần mềm được tạo ra bởi phần mềm Visual Basic .Net của Microsoft . Phần mềm này có nhiệm vụ giao tiếp với điện thoại thông qua Modem của điện thoại và giao tiếp với Khối Xử Lí Phần Cứng thông qua cổng RS232. Khi điện thoại nhận được tin nhắn điều khiển thì phần mềm sẽ đọc tin nhắn thông qua việc gửi tập lệnh AT đọc tin nhắn. Sau đó sẽ xử lí lệnh điều khiển và truyền dữ liệu bật tắt thiết bị thông qua việc truyền nhận qua cổng RS232. Trong phần mềm giao tiếp cần đặt thuộc tính cho việc chọn cổng kết nối với Modem của điện thoại và RS232 . Phần mềm còn cho phép hiển thị nhiệt độ và vẽ đồ thị hiển thị kết qủa đo đạt được . Khi người dùng muốn giám sát thông qua điện thoại thì phần mềm cũng cho phép gửi tin nhắn SMS đến người dùng để thông báo các trạng thái thiết bị và báo nhiệt độ. Nếu nhiệt độ vượt qua ngưỡng cho phép thì phần mềm sẽ gửi tin nhắn đến các cơ quan có thẩm quyền

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 chỉ 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 khối xử lí phần mềm một cách liên tục. Khi Khối xử lí phần mềm 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 thông qua phần mềm PicBasic Pro. Vi điều khiển có nhiệm vụ đọc nhiệt độ từ cảm biến, giao tiếp với khối LCD- Keypad và Khối công suất.

Khối Cảm Biến :

Page 53: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 42 -

Là một cảm biến nhiệt độ LM35 có khả năng đo nhiệt độ thực từ môi trường bên ngoài để xuất điện áp tương ứng cho Khối xử lí phần cứng. Cảm biến có độ sai số nhỏ thích hợp cho việc đo điện áp cho những nơi không đòi hỏi độ chính xác tuyệt đối

Khối Giao Tiếp LCD và Keypad :

Khối này bao gồm một LCD trắng đen 16x2 và một bàn phím ma trận có nhiệm vụ mở một thiết bị. Ví dụ: mở cửa,…Khối xử lí phần cứng có khả năng đặt mật mã và sẽ quét các phím nhấn từ Keypad và hiển thị ra LCD. Nếu đúng mật mã đã đặt thì mở cửa, còn sai 3 lần thì sẽ khóa phím.

Khối Công Suất:

Khối này bao gồm Moc3020 và Triac BT136 có nhiệm vụ giao tiếp giữa mức logic TTL với điện áp xoay chiều 220VAC. Khối công suất với dòng thấp, đáp ứng tải tiêu tụ công suất thấp và dân dụng như bóng đèn

4.3. SƠ ĐỒ NGUYÊN LÍ PHẦN CỨNG:

Hình 62 Sơ đồ nguyên lí phần cứng điều khiển thiết bị điện

Page 54: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 43 -

4.4. SƠ ĐỒ NGUYÊN LÍ TỪNG KHỐI

4.4.1. Khối xử lý trung tâm : 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ì PIC16F877A 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 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 CCSC, 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.

- 8k Flash Rom.

- 368 Bytes Ram.

- 5 Port điều khiển vào ra với tín hiệu điề 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.

- 2 bộ định thời timer0 và timer2 8 bit có thể lập trình được.

- 1 bộ định thời timer1 16 bit có thể hoạt động trong chế độ sleep với nguồn xung clock ngoài.

Page 55: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 44 -

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

- 1 bộ ADC với 8 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 Watchdogtimer.

- 1 cổng song song 8 bit với các tín hiệu điều khiển.

- 1 cổng nối tiếp.

- Hỗ trợ giao tiếp I2C.

- 15 nguồn ngắt.

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

- Nạp chương trình bằng cổng nối tiếp ICSP.

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

Sơ đồ chân của Vi điều khiển Pic 16F877A

Hình 63 Sơ đồ chân của PIC 16F877A

Page 56: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 45 -

Sơ đồ nguyên lý :

Hình 64 Sơ đồ kết nối PIC 16F877A

Thông số vi điều khiển PIC16F877A

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O.

Các đặc tính ngoại vi bao gồm các khối chức năng sau:

- Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào.

- Xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.

- Hai bộ Capture/so sánh/điều chế độ rông xung.

- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.

- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.

Page 57: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 46 -

- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR.

- Các đặc tính Analog : 8 kênh chuyển đổi ADECLARE 10 bit. Hai bộ so sánh. Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:

- 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 bộ nhớ 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.

- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân.

- Watchdog Timer với bộ dao động trong.

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

- Chế độ Sleep.

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

Page 58: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 47 -

Sơ đồ khối :

Hình 65 Sơ đồ khối bên trong của PIC 16F877A

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

Các cổng xuất nhập 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.

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

Page 59: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 48 -

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ó 5 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, đối với PORTD là TRISD vàđối với PORTE là TRISE). Bên cạnh đó PORTA còn là ngõ ra của bộ ADECLARE, 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ỉ 05h) : chứa giá trị các pin trong PORTA.

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.

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

PORTB

PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong 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,106h) : chứa giá trị các pin trong PORTB

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

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0.

Page 60: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 49 -

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 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port).

Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTD sẽ được trình bày cụ thể trong Phụ lục 1.

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

+ Thanh ghi PORTD : chứa giá trị các pin trong PORTD.

+ Thanh ghi TRISD : điều khiển xuất nhập.

+ Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP.

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 : chứa giá trị các chân trong PORTE.

+ TRISE : đ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.

+ ADECLAREON1 : thanh ghi điều khiển khối ADECLARE.

ADECLARE

ADECLARE (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự và số. PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân RA2 và RA3. 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: 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,

Page 61: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 50 -

kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit GO/DONE (ADECLAREON0<2>) được xóa về 0 và cờ ngắt ADIF được set

Thanh ghi ADECLAREON0 (địa chỉ 1Fh)

Hình 66 Cấu trúc thanh ghi ADECLAREN0

Bit 7-6 ADECLARES1:ADECLARES0:chọn xung cho ADECLARE

ADECLAREON1(ADECLARES2)

ADECLAREON0(ADECLARES1:ADECLARES0)

Xung Clock

0 00 Fosc/2

0 01 Fosc/8

0 10 Fosc/32

0 11 Xung nội

1 00 Fosc/4

1 01 Fosc/16

1 10 Fosc/64

1 11 Xung nội

Bảng 19 Chọn xung cho ADECLARE

Bit 5-3 CHS2:CHS0: Chọn kênh cho ADECLARE

+ 000 = Channel 0 (AN0)

+ 001 = Channel 1 (AN1)

+ 010 = Channel 2 (AN2)

+ 011 = Channel 3 (AN3)

+ 100 = Channel 4 (AN4)

+ 101 = Channel 5 (AN5)

+ 110 = Channel 6 (AN6)

+ 111 = Channel 7 (AN7)

Bit 2 GO/DONE: Bit trạng thái của ADECLAR

+ 1 = Báo ADECLARE đang hoạt động và tự động chuyển về 0 khi quá trình xử lí xong.

Page 62: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 51 -

+ 0 = ADECLARE chưa xử lí.

Bit 1 Unimplemented: Read as ‘0’

Bit 0 ADON: Bit bật ADECLARE

+ 1 = ADECLARE được cấp nguồn

+ 0 = ADECLARE tắt và không tiêu thụ dòng

Thanh ghi ADECLAREON1(Địa chỉ 9Fh)

Hình 67 Cấu trúc thanh ghi ADELAREON1

Bit 7 ADFM: Bit định dạng kết quả ADECLARE

+ 1 = Bên Phải. Six (6) Most Significant bits of ADRESH are read as ‘0’.

+ 0 = Bên Trái. Six (6) Least Significant bits of ADRESL are read as ‘0’.

Bit 6 ADECLARES2: Bit chọn xung Clock

Bit 3-0 PCFG3:PCFG0: Bit cấu hình điều khiển

Page 63: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 52 -

Bảng 20 Bảng lực chọn cấu hình điều khiển cho thanh ghi ADECLAREON1

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

1. Thiết lập các thông số cho bộ chuyển đổi ADECLARE:

- Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi ADECLAREON1)

- Chọn kênh chuyển đổi AD (thanh ghi ADECLAREON0).

- Chọn xung clock cho kênh chuyển đổi AD (thanh ghi ADECLAREON0).

- Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADECLAREON0).

2. Thiết lập các cờ ngắt cho bộ AD

- Clear bit ADIF.

- Set bit ADIE.

- Set bit PEIE.

- Set bit GIE.

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

4. Bắt đầu quá trình chuyển đổi (set bit GO/DONE).

5. Đợ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 . Nếu bit GO/DONE =0, quá trình chuyển đổi đã hoàn tất.

- Kiểm tra cờ ngắt.

6. Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit GO/DONE (nếu cần tiếp tục chuyển đổi).

7. Tiếp tục thực hiện các bước 1 và 2 cho quá trình chuyển đổi tiếp theo.

Page 64: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 53 -

Yêu cầu lấy mẫu của ADECLARE:

Để việc lây mẫu ADECLARE được chính xác ta dùng một tụ giữ C Hold với điện áp được nạp đẩy bằng với mức điện áp của ngõ vào. Trở kháng nguồn Rs và trở kháng chuyển mạch lấy mẫu nội ảnh hưởng trực tiếp đền thời gian nạp của tụ CHOLD. Trở kháng tối đa cho tín hiệu tương tự được đề nghị là 2.5k. Khi trở kháng bị giảm đi thì thời gian lấy mẫu cũng giảm theo. Sau khi kênh ngõ vào tương tự được chọn thì việc lấy mẫu phải được làm trước khi việc chuyển đổi bắt đầu.

Hình 68 Sơ đồ thời gian lấy mẫu

Page 65: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 54 -

Hình 69 Sơ đồ ngõ vào tương tự

Lựa chọn xung Clock cho ADECLARE:

Thời gian chuyển đổi ADECLARE được xác định cho mỗi Bit là TAD. Việc chuyển đổi yêu cầu cần đến thời gian tối thiểu là 12 TAD. Nguồn xung Clock cho việc chuyển đổi được lựa chọn bởi phần mềm. Có 7 mức lựa chọn cho phép là:

+ 2 TOSC.

+ 4 TOSC.

+ 8 TOSC.

+ 16 TOSC.

+ 32 TOSC.

+ 64 TOSC.

+ Bộ dao động nội RC(2-6us).

Để việc lấy mẫu chính xác thì thời gian lấy mẫu TAD phải tối thiểu là 1.6us được chọn bởi Xung Clock

Sự chuyển đổi ADECLARE

Nếu xóa Bit Go/Done trong khi đang chuyển đổi sẽ làm cho việc chuyển đổi bị hủy. Khi đó thanh ghi lưu kết quả sẽ không được cập nhật mà sẽ giữ lại kết quả của lần lưu trước đó.

Hình 70 Sơ đồ chu kì Tad

Page 66: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 55 -

Hoạt động của ADECLARE trong quá trình ngủ :

The A/D module có thể hoạt động trong chế độ Sleep. Cái này đòi hỏi nguồn xung Clock được đặt ở RC (ADECLARES1: ADECLARES0 = 11. Khi nguồn xung nội RC được chọn thì AD đợi 1 chu kì lệnh trước khi bắt đầu việc chuyển đổi. điều này cho phép lệnh Sleep được thực thi và sẽ loại trừ được nhiễu trong quá trình chuyển đổi. Khi việc chuyển đổi hoàn tất thì Bit Go/Done bị xóa và đưa kết quả đền thanh ghi

ADRES. Nếu ngắt AD cho phép thì vi điều khiển sẽ thoát chi chế độ ngủ.

Hình 71 Bảng Tổng hợp các Bit và Thanh ghi liên quan

Giao tiếp nối tiếp:

USART (Universal Synchronous Asynchronous Receiver Transmitter) là một trong hai chuẩn giao tiếp nối tiếp.USART còn được gọi là giao diện giao tiếp nối tiếp nối tiếp SCI (Serial Communication Interface). Có thể sử dụng giao diện này cho các giao tiếp với các thiết bị ngọai vi, với các vi điều khiển khác hay với máy tính. Các dạng của giao diện USART ngọai vi bao gồm:

+ Bất động bộ (Asynchronous).

+ Đồng bộ Master mode.

+ Đồng bộ Slave mode.

Hai Chân dùng cho giao diện này là RC6/TX/CK và RC7/RX/DT, trong đó RC6/TX/CK dùng để truyền xung clock (baud rate) và RC7/RX/DT dùng để truyền data. Trong trường hợp này ta phải set bit TRISC<7:6> và SPEN (RCSTA<7>) để cho phép giao diện USART. PIC16F877A được tích hợp sẵn bộ tạo tốc độ baud BRG (Baud Rate Genetator) 8 bit dùng cho giao diện USART. BRG thực chất là một bộ đếm có thể được sử dụng cho cả hai dạng đồng bộ và bất đồng bộ và được điều khiển bởi thanh ghi PSBRG. Ở dạng bất đồng bộ, BRG còn được điều khiển bởi bit BRGH ( TXSTA<2>).

Page 67: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 56 -

Thanh ghi TXSTA :

Hình 72 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 động ngoại).

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

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

+ 0 = 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 2 BRGH : Bit chọn tốc độ Baud nhanh

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

+ ‘1’ = Tốc độ nhanh.

+ ‘0’ = Tốc độ chậm.

- Chế độ đồng bộ : không dùng.

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

+ ‘1’ = TSR rỗng

+ ‘0’ = TSR đầy

Page 68: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 57 -

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

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 phép 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.

+ ‘0’ = không cho phép nhận tiếp tục.

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

Bit 3 ADDEN : Bit cho phép phát hiện địa chỉ

- Chế độ bất đồng bộ 9-bit(RX9 = 1) :

+ ‘1’ = cho phép phát 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.

Page 69: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 58 -

Bit 2 FERR: Framing Error bit

+ ‘1’ = Framing error (can be updated by reading RCREG register and receive next valid byte).

+ ‘0’ = No framing error.

Bit 2 FERR: bit báo lỗi khung truyền

+ ‘1’ = Lỗi khung truyền ( có thể được cập nhật bằng cách đọc thanh ghi RCREG và nhận Byte tiếp theo).

+ ‘0’ =

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)

Bảng tốc độ Baud: (BRG = 0)

Bảng tốc độ Baud : (BRG = 1)

Page 70: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 59 -

Chế độ truyền bất đồng bộ USART

Ở chế độ truyền này USART 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.

Chế độ truyền bất đồng bộ được chọn bằng cách xóa Bit SYNC (TXSTA<4>)

Module truyền bất đồng bộ USART bao gồm :

+ Phát tốc độ Baud.

+ Mạch lấy mẫu.

+ Bộ Truyền bất đồng bộ.

+ Bộ Nhận bất đồng độ.

Bộ truyền bất đồng bộ USART :

Page 71: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 60 -

Khồi truyền bất đồng bộ USART được chỉ trong hình dưới. Trung tâm của bộ truyền là thanh ghi truyền dịch TSR. Thanh ghi dịch chứa dữ liệu bên trong nó từ việc đọc/ghi bộ đệm truyền, TXREG. Thanh ghi TXREG được tải với dữ liệu bên trong phần mềm. Thanh ghi TSR không được tải dữ liệu cho đến khi Bit Stop đã được truyền từ lần tải cuối cùng. Khi Bit Stop được truyền, thanh ghi TSR được tải vào dữ liệu mới từ thanh ghi TXREG. Một khi thanh ghi TXREG truyền dữ liệu đến thanh ghi TSR, thanh ghi TXREG trống và bit cờ, TXIF (PIR<4>), được đặt.

Hình 73 Sơ đồ bộ truyền dữ liệu bất đồng bộ UART

Khi cài đặt cho việc truyền dữ liệu bất đồng bộ. Ta làm như sau:

1. Khởi tao thanh ghi SPBRG cho tốc độ Baud. Nếu muốn truyền với tốc độ cao thì đặ Bit BRGH

2. Cho phép truyền bất đồng bộ qua cổng nt bằng cách xóa Bit SYNC và đặt Bit SPEN lên 1

3. Nếu muốn sử dụng ngắt, thì cho phép đặt Bit TXIE lên 1

4. nếu muốn truyền 9-bit thì đặt Bit TX9 lên 1

5. Cho phép truyền bằng cách đặt Bit TXEN, mà cũng sẽ đặt Bit TXIF lên 1

6. Nếu chọn chế độ truyền 9-Bit, Bit thứ 9 sẽ được tải vào trong Bit TX9D

7. Tải dữ liệu đến thanh ghi TXREG(bắt đầu truyền)

8. Nếu sử dụng ngắt, thì Bit GIE và PEIE(Bit 7,6) của thanh ghi INTCON được đặt

Page 72: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 61 -

Bảng 21 Thanh ghi hỗ trợ

Bộ nhận bất đồng bộ:

Khối nhận được trình bày như hình dưới. 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 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àn OERR(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.

Page 73: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 62 -

Hình 74 Sơ đồ nhận dữ liệu

Để truyền dữ liệu ta cần làm những bước sau :

1. Khởi tạo thanh ghi SPBRG cho việc chọn sai số tốc độ Baud.

2. Cho phép truyề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.

3. Nếu sử dụng ngắt thì đặt Bit RCIE lên 1.

4. Nếu nhận 9-Bit thì đặt Bit RX9 lên 1.

5. Cho phép nhận bằng cách đặt Bit CREN lên 1.

6. Bit Cờ RCIF sẽ được đặt khi bộ nhận hoàn tất và 1 ngắt sẽ được phát đi nếu Bit RCIE lên 1.

7. Đọc thanh ghi RCSTA để lấy Bit thứ 9 .

8. Đọc dữ liệu nhận bằng cách đọc thanh ghi RCREG.

9. Nếu xuất hiện lỗi thì xóa lỗi bằng cách đặt Bit CREN lên 1.

10. Nếu sử ụng ngắt thì đặt Bit GIE và PEIE của thanh ghi INTCON lên 1.

Bảng 22 Thanh ghi liên quan

Page 74: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 63 -

4.4.2. KHỐI CẢM BIẾN:

Khối cảm biến ở đây là cảm biến nhiệt độ. Và nhiệt độ được ghi nhận giá trị thông qua cảm biến nhiệt độ LM35. Cảm biến nhiệt độ LM35 sẽ cảm biến tức là thu nhận các giá trị nhiệt độ thay đổi theo thời gian qua các đường kết nối gửi tới PIC16F877A. Và tại đây, vi điều khiển PIC sẽ xử lí dữ liệu này rồi gửi các thông tin nhiệt độ cập nhật trên giao diện phần mềm xây dựng. Đặc biệt, khi có hỏa hoạn thì nó sẽ tự động gửi tin nhắn tới người chủ nhà.

Sơ đồ nguyên lí:

Hình 75 Sơ đồ kết nối cảm biến LM35 với PIC

Giới thiệu linh kiện :

LM 35 là một cảm biến nhiệt được tích hợp sẵn có độ chính xác cao. Mà ngõ ra điện áp là tuyến tính theo tỉ lệ với nhiệt độ C và nhiệt độ K. LM35 không yêu cầu phải có thêm mạch tinh chỉnh bên ngoài để cung cấp độ chính xác ở nhiệt độ phòng.

Các tính năng của LM35:

+ Tuyến tính : +10mV/°C.

+ Sai số 0.5°C khi đạt đến 25°C.

+ Phạm vi đo lớn từ −55° to +150°C.

+ Hoạt động từ 4 đến 30 V.

Page 75: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 64 -

+ Dòng cực máng nhỏ hơn 60 μA.

Hình 76 Sơ đồ đặc tính của ứng dụng

Hình 77 Sơ đồ chân kết nối

Page 76: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 65 -

Bảng 23 Đặc tính điện của cảm biến LM35

Tính toán và thiết kế:

Dựa vào các đặc tính kĩ thuật như trên, nhóm đã thiết kế khối cảm biến dựa trên các thông số kĩ thuật của nhà sản xuất để áp dụng vào đề tài.

Ta kết nối chân số 2 của cảm biến với ngõ vào AN0 của Pic16F877A. Chân 1 được nối nguồn 5V nằm trong tiêu chuẩn từ 4 đến 30V. Chân 3 nối Ground (đất).

LM35 có:

+ Điện áp 0V khi ở 0°C.

+ Điện áp 0.29V khi ở 29°C.

Khi ta chọn độ phân giải 10 bit cho vi điều khiển Pic16F877A thì được tính toán nhiệt độ như sau :

ở 29°C :

Value_ADC = (290mV*1024)/5000mV = 59.392.

Khi đọc giá trị từ cảm biến LM35 thì trong vi điều khiển sẽ có giá trị là:

Value_ADC = 59.392.

Page 77: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 66 -

Vì vậy muốn đổi ra nhiệt độ °C thì : T°C = (59.392 * 5000/1024)/10 = 29.

Tức là T°C = 59.392 / 2.

4.4.3. KHỐI GIAO TIẾP LCD VÀ KEYPAD:

Sơ đồ nguyên lí :

Hình 78 Sơ đồ kết nối vi điều khiển PIC với LCD và Keypad

Giới thiệu linh kiện

LCD YM1602C :

Giới thiệu :

Page 78: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 67 -

Hình 79 Hình dạng thực tế của LCD YM1602C (mặt trước và mặt sau)

LCD YM1602C là LCD hiển thị được 2 hàng mỗi hàng hiển thị được 16 kí tự.

Thông số :

+ Kích thước hiển thị : 16x2 dòng

+ Màu hiển hiển thị : đen trắng

+ Chế độ giao tiếp : 8 hoặc 4 bít

+ Cỡ chữ hiển thị : 5x7 hoặc 5x10

+ Số chân : 14

Chân số Tên Chức năng

1 VSS Chân nối đất cho LCD, khi thiết ta nối chân này với GND của vi điều khiển.

2 VDD Chân cấp nguồn cho LCD, khi thiết kế ta nối chân này với VCC = 5V của mạch điều khiển.

3 Vee Dùng để điều chỉnh độ tương phản cho LCD.

4 RS

Chân chọn thanh ghi (register seclect). Nối chân RS xuống mức logic ‘0’ (GND) hay ‘1’ (VDD) để chọn thanh ghi.

+ Mức ‘0’ : Bus DB0-DB7 sẽ nối với thanh ghi lệnh của LCD (ở chế độ ‘ghi’- write)hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ‘đọc’- read).

+ Mức ‘1’ : Bus DB0-DB7 sẽ nối với thanh hgi dữ liệu DR trong LCD.

5 R/W Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/S xuống mức logic ‘0’ để LCD hoạt động ở chế độ ghi hoặc nối R/S lên mức logic ‘1’ để LCD hoạt động ở chế độ đọc.

6 E

Chân cho phép (Enable). Sau khi các tin hiệu được đặt lên DB0-DB7. Các lệnh chỉ được chấp nhận khi có một xung cho phép của chân E.

+ Ở chế độ ghi : dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh ghi ở bên trong nó khi xuất hiện một

Page 79: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 68 -

xung cạnh xuống (từ cao xuống thấp) của chân tín hiệu E.

+ Ở chế độ đọc : dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên ở chân E và dữ liệu sẽ được giữ ở DB0-DB7 cho tới khi nào chân E xuống mức thấp.

7-14 DB0- DB7

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có hai chế độ sử dụng 8 đường bus này :

+ Chế độ 8 bit : dữ liệu được truyền trên cả 8 đường này, bit MSB với là bit DB7.

+ Chế độ 4 bit : dữ liệu được truyền trên 4 đường DB4 –DB7, bit MSB với là bit DB7.

Sơ đồ chân :

Hình 80 Sơ đồ chân của LCD trong thực tế

Page 80: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 69 -

Sơ đồ khối :

Hình 81 Cấu trúc theo sơ đồ khối của LCD

Chức năng Nguồn Điều Kiện Thấp nhất

Loại Lớn nhất

Đơn vị

Nguồn cung cấp(mức logic)

VDD 4.8 5 5.2 V

Nguồn cung cấp(LCD)

V0 Ta = 25 4.5 4.8 4.9 V

Điện áp ngõ vào VIH

VIL

HL 0.8VDD

VSS --

VDD

0.2VSS V

Điện áp ngõ ra VOH

VOL

HL 0.8VDD

VSS --

VDD

0.2VSS

V

Dòng cung cấp I VDD =

3.3 3 5 mA

Bảng 24 Đặc tính điện của LCD

Chế độ Hoạt động Kí hiệu Thấp nhất

Lớn nhất

Đơn vị

Thời gian chu kì E tc 500 Ghi

Thời gian E TR,tF - 20 ns

Page 81: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 70 -

lên/xuống

Độ rông xung E tw 230

Thời gian thiết lập R/W và RS

tsu1 40

Thời gian giữ R/W và RS

th2 10

Thời gian giữ dữ liệu th2 10

Thời gian chu kì E tc 500

Thời gian E lên/xuống

TR,tF - 20 ns

Độ rông xung E tw 230

Thời gian thiết lập R/W và RS

tsu1 40

Thời gian giữ R/W và RS

th2 10

Đọc

Thời gian giữ dữ liệu th2 10

Bảng 25 Đặc tính thời gian của LCD

Mã (hex) Lệnh đến thanh ghi của LCD

1 Xóa màn hình hiển thị.

2 Trở về đầu dòng.

4 Dịch con trỏ sang trái.

5 Dịch con trỏ sang phải.

6 Dịch hiển thị sang trái.

7 Dịch hiển thị sang phải.

8 Tắt con trỏ, tắt hiển thị.

A Tắt hiển thị, bật con trỏ.

C Bật hiển thị, tắt con trỏ.

E Bật hiển thị, nhấp nháy con trỏ.

F Tắt con trỏ, nhấp nháy con trỏ.

10 Dịch vị trí con trỏ sang trái.

Page 82: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 71 -

14 Dịch vị trí con trỏ sang phải.

18 Dịch toàn bộ hiển thị sang trái.

1C Dịch toàn bộ hiển thị sang phải.

80 Ép con trỏ về đầu dòng thứ nhất.

CO Ép con trỏ về đầu dòng thứ hai.

38 Hai dòng, ma trận 5x7.

Bảng 26 Các lệnh điều khiển hiển thị LCD

Giới thiệu về Key Pad

Đặc tính :

+ Khi tiếp xúc thì dòng là 20mA, 5-24VDC.

+ Điện trở lúc tiếp xúc : 200 Ω.

+ Độ bền : 1.000.000 lần nhấn.

+ Hoạt động ở nhiệt độ : - 20 đến 60°C.

Kết nối LCD :

+ Chân VDD lên mức 5V.

+ Chân VSS xuống mức 0V.

+ Chân V0 vào một biến trở 20K.

+ Chân RS và E tương ứng RC0 và RC1.

+ Chân D4→D7 được kết nối tương ứng RB4→RB7.

+ Chân RW không sử dụng vì chỉ dùng với mục đích ghi, không dùng chế độ đọc

+ Sử dụng chế độ ghi dữ liệu 4bit và 2 hàng.

Page 83: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 72 -

Kết nối Keypad 3x4 :

Ba Cột được nối với 3 điện trở kéo lên tương ứng R1,R2,R3 đều có giá trị bằng 10K và nối vào chân RD0-RD2 . Ba diện trở này được cấp bởi nguồn 5V . Và 3 chân này được đặt là ngõ vào trong vi điều khiển.

Bốn Hàng được nối trực tiếp với RD4-RD7 và 4 chân này được đặt là ngõ ra của vi điều khiển.

Điện trở 10K để hạn dòng cho ngõ vào của vi điều khiển và để mức logic của cột về 0V nếu được nhấn.

Giới thiệu linh kiện Max232

Sơ đồ chân:

Hình 82 sơ đồ chẩn của IC Max232

Page 84: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 73 -

Sơ đồ nguyên lý:

Hình 83 Sơ đồ cấu tạo bên trong và kết nối bên ngoài cho Max232

Thông số kỹ thuật:

+ Hoạt động với nguồn cung cấp 5V.

+ Tốc độ truyền dữ liệu có thể nâng lên 120kbit/s.

+ Hai bộ đệm và bộ nhận.

+ Mức điện áp ngõ vào lớn nhất + 30V.

+ Dòng vào mức thấp 8mA.

Ứng dụng :

+ Battery-Powered Systems

+ Terminals

+ Modems

+ Computers

Thông tin mô tả:

Max232 là một bộ đôi driver/receiver (bộ đệm/bộ nhận) mà bao gồm phát điện áp điện dung để cung cấp mức điện áp cho Max232 từ một nguồn đơn 5v. Mỗi bộ

Page 85: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 74 -

nhận chuyển ngõ vào Max232 đến mức 5V TTL/CMOS. Những bộ nhận này có điện áp ngưỡng là 1.3V và đặc tính trễ điện là 0.5V và có thể chấp nhận 1 ngõ vào điện áp lớn nhất là + 30V. Còn mỗi bộ đệm chuyển mức ngõ vào TTL/CMOS thành mức ngõ ra Max232.

Bảng trạng thái :

Sơ đồ logic :

Bảng đặc tính :

Page 86: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 75 -

Tính toán và thiết kế :

Từ sơ đồ nguyên lý ta thấy được :

Chân RC6-RC7 của Pic16F877A được nối tương ứng với chân T1IN(11) và R1OUT(12) của Max232.

Từ Max232 có các chân T1OUT(14) và R1IN(13) tương ứng nối với chân số 2(Receiver) và 3(Transmit) của RS232 – DB9

Chân RC6 từ Pic16F877A truyền dữ liệu vào chân T1IN tương ứng với mức áp TTL và qua bộ đệm trong Max232 sẽ nâng mức điện áp thay đổi tương ứng. Mức điện áp 0V-5V của Pic16F877A sẽ tương ứng với + 12V của RS232. Chân T1OUT của Max232 sẽ nối với chân 2 của RS232 để nhận dữ liệu vào bộ đệm của máy tính. Tương tự, chân RC7 là chân nhận dữ liệu được kết nối với chân R1OUT(12) của Max232 và chân R1IN của Max232 sẽ nhận dữ liệu từ chân 3 của RS232. Lúc này mức áp + 12V sẽ được chuyển thành mức 0-5V TTL.

Các tụ 10uF được mắc theo yêu cầu bắt buộc của nhà sản xuất.

Page 87: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 76 -

4.4.4. KHỐI CÔNG SUẤT

SƠ ĐỒ NGUYÊN LÍ

Hình 84 Sơ đồ kết nối của PIC với thiết bị công suất

Giới thiệu linh kiện :

Triac BT136:

Hình 85 Hình dạng thực tế, sơ đồ mạch điện và kí hiệu lý thuyết

Với:

Chân Miêu tả

1 Chân đầu cuối 1

Page 88: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 77 -

2

3

Chân đầu cuối 2

Gate

Thông tin tra cứu nhanh:

Kí hiệu Miêu tả Max Đơn vị

VDRM

IT(RMS)

ITSM

Điện áp ngắt mạch cực đại lặp lại.

Dòng điện thuận RMS

Dòng điện thuận không lặp lại

600

4

25

V

A

A

Các thông tin cần biết về triac khi sử dụng:

- Điện áp phân cực thuận và nghịch. - Dòng điện cực đại. - Dòng giữa IH. - Áp cổng và dòng cổng kích khởi. - Tốc độ chuyển mạch.

Triac có thể được coi như SCR lưỡng cực vì nó có thể dẫn điện theo hai chiều. Từ cấu tạo, ta thấy Triac như được gộp bởi SCR PNPN dẫn điện theo chiều từ trên xuống dưới, kích bởi dòng cổng dương và một SCR NPNP dẫn điện theo chiều từ dưới lên, kích bởi dòng cổng âm. Hai cực còn lại T1 và T2 còn được gọi là hai đầu cuối chính.

Đặc tuyến V-I của Triac có dạng như sau:

Hình 86 Đặc tuyến V-I của Triac

Page 89: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 78 -

Do đầu T2 dương hơn T1, để triac dẫn điện ta kích dòng cổng dương và khi đầu T2 âm hơn T1 ta có thể kích dòng cổng âm.

Thật ra, do sự tương tác của vùng bán dẫn, Triac được nảy theo 4 cách khác nhau, được trình bày bằng hình vẽ sau:

Hình 87 Các dạng nảy của Triac

Cách 1 và cách 3 nhạy nhất, tiếp theo là cách 2 và cách 4. Do tính dẫn điện được cả hai chiều nên Triac được sử dụng phổ biến trong mạch điện xoay chiều. Sau đây là một ứng dụng của Triac trong mạch điện xoay chiều:

Hình 88 Một ứng dụng của Triac trong mạch điện

Opto Moc3020:

Opto hay còn gọi là cách ly quang là linh kiện tích hợp có cấu tạo gồm 1 led và 1 photo diot hay 1 photo transitor. Được sử dụng đẻ các ly giữa các khối chênh lệch nhau về điện hay công suất nhu khối có công suất nhỏ với khối điện áp lớn. Sơ đồ mạch nguyên lý cho opto:

Page 90: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 79 -

Hình 89 cấu trúc bên trong của Opto Moc3020

Nguyên lý hoạt động:

Khi có dòng nhỏ di qua 2 đầu của led có trong opto làm cho led phát sáng. Khi led phát sáng làm thông 2 cực của photo diot, mở cho dòng điện chạy qua.

Tính toán và thiết kế

Khối công suất bao gồm: Triac MOC2030, OPTO BT136, Led hiển thị, điện trở 100Ω và 220Ω được kết nối như sơ đồ trên.

Điện trở 100Ω :

R100 = (Vcc - Vled1 – Vled2 )/ 10mA

Với Vled1 và Vled2 đều tiêu thụ điện áp để có thể phát quang là 2V và dòng tương ứng là 10mA. Điện áp Vcc là điện áp nguồn 5v :

R100 = (5 – 2 – 2)/ 10 = 100 Ω

Điện trở 220Ω :

R220 = (Vcc - Vled)/ 10mA

Với Vled tiêu thụ điện áp là 3V và dòng tương ứng là 10mA. Điện áp Vcc là điện áp nguồn 5v :

R220 = (5 – 3)/ 10mA = 200Ω

Ta có thể chọn 220Ω vì trong thực tế không có điện trở 200Ω

R4 là điện trở hạn dòng vốn có trong mạch kích triac dùng MOC3020

Khi tải có tính cảm, ví dụ thường là động cơ, thì cần có R5 và C7 nhằm giảm thiểu độ biến động điện áp quá lớn (dv/dt) khi cắt tải khỏi lưới. MOC3020 chỉ có thể chịu được tốc độ biến thiên điện áp tối đa khoảng hơn một chục Volt/micro giây. Nếu quá ngưỡng đó thì sẽ không ổn. Khi tải là thuần trở, sự biến thiên của điện áp chỉ đơn thuần là sự thay đổi hình sin của điện áp lưới với tần số 50/60Hz, dv/dt trong trường hợp này là nhỏ, không cần R5 và C7. Khi tải có tính cảm, sự biến thiên điện áp đặc biệt

Page 91: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 4 Thiết Kế

GVHD_Trần Thu Hà ‐ 80 -

lớn khi cắt tải khỏi lưới, dv/dt vì thế có thể rất lớn, phải dùng R5 và C7 để hạn chế, đảm bảo trong dải cho phép của linh kiện.

Page 92: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 81 -

CHƯƠNG 5

XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN 5.1. XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN CHO PHẦN CỨNG

Phần mềm điều khiển cho phần cứng là chương trình điều khiển để nạp vào cho PIC 16F877A. Khi PIC16F877A đã được nạp chương trình điều khiển, kết hợp với các ngoại vi khác thì PIC sẽ tự động xử lí các dữ liệu mà nó nhận được như nhiệt độ, các tin nhắn điều khiển gửi tới… Phần mềm tương ứng để lập trình cho PIC là Pic Basic pro. Đây là một ngôn ngữ lập trình đơn giản, dễ hiểu, dễ ứng dụng.

LƯU ĐỒ NHẬN DỮ LIỆU VÀ ĐỌC NHIỆT ĐỘ

Page 93: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 82 -

Giải thích:

Trong phần mềm Picbasic Pro, phần khởi tạo ADC cho Pic thật đơn giản. Nhóm sử dụng độ phân giải 10bit, lưu kết quả bên trái của 2 thanh ghi kết quả. Thời gian lấy mẫu 50us và sử dụng kệnh RA0 làm chân nhận tín dữ liệu.

ADIN_RES 10 ' ket qua 10 bit ADIN_STIME 50 ' thoi gian lay mau

TRISA.0 = 1 'kenh RA0 nhan tin hieu

ADCON1 = %10001110' chon ket qua 10bit ben trai cua thanh ghi ket qua

ADCON0 = %11000001 'chon xung noi,RA0,va ADON = 1

Sau đó ta bắt đầu nhận dữ liệu từ máy tính truyền xuống để thực hiện các yêu cầu tắt mở đèn. Tiếp theo cho nhận nhiệt độ từ chân RA0 và gửi nhiệt độ lên phần mềm của máy tính.

LƯU ĐỒ GIAO TIẾP KEYPAD VÀ LCD:

Page 94: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 83 -

Giải thích:

Trong phần mềm Picbasic Pro hỗ trợ rất đầy đủ cho việc quét phím cũng như khởi tạo cho việc ghi dữ liệu ra LCD đơn giản nhất với vài dòng lệnh. Khi quét phím thì kiểm tra các hàng của ma trận phím có khác số hex F0 hay không. Nếu kiểm tra khác thì có nghĩa là có phím được nhấn. Lúc này chương trình thực hiện chương trình lấy mã phím được nhấn sau đó xuất mã phím ra LCD. Vì mật khẩu ta đặt ra có 4 số nên việc kiểm tra nhấn sẽ được thực hiện 4 lần. Sau đó xác nhận 4 số này bằng cách

Page 95: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 84 -

nhấn nút Enter, nếu mật khẩu nhập vào là đúng với mật khẩu đặt trước thì sẽ thực hiển mở cửa và đèn Open sáng. Ngược lại nếu sai mật khẩu 3 lần thì sẽ bị khóa phím và đèn Lock sáng. Trong lúc đã nhấn phím nếu muốn xóa phím và trở về ban đầu thì bấm Clear. Khi phím bị khóa thì các phím không sử dụng được kể cả phím Clear. Nếu nhận được yêu cầu mở cửa từ phần mềm thì đèn Open sáng. Sau khi bị khóa phím ta chỉ có thể mở cửa bằng cách soạn tin nhắn “Open” và gửi đến cho phần mềm xử lí rồi phần mềm mới gửi yêu cầu mở cửa đến cho vi điều khiển Pic.

5.2. XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN TRÊN MÁY TÍNH

YÊU CẦU GIAO DIỆN PHẦN MỀM TRÊN MÁY TÍNH:

- Giao diện được trình bày đẹp mắt

- Dễ dàng cho việc sử dụng

- Ngôn ngữ giao diện phần mềm có thể phù hợp cho nhiều đối tượng.

- Hiển thị đầy đủ các thông tin của các thiết bị

Từ những yêu cầu trên nhóm làm đề tài đã chọn ngôn ngữ lập trình phù hợp là VB.net (Visual Basic. net). Với những tính năng của VB.net, nó có thể đáp ứng những yêu cầu trên một cách dễ dàng và tốt nhất.

YÊU CẦU CHƯƠNG TRÌNH PHẦN MỀM XÂY DỰNG

- Phần mềm xây dựng phải đáp ứng tốt với yêu cầu.

- Phần mềm xây dựng phải bắt tay tốt với phần cứng và hoạt động ổn định.

LƯU ĐỒ GIẢI THUẬT TỔNG QUÁT CHƯƠNG TRÌNH CHÍNH

Page 96: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 85 -

Page 97: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 86 -

Giải thích: Bộ phần mềm lập trình Visual Basic 2008 có tích hợp các Timer phục vụ ngắt cho nhiều công việc. Khi ta cài đặt giá trị thời gian thì khi đến đúng khoảng thời gian này thì Timer sẽ nhảy đến chương trình cần thực thi.

Đối với Ngắt Timer1: Thời gian cài đặt cho việc thực thi này là mỗi một giây sẽ quay lại thực hiện 1 lần. Thực hiện mở cổng cho viêc kết nối với điện thoại để kiểm tra được tin nhắn yêu cầu đến hay chưa thì cần truyền lệnh đọc tin nhắn cho cổng Com của điện thoại, lúc đó điện thoại sẽ trả lời với phần mềm rằng tin nhắn có hay không một cách tự động. Nếu một tin nhắn được gửi đến thì phần mềm sẽ kiểm tra đúng số điện thoại cài đặt hay không. Nếu số điện thoại không đúng thì phần mềm sẽ không thực hiện. Ngược lại phần mềm sẽ gửi yêu cầu đến cho Pic để tắt mở các thiết bị. Trong khi đó muốn kiểm tra trạng thái của thiết bị thì cần nhắn một tin yêu cầu “Status”.

Đối với Ngắt Timer3: Thời gian ngắt này được đặt cứ mỗi 5s thì quay lại thực thi. Thực hiện mở cổng Com RS232. Sau đó ta cần khởi tạo cho việc vẽ biểu đồ bằng phân mềm Graphic Server.Net, phần mềm này hỗ trợ việc vẽ biểu đồ trên nền .Net. Ta cần khởi tạo mảng để chứa dữ liệu cần vẽ, mặc định ở đây là nhiệt độ, mảng này chứa 6 phần tử nhiệt độ tương ứng với mức thời gian 10s→60s. Sau đó thực hiện việc nhận nhiệt độ cần vẽ và gán vào 6 phần tử này.

Page 98: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 87 -

LƯU ĐỒ CHƯƠNG TRÌNH CON ĐỌC NHIỆT ĐỘ

Giải thích:

Khi được mở cổng thì tương ứng với thời gian Timer1. Nhiệt độ được nhận vào thông qua cổng nhận RS232. Phẩn mềm sẽ nhận nhiệt độ sau dó sẽ hiển thị trên Form của phần mềm. Nếu phần mềm nhận được nhiệt độ quá cao so với bình thường thì lúc này nó sẽ gửi tín nhắn để báo cho các cơ quan thẩm quyền và chủ nhân và thực hiện việc cắt các thiết bị trong nhà để đảm bảo cho an toàn hệ thống điện.

Page 99: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 88 -

LƯU ĐỒ CÀI ĐẶT LỊCH LÀM VIỆC (SCHEDULE TASKS)

Lưu đồ lúc load Form:

Giải thích:

Mục đích chính của lưu đồ này là khi ta đặt lịch làm việc vào 1 list box thì khi tắt Form này đi sau đó bật lại trong list box sẽ hiện lại những gì mình đã đặt trước đó. Công việc đấy được thực hiện bằng việc lưu nội dung đã đặt vào 1 file Text. Sau đó khi load Form thì thực hiện việc đọc lại file Text để lấy lại nội dung đã cài đặt và đưa vào list box.

Page 100: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 5 Xây Dựng Phần Mềm Điều Khiển

GVHD_Trần Thu Hà ‐ 89 -

Lưu đồ thực hiện nút bấm:

Giải thích:

+ Nút Add có chức năng thêm sự kiện vào một list box để tiện việc theo dõi.

+ Nút Clear để xóa nội dung trong list box để cài đặt lại các sự kiện.

+ Nút Confirm có nhiệm vụ đưa các sự kiện vào hoạt động và lưu các sự kiện vào một file Text để lưu trữ các sự kiện khi tắt Form.

+ Nút Exit để thoát chương trình.

Page 101: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 6 Thi Công

GVHD_Trần Thu Hà ‐ 90 -

CHƯƠNG 6

THI CÔNG 6.1. THI CÔNG PHẦN CỨNG

Trong quá trình thi công phần cứng, nhóm thực hiện đề tài đã sử sử phần mềm khá thông dụng trong lĩnh vực thiết kế board mạch điện tử. Đó là phần mềm Orcad. Phần mầm này là phần mềm thiết kế rất mạnh để phục vụ việc thiết kế. Nó đáp ứng tốt các kỹ thuật cần thiết để làm một board mạch điện tử hoàn chỉnh.

Board mạch thi công được vẽ trên hai lớp. Đó là lớp TOP và lớp BOTTOM. Như vậy việc cho phần cứng trở lên dễ dàng, đẹp và đảm bảo tính ổn định của mạch.

Hình 90 Sơ đồ bố trí linh kiện trên board mạch

Page 102: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 6 Thi Công

GVHD_Trần Thu Hà ‐ 91 -

Hình 91 Sơ đồ chạy dây linh kiện của mạch trên lớp TOP

Page 103: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 6 Thi Công

GVHD_Trần Thu Hà ‐ 92 -

Hình 92 Sơ đồ chạy dây linh kiện trên lớp BOTTOM

Sau khi board được vẽ bằng phần mềm Orcad, được thi công và kiểm tra thì mạch đã đáp ứng tốt các yêu cầu về mặt thẩm mĩ và kỹ thuật. Mạch có cấu trúc đẹp, sắp xếp linh kiện hợp lí và quan trọng hơn là mạch đã chạy, hoạt động ổn định trong thực tế.

Page 104: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 6 Thi Công

GVHD_Trần Thu Hà ‐ 93 -

Hình 93 Mạch phần cứng thi công hoàn chỉnh

Page 105: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 6 Thi Công

GVHD_Trần Thu Hà ‐ 94 -

6.2. GIAO DIỆN PHẦN MỀM TRÊN MÁY TÍNH

Với việc sử dụng phần mềm VB.net, giao diện phần mềm sau khi được xây dựng xong có giao diện đẹp, bắt mắt, dễ xử dụng, đáp ứng được yêu cầu của đề tài.

Hình 94 Giao diện điều khiển, hiển thị của phần mềm trên máy tính

Page 106: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 7 Kết Luận

GVHD_Trần Thu Hà ‐ 95 -

CHƯƠNG 7

KẾT LUẬN 7.1. TÓM TẮT

Sau hơn sáu tuần thực hiện kể từ lúc nhận đề tài, bằng sự nỗ lực cố gắng của bản thân mỗi cá nhân và sự phân chia, phối hợp công việc hợp lí, chặt chẽ, nhịp nhàng giữa mỗi thành viên của nhóm, bên cạnh đó còn là sự hướng dẫn nhiệt tình, tận tâm của cô Trần Thu Hà, quyể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ệ thống điều khiển thiết bị điện từ xa qua tin nhắn SMS. Trong quá trình thực hiện đề tài, chúng 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ế.

Phần mềm xây dựng cho từng module nhỏ tương ứng cũng như giao diện hiển thị, điều khiển cho toàn hệ thống được xây dựng với giao diện thân thiện, dễ sữ dụng với hai ngôn ngữ tiếng Anh và tiếng Việt, và đã hoạt động tốt.

Trong quyển đồ án này, người thực hiện đã trình bày khá đầ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 và phần mềm tương ứng. 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.

Hệ thống điều khiển thiết bị trong nhà từ xa thông qua tin nhắn SMS được thực hiện như trong đề tài là một hệ thống với các chức năng đạt được như sau:

Hệ thống có thể điều khiển được thiết bị điện từ xa thông qua tin nhắn SMS.

+ Sau khi gửi tin nhắn thì với nội dụng tin nhắn đó, bộ xử lí sẽ thực thi quá trình xử lí, sau đó là điều khiển thiết bị một cách tự động.

+ Tin nhắn được gửi đi từ người chủ nhà để điều khiển thiết bị điện và người chủ nhà cũng nhận được tin nhắn trả ngược lại với nội dụng tin nhắn là tình trạng hiện tại của các thiết bị cũng như nhiệt độ của ngôi nhà.

+ Hệ thống có khả năng được bảo vệ tốt, nghĩa là người sử dụng phải biết mật khẩu (password) thì mới đăng nhập được vào hệ thống đối với sử dụng tin nhắn SMS và đối với cửa ra vào thì cũng phải đăng nhập mật khẩu thông qua keypad mới vào được trong nhà.

+ Hệ thống có khả năng tự hoạt động nếu như người sử dụng có cài đặt lịch làm việc cho hệ thống.

Page 107: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 7 Kết Luận

GVHD_Trần Thu Hà ‐ 96 -

Giao diện phần mềm xây dựng điều khiển và hiển thị trạng thái thiết bị của hệ thống được xây dựng với giao diện thân thiện, chi tiết, đẹp mắt, dễ dàng cho người sử dụng với cả hai ngôn ngữ tiếng Anh và tiếng Việt. Người dùng chỉ cần có những kiến thức cơ bản về hệ thống là có thể sử dụng được phần mềm này.

Hệ thống có chức năng cảnh báo sự cố

+ Khối module cảm biến nhiệt độ được thiết kế, lập trình kết hợp với trung tâm xử lí có khả năng gửi thông tin dữ liệu nhiệt độ tới trung tâm xử lí. Ngoài ra còn có khả năng gửi tin nhắn ngược lại cho chủ nhà và tự động thi hành các thao tác được lập trình sẵn khi có hỏa hoạn sảy ra.

Hệ thống có giao diện phần mềm hiển thị các thông tin dữ liệu tương tự (analog).

+ Hiển thị nhiệt độ trên giao diện phần mềm, được xây dựng dạng biểu đồ theo thời gian giúp người chủ nhà có thể đưa ra các điều chỉnh thích hợp cho ngôi nhà.

Để thực hiện được các chức năng nêu trên, nhóm thực hiện đã tìm hiểu, nghiên cứu các vấn đề có liên quan tới đề tài như : họ PIC 16F877A, phương pháp đo nhiệt độ, phương pháp chuyển đổ tín hiệu tương tự sang tín hiệu số, các ngôn ngữ lập trình tương ứng như PICBASIC PRO, bộ lệnh AT Command dành cho điện thoại, VB.net và các vấn đề khác liên quan tới đề tài.

Nội dung chính của đề tài bao gồm những phần chính sau:

Phần kiến thức:

Trình bày cách thức giao tiếp và truyền dữ liệu.

Cách ứng dụng tin nhắn SMS để điều khiển thiết bị.

Các kỹ thuật kết nối thiết bị với thiết bị điều khiển trung tâm, với máy tính.

Phần thiết kế thi công:

Xây dựng sơ đồ khối cho toàn hệ thống.

Thiết kế hệ thống phần cứng phù hợp với yêu cầu của đề tài.

Xây dựng lưu đồ giải thuật.

Xây dựng phần mềm tương ứng.

Thi công, lắp ráp, hàn mạch và kiểm tra.

Cuối cùng, theo nhận định chủ quan của nhóm thực hiện đồ án thì quyển đồ án này đã đượ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 qua tới đề tài. Song do những điều kiện khách quan, đề tài này chỉ thực hiện một phần nhỏ đối với việc điều khiển cho một ngôi nhà

Page 108: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Chương 7 Kết Luận

GVHD_Trần Thu Hà ‐ 97 -

hoàn chỉnh. Đó là đo và hiển thị nhiệt độ, khả năng báo cháy, điều khiển hai thiết bị công suất.

7.2. HƯỚNG PHÁT TRIỂN ĐỀ TÀI:

Do thời gian thực hiện đề tài có hạn và lượng kiến thức cá nhân mỗi thành viên của nhóm là nhất định nên đề tài thực hiện xong chỉ đáp ứng được một phần nhỏ của một hệ thống hoàn chỉnh. Vì vậy, để đề tài này thêm phong phú hơn, mang nhiều tính thực tế hơn nữa, có khả năng ứng dụng cao hơn thì đề tài cần đưa thêm vào những yêu cầu như sau:

Ngoài việc giám sát trên máy tính, ta cũng có thể điều khiển Camera để chụp hình rồi sau đó gửi tin nhắn đa phương tiện đến điện thoại. Lúc này ta cần kết nối 1 Modem GSM thay thế cho việc kết nối điện thoại trong đề tài vì những ưu điểm của nó.

Ngoài việc điều khiển các thiết bị trong nhà và thiết bị dân dụng, ta còn có thể sử dụng tin nhắn SMS để truy cập vào cơ sở dữ liệu SQL của WinCC và điều khiển các máy móc công nghiệp thông qua phần mềm này. Lúc này ta cần xây dựng giao diện phần mềm kết nối với SQL của WinCC và lập trình cho WinCC lấy cơ sở dữ liệu đó để thực hiện các yêu cầu.

Sử dụng thêm nhiều loại cảm biến khác kết hợp với cảm biến nhiệt độ, chẳng hạn như cảm biến độ ẩm không khí,… và tất cả các thông số này nên được hiển thị trên cùng một giao diện phần mềm. Như thế người dùng có thể hình dung ra được toàn bộ không gian trong ngồi nhà.

Mở rộng điều khiển được nhiều hơn nữa các thiết bị trong nhà.

Phần cứng cho mỗi module cần được tách rời nhằm dễ dàng cho việc chỉnh sửa, thay đổi.

Đề tài không những chỉ áp dụng cho với các tòa nhà mà nên được mở rộng áp dụng đối với điều khiển các thiết bị sử dụng nơi công cộng.

Hy vọng với những hướng phát triển nêu trên cùng với những ý tưởng khác của các đồng nghiệp, của người đọc- những người đi sau - sẽ phát triển hơn nữa đề tài này, khắc phục những hạn chế, tồn tại của đề tài, làm cho đề tài trở nên phong phú hơn, mang tính ứng dụng cao hơn vào trong thực tế cuộc sống, phục vụ cho những lợi ích của con người trong tương lai.

Page 109: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp

GVHD_Trần Thu Hà ‐ 98 -

PHẦN C

PHỤ LỤC

Page 110: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 99 -

I. PHẦN MỀM VB.NET

1. GIỚI THIỆU

Ngôn ngữ BASIC (Beginner's All Purpose Symbolic Instruction Code) đã có từ năm 1964. BASIC rất dễ học và dễ dùng. Trong vòng 15 năm đầu, có rất nhiều chuyên gia tin học và công ty tạo các chương trình thông dịch (Interpreters) và biên dịch (Compilers) cho ngôn ngữ làm BASIC trở nên rất phổ thông. Năm 1975, Microsoft tung ra thị trường sản phẩm đầu tay Microsoft BASIC và tiếp đó Quick BASIC (còn gọi là QBASIC) và đã thành công rực rỡ.

Quick BASIC phát triển trong nền Windows nhưng vẫn khó khăn khi tạo giao diện kiểu Windows. Sau đó nhiều năm, Microsoft bắt đầu tung ra 1 sản phẩm mới cho phép ta kết hợp ngôn ngữ dễ học BASIC và môi trường phát triển lập trình với giao diện bằng hình ảnh (Graphic User Interface - GUI) trong Windows. Đó là Visual Basic Version 1.0.

Sự chào đời của Visual Basic Version 1.0 vào năm 1991 thật sự thay đổi bộ mặt lập trình trong Công Nghệ Tin Học. Trước đó, ta không có 1 giao diện bằng hình ảnh (GUI) với một IDE (Integrated Development Environment) giúp các chuyên gia lập trình tập trung công sức và thì gìờ vào các khó khăn liên hệ đến doanh nghiệp của mình. Mỗi người phải tự thiết kế giao diện qua thư viện có sẵn Windows API (Phương pháp Aplication Programming Interface) trong nền Windows. Điều này tạo ra những trở ngại không cần thiết làm phức tạp việc lập trình.

Visual Basic giúp ta bỏ qua những hệ lụy đó, chuyên gia lập trình có thể tự vẽ cho mình giao diện cần thiết trong ứng dụng ( Phương pháp Aplication) 1 cách dễ dàng và như vậy, tập trung nổ lực giải đáp các vần đề cần giải quyết trong doanh nghiệp hay kỹ thuật.

Ngoài ra, còn nhiều công ty phụ phát triển thêm các khuôn mẫu (modules), công cụ (tools, controls) hay ứng dụng (phương pháp Application) phụ giúp dưới hình thức VBX cộng thêm vào giao diện chính càng lúc càng thêm phong phú.

Khi Visual Basic phiên bản 3.0 được giới thiệu, thế giới lập trình lại thay đổi lần nữa. Kỳ này, ta có thể thiết kế các ứng dụng (aPhương pháplication) liên hệ đến Cơ Sở Dữ Liệu (Database) trực tiếp tác động (interact) đến người dùng qua DAO (Data Access Object). Ứng dụng này thường gọi là ứng dụng tiền diện (front-end phương pháp application) hay trực diện.

Phiên bản 4.0 và 5.0 mở rộng khả năng VB nhắm đến Hệ Điều Hành Windows 95. Phiên bản 6.0 đưa ra 1 phương pháp mới đối với Cơ Sở Dữ Liệu (Database) qua sự kết hợp của ADO (Active Data Object). ADO còn giúp các chuyên gia phát triển mạng nối với Cơ Sở Dữ Liệu (Database) khi dùng Active Server Pages (ASP).Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) do Microsoft thiết kế lại từ con số không. Visual Basic.NET

Page 111: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 100 -

(VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft 's .NET Framework. Do đó, nó cũng không phải là VB phiên bản 7. Thật sự, đây là ngôn ngữ lập trình mới và rất mạnh, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn đề khúc mắc khi lập trình. Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong ... hậu trường Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi.

2. CÁC TẬP LỆNH SỬ DỤNG

Người lập trình dùng Microsoft’s.NET Framework có thể sử dụng SerialPort class để truy cập vào thiết bị cổng COM. Những ứng dụng có thể sử dụng thuộc tính, những phương pháp và sự kiện của class để truy cập mà không phải dùng đến lập trình mức thấp hoặc Window API .

Truy cập đến PORT

Để truy cập vào cổng COM, ta đặt các tham số truyền tin, và mở một kết nối đến cổng .

Tìm Cổng

GetPortNames của lớp SerialPort là phương pháp trả về 1 mảng tên của tất cả cổng COM của hệ thống. Các yếu tố của mảng không được đảm bảo để là những chữ cái .

Phương pháp Sort có thể sắp xếp lại nếu cần .

VB Dim nameArray() As String ‘khai báo biến namArray nameArray = SerialPort.GetPortNames ‘nhận dữ liệu vào nameArray. Array.Sort(nameArray) ‘sắp xếp các chữ cái.

Mở Cổng

Trước khi truyền tin qua 1 cổng thì ứng dụng phải mở 1 kết nối đến SerialPort . Dùng phương pháp OPEN sử dụng những thông số được chỉ định hay thông số mặc dịnh chưa được chỉ định trước đó :

COM1.OPEN()

Để ngăn ngừa những điều không mong muốn, ứng dụng có thể đọc thuộc tính IsOpen của cổng để kiểm tra là cổng đang đóng trước khi mở cổng

Page 112: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 101 -

VB If (Not COM1.IsOpen) Then COM1.Open() End If

TIMEOUT

Là thời gian mà cổng chưa muốn nhận hoặc gửi dữ liệu thì nó sẽ thoát ra

VB myComPort.ReadTimeout = 3000 myComPort.WriteTimeout = 5000 Giá trị mặc định của cổng SerialPort.InfiniteTimeout, không bao giờ hết thời

gian.

Receive Threshold (Nhận giá trị ngưỡng)

Sự kiện DataReceived cho biết được ứng dụng đang đọc dữ liệu vào bộ đệm nhận hay không . Thuộc tính ReceivedBytesThreshold xác định xem có bao nhiệu Byte được có mặt trước khi xảy ra sự kiện . Mặc dịnh là 1 byte . Nếu bạn đặt thuộc tính với số quá lớn

Close Port

Một ứng dụng mà hoàn tất việc truyền tin thì cổng sẽ đóng và trả cổng cho ứng dụng khác . Phướng pháp Close sẽ đóng cổng và xóa bộ đệm truyền, nhận . Phương pháp Dispose sẽ đóng cổng và giải phóng các nguồn đang dược sử dụng để nó có thể mở cổng lại ngay sau khi đóng cổng.

Trước khi đóng thì nên xem xét xem cổng đang đóng hay chưa. Khi Cổng đang truyền mà ta thực hiện đóng cổng có thể sẽ gây ra lỗi hệ thống . để tránh điều này thì ta phải đợi tất cả dữ liệu được truyền xong trước khi đóng cổng. Thuộc tính WriteTimeout được sử dụng, vì khi time out thì BytetoWrite của cổng được đặt về 0, điều này sẽ không xảy ra lỗi khi đóng cổng .

VB If (Not (COM1 Is Nothing)) Then ‘ nếu cổng tồn tại If COM1.IsOpen Then ‘ nếu cổng đang mở Do While (COM1.BytesToWrite > 0) ‘ dữ liệu đang truyền Loop COM1.Dispose() ‘ truyền xong thì đóng cổng và xóa bộ đệm End If End If Có một cách khác để đóng cổng là sử dụng khối Using … End Using Using COM1 As New SerialPort

Page 113: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 102 -

COM1.PortName = "COM1" COM1.BaudRate = 9600 COM1.Open() COM1.WriteLine("hello") End Using ;sau khi truyền xong thì tự động đóng cổng và xóa đệm

Chú ý: đóng cổng mất một khoảng thời gian nên cần delay trước khi mở lại cổng.

Transmit data (Truyền dữ liệu)

NetFrameWork hỗ trợ nhiều phương pháp cho đọc và gửi dữ liệu cổng COM

Lớp SerialPort cung cấp phương pháp đọc và ghi ra Port . Ứng dụng cũng có thể sử dụng thuộc tính BaseStream của SerialPort để chứa BinaryReader, BinaryWriter, StreamReader, and StreamWriter

Loại dữ liệu cơ bản cho dữ liệu cổng COM là loại dư liệu mảng

Oject Method Data Type Blocking

Write Byte array, Char array or

subarray, String Yes

Write line String+NewLine. NewLine

or NewLiney. Yes

Serial Port

Write Byte Byte Yes

Trong những ứng dụng để truyền những dữ liệu dạng TEXT, có số lượng lớn hơn Byte. Ta có lớp SerialPort bao gồm phương pháp mã hóa và giải mã những dữ liệu loại này. Cho ví dụ, những ứng dụng mà muốn gửi “CMD1”:

VB Dim datatosend(4) As Byte Datatosend(0) = Asc(“C”) Datatosend(1) = Asc(“M”) Datatosend(2) = Asc(“D”) Datatosend(3) = Asc(“1”) COM1.write(datatosend,0,4) VB Dim datatosend As String Datatosend = “CMD1” COM1.Writeline (datatosend) Đó là phương thức truyền mảng kí tự theo lệnh Write

Ta có thể truyền 1 chuỗi như trên với lệnh Writeline

Còn truyền theo Byte thì có WriteByte

Đọc dữ liệu từ Port

Page 114: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 103 -

Lớp SerialPort cung cấp 5 giải pháp để đọc một văn bản.

Phương pháp ReadExisting trả về nội dung của một chuỗi tất cả các kí tự có trong bộ đệm nhận được. Nếu bộ đệm rỗng, thì phương pháp sẽ trả về 1 chuỗi rỗng tương tự.

Dim receivedText as String receivedText = myComPort.ReadExisting

Phương pháp ReadLine là đọc tất cả các dữ liệu nhận được cho đến khi gặp kí tự xuống dòng mới:

Dim receivedText as String

receivedText = myComPort.ReadLine

Chuỗi trả về chứa mọi dữ liệu cho đến khi cập nhật Newline. Kí tự NewLine được gỡ bỏ chi bộ đệm nhận. Nếu nộ đệm nhận không chứa đựng một NewLine, thì Phương pháp sẽ đợi đến khi có giá trị ReadTimeout

Phương pháp ReadTo cũng giống như ReadLine nhưng cho phép xác định một vài giá trị như dấu phân cách

Phương pháp Read co thể sao chép kí tự nhận cho trước thành dạng kí tự mảng tại địa chỉ OffSet đặt trước

Ví dụ này ta cho đọc đến 3 kí tự nhận, và lưu trữ những Bytes này bắt đầu tại địa chỉ Offset 0 trong mảng Byte, và hiển thị ra kết quả:

Dim charBuffer(7) As Char

Dim count As Integer

myComPort.Read(charBuffer, 0, 3)

For count = 0 To 2

Console.WriteLine(CStr(charBuffer(count)))

Next count

Nếu bộ đệm nhận chứa các kí tự “a”,”b”,”c” thì sẽ hiển thị như sau

Số Bytes nhận = 3

a

b

c

Những kí tự mà đã được đọc thì không còn trong bộ đệm nhận.

Khi đọc một mảng Byte, phương pháp Read lưu trữ một Byte trong mỗi phần tử của màng.

Page 115: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 104 -

Khi đọc một mảng Kí tự thì phương pháp read lưu trữ dữ liệu nhận như kí tự Unicode. Mỗi phần tử trong mảng kí tự biểu diễn cho một kí tự.

Phương pháp ReaDECLAREhar đọc 1 kí tự đơn từ bộ đệm nhận. Phương pháp này trả về một số nguyên mà chứa một kí tự được mã hóa.

Dim charToRead As Integer charToRead = myComPort.ReaDECLAREhar() Console.WriteLine(ChrW(charToRead))

3. GIAO DIỆN CHƯƠNG TRÌNH ĐIỀU KHIỂN

Giao diện lúc đăng nhập:

Giới thiệu các thành phần :

Khung Username : nhập tên người dùng, mặc định là “SPKT”

Khung Password : nhập mật mã do người dùng đặt, mặc định là “1234”. Ta có thể thay đổi trong chương trình chính.

Khi nhập sai tên và mật khẩu trong 3 lần thì chương trình sẽ tự tắt.

Chú ý : khi trong quá trình đăng nhập không được bấm dấu “X” để thoát ra. Vì khi đăng nhập thì chương trình chính vẫn được Load lên nhưng các chức năng được ẩn đi nên muốn tắt chương trình thì bấm nút Cancel

Lập trình :

Imports System.IO

Public Class LoginForm1

Public username As String

Public password As String

Page 116: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 105 -

Public i As Integer

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

Dim pw As New StreamReader("password.txt")

password = pw.ReadLine

pw.Close()

If UsernameTextBox.Text = username Then

If PasswordTextBox.Text = password Then

form1.Enabled = True

form1.username = Me.username

Me.Close()

End If

Else

i = i ‐ 1

MsgBox("Bạn còn " & " " & i & " " & " lần nhập", MsgBoxStyle.Information, "Thông Báo")

End If

If i = 0 Then

form1.Close()

Me.Close()

End If

End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click

Me.Close()

My.Forms.form1.Close()

End Sub

Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

i = 3

username = "SPKT"

End Sub

Page 117: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 106 -

End Class

4. GIAO DIỆN CHÍNH LÚC CHƯA KẾT NỐI THIẾT BỊ

5. CHƯƠNG TRÌNH “ĐỌC TIN NHẮN VÀ TRUYỀN DỮ LIỆU ĐIỀU KHIỂN CHO PIC”

Public bitspersecond As Integer

Public databits As Integer

Public parity As String

Public stopbit As String

Public handshaking As String

‘ Khai báo biến

SerialPort1.BaudRate = ComboBox3.Text

SerialPort1.PortName = ComboBox1.Text

SerialPort2.PortName = ComboBox2.Text

SerialPort2.BaudRate = bitspersecond

SerialPort2.DataBits = databits

If stopbit = "None" Then SerialPort2.StopBits = StopBits.None

Page 118: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 107 -

If stopbit = "One" Then SerialPort2.StopBits = StopBits.One

If stopbit = "Two" Then SerialPort2.StopBits = StopBits.Two

If parity = "None" Then SerialPort2.Parity = Ports.Parity.None

If parity = "Odd" Then SerialPort2.Parity = Ports.Parity.Odd

If parity = "Even" Then SerialPort2.Parity = Ports.Parity.Even

If handshaking = "None" Then SerialPort2.Handshake = Handshake.None

If handshaking = "XOnOff" Then SerialPort2.Handshake = Handshake.XOnXOff

If handshaking = "RequestToSend" Then SerialPort2.Handshake = Handshake.RequestToSend

‘ chọn thuộc tính

If Not SerialPort1.IsOpen Then

SerialPort1.Open()

End If

If (Not SerialPort2.IsOpen) Then

SerialPort2.Open()

End If

time.Text = TimeOfDay

If light1.Text = "Open" Then trangthai1 = "off"

If light1.Text = "Close" Then trangthai1 = "on"

If light2.Text = "Open" Then trangthai2 = "off"

If light2.Text = "Close" Then trangthai2 = "on"

If light3.Text = "Open" Then trangthai3 = "off"

If light3.Text = "Close" Then trangthai3 = "on"

If light4.Text = "Open" Then trangthai4 = "off"

If light4.Text = "Close" Then trangthai4 = "on"

If light5.Text = "Open" Then trangthai5 = "off"

If light5.Text = "Close" Then trangthai5 = "on"

If light6.Text = "Open" Then trangthai6 = "off"

If light6.Text = "Close" Then trangthai6 = "on"

If light7.Text = "Open" Then trangthai7 = "off"

If light7.Text = "Close" Then trangthai7 = "on"

If light8.Text = "Open" Then trangthai8 = "off"

Page 119: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 108 -

If light8.Text = "Close" Then trangthai8 = "on"

‘ truyền lệnh điều khiển xuống Pic16F877A

If SerialPort1.IsOpen Then

Dim RC As String

SerialPort1.Write("at+cmgl=" & """" & "REC UNREAD" & """" & vbCrLf)

RC = SerialPort1.ReadExisting

If InStr(RC, phonenumbers(0)) Then 'kiểm tra số điện thoại cài sẵn

If InStr(RC, "status") Or InStr(RC, "Status") Then

SerialPort1.Write("at+csms=1" + vbCrLf)

SerialPort1.WriteLine("at+cmgs=" + """" + phonenumbers(0) + """" + vbCrLf + "Report :light1" & trangthai1 & ",light2" & trangthai2 & ",temperature : " & TextBox1.Text + Char.ConvertFromUtf32(26) + vbCrLf)

SerialPort1.DiscardOutBuffer()

End If

If InStr(RC, "open") Or InStr(RC, "Open") Then

SerialPort2.WriteLine(222)

End If

If InStr(RC, "light1") Or InStr(RC, "Light1") Then

PictureBox1.ImageLocation = path & "\den1" + den + ".jpg"

light1.Text = trangthai

SerialPort2.WriteLine(1 & bit)

End If

If InStr(RC, "light2") Or InStr(RC, "Light2") Then

PictureBox2.ImageLocation = path & "\den1" + den + ".jpg"

light2.Text = trangthai

SerialPort2.WriteLine(2 & bit)

End If

If InStr(RC, "light3") Or InStr(RC, "Light3") Then

Piclight3.ImageLocation = path & "\den1" + den + ".jpg"

light3.Text = trangthai

SerialPort2.WriteLine(3 & bit)

End If

If InStr(RC, "light4") Or InStr(RC, "Light4") Then

Piclight4.ImageLocation = path & "\den1" + den + ".jpg"

light4.Text = trangthai

Page 120: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 109 -

SerialPort2.WriteLine(4 & bit)

End If

If InStr(RC, "light5") Or InStr(RC, "Light5") Then

Piclight5.ImageLocation = path & "\den1" + den + ".jpg"

light5.Text = trangthai

SerialPort2.WriteLine(5 & bit)

End If

If InStr(RC, "light6") Or InStr(RC, "Light6") Then

Piclight6.ImageLocation = path & "\den1" + den + ".jpg"

light6.Text = trangthai

SerialPort2.WriteLine(6 & bit)

End If

If InStr(RC, "light7") Or InStr(RC, "Light7") Then

Piclight7.ImageLocation = path & "\den1" + den + ".jpg"

light7.Text = trangthai

SerialPort2.WriteLine(7 & bit)

End If

If InStr(RC, "light8") Or InStr(RC, "Light8") Then

Piclight8.ImageLocation = path & "\den1" + den + ".jpg"

light8.Text = trangthai

SerialPort2.WriteLine(8 & bit)

End If

If InStr(RC, "all light") Then

PictureBox2.ImageLocation = path & "\den1" & den & ".jpg"

light1.Text = trangthai

light2.Text = trangthai

light3.Text = trangthai

light4.Text = trangthai

light5.Text = trangthai

light6.Text = trangthai

light7.Text = trangthai

light8.Text = trangthai

SerialPort2.WriteLine(12 & bit)

SerialPort1.WriteLine("at+cmgs=" + """" + phonenumbers(0) + """" + vbCrLf + "Report : all light " + den + Char.ConvertFromUtf32(26) + vbCrLf)

SerialPort1.DiscardOutBuffer()

End If

Page 121: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 110 -

End If

6. CHƯƠNG TRÌNH ĐỌC NHIỆT ĐỘ, BÁO ĐỘNG VÀ VẼ ĐỒ THỊ

Dim c As String

Dim nhietdo as string

Dim h as integer

If SerialPort2.IsOpen Then SerialPort2.WriteLine(100) c = SerialPort2.ReadExisting nhietdo = Mid$(c, 1, 2) a = Mid(c, 3, 1) TextBox1.Text = nhietdo & "*C" SerialPort2.WriteLine(200) SerialPort2.DiscardInBuffer()

End If If nhietdo > "80" Then

Timer2.Interval = 5000 Timer2.Enabled = True PictureBox3.ImageLocation = path & "\den1on.jpg"

Else PictureBox3.ImageLocation = path & "\den1off.jpg" Timer2.Enabled = False End If

End If

Me.GsNetWinChart1.Chart.ChartType = ChartType.Bar2D

Me.GsNetWinChart1.Chart.ChartTitle.Text = "Biểu Đồ Nhiệt Độ Theo Giây"

Dim data As ArrayDataProvider = New ArrayDataProvider(dulieu)

Dim myseries As Series = New Series("Nhiệt Độ")

myseries.BindComponent(SeriesComponent.Y, data, "My Field")

Me.GsNetWinChart1.Chart.RemoveAllSeries()

Me.GsNetWinChart1.Chart.AddSeries(myseries)

h = Convert.ToInt64(nhietdo)

dulieu(i) = h

If nhietdo >= "80" Then

PictureBox3.ImageLocation = path & "\den1on.jpg"

Else : PictureBox3.ImageLocation = path & "\den1off.jpg"

End If

Page 122: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 111 -

End If

‘ timer 2 hoạt động khi nhiệt độ trên 80

‘ chương trình gửi tin nhắn báo động mỗi 5s và tắt thiết bị

Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick SerialPort1.Write("at+csms=1" + vbCrLf) SerialPort1.WriteLine("at+cmgs=" + """" + phonenumbers(0) + """" + vbCrLf + "ALARM , HOME IS TOO HOT,temperature: " + nhietdo + Char.ConvertFromUtf32(26) + vbCrLf)

SerialPort1.DiscardOutBuffer() SerialPort2.WriteLine(120)

End Sub

7. CÁC MODULE TRÊN GIAO DIỆN ĐIỀU KHIỂN CHƯƠNG TRÌNH

MODULE Serial Port Setting:

GIỚI THIỆU

Modem_Portname : chọn cổng kết nối cho điện thoại

Modem_Baudrate : chọn tốc độ đồng bộ của thiết bị

RS232_Portname : chọn cổng kết nối với RS232

Nút Property cho phép lực chọn thuộc tính như sau :

Page 123: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 112 -

Trên giao diện sẽ có nút Default.. để đưa các thuộc tính điều khiển về mặc định.

Nếu thiết bị có thông số khác thì có thể lựa chọn sau đó bấm nút OK để đồng ý và Cancel để hủy bỏ lựa chọn

Lập trình cho Module Serial Port Setting

Public Class properties

Public i As Integer

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

Try

If i = 1 Then

form1.bitspersecond = 2400

form1.databits = 8

form1.stopbit = "One"

form1.parity = "None"

form1.handshaking = "None"

Me.Close()

End If

If i = 0 Then

form1.bitspersecond = baudrate.Text

form1.databits = data.Text

form1.stopbit = stopbit.Text

Page 124: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 113 -

form1.parity = parity.Text

form1.handshaking = Handshaking.Text

Me.Close()

End If

Catch

MsgBox("Bạn chưa chọn thuộc tính ", MsgBoxStyle.Information, "Thông Báo")

Me.Close()

End Try

End Sub

Private Sub cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancel.Click

Me.Close()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Defaults.Click

i = 1

End Sub

Private Sub properties_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

i = 0

End Sub

End Class

MODULE security

Page 125: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 114 -

GIỚI THIỆU

Security dùng để cài đặt lại mật khẩu và thay đổi số điện thoại dùng để điều khiển thiết bị :

Sau khi thay đổi Password thì nhấn nút Confirm để chấp nhận Password mới.

Nhập số điện thoại dùng để điều khiển thiết bị rồi nhấn nút Confirm để chấp nhận. Hiện tại sử dũng mạng di động của nhà phối ở Việt Nam thì cần phải thêm vào mã +84

Lập trình cho Module security

Imports System.IO

Public Class Security

Public password As String

Private Sub Security_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub

Private Sub confirm1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles confirm1.Click

Try

If newpassword.Text <> " " Then

If newpassword.Text = Confirmpassword.Text Then

Dim pw As New StreamWriter("password.txt")

' ghi nhật kí dữ liệu lên text

pw.WriteLine(newpassword.Text)

Page 126: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 115 -

pw.Close()

Else : MsgBox("Bạn đã nhập sai password")

End If

End If

Catch

MsgBox("Bạn chưa thay đổi Password")

End Try

End Sub

Private Sub confirm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles confirm2.Click

Dim phonenumber As New StreamWriter("phonenumber.txt")

phonenumber.Write(phonenumber1.Text & " " & phonenumber2.Text & " " & phonenumber3.Text & " " & phonenumber4.Text)

phonenumber.Close()

End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click

Me.Close()

End Sub

End Class

Nút Open Port : dùng để mở cổng sau khi đã chọn các thuộc tính kết nối

Nút Close Port : dùng để đóng cổng kết nối 1 cách an toàn tránh làm hư hỏng các cổng.

Nút Refresh : Để phần mềm nhận diện cổng của thiết bị khi thiết bị đó được kết nối với phần mềm.

Trong thành phần Control(điều khiển):

Nút Open : khi nhấn đèn sáng màu đỏ và tên nút chuyển thành Close

Page 127: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 116 -

Nút Open all : mở toàn bộ thiết bị

Nút Close all : tắt toàn bộ thiết bị

Khung hiển thị nhiệt độ và báo động (Alarm): Khi nhiệt độ tăng quá cao thì đèn Alarm sẽ nhấp nháy.

MODULE Send SMS (gửi tin nhắn):

Khung Content cho phép nhập vào 1 đoạn tin nhắn để gửi

Khung Phone Number cho phép nhập số điện thoại cần gửi

Nút Send để xác nhận gửi

Ô chọn lựa Auto Deliver cho phép gửi tin nhắn báo cáo ngược lại khi có tin nhắn điều khiển thiết bị.

MODULE BIỂU ĐỒ NHIỆT ĐỘ VÀ CÁC HIỂN THỊ SỰ KIỆN:

Tương ứng với thời gian và nhiệt độ đo được trên thiết bị mà biểu đồ sẽ được vẽ.

Các sự kiện,trạng thái của hệ thống sẽ được liệt kệ trong bảng trên.

MODULE CÀI ĐẶT LỊCH LÀM VIỆC CHO SỰ KIỆN:

Page 128: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 117 -

Khi muốn cài đặt lịch làm việc Schedule Tasks cho hệ thống. Nhấn nút Schedule . Khi nhấn xong thì thực hiện các thao tác trong Form.

Chọn ngày giờ và nhập sự kiện sau đó nhấn nút Add. Nhấn nút Confirm để chấp nhận. Khi sau đó nhấn Exit để thoát ra, nếu muốn xóa thì bấm Clear.

LẬP TRÌNH KHI LOAD FORM

Dim data(10) As String

Dim cut As String

Dim h As Byte

Dim patch As String = My.Application.Info.DirectoryPath

PictureBox1.ImageLocation = patch & "\hinhschedule.jpg"

Dim schd As New StreamReader("schedule.txt")

cut = schd.ReadToEnd

data = cut.Split(vbCrLf)

schd.Close()

added.Items.Clear()

Dim cnt As New StreamReader("count.txt")

count = Convert.ToByte(cnt.ReadLine)

cnt.Close()

For h = 0 To count

added.Items.Add(data(h))

Next

LẬP TRÌNH CHO CÁC NÚT NHẤN

Page 129: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 118 -

Public i As Byte

Public count As Byte

Private Sub add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles add.Click

added.Items.Add(ComboBox1.Text & " " & events.Text)

End Sub

Private Sub Schedule_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim data(10) As String

Dim cut As String

Dim h As Byte

Dim patch As String = My.Application.Info.DirectoryPath

If Me.Text = "Lich cong viec" Then

clear.Text = "Xóa"

confirm.Text = "Chấp nhận"

add.Text = "Thêm"

exits.Text = "Thoát"

End If

If Me.Text = "Schedule Task" Then

clear.Text = "Clear"

confirm.Text = "Confirm"

add.Text = "Add"

exits.Text = "Exit"

End If

PictureBox1.ImageLocation = patch & "\hinhschedule.jpg"

Dim schd As New StreamReader("schedule.txt")

cut = schd.ReadToEnd

data = cut.Split(vbCrLf)

schd.Close()

added.Items.Clear()

Dim cnt As New StreamReader("count.txt")

count = Convert.ToByte(cnt.ReadLine)

cnt.Close()

For h = 0 To count

added.Items.Add(data(h))

Next

End Sub

Page 130: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 119 -

Private Sub confirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles confirm.Click

Dim schd As New StreamWriter("schedule.txt")

Dim cnt As New StreamWriter("count.txt")

Dim data(10) As String

Dim count As Byte

Dim h As Byte

count = added.Items.Count

Try

For h = 0 To count - 1

data(h) = added.Items(h)

Next

cnt.WriteLine(count - 1)

cnt.Close()

schd.WriteLine(data(0) & vbCrLf & data(1) & vbCrLf & data(2) & vbCrLf & data(3) & vbCrLf & data(4) & vbCrLf & data(5) & vbCrLf & data(6) & vbCrLf & data(7) & vbCrLf & data(8) & vbCrLf & data(9) & " ")

schd.Close()

Catch

MsgBox("Hãy nhập vào danh mục")

End Try

End Sub

Private Sub clear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clear.Click

Dim schd As New StreamWriter("schedule.txt")

Dim cnt As New StreamWriter("count.txt")

schd.WriteLine(" ")

schd.Close()

cnt.WriteLine("0")

cnt.Close()

added.Items.Clear()

End Sub

private Sub exits_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exits.Click

Me.Close()

End Sub

Page 131: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 120 -

II. PHẦN MỀM PICBASIC PRO

1. GIỚI THIỆU

Phần mềm biên dịch PROTON+ được viết đơn giản và linh hoạt cho người sử dụng. Bằng cách dùng ngôn ngữ Basic, là ngôn ngữ dễ học và lập trình so với các ngôn ngữ khác, nhưng bạn có thể linh hoạt sử dụng để sử dụng bộ công cụ này cho những ứng dụng phức tạp cho Vi điều khiển Pic mà không phải học những ngôn ngữ có liên quan phức tạp như Assembler, hay C.

PROTON+ cung cấp một môi trường phát triển liên tục. Với PROTON+, bạn có thể viết sử lỗi và biên dịch cho mã nguồn của bạn giống trong môi trường Windows,và phù hợp với những người lập trình. Mặt khác phần mềm biên dịch dựa trên nền tảng Windows.Việc xác định thiết bị ngay chương trình đầu tiên sẽ làm cho mã nguồn khi biên dịch hoàn toàn phù hợp với thiết bị đó. Nên chú ý rằng PROTON+ không hoàn toàn phù hợp với mã nguồn phổ biến Parallax PICBASIC, nó dùng ngôn nghữ riêng, nhưng mà chức năng cũng gần giống nhau và dùng chung hầu hết cú pháp của Basic.

2. CÁC TẬP LỆNH SỬ DỤNG

Lệnh truyền bất đồng bộ qua RS232

SEROUT

Cú pháp:

SEROUT Tpin \ Fpin , Baudmode , Pace, Timeout , Tlabel, [ OutputData ]

Chức năng:

Dùng để truyền dữ liệu nối tiếp không đồng bộ với RS232

Hoạt động:

Tpin là chân cố định được chỉ định là chân I/O dùng cho truyền dữ liệu nối tiếp. Chân này sẽ được đặt vào chế độ ngõ ra trong lúc hoạt động. Trạng thái của chân này khi hoàn thành được quyết định bởi Bit điều khiển trong Baudmode.

Fpin là tùy chọn Port.Bit để chỉ định việc chân I/O cho việc giám sát trạng thái Flow Control. Chân này sẽ được đặt ở trạng thái ngõ vào. Chú ý : Fpin phải được chỉ định để sử dụng cho việc lựa chọn Timeout và Tlabel trong lệnh SEROUT.

Baudmode có thể là 1 biến hay hằng hay một biểu thức(0 – 65535) mà được định ra để chỉ tốc độ hoạt động của thiết bị

Pace là một biến tùy chọn hay hằng hay biểu thức(0 – 65535) mà quyết định đến chu kì hoãn giữa những lần truyền Bytes. Chú ý: Pace không thể được sử dụng tương thích với Timeout

Page 132: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 121 -

Timeout là một tùy chọn biến hay hằng(0-65535) để báo cho SEROUT thời gian chờ bao lâu để cho phép Fpin gửi. Nếu sự cho phép không đến vào lúc đó thì chương trình sẽ nhảy đến một nhãn Tlabel. Chú ý : Fpin phải được chỉ định để sử dụng cho hoạt động của Timeout và Tlabel

Tlabel : nhãn phải được sử dụng cùng với Timeout.

Outputdata là danh sách các biến, hằng hay biểu thức để báo cho SEROUT biết dữ liệu xuất ra có dạng thế nào. SEROUT có thể truyền riêng lẻ hay lặp lại bytes, chuyển giá trị thành dạng Decimal, Hex hay biểu diễn dưới dạng Binary, hoặc truyền chuỗi String của Bytes tử biến mảng, và cấu trúc CDATA. Ta còn có thẻ kết hợp để tạo danh sách OutputData

SERIN

Cú pháp:

SERIN Rpin \ Fpin , Baudmode , Plabel, Timeout , Tlabel, [ InputData ]

Chức năng:

Dùng để nhận dữ liệu nối tiếp không dồng bộ.

Hoạt động:

Rpin là chân cố định được chỉ định là chân I/O dùng cho truyền dữ liệu nối tiếp. Chân này sẽ được đặt vào chế độ ngõ vào trong lúc hoạt động.

Baudmode có thể là 1 biến hay hằng hay một biểu thức(0 – 65535) mà được định ra để chỉ tốc độ hoạt động của thiết bị

Plabel là một tùy chọn cho nhãn, nơi chương trình nhảy đến trong trường hợp của một lỗi chẵn lẻ. Khi ta dùng Parity Bit

Timeout là một tùy chọn biến hay hằng(0-65535) để báo cho SERIN thời gian chờ bao lâu để cho việc nhận dữ liệu. Nếu dữ liệu không đến lúc đó thì chương trình sẽ nhảy đến một nhãn Tlabel

Tlabel : nhãn phải được sử dụng cùng với Timeout.

InputData là danh sách các biến để báo SERIN biết phải làm gì với dữ liệu. SERIN có thể lưu trữ dữ liệu trong một biến, mảng, hoặc một mảng chuỗi bằng cách sử dụng STR.

Chú ý:

Một trong những dạng truyền thông tin phổ biến nhấ giữa các thiết bị điện tử là Serial Communication. Trong đó có 2 dạng được sử dụng là truyền Đồng bộ hay

Page 133: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 122 -

Không đồng bộ. các lệnh The RSIN, RSOUT, SERIN and SEROUT,tất cả đều được dùng cho việc gửi và nhận dữ liệu nối tiếp không đồng bộ. Trong khi các lệnh SHIN and SHOUT dùng cho việc truyền dữ liệu đồng bộ

Việc truyền dữ liệu Không đồng bộ đồng nghĩa với việc không dùng đường tách xung. Dữ liệu có thể được gửi đi chỉ với 2 dây, một dây dữ liệu và một dây cho nối đất.

Serial Port của máy tính(PC) còn được gọi là cổng RS232 hay cổng COM được dùng cho việc truyền dữ liệu không đồng bộ nối tiếp. Còn đối với truyền tin theo kiểu đồng bộ nối tiếp thì ta dùng 3 dây, trong đó ngoài dây dư liệu và đất còn có thêm dây xung cho việc đồng bộ.

Khi dùng RS232 để truyền tin thì ta cần phải lưu ý đến đặc tính điện của nó. Không như những chuẩn Logic TTL với mức điện áp 5V cho 1 và 0V cho 0. RS232 dùng điện áp -12V cho mức logic 1 và 12V cho mức logic 0. Đặc tính này ho phép ta có thể truyền thông qua một sợi dây dài mà không cần bộ khuếch đại.

Hầu hết các mạch làm việc với RS232 cần phải có bộ chuyển đổi mức điện áp từ ±12V thành 0V và 5V và ngược lại. Thường dùng nhất là IC Max232.

Truyền dữ liệu Không đồng bộ nối tiếp phải hồi đáp vào thời gian chính xác. Cả bộ gửi và nhận phải được đặt cùng thời gian, tức là phải cùng một tốc độ truyền còn được gọi là tốc độ Baud (Baudrate).

SEROUT yêu cầu một giá trị được gọi là Baudmode để báo các đặc điểm thích hợp cho dữ liệu đến, như chu kì bit period, số Bit và parity bits với tốc độ truyền từ mức thấp nhất là 300 Baud đến hơn 38K Baud (phụ thuộc vào tần số của thạch anh).

Nếu việc truyền tin có hỗ trợ bởi phần cứng hoặc phần mềm thì việc lựa chọn tốc độ Baud sẽ là quan trọng. nói chung, chế độ 7-bit/even-parity là dùng cho văn bản, còn 8-bit/no-parity có việc truyền dữ liệu theo Byte. Hầu hết người ta sử dụng chế độ chung là 8-bit/no-parity, hầu hết các thiết bị sử dụng chế độ 7 Bit data vì có thể lợi dụng đặc tính kiểm tra lỗi trong đường truyền, nhưng sử dụng nó sẽ làm mất đi 1 bit dữ liệu. Điều này có nghĩa là dữ liệu Byte đến được truyền trong 7 Bit/even parity có thể biểu diễn từ 0-127, nhỏ hơn nhiều so với 0-255 của chế độ 8 bit.

Phần mềm biên dịch cho phép lựa chọn 1 Bit parity với 4 đền 8 Bit dữ liệu. Sử dụng lệnh khai báo Declare:

Không có Parity Bit :

DECLARE SERIAL_DATA 4 ' Dữ liệu 4 Bit DECLARE SERIAL_DATA 5 ' Dữ liệu 5 Bit DECLARE SERIAL_DATA 6 ' Dữ liệu 6 Bit DECLARE SERIAL_DATA 7 ' Dữ liệu 7 Bit DECLARE SERIAL_DATA 8 ' Dữ liệu 8 Bit (Mặc Định)

Page 134: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 123 -

Nếu có Parity Bit : DECLARE SERIAL_DATA 5 ' Dữ liệu 4 Bit DECLARE SERIAL_DATA 6 ' Dữ liệu 5 Bit DECLARE SERIAL_DATA 7 ' Dữ liệu 6 Bit DECLARE SERIAL_DATA 8 ' Dữ liệu 7 Bit (Mặc Định) DECLARE SERIAL_DATA 9 ' Dữ liệu 8 Bit

Đặt loại Parity cho SERIN và SEROUT. Khi Parity được cho phép, phần trình bày phải chọn nó là ODD hay EVEN. Nếu Parity được cho phép nhưng SERIAL_PARITY DECLARE không được cấp trong chương trình thì mặc định là EVEN Parity.

DECLARE SERIAL_PARITY = EVEN DECLARE SERIAL_PARITY = ODD

Các dạng Dữ Liệu gửi được trình bày

BIN1..32 gửi dữ liệu nhị phân DEC1..10 gửi dữ liệu thập phân HEX1..8 dữ liệu Hex SBIN1..32 dữ liệu nhị phân không dấu SDEC1..10 dữ liệu thập phân không dấu

SHEX1..8 dữ liệu thập lục phân không dấu

Ví dụ : 1. DIM FLT AS FLOAT FLT = 3.145 SEROUT PORTA.0 , T2400 , [DEC2 FLT] Gửi 3.14 2. DIM FLT AS FLOAT FLT = 3.1456 SEROUT PORTA.0 , T2400 , [DEC FLT] Gửi 3.145 3. SERIN PORTA.0 , T2400 , P_ERROR , [SerData] PRINT @ SerData STOP P_ERROR: PRINT "Parity Error" 4. SERIN PORTA.0 , T2400, 2000 , TO_ERROR , [SerData] PRINT CLS , @ Result STOP TO_ERROR: PRINT CLS , "Timed Out"

Sử dụng kiểu chuỗi với SEROUT

Page 135: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 124 -

Các lệnh STR được sử dụng để chuyển thành một chuỗi ký tự từ một mảng byte. Một chuỗi là một bộ các ký tự được sắp xếp hay truy cập nhất định trong một trật tự. Các ký tự "ABC" sẽ được lưu trữ trong một chuỗi với "A" đầu tiên, theo sau là "B" sau đó theo sau là "C". Một mảng byte là một khái niệm tương tự với một chuỗi; nó chứa dữ liệu được sắp xếp trong một trật tự. Mỗi phòng trong số yếu tố trong một mảng có cùng kích cỡ. Chuỗi "ABC" sẽ được lưu trữ trong một mảng byte chứa ba byte (yếu tố).

Ví dụ : DIM SerString[10] AS BYTE ‘tạo mảng 10 byte SerString[0] = "H" SerString[1] = "E" SerString[2] = "L" SerString[3] = "L" SerString[4] = "O" SEROUT PORTA.0,16468,[ STR SerString\5 ]'gửi 1 chuỗi

5 Byte DIM SerString[10] AS BYTE ' tạo mảng 10 Byte. SERIN PORTA.0,16468,[ STR SerString\5 ]'chọn 5 Byte

đầu của mảng.

Lưu ý rằng chúng ta sử dụng các tùy chọn \ n của STR. Nếu chúng ta không chỉ định, các PICmicro sẽ tiếp tục gửi cho đến khi tất cả các ký tự 10 byte của mảng được truyền, hoặc nó tìm thấy một byte bằng 0 (NULL).

Lệnh đọc giá trị từ bộ ADC

Cú pháp:

Variable = ADIN channel number

Biến = ADIN kênh

Chức năng:

Dùng để đọc giá trị từ tín hiệu Analoge chuyển sang tín hiệu số

Hoạt động:

Biến là do người dùng định nghĩa

Chân của kênh do người dùng chọn

Ví dụ:

' Đọc giá trị từ kênh 0 của ADECLARE và đặt kết quả lưu trong biến DECLARE ADIN_RES 10 ' lưu kết quả tron 10 bit

DECLARE ADIN_TAD FRC ' RC OSC được chọn DECLARE ADIN_STIME 50 ' thời gian lấy mẫu 50us DIM VAR1 as WORD

Page 136: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 125 -

TRISA = %00000001 ' Set analogue input on PORTA.0 ADECLAREON1 ADCON1 = %10000000 ' Cấu hình AN0 (PORTA.0) như ngõ vào

ADECLAREON0 = %11000001 VAR1 = ADIN 0 ' đặt kết quả vào VAR1

Có 3 loại DECLARE dùng để lưu kết quả là :

DECLARE ADIN_RES 8 , 10 , or 12. ‘Đặt số Bit cho kết quả.

Nếu DECLARE không được dùng thì mặc định là 8 Bit cho Pic16F877A.Cho ví dụ nếu là họ Pic16F87X thì kết quả có độ phân giải 10 bit, trong khi loại này mặc đinh sẽ xuất ra kết quả 8 Bit. Nhưng khi ta dùng DECLARE thì có thể khai báo dùng 10 Bit và khi khai báo DECLARE thì thiết bị cho phép lưu kết quả 8 Bit nhưng không lưu được kết quả 12 Bit cho loại VDK có độ phân giải 10 Bit này

DECLARE ADIN_TAD 2_FOSC , 8_FOSC , 32_FOSC , or FRC. ‘đặt xung clock cho ADECLARE

Việc lựa chọn nguồn xung này cũng ảnh hưởng đến thời gian chuyển đổi dữ liệu và có thể không được chuyển đổi chính xác.

DECLARE ADIN_STIME 0 to 65535 microseconds (us).

Cho phép tụ giữ bên trong VDK được nạp đầy trước khi lấy mẫu. điều này có thể là 1 giá trị từ 0 đến 65535(us)

Một giá trị đặc trưng cho ADIN_STIME là từ 50 đến 100. Điều này cho phép tương thích với thời gian nạp mà không ảnh hưởng nhiều đến thời gian chuyển đổi

Chú ý là trước khi lệnh ADIN được sử dụng thì thanh ghi TRISA phải cho phép các chân nhận dữ liệu tương ứng là ngõ vào

Ví dụ :

Again: VAR1 = ADIN 3 ' Place the conversion into variable VAR1

DELAYUS 1 ' Wait for 1us GOTO Again ' Read the ADECLARE forever

Lệnh xuất ra LCD :

Lệnh Print

Cú pháp:

PRINT Item , Item...

Chức năng:

Gửi một đoạn văn đến LCD

Item có thể là 1 hằng , biến, hay một toán tử, một chuỗi

Page 137: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 126 -

Khai báo LCD

LCD_DTPIN = PORTB.4 ‘ chọn chân kết nối dữ liệu LCD_RSPIN = PORTB.3 ‘ chọn chân kết nối RS LCD_ENPIN = PORTB.2 ‘ chọn chân kết nối RS LCD_INTERFACE = 4 ‘ giao tiếp theo chế độ 4 bit(hoặc 8 bit) LCD_LINES = 2 ‘ mặc định 2 hàng LCD_TYPE = 0 ‘ 0 : mặc định là LCD trắng đen

Khởi tạo LCD

Lệnh điều khiển Hoạt động

$FE, 1 Xóa màn hình $FE, 2 Trả về ban đầu $FE, $0C Tắt con trỏ $FE, $0E Dấu gạch dưới con trỏ $FE, $0F Nhấp nháy con trỏ $FE, $10 Dịch con trỏ sang trái một vị trí $FE, $14 Dịch con trỏ sang phải một vị trí $FE, $C0 Dịch con trỏ đến đầu dòng thứ hai

Print $FE,1 : delayms 30 xóa màn hình và đợi 30ms Print $FE,2 Print $FE,$0E

Xuất dữ liệu ra LCD

Print at 1,1,@bien Xuất giá trị thập phân bien ra LCD tại vị trí hàng 1,ô

thứ 1

3. CHƯƠNG TRÌNH NHẬN DỮ LIỆU VÀ ĐỌC NHIỆT ĐỘ:

include "PROTON_12.INC" dim nhandulieu as byte dim baodong as byte nhietdo var word

'Khoi tao ADC ADIN_RES 10 ' ket qua 10 bit ADIN_STIME 50 ' thoi gian lay mau

TRISA.0 = 1 'kenh RA0 nhan tin hieu

ADCON1 = %10001110 ' chon ket qua 10bit ben trai cua thanh ghi ket qua

ADCON0 = %11000001 ' chon xung noi,RA0,va ADON = 1

Page 138: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 127 -

serin portc.7,t2400,600,Loop,[dec nhandulieu] ' nhan du lieu tu phan mem ' nhan du lieu tuong ung voi den

if nhandulieu = 11 then portb.3 = 0 ' den1 mo if nhandulieu = 10 then portb.3 = 1' den1 tat if nhandulieu = 21 then portb.2 = 0' den2 mo if nhandulieu = 20 then portb.2 = 1' den2 tat if nhandulieu = 31 then portb.1 = 0' den1 mo if nhandulieu = 30 then portb.1 = 1' den1 tat if nhandulieu = 41 then portb.0 = 0' den2 mo if nhandulieu = 40 then portb.0 = 1' den2 tat if nhandulieu = 51 then portc.2 = 0' den1 mo if nhandulieu = 50 then portc.2 = 1' den1 tat if nhandulieu = 61 then portc.3 = 0' den2 mo if nhandulieu = 60 then portc.3 = 1' den2 tat if nhandulieu = 71 then portc.4 = 0' den1 mo if nhandulieu = 70 then portc.4 = 1' den1 tat if nhandulieu = 81 then portc.5 = 0' den2 mo if nhandulieu = 80 then portc.5 = 1' den2 tat ' den12 mo if nhandulieu = 121 then portb.0 = 0 portb.1 = 0 portb.2 = 0 portb.3 = 0 portc.2 = 0 portc.3 = 0 portc.4 = 0 portc.5 = 0 endif ' den12 tat if nhandulieu = 120 then portb.0 = 1 portb.1 = 1 portb.2 = 1 portb.3 = 1 portc.2 = 1 portc.3 = 1 portc.4 = 1 portc.5 = 1 endif ' lenh mo cong if nhandulieu = 222 then porta.1 = 0

Page 139: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 128 -

porta.2 = 1 sai = 3 endif

nhietdo = ADIN 0

' doc nhiet do tai RA0 nhietdo = nhietdo / 2

' nhiet do chia 2 vi do phan giai 10bit serout portc.6,t2400,[@nhietdo,13]

' xuat nhiet do len phan mem

4. CHƯƠNG TRÌNH GIAO TIẾP KEYPAD VÀ LCD:

col var byte row var byte key var byte dim tam[5] as byte i as byte dim kiemtra as byte dim sai as byte

trisb = 0 portb = $ff trisc = %01000000 portc = $ff trisa.1 = 0 trisa.2 = 0 porta.1 = 1 porta.2 = 1

'Khoi tao LCD print $fe,1 : delayms 30 'doi 30ms cho LCD len nguon print $fe,2 'xoa du lieu, bat dau dong dau tien Print $FE,$0E 'dau "_" i = 1 kiemtra = 0 sai = 3 baodong = 0

Loop: For Col = 4 to 7 if sai<> 0 then print at 1,1,"Fill in Password" if sai = 0 then print at 1,1,"Lock Key " PORTd = 0 ' Ngo ra portd muc thap TRISd = (Dcd Col) ^ $ff' cot tuong ung se xuong 0

Page 140: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 129 -

while (portd << 4) <> $f0 row = portd << 4 & $ff Key = (Col * 3) + (Ncd (Row ^ $f0))

'phep tinh so phim key = key - 16

' so phim tru 16 de dua ve gia tri dung if key = 11 then key = 0 tam[i-1] = key 'luu ma phim va bien mang bien tam if key <> 10 then print at 2,i,dec key if key = 12 then cls kiemtra = 0 porta.2 = 1 tam[0] = 0 i = 0 endif tam[4] = 0

' cho gia tri cua bien tam cuoi cung bang Null if tam[0] = 1 then if tam[1] = 2 then if tam[2] = 3 then if tam[3] = 4 then kiemtra = 1 if key = 10 then if kiemtra = 1 then print at 2,1,"Open the door" porta.2 = 0 i = 0 else sai = sai - 1 print at 2,1,"Wrong password" delayms 300 print at 2,1,"please wait . . ." delayms 300 print at 2,1,"Remain ",dec sai," times" endif endif delayms 400 i = i + 1 if i = 5 then i = 1 while sai = 0 porta.1 = 0 print at 1,1, "Lock key " print at 2,1,"Contact Host " goto loop

wend

Page 141: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 130 -

Chương trình chính tổng quát khi ghép nối hai chương trình trên:

Include "PROTON_12.INC" dim nhandulieu as byte dim baodong as byte nhietdo var word col var byte row var byte key var byte dim tam[5] as byte dim i as byte dim kiemtra as byte dim sai as byte dim backup[9] as byte delayms 500 ' tri hoan 500ms cho vi dieu khien duoc cap nguon 'Khoi tao ADC ADIN_RES 10 ' ket qua 10 bit ADIN_STIME 50 ' thoi gian lay mau trisb = 0 portb = $ff trisc = %01000000 portc = $ff TRISA.0 = 1 'kenh RA0 nhan tin hieu trisa.1 = 0 trisa.2 = 0 porta.1 = 1 porta.2 = 1 ADCON1 = %10001110

' chon ket qua 10bit ben trai cua thanh ghi ket qua ADCON0 = %11000001' chon xung noi,RA0,va ADON = 1 'Khoi tao LCD print $fe,1 : delayms 30 'doi 30ms cho LCD len nguon print $fe,2 'xoa du lieu, bat dau dong dau tien Print $FE,$0E 'dau "_" i = 1 kiemtra = 0 sai = 3 baodong = 0 Main: serin portc.7,t2400,600,Loop,[dec nhandulieu] ' nhan du lieu tu phan mem ' nhan du lieu tuong ung voi den Loop: For Col = 4 to 7

Page 142: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 131 -

if sai<> 0 then print at 1,1,"Fill in Password" if sai = 0 then print at 1,1,"Lock Key " PORTd = 0 ' Ngo ra portd muc thap TRISd = (Dcd Col) ^ $ff

' cot tuong ung se xuong 0 if nhandulieu = 11 then portb.3 = 0 ' den1 mo if nhandulieu = 10 then portb.3 = 1' den1 tat if nhandulieu = 21 then portb.2 = 0' den2 mo if nhandulieu = 20 then portb.2 = 1 ' den2 tat if nhandulieu = 31 then portb.1 = 0 ' den1 mo if nhandulieu = 30 then portb.1 = 1' den1 tat if nhandulieu = 41 then portb.0 = 0' den2 mo if nhandulieu = 40 then portb.0 = 1' den2 tat if nhandulieu = 51 then portc.2 = 0' den1 mo if nhandulieu = 50 then portc.2 = 1' den1 tat if nhandulieu = 61 then portc.3 = 0' den2 mo if nhandulieu = 60 then portc.3 = 1' den2 tat if nhandulieu = 71 then portc.4 = 0' den1 mo if nhandulieu = 70 then portc.4 = 1' den1 tat if nhandulieu = 81 then portc.5 = 0' den2 mo if nhandulieu = 80 then portc.5 = 1' den2 tat ' den12 mo if nhandulieu = 121 then portb.0 = 0 portb.1 = 0 portb.2 = 0 portb.3 = 0 portc.2 = 0 portc.3 = 0 portc.4 = 0 portc.5 = 0 endif ' den12 tat if nhandulieu = 120 then portb.0 = 1 portb.1 = 1 portb.2 = 1 portb.3 = 1 portc.2 = 1 portc.3 = 1 portc.4 = 1 portc.5 = 1 endif

Page 143: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 132 -

' lenh mo cong if nhandulieu = 222 then porta.1 = 0 porta.2 = 1 sai = 3 endif if nhandulieu = 211 then backup[0] = portb.3 backup[1] = portb.2 backup[2] = portb.1 backup[3] = portb.0 backup[4] = portc.2 backup[5] = portc.3 backup[6] = portc.4 backup[7] = portc.5 backup[8] = 0 serout portc.6,t2400,[str backup] endif if nhandulieu = 100 then nhietdo = ADIN 0' doc nhiet do tai RA0 nhietdo = nhietdo / 2 ' nhiet do chia 2 vi do phan giai 10bit serout portc.6,t2400,[@nhietdo,13] ' xuat nhiet do len phan mem endif while (portd << 4) <> $f0 row = portd << 4 & $ff Key = (Col * 3) + (Ncd (Row ^ $f0)) 'phep tinh so phim key = key - 16 ' so phim tru 16 de dua ve gia tri dung if key = 11 then key = 0 tam[i-1] = key 'luu ma phim va bien mang bien tam if key <> 10 then print at 2,i,dec key if key = 12 then cls kiemtra = 0 porta.2 = 1 tam[0] = 0 i = 0 endif tam[4] = 0 ' cho gia tri cua bien tam cuoi cung bang Null if tam[0] = 1 then if tam[1] = 2 then if tam[2] = 3 then if tam[3] = 4 then kiemtra = 1 if key = 10 then if kiemtra = 1 then

Page 144: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 133 -

print at 2,1,"Open the door" porta.2 = 0 i = 0 else sai = sai - 1 print at 2,1,"Wrong password" delayms 300 print at 2,1,"please wait . . ." delayms 300 print at 2,1,"Remain ",dec sai," times" endif endif delayms 400 i = i + 1 if i = 5 then i = 1 while sai = 0 porta.1 = 0 print at 1,1, "Lock key " print at 2,1,"Contact Host " goto main wend wend Next goto Main end

FILE KÈM THEO

PROTON_4.INC:

DEVICE = 16F877 XTAL = 4 ‘ thach anh 4Mhz LCD_DTPIN = PORTb.4 LCD_RSPIN = PORTb.2 LCD_ENPIN = PORTb.3 LCD_INTERFACE = 4' 4-bit Interface LCD_LINES = 2 LCD_TYPE = 0

‘ khai bao LCD

symbol T300 = 3313 Symbol N300 = 3313 + $4000 Symbol T600 = 1646 Symbol N600 = 1646 + $4000 Symbol T1200 = 813 Symbol N1200 = 813 + $4000

Page 145: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 134 -

Symbol T2400 = 396 Symbol N2400 = 396 + $4000 Symbol T4800 = 188 Symbol N4800 = 188 + $4000 Symbol T9600 = 84 Symbol N9600 = 84 + $4000 Symbol OT2400 = 396 + $8000 ' Open True Symbol OT1200 = 813 + $8000 ' Open True Symbol OT9600 = 84 + $8000 ' Open True Symbol OT300 = 3313 + $8000' Open True Symbol ON2400 = 396 + $4000 + $8000 ' Open Inverted Symbol ON1200 = 813 + $4000 + $8000 ' Open Inverted Symbol ON9600 = 84 + $4000 + $8000 ' Open Inverted Symbol ON300 = 3313 + $4000 + $8000' Open Inverted

‘ Khai bao cac toc do Baud

III. TẬP LỆNH AT COMMAND

1. LỊCH SỬ PHÁT TRIỂN 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ó.

Các modem ngày xưa chỉ tương thích cho việc gửi và 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. Vấn đề này thì không có gì cần phải bàn cãi trong những ngày trước đây khi mà máy tính được sử dụng bởi những nhà kỹ thuật khéo léo, modem và các máy tính lớn. 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 đề tài cần thảo luận.

Chúng ta đang nói về tuổi đời khi Internet, tele-banking và các ứng dụng truyền thông phổ biến khác khi mà chúng ta biết chúng bây giờ không còn tồn tại nữa rồi. Lí do chính của mọi người còn sử dụng modem đó là để kết nối với BBSes, Bullitin Board Systems. Các hệ thống máy tính chính thống được sử dụng bởi các công ty và các tính nguyện viên nơi mà mọi người có thể giao tiếp với người khác bằng cách sử dụng các board thông tin và up rồi download phần mềm cùng với các tiện tính. Với chi phí thấp thì dễ dàng cho việc sử dụng các modem, nó làm cho cộng việc này trở thành có thể thực thi. Ở điều kiện lí tưởng, các modem có thể quay các số điện thoại mong muốn mà không cần có giao diện dành cho người dùng hay một bộ quay số bên ngoài

Page 146: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 135 -

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 điều khiển đế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 rõ ràng nào đó. Không may đó là các quá trình thực thi 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ứ hai 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 có thể điều khiển lệnh nhắm tới modem duy nhất. Dennis Hayes đã đưa 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ả 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 tới 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 ngay càng tăng cùng với thời gian, nên làm cho ngôn ngữ lệnh Hayes AT và nhanh chóng mỗi nhà sản xuất modem đã sử dụng ngôn ngữ của riêng ô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 công nghệ 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)

Chú ý là khởi động “AT” là một tiền tố để thông báo tới modem về sự bắt đầu của một dòng lệnh. Nó không phải là một phần của tên lệnh AT. Ví dụ như D là một tên lệnh AT thực tế trong ATD và +CMGS là tên một lệnh AT thực tế trong AT+CMGS. Tuy nhiên, một số sách hay một số trang web lại sử dụng chúng thay cho nhau như là tên của một lệnh AT.

Sau đây là một vài nhiệm vụ có thể được hoàn thành bằng cách sử dụng các lệnh AT kết hợp với sử dụng 1 modem GSM/GPRS hay một điện thoại di động:

Page 147: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 136 -

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

Thiết lập một kết nối dữ liệu hay kết nối voice tới một remote điều khiển (ATD, ATA,..)

Gửi và nhận fax (ATD, ATA,AT+F*) Gửi (AT+CMGS, AT+CMSS), đọc (AT+CMGR, AT+CMGL), viết

(AT+CMGW) hay xóa tin nhắn SMS (AT+CMGD) và nhận các thông báo của các tin nhắn SMS nhận được mới nhất (AT+CNMI).

Đọc (AT+CPBR), viết (AT+CPBW) hay tìm kiếm (AT+CPBF) 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).

(Các ví dụ về khóa chức năng: khóa SIM [một password phải được cho vào thẻ SIM mỗi khi điện thoại được mở] và khóa PH-SIM [một thể SIM nào đó có liên kết tới điện thoại, và để sử dụng được các thẻ SIM khác thì buộc phải đăng nhập một password vào trong nó].)

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

Chú ý là nhà sản xuất điện thoại di động thường không thi hành tất cả các lệnh AT, các thông số lệnh và các giá trị của tham số trong các điện thoại di động. Trạng thái hành vi của các lệnh AT thực thi có thể cũng khác so với các định nghĩa chuẩn trước đó. Nói chung, các modem GSM/GPRS được thiết kế dành cho các ứng dụng

Page 148: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 137 -

wireless mà có được các hỗ trợ tốt về các lệnh AT hơn là các điện thoại di động thông thừơng khác.

Thêm vào đó, một vài lệnh AT yêu cầu sự hỗ trợ từ các tổng đài của mạng di động. Ví dụ, SMS thông qua GPRS có thể được kích hoạt trên các điện thoại di động có sử dụng GPRS và các modem GPRS với lệnh +CGSMS (tên lệnh ở dạng text: Select Service for MO SMS Messages). Nhưng nếu tổng đài mạng điện thoại không hỗ trợ quá trình truyền dẫn SMS thông qua GPRS, thì bạn không thể sử dụng chức năng này được.

2. MODEM GSM & MODEM GPRS:

2.1. Modem GSM

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ì gửi và nhận dữ liệu thông qua sóng radio .

Một modem GSM có thể là một thiết bị mở rộng bên ngoài hay một PC Card/PCMCIA Card. Điển hình đó là một modem GSM rời bên ngoài được kết nối với một máy tính thông qua một cáp nối tiếp hay một cáp USB. Một modem GSM hợp chuẩn với một PC Card/PCMCIA Card được thiết kế cho việc sử dụng với môt máy tính laptop. Nó được gắn vào một trong những khe cắm PC Card/PCMCIA Card của một máy tính laptop.

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 sóng mang wireless để hoạt động.

Như đã đề cập trong mục trước đó về hướng dẫn về SMS, các máy tính sử dụng lệnh AT để điều khiển modem. Cả hai modem GSM và modem quay số đều có hỗ trợ một bộ các lệnh AT chuẩn chung. Vì thế bạn có thể sử dụng modem GSM hay modem quay số đều được.

Bổ trợ cho các lệnh AT chuẩn, 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 này,bạn có thể làm một số thứ như sau:

+ Đọ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ạ

Số tin nhắn SMS có thể được thực thi bởi một modem SMS trên một phút là rất thấp, nó chỉ khoảng từ 6 đến 10 tin nhắn SMS trong 1 phút.

Page 149: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 138 -

2.2. Modem GPRS : Một modem GPRS là một modem GSM mà có hỗ trợ thêm cộng nghệ GPRS

cho việc truyền dữ liệu. GPRS hỗ trợ cho Dịch Vụ Radio Gói Đầy Đủ (General Packet Radio Service). Nó là một công nghệ truyền gói tin và là một mở rộng của GSM (GSM là một công nghệ chuyển mạch). Một ưu điểm đáng kể của GPRS trên nền GSM đó là GPRS có tốc độ truyền dữ liệu cao hơn.

GPRS có thể được sử dụng giống như một bộ truyền tin của SMS. Nếu như SMS trên nền GPRS được sử dụng thì nó có thể đạt tới tốc độ truyền là 30 tin nhắn SMS trong một phút. Điều này cho thấy nó thực thi nhanh hơn nhiều so với sử dụng SMS trên nền GSM (với GSM thì tốc độ truyền chỉ khoảng 6 tới 10 tin nhắn SMS trong một phút). Cần phải có modem GPRS để truyền và nhận tin nhắn SMS trền nền GPRS. Và cần chú ý là một vài sóng mang wireless không hỗ trợ việc gửi và nhận tín nhắn SMS trên nền GPRS.

Nếu như chúng ta cần gửi hay nhận các tin nhắn SMS thì cần phải có một modem GPRS chuẩn.

2.3. Sự chọn lựa giữa: Mobile Phone và Modem GPRS

Nói chung, một modem GSM/GPRS thường được khuyên dùng hơn dành cho máy tính cho việc gửi và nhận tin nhắn. Đó là bởi vì các điện thoại di động thường có những giới hạn nhất định nào đó của nó so với các modem GSM/GPRS. Say đây là một vài miêu tả giới hạn của nó.

Một vài model điện thoại di động (chẳng hạn như Ericsson R380) không thể sử dụng với máy tính trong việc nhận các tin nhắn SMS ở dạng chuỗi nối tiếp nhau.

Khi một thiết bị điện thoại di động nhận các tin nhắn SMS , tin nhắn này bao gồm tất cả các phần của một tin nhắn SMS nối chuỗi với nhau, nó kết hợp chúng lại với nhau thành một tin nhắn một cách tự động. Cách xử lí hợp lí nên là: khi thiết bị di động nhận các tin nhắn SMS mà các phần của tin nhắn này được kết nối móc chuỗi với nhau, nó đẩy chúng tới máy tính mà không kết hợp chúng lại

Nhiều model điện thoại di động không thể sử dụng được với máy tính để nhận các tin nhắn MMS. Bởi vì khi chúng nhận một thông báo MMS, chúng sẽ xử lí nó một cách tự động thay vì đưa nó tới máy tính.

Một điện thoại di động không hỗ trợ các lệnh AT, các tham số lệnh và các giá trị của tham số. Ví dụ, các thiết bị di động không hỗ trợ việc gửi và nhận các tin nhắn SMS ở chế độ text. Cho nên lệnh AT "AT+CMGF=1" (nó chỉ dẫn cho điện thoại di động sử dụng chế độ text) sẽ gây ra một thông báo lỗi phản hồi lại. Thường thì các modem GSM/GPRS hỗ trợ cho một bộ lệnh AT hoàn chỉnh nhiều hơn so với các thiết bị điện thoại di động.

Page 150: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 139 -

Hầu hết các ứng dụng tin nhắn SMS phải ở chế độ sẵn sàng suốt 24 giờ trong một ngày (ví dụ như, ứng dụng tin nhắn SMS mà cung cấp dịch vu download nhạc chuông nên được chạy tại tất cả các thời gian trong ngày như thế người dùng mới có thể doanload nhạc chuông tại bất kỳ thời điểm nào mà họ muốn). Nếu như các ứng dụng sử dụng điện thoại di động để gửi và nhận các tin nhắn SMS thì chiếc điện thoại di dộng này phải được mở suốt cả ngày. Tuy nhiên một số model điện thoại di động không thể hoạt động khi tháo bin ra khỏi, thậm chí khi một adaptor AC được kết nối, điều đó có nghĩa là bin sẽ được nạp điện 24 tiếng trong một ngày.

Bên cạnh các vấn đề trên, các điện thoại di động và các modem GSM/GPRS ít hay nhiều cũng giống nhau trong việc gửi và nhận các tin nhắn từ máy tính. Thực ra thì bạn có thể coi một lệnh AT được dùng để kích hoạt các thiết bị di động như "GSM/GPRS modem + keypad + display + ...".

Có nhiều sự khác nhau giữa các điện thoại di động và các modem GSM/GPRS ở trong các giới hạn về tốc độ truyền tin SMS, vì thế yếu tố xác định cho tốc độ truyền tin nhắn SMS là mạng wireless.

3. Các thủ tục cần có cho việc gửi các lệnh AT tới một điện thoại di động hay một modem GSM/GPRS bằng cách sử dụng MS HyperTerminal.

Để sử dụng MS HyperTerminal cho việc gửi các lệnh AT đến điện thoại di động hay modem GSM/GPRS, bạn cần phải thực hiện theo những bước như sau:

1. Cho một thẻ SIM vẫn còn gía trị vào vào trong điện thoại di động hay một modem GSM/GPRS. Bạn có thể kiếm được một thẻ SIM bằng cách mua dịch vụ GSM của một nhà phân phối mạng wireless

2. Kết nối điện thoại di động hay modem GSM/GPPRS của bạn tới máy tính và cài đặt driver của modem wireless tương ứng cho nó. Bạn sẽ tìn thấy driver của modem wireless trong đĩa CD mà nhà sản xuất cung cấp cho bạn. Và nếu như nhà sản xuất không cung cấp driver cho điện thoại hay modem GSM/GPRS thì bạn có thể vào trang web của nhà sản xuất để download nó về rồi cài vào. Còn nếu vào trang web của nàh sản xuất mà cũng không có thì bạn vẫn có thể sử dụng driver cho modem chuẩn của Window

3. Chạy MS HyperTerminal bằng cách chọn Start →Programs→Accessories → Communications → HyperTerminal.

4. Trong hộp thoại Connection Description, hãy gõ tên và chọn một biểu tượng icon mà bạn thích dùng cho kết nối này. Sau đó thì nhấn nút OK

5. Trong hộp thoại Connect to, chọn COM port mà điện thoại di động hay modem GSM/GPRS đang kết nối tới tại khay Connect using. Thí dụ, bạn có thể chọn CÓM khi điện thoại di động hay modem đang được kết nối với port COM1. Sau đó thì nhấn nút OK.

Page 151: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 140 -

( đôi khi sẽ có hơn một port COM ở trong khay Connect using. Để biết port COM nào được sử dụng bởi điện thoại di động hay modem GSM/GPRS thì hãy làm theo những bước sau đây:

Trong Window 98:

Vào Control Panel -> Modem sau đó click vào tab Diagnostics. Trong hộp thoại này bạn sẽ thấy port COM nào mà điện thoại di động hay modem GSM/GPRS đangđược kết nối.

Trong Window2000

Vào Control Panel →Phone and Modem Options. Sau đó click vào tab Modems .Trong hộp thoại này bạn sẽ thấy port COM nào mà điện thoại di động hay modem GSM/GPRS đangđược kết nối.)

6. Hộp thoại Properties xuất hiện. Chọn các thiết lập port chính xác cho điện thoại di động hay modem GSM/GPRS. Sau đó click vào nút OK

(Để tìm ra các thiết lập chính xác phù hợp với điện thoại di động hay modem GSM/GPRS thì có một cách đó là tra sổ hướng dẫn cầm tay của điện thoại di động của bạn hay modem GSM/GPRS. Và một cách khác là kiểm tra các thiết lập port được sử dụng cho driver của modem wireless mà bạn cài đặt trước đó).

Để kiểm tra các thiết lập port được sử dụng cho driver của modem wireless trên nền Windows 98, hãy làm theo những bước sau:

a.Vào Control Panel → Modem.

b.Chọn điện thoại di động hay modem GSM/GPRS trong hộp thoại hiện ra.

c.Click vào nút Properties

d.Hộp thoại Properties hiện ra. Tại khu vực Maximum speeds tại tab General ứng với khu vực Bits per second HyperTerminal. Click vào tab Connection và bạn có thể tìm các thiết lập cho các bít dữ liệu, các bít parityvà bit stop. Click vào nút Advanced thì bạn có thể tìm thấy thiết lập cho điều khiển lưu lượng.

Để kiểm tra các thiết lập port được sử dụng cho driver của modem wireless trên nền Windows 2000 và Windows XP, hãy làm theo những bước sau:

a.Vào Control Panel→Phone and Modem Options→Modems tab.

b.Chọn điện thoại di động hay modem GSM/GPRS trong hộp thoại hiện ra.

c.Click vào nút Properties

d.Hộp thoại Properties hiện ra. Click vào tab Advanced rồi sau đó Click vào nút Change Default Preferences

Page 152: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 141 -

e.Hộp thoại Change Default Preferences xuất hiện. Khu vực Port Speed ở tab General tương ứng với khu vực Bits per second. Bạn cũng có thể tìm các thiết lập cho điều khiển lưu lượng ở tab General. Ở tab Advanced, bạn có thể tìm các thiết lập cho các bít dữ liệu, các bít parity và bít stop.

Hình: Cửa sổ màn hình hộp thoại Properties của MS HyperTerminal trong Windows 98.

7. Gõ “AT” ở trong cửa sổ màn hình window chính. Một phản hồi “OK” sẽ được trả lời từ điện thoại di động hay modem GSM/GPRS

Gõ “AT+CPIN?” trong cửa sổ màn hình window chính. Lệnh AT “AT+CPIN” được sử dụng để chất vần liệu điện thoại di động hay modem GSM/GPRS đang đợi một PIN có đúng không (personal identification number _số nhận dạng cá nhân, ví dụ như password). Nếu thấy có phản hồi là “+CPIN:READY”thì nó có nghĩa là thẻ SIM không yêu cầu có một PIN và nó đã sẵn sàng cho sử dụng. Còn nếu như thẻ SIM của bạn yêu cầu có một PIN thì bạn cần đặt PIN thông qua lệnh AT “AT+CPIN+<PIN>”.

Page 153: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 142 -

Hình: Cửa sổ màn hình chính của MS HyperTerminal trong windows 98.

Nếu như bạn nhận được phản hồi như cửa sổ màn hình trên thì điện thoại di động hay modem GSM/GPRS đang hoạt động đúng. Và tới đây bạn có thể gõ cá lệnh AT theo ý riêng của bạn để điều khiển điện thoại di động hay modem GSM/GPRS.

Để có những hiểu biết chi tiết hơn về cách sử dụng các lệnh AT để gửi và nhận các tin nhắn SMS sẽ được cung cấp trong các mục sau.

Kiểm tra xem điện thoại di động hay modem GSM/GPRS có hỗ trợ việc sử dụng các lệnh AT để gửi, nhận và đọc các tin nhắn SMS.

Sau khi kiểm tra xong các truyền thông giữ PC và điện thoại di động hay modem GSM/GPRS, thứ kế tiếp mà bạn muốn làm là kiểm tra xem điện thoại di động hay modem GSM/GPRS có hỗ trợ việc sử dụng các lệnh AT để truyền, nhận và đọc tin nhắn SMS không. Hầu hết các modem GSM/GPRS đều có hỗ trợ ba chức năng trên nhưng chỉ có một số điện thoại di động hỗ trợ các chức năng đó.

Gửi tin nhắn SMS.

Để hiểu xem một modem GSM/GPRS hay điện thoại di động có hỗ trợ việc gửi các tin nhắn SMS thông qua các lệnh AT hay không, bạn phải:

1.Sử dụng lệnh AT +CSMS (tên lệnh trong text: Select Message Service) để kiểm tra liệu xem các tin nhắn SMS có nguồn gốc từ mobile có được hỗ trợ không.

2.Thực thi các hoạt động test để kiểm tra liệu các lệnh AT +CMGW (tên lệnh ở dạng text: Send Message) và (hay) +CMSS (tên lệnh ở dạng text: Send Message from Storage) được hỗ trợ không.

(bạn có thể kiểm tra các lệnh AT +CMGW [tên lệnh ở dạng text: Write Message to Memory] và +CMGD [tên lệnh ở dạng text: Delete Message] thêm vào khi đôi khi chúng được sử dụng chung với +CMSS)

Nhận và đọc các tin nhắn SMS từ vùng lưu trữ tin nhắn

Page 154: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 143 -

Để hiểu xem liệu một modem GSM/GPRS hay điện thoại di động có hỗ trợ nhận và đọc tin nhắn SMS thông qua các lệnh AT không thì bạn phải :

1.Sử dụng lệnh AT +CSMS (tên lệnh ở dạng text: Select Message Service) dùng để kiểm tra xem liệu các tin nhắn SMS kết cuối di động có được hỗ trợ không

2.Thực thi các hoạt động test để kiểm tra xem liệu +CNMI (tên lệnh ở dạng text: New Message Indications to TE), +CMGL (tên lệnh ở dạng text: List Messages) và (hay) +CMGR (tên lệnh ở dạng text: Read Message) có được hỗ trợ không.

Nếu như modem GSM/GPRS hay điện thoại di động có hỗ lệnh AT +CNMI thì nó có thể gửi một thông báo hay trực tiếp xúc tiến tin nhắn tới PC bất cứ khi nào một tin nhắn SMS mới tới.

Còn nếu như modem GSM/GPRS hay điện thoại di động không hỗ trợ lệnh +CNMI nhưng lai hỗ trợ lệnh +CMGL và/hay +CMGR thì PC phải có sự lựa chọn modem GSM/GPRS hay điện thoại di động theo thứ tự để biết nếu như có bất kỳ tin nhắn mới nào vừa tới nó.

4. Chế độ hoạt động: chế độ SMS text và chế độ SMS PDU:

Chi tiết kỹ thuật của SMS được định nghĩa ở hai chế độ (hai mode),và ở hai chế độ đó modem GSM/GPRS hay điện thoại di động đều có thể hoạt động tốt với nó. Hai chế độ đó là :chế độ SMS text và chế độ SMS DPU. (chuẩn PDU dùng cho đơn vị dữ liệu Protocol). Chế độmà một modem GSM/GPRS hay điện thoại di động đang hoạt động tìm kiếm, xác định cấu trúc ngữ pháp của các lệnh AT SMS và định dạng của các đáp ứng trả lại sau khi thi hành. Dưới đây là các lệnh AT SMS mà nó có ảnh hưởng tới:

CMGS (Send Message_gửi tin nhắn)

CMSS (Send Message from Storage_gửi tin nhắn từ trung tâm lưu trữ)

CMGR (Read Message_đọc tin nhắn)

CMGL (List Messages_liệt kê các tin nhắn)

CMGW (Write Message to Memory_viết tin nhắn vào bộ nhớ)

CNMA (New Message Acknowledgement to ME/TA_Sự chấp nhận các tin nhắn mới tới ME/TA).

CMGC (Send Command_gửi tin nhắn).

Hai lệnh AT sau chỉ hữu ích khi chế độ SMS text được sử dụng.

CSMP (Set Text Mode Parameters_đặt các tham số cho chế độ text)

CSDH (Show Text Mode Parameters_Chỉ ra các tham số ở chế độ text)

5. Sự so sánh giữa chế độ SMS text và chế độ SMS PDU:

Page 155: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 144 -

Dưới đây chúng ta sẽ so sánh các khía cạch khác nhau giữa hai chế độ SMS text và SMS PDU. Sự so sánh này sẽ giúp chúng ta thấy được sự khác nhau giữa hai chế độ này và từ giúp ta có quyết định tốt hơn trong việc chọn lựa chế độ nào nên được sử dụng bởi ứng dụng tin nhắn SMS của bạn.

Cấu trúc ngữ pháp của các lệnh AT SMS và các đáp ứng của nó:

Khi modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế độ khác nhau thì cấu trúc ngữ pháp lệnh AT SMS nào đó và các đáp ứng của nó đưa lại sau khi thực thi lệnh là khác nhau. Sau đây là một ví dụ cho trình bày nói trên. Giả sử rằng bạn muốn gửi một tin nhắn SMS như sau: “It is easy to send text messages” đến một số điện thoại +85291234567 thì trong chế độ SMS text thì dòng lệnh bạn phải đánh vào là như sau: AT+CMGS="+85291234567"<CR>It is easy to send text messages.<Ctrl+z> . Tuy nhiên nếu modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế độ SMS PDU thì việc thực thi dòng lệnh trên sẽ phát sinh ra một lỗi. Đó là do cấu trúc ngữ pháp của lệnh AT +CMGS được sử dụng theo một cách khác trong chế độ SMS DPU. Để thực thi nhiệm vụ trên thì dòng lệnh sau nên được thay thế vào:

AT+CMGS=42<CR>07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDECLAREB6E32885EC6D341EDF27C1E3E97E72E <Ctrl+z>

Các giá trị được định nghĩa cho các tham số:

Khi modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế độ khác nhau thì các giá trị của các tham số nào đó cũng khác nhau. Thường thì các giá trị dạng string được định nghĩa dành cho chế độ SMS text trong khi các giá trị số được định nghĩa dành cho chế độ PDU. Thí du, lệnh AT +CMGL được sử dụng để liệt kê các tin nhắn được lưu trữ trong kho lưu trữ tin nhắn. Nó sẽ lấy một tham số để chỉ ra trạng thái của các tin nhắn SMS được tìm, lấy về. Bảng thông số sau sẽ liệt kê các giá trị được định nghĩa cho các tham số trong hai chế độ text và chế độ PDU.

Trạng thái tin nhắn Các giá trị định nghĩa

trong chế độ text Các giá trị định nghĩa

trong chế độ PDU

Received unread "REC UNREAD" 0

Received read "REC READ" 1

Stored unsent "STO UNSENT" 2

Stored sent "STO SENT" 3

All messages "ALL" 4

Page 156: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 145 -

Giả sử rằng bạn muốn liệt kê tất cả cac1tin nhắn từ trung tâm lưu trữ tin nhắn. Nếu như modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế độ SMS text thì bạn nên ấn định giá trị dạng string “All” đối với lệnh AT AT +CMGL như sau:

AT+CMGL="ALL"

Còn trong chế độ SMS PDU thì giá trị số “4” nên được ấn định cho cho lệnh AT +CMGL, nó như sau:

AT+CMGL=4

Dạng ngõ ra/ngõ vào (input/output) của các tin nhắn SMS được dùng bởi các lệnh AT SMS.

Khi modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế độ khác nhau thì dạng ngõ ra/ngõ vào (input/output) của các tin nhắn SMS được dùng bởi các lệnh AT SMS cũng khác nhau. Trong chế độ SMS text thì đầu và thân của các tin nhắn SMS được làm các ngõ vào vao/ngõ ra khi tách rời các tham số/các lĩnh vực.Trong chế độ SMS DPU, TPDUs (Transport Protocol Data Units) ở định dạng hexa là các ngõ vào và ngõ ra. Đầu và thần của các tin nhắn SMS được mã hóa theo dạng TPDUs.

Sau đây là một thí dụ cho những trình bày nói trên. Để gửi một tin nhắn SMS "It is easy to send text messages." Đến một số điện thoại +85291234567 thì dòng lệnh sau nên được sử dụng trong chế độ SMS text. Trong khi bạn thấy các dưới đây, đầu số của số điện thoại đích và các đầu số của các số điện thoại khác nữa được mã hóa theo dãy số hexa.

AT+CMGS=42<CR>07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDECLAREB6E32885EC6D341EDF27C1E3E97E72E <Ctrl+z>

Dễ dàng trong sử dụng

Khi các bạn đã xem tất cả các ví dụ trước thì bạn sẽ cảm thấy thật là dễ dàng sử dụng các lệnh AT trong chế độ SMS text. Bạn không cần phải học về các loại cấu trúc khác nhau của TPDUs ở dạng bit hay là các mã hóa hay giải mã các chuỗi số hexa.

Các đặc điểm hỗ trợ của tín nhắn SMS

Mặc dù sử dụng các lệnh AT rất dễ dàng trong chế độ SMS text, nhưng nó lại hỗ trợ ít các đặc điểm về tin nhắn SMS hơn là chế độ SMS DPU. Điều này là do bạn không thể hoàn tất các điều khiển dựa trên các giá trị đầu và than6cua3 tin nhắn trong chế độ SMS text. Một vài nhiệm vụ có thể được hoàn thành trong chế độ text, đòi hỏi người lập trình phải hiểu biết về chế độ PDU và TPDU. Thí dụ, để yêu cầu một bản tin trạng thái từ SMSC trong chế độ SMS text thì bạn phải đặt bit 5 của 8 bít đầu tiên trong SMS-SUBMIT TPDU thành “1” bằng lệnh AT +CCMP (tên lệnh ở dạng text:

Page 157: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 146 -

Set Text Mode Parameters). Các nhiệm vụ tương tự bao gồm thiết lập chu kỳ hợp lí cho tin nhắn và gửi một tin nhắn SMS dạng flash (nghĩa là nó ngay lập tức xuất hiện trên màn hình điện thoại khi nó đến địa chỉ đích).

6. Gửi các tin nhắn SMS từ một máy tính/PC sử dụng các lệnh AT (AT+CMGS, AT+CMSS)

Chế độ SMS DPU có nhiều hỗ trợ phổ biến hơn dành cho điện thoại hay modem GSM/GPRS hơn là cho chế độ SMS text.

Cả hai lệnh AT+CMGS (tên lệnh ở dạng text:Send Message) và +CMSS(tên lệnh ở dạng text: Send Message From Storage) đều có thể được sử dụng để gửi các tin nhắn SMS từ một máy tính (PC). Sự khác nhau cơ bản ở bản giữa chúng là lệnh AT +CMGS lấy các tin nhắn SMS như là một tham số,trong khi đó lệnh AT+CMSS lấy các số index mà chỉ rõ vị trí của tin nhắn SMS trong khu vực lưu trữ tin nhắn như là một tham số. Những trình bày sau đây là một thí dụ để làm sáng tỏ sự khác nhau này. Giả sử rằng bạn muốn gửi một tin nhắn dạng text "Sending text messages is easy." Từ một máy tính để bàn (PC) tới một số thoại di động 091234567 sử dụng lệnh AT +CMGS ở chế độ SMS text. Và sau đây là dòng lệnh được sử dụng:

AT+CMGS="91234567"<CR>Sending text messages is easy.<Ctrl+z>

Còn nếu cũng muốn gửi text nhưng sử dụng lệnh AT +CMSS thì đầu tiên bạn phải sử dụng lệnh AT+CMGW (tên lệnh ở dạng text: Write Message to Memory) để viết text tin nhắn tới khu vực lưu trữ tin nhắn. Trong chế độ SMS text thì dòng lệnh sẽ như sau:

AT+CMGW="91234567"<CR>Sending text messages is easy.<Ctrl+z>

Giờ thì chúng ta có thể nói text tin nhắn SMS bây giờ được định vị tại index 3 của vùng lưu trữ tin nhắn. Ban5co1 thể sử dụng lệnh AT +CMSS để gửi text tin nhắn đến trung tâm tin nhắn bằng dòng lệnh sau:

AT+CMSS=3

Khi khong gian lưu trữ bị giới hạn, nếu như mỗi text tin nhắn SMS đã gửi được để ở vùng lưu trữ tin nhắn thì sẽ có một thời điểm khi mà không có thêm các text tin nhắn SMS nào có thể được viết. Để giải thoát không gian lưu trữ, bạn có thể sử dụng lệnh AT +CMGD (tên lệnh ở dạng text: Delete Message) để xóa các text tin nhắn SMS ở vùng lưu trữ tin nhắn,nó như sau:

AT+CMGD=3

Khi bạn thấy dòng lệnh trên, gửi một tin nhắn SMS bằng lệnh AT +CMSS là một sự nặng nề về bit, bởi vì nó bao gồm nhiều bước và các lệnh AT. Tuy nhiên,một bản copy của tin nhắn SMS đã gửi được lưu ở vùng lưu trữ tin nhắn. Điều này không thể đạt được với lệnh AT +CMGS.

Page 158: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 147 -

Trong một vài tình huống, có nhiều thuận lợi để gửi các tin nhắn SMS bằng lệnh AT +CMSS hơn là dùng lệnh AT +CMGS. Ví dụ, nếu như bạn phải gửi các tin nhắn tương tự nhau đến nhiều người nhận thì sử dụng lệnh At +CMSS sẽ thuận lợi hơn:

AT+CMSS=3,"91234567"

AT+CMSS=3,"97777777"

AT+CMSS=3,"96666666"

7. Đọc các tin nhắn SMS từ một khu vực lưu trữ tin nhắn sử dụng các lệnh AT (AT+CMGR, AT+CMGL)

Để kích hoạt sử dụng một máy tính để bàn (PC) cho việc đọc các tin nhắn SMS từ một khu vực lưu trữ tin nhắn, thì modem GSM/GPRS hay điện thoại di động phải được hỗ trợ cả hai lệnh AT+CMGR (tên lệnh ở dạng text: Read Messages) và lệnh AT+CMGL (tên lệnh ở dạng text: List Messages). Lệnh AT+CMGR được sử dụng để đọc một tin nhắn SMS tại một vị trí nào đó trong khu vực lưu trữ tin nhắn. Trạng thái có thể là : "received unread", "received read", "stored unsent", "stored sent",…Còn lệnh AT+CMGL cũng cho phép bạn lấy tất cả các tin nhắn SMS được lưu trữ trong khu vực lưu trữ tin nhắn.

Những trình bày sau là một ví dụ nhằm giúp hiểu rõ được sự khác nhau giữa +CMGR và +CMGL. Giả sử rằng bạn muốn sử dụng máy tính đọc một text tin nhắn từ một khu vực lưu trữ tin nhắn và bạn cũng biết chỉ số của text tin nhắn SMS là ở chỗ nào. Trong trường hợp này thì bạn nên sử dụng lệnh AT+CMGR. Và đây là dòng lệnh được đánh vào(giả sử rằng text tin nhắn được lưu trữ tại vị trí có chỉ số là 3):

AT+CMGR=3

Modem GSM/GPRS hay điện thoại sẽ phản hồi lại như sau:

+CMGR: "REC READ","+85291234567",,"07/02/18,00:12:05+32". Hello, welcome to our SMS tutorial. OK

Giả sử bay giờ bạn lại ở trong một tình huống khác. Bạn muốn sử dụng máy tính bàn (PC) để lấy về tất cả các tin nhắn SMS mà bạn chưa đọc trước đó. Trong trường hợp này thì bạn sử dụng lệnh AT+CMGL. Trong chế độ SMS text thì dòng lệnh được sử dụng là:

AT+CMGL="REC UNREAD"

Modem GSM/GPRS hay điện thoại sẽ phản hồi lại như sau:

+CMGL: 1,"REC UNREAD","+85291234567",,"07/02/18,00:05:10+32" Reading text messages is easy.

Page 159: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 148 -

+CMGL: 2,"REC UNREAD","+85291234567",,"07/02/18,00:07:22+32" A simple demo of SMS text messaging. OK

Lệnh AT+CMGL cũng có thể được dùng để đọc tất cả các tin nhắn mà được lưu trữ trong khu vực lưu trữ tin nhắn. Để làm được như vậy trong chế độ SMS text thì dòng lệnh sẽ là:

AT+CMGL="ALL"

Ở thời điểm này thì phản hồi của Modem GSM/GPRS hay điện thoại di động sẽ như sau:

+CMGL: 1,"REC READ","+85291234567",,"07/02/18,00:05:10+32" Reading text messages is easy. +CMGL: 2,"REC READ","+85291234567",,"07/02/18,00:07:22+32" A simple demo of SMS text messaging. +CMGL: 3,"REC READ","+85291234567",,"07/02/18,00:12:05+32" Hello, welcome to our SMS tutorial. OK

Với những gì bạn thấy ở những dòng trên, lệnh AT+CMGR chỉ có thể được sử dụng để đọc 1 tin nhắn SMS tại một thời điểm trong khi đó lệnh AT+CMGL có thể được sử dụng để đọc nhiều tin nhắn tại cùng một thời điểm.

Một sự khác nhau khác nữa giữa hai lệnh AT+CMGR và AT+CMGL là lệnh AT+CMGR có thể được sử dụng để lấy nhiều chi tiết tin nhắn hơn là lệnh AT+CMGL khi cac1 modem GSM/.GPRS hay các điện thoại di động đang hoạt động ở chế độ SMS text.Sau đây là cac1chi tiết tin nhắn có thể lấy được bằng cách sử dụng lệnh AT+CMGR ở chế độ SMS text.

+ Trạng thái của tin nhắn SMS ("received unread", "received read", "stored unsent", "stored sent",…)

+ Số điện thoại của người gửi/người nhận được lưu trữ trong phần đầu của tin nhắn SMS và kiểu của số điện thoại.

+ Text liên quan tới số điện thoại của người gửi/người nhận nằm trong danh bạ điện thoại.

+ Thời gian và ngày tin nhắn SMS đến SMSC (chỉ cho phép với các tin nhắn SMS đến)

+ Tám bit đầu tiên (1 octet = 8 bits) của TPDU (Transport Protocol Data Unit) của tin nhắn SMS.

+ Giá trị nhận dạng protocol nằm trongTPCU của tin nhắn SMS.

Page 160: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Phụ Lục

GVHD_Trần Thu Hà ‐ 149 -

+ Giá trị lược đồ mã hóa dữ liệu nằm trong TPCU của tin nhắn SMS.

+ Số SMSC được lư trữ cùng với tin nhắn SMS và kiểu số SMSC

+ Chu kỳ hợp lí của tin nhắn SMS (chỉ cho phép tin nhắn SMS đi)

+ Thân của tin nhắn SMS và chiều dài của nó.

Sau đây là các chi tiết tin nhắn có thể lấy được bằng cách sử dụng lệnh AT+CMGL ở chế độ SMS text:

+ Số index nhằm định rõ vị trí của tin nhắn SMS ở trong vùng lưu trữ tin nhắn.

+ Trạng thái của tin nhắn SMS ("received unread", "received read", "stored unsent", "stored sent"…)

+ Số điện thoại của người gửi/người nhận được lưu trữ trong phần đầu của tin nhắn SMS và kiểu của số điện thoại.

+ Text liên quan tới số điện thoại của người gửi/người nhận nằm trong danh bạ điện thoại.

+ Thời gian và ngày tin nhắn SMS đến SMSC (chỉ cho phép với các tin nhắn SMS đến)

+ Thân của tin nhắn SMS và chiều dài của nó. Nếu bạn so sánh hai list trên, bạn sẽ nhận ra rằng các chi tiết tin nhắn sau chỉ có

thể được lấy bằng các lệnh AT+CMGR chứ không phải lệnh AT+CMGL:

+ Tám bit đầu tiên của TPCU của tin nhắn SMS.

+ Giá trị nhận dạng protocol trong TPCU của tin nhắn SMS.

+ Gía trị lược đồ mã hóa dữ liệu trong TPCU của tin nhắn SMS.

+ Số SMSC được lưu trữ cùng với tin nhắn SMS và kiểu của số SMSC.

+ Chu kỳ giá trị của tin nhắn SMS (chỉ cho phép với các tin nhắn SMS đi).

Chú ý: Nếu modem GSM/GPRS hay điện thoại di động đang hoạt động ở chế độ SMS PDU thì các chi tiết tin nhắn có thể được lấy bằng hai lệnh AT+CMGR và lệnh AT+CMGL là như nhau.

Page 161: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Hướng Dẫn Sử Dụng Phần Mềm

GVHD_Trần Thu Hà ‐ 150 -

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM

««««oΟo»»»» Phần mềm được viết dựa trên ngôn ngữ lập trình Visual Basic. Net của hãng

Microsoft. Khi tạo thành file để thực thi thì đòi hỏi cần có một nền máy ảo để chạy chương trình. Đó gọi là Net Framework 2.0 hoặc cao hơn. Phần mềm được chạy theo một quy trình như sau :

Khi khởi động phần mềm thì cần phải đăng nhập mới có thể mở chương trình.

Sau khi đang nhập thành công thì ta cần phải thiết lập các thuộc tính để có thể điều khiển thiết bị. Việc thiết lập như sau:

Chọn tên cổng cần kết nối. Chương trình sẽ tự phát hiện ra tên cổng đang sử dụng. Nếu chưa phát hiện hay việc kết nối thiết bị sau khi đã khởi động phần mềm thì bấm nút Refresh

Chọn tốc độ Baud cho Modem điện thoại

Chọn thuộc tính cho thiết bị bằng cách Click vào nút Properties. Trong bảng thuộc tính này có các thành phần như Baudrate, Databit, Stopbit, Parity, Handshaking.

Baudrate : chọn tốc độ Baud cho việc đồng bộ 2 thiết bị, mặc định là 2400

Stopbit : chọn số lượng stopbit cho việc đồng bộ với thiết bị, mặc định là One

Parity : chọn phương thức báo lỗi chẵn, lẻ hoặc không chọn, mặc định là None

Handshaking : chọn phương thức bắt tay, để kiểm tra xem thiết bị có muốn truyền nhận dữ liệu hay không? Mặc định là None

Page 162: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Hướng Dẫn Sử Dụng Phần Mềm

GVHD_Trần Thu Hà ‐ 151 -

Sau khi thực hiện các thao tác trên, lúc này ta mới có thể cho mở cổng. Nếu chưa thực hiện những bước trên thì sẽ xuất hiện thông báo “ Bạn chưa chọn các thuộc tính. Làm ơn hãy chọn thuộc tính trước khi mở cổng”

Sau khi mở cổng thì ta có thể điều khiển được thiết bị thông qua nút bấm và tin nhắn SMS, xem nhiệt độ, các sự kiện xảy ra cứ mỗi 5s, và biểu đồ hiển thị nhiệt độ đo được. Muốn điều khiển bằng tin nhắn SMS thì ta cần nắm các lệnh điều khiển :

light1 on/off : đèn 1 bật/tắt

light2 on/off : đèn 2 bật/tắt

light12 on/off : đèn 1 và 2 bật/tắt

Nút Security có nhiệm vụ thay đổi mật khẩu để khởi động chương trình và số điện thoại cho phép điều khiển các thiết bị khi đã bật phân mềm

Page 163: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Hướng Dẫn Sử Dụng Phần Mềm

GVHD_Trần Thu Hà ‐ 152 -

Khi muốn cài đặt lịch làm việc Schedule Tasks cho hệ thống. Nhấn nút Schedule . Khi nhấn xong thì thực hiện các thao tác trong Form

Chọn ngày giờ và nhập sự kiện sau đó nhấn nút Add. Nhấn nút Confirm để chấp nhận. Khi sau đó nhấn Exit để thoát ra, nếu muốn xóa thì bấm Clear

Muốn nhắn tin đến số điện thoại khác thì soạn tin nhắn tại:

Bấm Send để gửi đi.

Page 164: Điều khiển thiết bị bằng sms

Đồ án tốt nghiệp Tài Liệu Tham Khảo

GVHD_Trần Thu Hà ‐ 153 -

TÀI LIỆU THAM KHẢO 1. NGUYỄN HỮU PHƯƠNG - MẠCH SỐ - NHÀ XUẤT BẢN THỐNG KÊ.

2. NGUYỄN ĐÌNH PHÚ - VI XỬ LÍ 2 - TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT.

3. HOÀNG MINH SƠN – MẠNG TRUYỀN THÔNG CÔNG NGHIỆP – NXB KHOA HỌC VÀ KỸ THUẬT – 2006.

4. DOGAN IBRAHIM – PIC BASIC PROJECTS 30 PROJECTS USING PIC BASIC AND PIC BASIC PRO.

5. JAN AXELSON – SERIAL PORT COMPLETE SECOND EDITION.

6. NGUYỄN TIẾN AN - ĐỒ ÁN TỐT NGHIỆP “THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NGÔI NHÀ TỰ ĐỘNG” - TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT.

7. TRẦN NGỌC MINH, LÊ ANH TÀI - ĐỒ ÁN TỐT NGHIỆP “ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ QUA MẠNG INTERNET” - TRƯỜNG ĐẠI HỌC SỰ PHẠM KỸ THUẬT.

8. MỘT SỐ TRANG WEB:

www.codeproject.com www.dientuvietnam.com www.picvietnam.com www.deverlopershome.com