nhắn tin để điều khiển đóng, mở các thiết bị trong sinh hoạt hằng ngày bằng kết hợp giữa board arduino uno và module breakout SIM900A - Pdf 35

1

Lời Cảm Ơn

Qua năm năm học tập trên ghế nhà trường, em cảm ơn tất cả các Thầy, Cô giảng
dạy tại khoa Điện tử - Viễn thông, trường Đại Học Khoa Học đã nhiệt tình truyền thụ
cho em những kiến thức về chuyên ngành cũng như về các vấn đề xã hội. Đó là những
hành trang cần thiết cho em trong cuộc sống cũng như trong công việc sau này. Và
nhất là hiện tại kiến thức của các Thầy, Cô giảng dạy đã giúp cho em hoàn thành đồ
án tốt nghiệp này. Em chúc quý Thầy, quý Cô luôn mạnh khỏe và hạnh phúc trong
công cuộc trồng người. Em xin trân trọng cảm ơn!!!
Trong quá trình hoàn thành đồ án này, không thể không nói đến công hướng dẫn
của thầy Th.S Phan Hải Phong đã nhiệt tình hướng dẫn, bày vẽ cho em trong quá
trình hoàn thành đồ án. Thầy đã nêu ra nhiều ý tưởng cho phần đồ án, để em có nhiều
hướng đi trong quá trình hoàn thành đồ án. Tuy nhiên, do kiến thức của bản thân cũng
như thời gian thực hiện đồ án có hạn, nên em chỉ hoàn thành một phần nhỏ trong
những ý tưởng Thầy đưa ra. Em chân thành cảm ơn Thầy.
Huế, ngày 10 tháng 06 năm 2015
Sinh viên thực hiện
Trần Văn Hòa


2

MỤC LỤC


3

DANH SÁCH CÁC HÌNH VẼ


Receiver

Nhận dữ liệu

TX

Transmitter

Truyền dữ liệu

TTL

Transistor-Transistor Logic

Giao tiếp nối tiếp

SS

Slave Select

Chọn bên bị động

MOSI

Master Output/ Slave Input

Cổng ra chủ động/ Cổng vào
bị động

MISO


EEPROM

Electrically Erasable Programmable
Read Only Memory

Bộ nhớ chỉ đọc

GSM

Global System for Mobile
Communication

Hệ thống thông tin di động
toàn cầu

GPRS

General Packet Radio Service

Dịch vụ vô tuyến gói tổng
hợp


6
SIM

Subscriber Identity Module

Module nhận dạng tin nhắn


Đa truy nhập phân chia theo
thời gian

HTTP

Hypertext Transfer Protocol

Giao thức truyền tải siêu văn
bản

HTTPS

Hypertext Transfer Protocol Secure

Giao thức truyền tải bảo mật
cao

TCP/ IP

Transmission Control Protocol /

Giao thức truyền thông
Internet

Internet Protocol
ETSI

European Telecommunications
Standards Instiute

quả, cũng như cập nhật tin tức thường ngày, mang lại nhiều tiện ích cho người dùng.
Với nhiều mức giá và nhiều chủng loại khác nhau nên mọi người có thể trang bị
cho riêng mình một chiếc điện thoại di động vừa ý. Nhưng hầu hết mọi người sử dụng
điện thoại di động chỉ với mục đích liên lạc với nhau như gọi điện, nhắn tin, lướt
web…Trên thực tế điện thoại di động còn có nhiều tính năng thiết thực hơn, nếu người
dùng trang bị thêm các thiết bị ngoại vi khác, để điện thoại có thể như là một công cụ
điều khiển hay thiết lập các thiết bị ngoại vi đó theo ý muốn người dùng.
Trong phần đồ án tốt nghiệp của em, em xin trình bày một tính năng nhỏ của điện
thoại di động là nhắn tin để điều khiển đóng, mở các thiết bị trong sinh hoạt hằng
ngày như bóng điện, quạt, điều hòa, tủ lạnh…Bằng kết hợp giữa board Arduino Uno
và module Breakout SIM900A là những mạch đã có sẵn trên thị trường hiện nay.


8

CHƯƠNG I: TỔNG QUAN VỀ NỀN TẢNG ARDUINO VÀ MODULE
BREAKOUT SIM900
1.1. Giới thiệu về nền tảng Arduino.
1.1.1. Lịch sử ra đời của Arduino.

Hình 1.1: Arduino dùng để điều khiển robot.
Nền tảng Adrduino được khởi động vào năm 2005 như là một dự án dành cho
sinh viên tại Interaction Design Institute Ivrea (Viện thiết kết tương tác Ivrea) tại Ivrea,
Italy. Massimo Banzi là một trong những người sáng lập và giảng dạy tại Ivrea. Cái tên
"Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này
thường xuyên gặp mặt. Bản thân quán bar này có được lấy tên là Arduino. Bá tước của
Ivrea, và là vua của Italy từ năm 1002 đến 1014.
Nền tảng này chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ
dành cho sinh viên học tập của giáo sư Massimo Banzi, một trong những người phát
triển Arduino tại trường Interaction Design Instistute Ivrea (IDII). Dù hầu như không có



10
tần số 8 MHz và không có bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết
bị.
1.1.3. Giới thiệu về board mạch Arduino Uno.
Arduino Uno là một board mạch thuộc gia đình Arduino, được thiết kế với bộ xử
lý trung tâm là vi điều khiển AVR Atmega328.

Hình 1.3: Board Arduino Uno.
Cấu tạo chính của Arduino Uno bao gồm các phần sau:
• Cổng USB(1): đây là cổng giao tiếp để tải chương trình từ máy tính lên board Arduino.
Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiền và máy tính.
• Jack nguồn(2): để chạy Arduino thì có thể lấy nguồn từ cổng USB nói trên, nhưng
không phải lúc nào cũng có thể cắm với máy tính được. Lúc đó ta cần một nguồn 9V
đến 12V để cung cấp cho board.
• 14 chân vào ra Digital(3): 14 chân này được đánh số từ 0 đến 13, ngoài ra còn có một
chân nối đất (GND) và một chân điện áp tham chiếu (AREF).
Một số chân Digital có các chức năng đặc biệt như sau:
o 2 chân Serial: 0 (RX) và 1 (TX): dùng để truyền (transmit – TX) và nhận (receive RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với các thiết bị khác thông qua
hai chân này.
o Chân PWM (~): 3, 5, 6, 9, 10 và 11: cho phép xuất ra xung PWM với độ phân giải 8
bit bằng hàm analogWrite(). Nói cách đơn giản, người dùng có thể điều chỉnh được
điện áp ra ở các chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như
những chân khác.


11
o Chân giao tiếp SPI: 10(SS), 11(MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng
thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các

5V
7-12V
6-20V
14 (6 chân có thể cho đầu ra PWM)
6
40mA
32KB(ATmega328)
2KB(ATmega328)
1KB(ATmega328)
16MHz

1.1.4. Trình biên dịch Arduino IDE.
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều
lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm. Môi


12
trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên
nền tảng C/C++ rất quen thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư
viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.

Hình 1.4: Giao diện phần mềm Arduino IDE.
Arduino IDE là phần mềm dùng để lập trình cho Arduino. Môi trường lập trình
Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows,
Macintosh OSX và Linux. Do có tính chất nguồn mở nên môi trường lập trình này
hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm.
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và do
ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn
toàn có thể nhúng thêm code viết bằng AVR vào chương trình nếu muốn. Hiện tại,
Arduino IDE có thể download từ trang chủ bao gồm các phiên bản


Dữ liệu GPRS:
o

GPRS dữ liệu tải xuống: Max 85.6 kbps.

o

GPRS dữ liệu tải lên: Max 42.8 kbps.

o

Sim 900 tích hợp giao thức TCP/IP.

SMS:
o Hỗ trợ các chế độ MT, MO, văn bản và PDU.
o Bộ nhớ SMS: Sim card
Sim card:
Hỗ trợ sim card: 1,8V; 3V

o

Giao tiếp nối tiếp và nghép nối:
Cổng nối tiếp: 8 Cổng nối tiếp (ghép nối)
o Cổng kết nối có thể SD với CSD Fax, GPRS và gửi lệnh Atcommand tới
module điều khiển.

o

Cổng nối tiếp có thể SD chức năng giao tiếp.


14

17

18

19

20

ON/OFF

LED

TXD

RXD

VCC

GND

VCC

GND

• Chân 1: Chân ON/OFF (hay chân S PWER KEY trên module thiết thiết kế sẵn)
ta cần kích một xung có mức tích cực dương vào khoảng 1s, lúc này led báo hiệu
sẽ sáng, sau đó chớp nháy với tần suất nhanh báo hiệu SIM900A đang khởi

• 160 ký tự nếu như mã hóa kí tự 7 bit được sử dụng (mã hóa kí tự 7 bit thì phù
hợp với mã hóa các kí tự Latin chẳng hạn như các kí tự Alphabet của Tiếng Anh)
• 70 ký tự nếu như mã hóa kí tự 16 bit Unicode UCS2 được sử dụng (các tin nhắn
SMS không chứa các kí tự Latin như kí tự chữ Trung Quốc phải sử dụng mã hóa
kí tự 16 bit).
Tin nhắn SMS dạng văn bản 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 văn bản, thì tin nhắn SMS còn có thể mang các dữ
liệu dạng nhị phân. 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 không dây.


18
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 di động 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 di động ở cùng một nhà cung cấp dịch vụ mạng sóng
mang không dây, mà đồng thời bạn cũng có thể trao đổi nó với những người sử dụng ở
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 không dây 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 không dây 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 nhị phân
bên cạnh gửi các văn bản. Nó có thể được sử dụng để gửi nhạc chuông, hình ảnh, hoạt

• 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.
2.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 văn bản 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 thành
nhiều phần nhỏ và sau dó gửi các phần nhỏ này như một tin nhắn đơn. Khi các tin
nhắn SMS này đã được gửi tới đích hoàn toàn thì nó sẽ kết hợp lại với nhau trên máy
di động của người nhận.
Khó khăn của SMS chuỗi là nó ít được hỗ trợ nhiều so với SMS dạng văn bản ở
các thiết bị có sử dụng sóng không dây.
2.1.4. Trung tâm tin nhắn SMS (SMSC).
Một trung tâm tin nhắn SMS (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 không dây. 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 (network) (chẳng hạn như


20
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 (tắ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

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 của chính họ. Chẳng hạn như Nokia có một giao thức SMSC được
gọi là CIMD nhưng một nhà điều hành như CMG lại có giao thức SMSC đượ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 những khó khăn này, một tổng đài tin nhắn được đặt
giữa như một bộ chuyển đổi giữa hai SMSC. Nó chuyển đổi thông tin dữ liệu từ một
giao thức SMSC sang một giao thức SMSC khác. Giải pháp này được sử dụng cho hai
sóng mang không dây khác nhau để kết nối liên thông giữa các trung tâm tin nhắn, 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 2.: Một SMS Gateway giống như một bộ chuyển đổi giữa hai SMSC.
Bên cạnh các sóng mang không dây, 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 tổng đài tin nhắn 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 văn bản. Để gửi và nhận các tin nhắn SMS trên máy chủ 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 không dây. Các sóng mang không dây khác
nhau có thể 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 văn bản của bạn cần được hỗ trợ SMSC đa dụng các
giao thức 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 văn bản tăng.


22

Hình 2.: Tin nhắn SMS dạng văn bản kết nối các SMSC không cần SMS Gateway.
Để giải quyết khó khăn trên một tổng đài tin nhắn đượ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 văn bản chỉ cần
biết làm như thế nào để kết nối với tổng đài tin nhắn. Để 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 tổng đài tin nhắn và không cần

Một cách để gửi lệnh AT đến modem GSM/GPRS là sử dụng một chương trình
đầu cuối. Chức năng của chương trình này là gửi các ký tự được gõ vào modem


24
GSM/GPRS, sau đó hiển thị những phản hồi nó nhận được từ modem này lên màn
hình. Có thể dùng các chương trình như Hyper Terminal, TeraTerm, Hercules…
Dưới đây là một vài chức năng mà lệnh tập lệnh AT có thể thực hiện với một
modem GSM/GPRS hoặc máy điện thoại di động:
• Lấy các thông tin cơ bản về máy điện thoại di động hoặc về modem GMS/GPRS.
Ví dụ, để lấy tên nhà sản xuất (AT+CGMI), số model (AT+CGMM), số IMEI
(International Mobile Equipment Identity) (AT+CGSN) hay phiên bản phần mềm
(AT+CGMR).
• Lấy các thông tin cơ bản về thuê bao. Ví dụ, MSISDN (AT+CNUM) và số IMSI
(International Mobile Subscriber Identity) (AT+CIMI).
• Lấy thông tin hiện tại về tình trạng của máy điện thoại hoặc modem GSM/GPRS.
Ví dụ, tình trạng hoạt động của máy (AT+CPAS), trạng thái đăng ký mạng di
động (AT+CREG), độ mạnh của sóng di động (AT+CSQ), mức sạc và tình trạng
sạc pin (AT+CBC).
• Thiết lập một kết nối dữ liệu hoặc cuộc gọi tới một modem khác (ATD, ATA,
etc).
• Gửi và nhận fax (ATD, ATA, AT+F*).
• Gửi (AT+CMGS, AT+CMSS), đọc (AT+CMGR, AT+CMGL), ghi (AT+CMGW)
hoặc xóa (AT+CMGD) tin nhắn SMS và lấy thông báo nếu có tin nhắn SMS vừa
nhận (AT+CNMI).
• Đọc (AT+CPBR), ghi (AT+CPBW) hoặc tìm kiếm (AT+CPBF) trong danh bạ.
• Thực hiện các thao tác bảo mật, như là mở hoặc đóng khóa thiết bị (AT+CLCK),
kiểm tra nếu thiết bị bị khóa (AT+CLCK) và đổi mật khẩu (AT+CPWD). (Ví dụ:
khóa SIM [mỗi lần mở điện thoại phải nhập mật khẩu của thẻ SIM] và khóa PHSIM [chỉ một thẻ SIM nhất định được tích hợp với một máy điện thoại. Để dùng
thẻ SIM khác với điện thoại đó, cần phải nhập mật khẩu.])

(Gửi tin nhắn SMS từ bộ nhớ), +CMGL (Liệt kê các tin nhắn SMS) và +CMGR (Đọc
tin nhắn SMS) là những lệnh mở rộng.
2.2.3. Cú pháp tổng quát của các lệnh AT mở rộng
Cú pháp tổng quát của các lệnh AT mở rộng khá rõ ràng. Vì việc thao tác với
SMS chỉ liên quan đến các lệnh AT mở rộng nên chúng ta không đề cập đến các lệnh
AT căn bản. Dưới đây là các quy tắc của các lệnh AT mở rộng:
• Quy tắc 1: Tất cả các lệnh phải bắt đầu với "AT" và kết thúc với ký tự về đầu dòng
(CR – carriage return).
• Quy tắc 2: Một dòng lệnh có thể bao gồm nhiều hơn một lệnh AT. Chỉ có lệnh đầu tiên
bắt đầu với "AT". Các lệnh còn lại trên dòng sẽ cách nhau bằng dấu chấm phẩy ";".
• Quy tắc 3: Chuỗi ký tự được để trong dấu nháy kép "".



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status