Tải bản đầy đủ (.doc) (52 trang)

THIẾT kế mô HÌNH NHÀ THÔNG MINH điều KHIỂN QUA SMS (có CODE)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.98 MB, 52 trang )

ĐỒ ÁN TỐT NGHIỆP

THIẾT KẾ MÔ HÌNH NHÀ THÔNG
MINH ĐIỀU KHIỂN QUA SMS


ĐỒ ÁN TỐT NGHIỆP
Trang 1/52

CHƯƠNG 1.

TỔNG QUAN VỀ HỆ THỐNG NHÀ THÔNG MINH

1.1 Giới thiệu
Hiện nay với sự phát triển của các ngành khoa học kỹ thuật đặc biệt là điện - điện
tử, điện tự động hóa đóng vai trò rất quan trọng trong các lĩnh vực quản lý, thông tin
nhanh trong công nghiệp và đời sống.
Như chúng ta đã biết, các thiết bị tự động trong các nhà máy và đời sống hàng ngày
hoạt động một cách độc lập với nhau. Chúng chưa có được sự liên kết về mặt dữ
liệu, hoạt động một cách rởi rạc theo một quy trình khác nhau theo sự thiết lặp của
ngưởi. Nhưng đối với hệ thống điều khiển từ xa qua mạng Ethernet và tin nhắn
SMS thì 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 thiết bị trung tâm và có thể giao tiếp với nhau về mặc dữ liệu.
Điển hình là hệ thống điều khiển thiết bị từ xa qua tin nhắn SMS gồm các thiết bị
như bóng đèn, quạt, tivi, hệ thống báo động… hoạt động như là một ngôi nhà thông
minh. Tất cả sẽ thiết bị sẽ giao tiếp thông qua một trung tâm có thể là một máy tính
hoặc một bộ vi xử lí đã lập trình các chương trình điều khiển.
Hoạt động của ngôi nhà thông minh giúp chủ nhà điều khiển các thiết bị ngay cả khi
không có ở nhà. Như việc tắt quạt, tivi, đèn… khi chủ nhà quên chưa tắt khi đi khỏi
nhà. Hoặc chỉ với một tin nhắn chủ nhà có thể bật máy bơm tưới cây và biết được
độ ẩm, nhiệt độ tại nhà mà tắt mở cho phù hợp. Bên cạnh ta có thể nhận các tin


nhắn báo có hỏa hoạn, có khí gas, báo có trộm... đồng thời cũng có thể kiểm tra
được trạng thái của các thiết bị, nhiệt độ và độ ẩm trong phòng. Ngoài ra nó có thể
mang tính bảo mật, chỉ số điện thoại được cài đặt, và nhắn tin đúng cú pháp mật
khẩu thì mới điều khiển được hệ thống.
Từ những yêu cầu ngày càng cao của cuộc sống, sự phát triển phổ biến của mạng di
động số em đã chọn đề tài “ Thiết kế mô hình nhà thông minh điều khiển qua SMS”
để đáp ứng như cầu ngày càng cao con ngưởi và góp pần cho sự tiến bộ của khoa
học kỹ thuật.
1.2 Nội dung đề tài
Với đề tài đã chọn, em sẽ tiến hành:

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 2/52

-

Điều khiển thiết bị trong nhà qua SMS theo số điện thoại và cú pháp đã định.
Hệ thống ra vào cửa bằng thẻ từ.
Hệ thống cảnh báo khí gas qua SMS và tự động phân tán khí gas.
Hệ thống báo cháy sẽ gọi điện cảnh báo khẩn cấp và có còi báo động ở nhà

-

khi xảy ra cháy.
Kiểm tra trạng thái các thiết bị điện, kiểm tra được nhiệt độ và độ ẩm trong

-


nhà thông qua SMS.
Đèn toilet sẽ sử dụng cảm biến thân nhiệt chuyển động, tự động sáng khi
phát khi bước vào toilet.

1.3 Các thành phần của hệ thống nhà thông minh
 Bộ xử lý trung tâm:
-

Bao gồm các thiết bị chính: board mạch arduino, các mạch xử lý, các
bộ nguồn.

 Thiết bị đầu vào:
-

Đầu báo: báo nhiệt, báo gas…

-

Cảm biến: PIR,…

-

Đầu đọc thẻ từ RFID.

 Thiết bị đầu ra
-

Rờ le 5V kích mức cao và kích mức thấp.


-

Còi báo động.

-

Động cơ DC, SERVO

-

Màn hành LCD 16x2.

1.4 Nguyên lý hoạt động
- Toàn bộ hệ thống sẽ chạy auto.
- Khi ra vào cửa chính chỉ cần quẹt thẻ từ đã cài sẵn vào bộ RFID thì cửa sẽ mở,
quẹt thêm lần nữa thì cửa sẽ đóng. Nếu là thẻ chưa được cài đặt vào hệ thống cửa sẽ
không hoạt động.
- Các đầu cảm biến nhiệt, khí gas khi vượt quá mức quy định sẽ thông báo về số
điện thoại đã được cài đặt sẵn. Đồng thời khi đầu báo nhiệt vượt qua nhiệt độ quy
định còi sẽ báo, còn khí gas quá mức quy định thì quạt hút sẽ hoạt động.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 3/52

- Các thiết bị đèn, quạt sẽ được điều khiển ngoại vi bằng module SIM 800A qua
SMS.
1.5 Các giao thức sử dụng

1.5.1 I2C
1.5.1.1

Giới thiệu I2C

Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là
I2C. I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đường Bus giao
tiếp giữa các IC với nhau. I2C mặc dù được phát triển bới Philips, nhưng nó đã
được rất nhiều nhà sản xuất IC trên thế giới sử dụng. I2C trở thành một chuẩn công
nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi ngoài Philips
như: Texas Intrument(TI), MaximDallas, analog Device, National Semiconductor ...
Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau
như các loại Vi điều khiển 8051, PIC, AVR, ARM... chip nhớ như: RAM tĩnh (Static
Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC điểu
khiển LCD, LED...
1.5.1.2

Đặc điểm giao tiếp I2C

Một giao tiếp I2C sẽ có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA là
đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ để đồng bộ
và chỉ theo một hướng. Như ta thấy trên hình vẽ trên, khi một thiết bị ngoại vi kết
nối vào đường bus I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL
sẽ nối với dây SCL.
Mỗi dây SDA hãy SCL đều được nối với điện áp dương của nguồn cấp thông qua
một điện trở kéo lên (pullup resistor). Sự cần thiết của các điện trở kéo này là vì
chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (opendrain
hay opencollector). Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và
chuẩn giao tiếp, thường dao động trong khoảng 1K đến 4.7k.
Thiết bị chủ nắm vai trò tạo xung đồng hồ cho toàn hệ thống, khi giữa hai thiết bị

chủ-tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 4/52

thiết bị tớ trong suốt quá trình giao tiếp. Thiết bị chủ giữ vai trò chủ động, còn thiết
bị tớ giữ vai trò bị động trong việc giao tiếp.
1.5.1.3

Chế độ hoạt động

Các bus I2C có thể hoạt động ở ba chế độ, hay nói cách khác các dữ liệu trên bus
I2C có thể được truyền trong ba chế độ khác nhau:
- Chế độ tiêu chuẩn (Standard mode): Nó có tốc độ dữ liệu tối đa 100kbps,
-Chế độ nhanh (Fast mode) : Tốc độ dữ liệu tối đa được tăng lên đến 400 kbps. Để
ngăn chặn gai tiếng ồn, ngõ vào của thiết bị Fast-mode là Schmitt-triggered. chân
SCL và SDA của một thiết bị tớ I2C ở trạng thái trở kháng cao khi không cấp
nguồn.
-Chế độ cao tốc High-Speed (Hs) mode: Chế độ này đã được tạo ra chủ yếu để tăng
tốc độ dữ liệu lên đến 36 lần nhanh hơn so với chế độ tiêu chuẩn. Nó cung cấp 1,7
Mbps (với Cb = 400 pF), và 3.4Mbps (với C> b = 100pF).
Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:
- Một chủ một tớ (one master - one slave)
- Một chủ nhiều tớ (one master - multi slave)
- Nhiều chủ nhiều tớ (Multi master - Multi slave)
Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ. Giả thiết một thiết
bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau:

- Thiết bị A (Chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác định
địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ -Thiết bị A gửi dữ
liệu tới thiết bị B
- Thiết bị A kết thúc quá trình truyền dữ liệu
Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A sẽ nhận dữ
liệu từ B. Trong giao tiếp này, A là chủ còn B vẫn là tớ.
1.5.2 SPI
1.5.2.1

Giới thiệu SPI

SPI (Serial Perippheral Interface) là giao tiếp ngoại vi nối tiếp.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 5/52

Giao thức SPI do hãng Motorola phát minh và còn được biết đến với tên gọi khác là
Microwire (hãng National Semiconductor phát triển). Cả SPI và Microwire đều có
chung nguyên tắc hoạt động. Hiện nay giao thức SPI đã có các phiên bản cải tiến
như QSPI (Queue SPI) và Microwire Plus.
Giao thức SPI cung cấp một giao thức nối tiếp đơn giản giữa MCU và thiết bị ngoại
vi. Giống với các Bus nối tiếp khác như I2C, CAN hoặc USB , chuẩn giao tiếp SPI
ngày càng được sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt là trong giao tiếp
trao đổi dữ liệu với các ngoại vi.
Giao thức SPI được tích hợp trong một số loại thiết bị như:
+ Các bộ chuyển đổi (ADC và DAC)
+ Các loại bộ nhớ (EEPROM và FLASH)

+ Các loại IC thời gian thực
+ Các loại cảm biến (nhiệt độ, áp suất…)
+ và một số loại khác như: bộ trộn tín hiệu, LCD, Graphic LCD…
1.5.2.2

Kỹ thuật SPI

Dữ liệu lúc nào cũng được truyền qua lại giữa các thiết bị SPI. Thật ra, không có
khái niệm thiết bị phát hay thiết bị nhận trong giao thức SPI mà mỗi thiết bị có 2
đường dữ liệu, một đường dữ liệu vào với một đường dữ liệu ra. Dữ liệu truyền đi
sẽ được điều khiển bởi xung SCK từ Master. Khi được truyền đi, dữ liệu vào cần
phải được đọc ngay, nếu không sẽ bị mất đi và giao thức SPI có thể sẽ ngưng hoạt
động. Để tránh tình trạng đó, lúc nào ta cũng phải đọc dữ liệu về ngay sau khi
truyền đi cho dù dữ liệu đõ không thực sự cần thiết. Thường thì 1 tín hiệu chọn
Slave sẽ tác động mức thấp để chỉ ra Slave nào được truy cập. Tín hiệu này phải
được sử dụng khi có nhiều hơn 1 Slave trong cùng hệ thống và thường không sử
dụng đến khi trong mạch chỉ có 1 Slave. Theo nguyên tắc, nên sử dụng tín hiệu này
trong cả hai trường hợp trên.
Tín hiệu SS sẽ chỉ ra Slave nào mà Master muốn bắt đầu một quá trình trao đổi dữ
liệu bằng giao thức SPI giữa thiết bị Slave đó và chính nó. Nếu tín hiệu trên đường
SS là 0 thì chứng tỏ giao thức SPI đang hoạt động. Ngược lại, nếu tín hiệu là mức 1

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 6/52

thì giao thức SPI không hoạt động. Một đặc điểm khác khá quan trọng của tín hiệu
SS là nó vó tác dụng làm tăng cường khả năng miễn nhiễm cho hệ thống. Lí do là

SS sẽ Reset Slave để nó có thể nhận Byte dữ liệu tiếp theo. SPI có 4 mode hoạt
động, phụ thuộc vào cực tính và pha của xung đồng hồ. Trong trường hợp cực âm
của xung đồng hồ, tín hiệu SCK sẽ ở mức thấp trong quá trình nghỉ và chuyển sang
mức cao trong quá trình truyền dữ liệu. Ngược lại, đối với trường hợp cực dương
của xung đồng hồ, tín hiệu SCK ở mức cao trong quá trình nghỉ và chuyển sang
mức thấp khi truyền dữ liệu.
Giao tiếp SPI được thực hiện thông qua BUS 4 dây MISO, MOSI, SCK, SS nên đôi
khi SPI còn được gọi là giao thức giao tiếp 4 dây.
-MISO (Master Input Slave Output): Trong VĐK PIC, chân MISO được kí hiệu là
SDO. Chân MISO dùng để truyền dữ liệu ra khỏi Modun SPI khi đặt cấu hình là
Slave và nhận dữ liệu khi đặt cấu hình là Master.
-MOSI (Master Output Slave Input):Trong VĐK PIC, chân MOSI được kí hiệu là
SDI. Chân MOSI dùng để truyền dữ liệu ra khỏi Mođun SPI khi đặt cấu hình là
Master và nhận dữ liệu khi đặt cấu hình là Slave.
-SCK (Serial Clock): Chân SCK cấp xung đồng bộ để truyền nhận dữ liệu với một
Slave nào đó được chọn.
-SS (Slave Select): Chân SS cấp tín hiệu chọn chip ở ngõ ra của Mođun SPI đến
một ngoại vi khác nếu đặt cấu hình là Master và chân SS sẽ là ngõ vào nhận tín hiệu
chọn chip nếu được cấu hình là Slave
1.5.3 UART
1.5.3.1

Giới thiệu về UART

UART (Universal Asynchronous Receiver Transmitter): kiểu truyền thông tin nối
tiếp không đồng bộ thường dùng trong máy tính công nghiệp, truyền thông, vi điều
khiển, hay một số thiết bị truyền tin khác.
Mục đích của UART là để truyền tín hiệu qua lại lẫn nhau ( ví dụ truyền tín hiệu từ
Laptop vào Modem .... hay ngược lại ) hay truyền từ vi điều khiển tới vi điều khiển,
từ laptop tới vi điều khiển ....


THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 7/52

Ví dụ : giao tiếp máy tính ( Phần mềm trên laptop ... điều khiển bật tắt đèn điện ) ...
ta dùng vi điều khiển giao tiếp UART với máy tính thông qua cổng COM ( RS232 ).
1.5.3.2

Sử dụng UART

Thông thường, để sử dụng module USART trên AVR bạn phải thực hiện 3 việc quan
trọng, đó là: cài đặt tốc độ baud (thanh ghi UBRR), định dạng khung truyền
(UCSRB, UCSRC) và cuối cùng kích hoạt bộ truyền, bộ nhận, ngắt…
1.6 Arduino
1.6.1 Định nghĩa về Arduino
Arduino là một bo mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với
nhau hoặc với môi trường được thuận lợi hơn. Arduino là bo mạch vi điều khiển
mạch đơn được sử dụng để làm thiết bị điện tử cho các dự án đa lĩnh vực theo cách
tiếp cận dễ dàng đối với người sử dụng. Phần cứng bao gồm một bảng mạch điện tử
phần cứng dạng nguồn mở được thiết từ bộ vi xử lý 8-bit Atmel AVR , hoặc 32-bit
Atmel ARM. Phần mềm cho phần cứng này bao gồm một trình biên dịch ngôn ngữ
lập trình chuẩn và một bộ nạp khởi động, để có thể thực hiện các lệnh trên bộ vi
điều khiển.
Một hệ thống Arduino có thể cung cấp cho bạn rất nhiều sự tương tác với môi
trường xung quanh với:
Hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc, vận
tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động,

phát hiện kim loại, khí độc,…),…
Các thiết bị hiển thị (màn hình LCD, đèn LED,…).
Các module chức năng (shield) hỗ trợ kêt nối có dây với các thiết bị khác hoặc
các kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz,
2.4Ghz,…), …
Định vị GPS, nhắn tin SMS,…

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 8/52

1.6.2 Lịch sử hình thành và phát triển
Arduino được khởi đầu vào năm 2005 từ một dự án cho sinh viên tại Viện Thiết
kế Tương tác Ivrea tại Ivrea, Italia. Tại thời điểm của chương trình đó sinh viên
thường sử dụng bo mạch "BASIC Stamp" có chi phí tới 100$, đắt đôi với sinh viên.
Một trong những người sáng lập, Massimo Banzi, hiện đang là giảng viên tại Ivrea.
Một đồ án về phần cứng đã đóng góp vào một thiết kế hệ thống kết nối điện dẫn
của sinh viên người Colombia tên là Hernando Barragan. Sau khi các nền tảng hệ
thống điện dẫn đã được hoàn tất, các nhà nghiên cứu làm việc để làm cho hệ thống
đó gọn nhẹ hơn, rẻ hơn, và có sẵn cho cộng đồng nguồn mở. Trường này cuối cùng
đã đóng cửa, do đó, các nhà nghiên cứu, trong số họ là David Cuartielles, đã thúc
đẩy ý tưởng phát triển về Arduino.
1.6.3 Phần cứng
Một bảng mạch Arduino bao gồm một bộ vi điều khiển Atmel AVR 8-bit và các
thành phần bổ sung để tạo điều kiện lập trình và tích hợp cách mạch điện khác với
bảng mạch Arduino. Một khía cạnh quan trọng của Arduino dựa trên tiêu chuẩn kết
nối thống nhất, cho bo mạch CPU được kết nối với một loạt mô-đun chuyển đổi tiện
ích bổ sung được gọi là shield (bộ chắn). Một số shield giao tiếp bo mạch Arduino

trực tiếp từ các chân nối khác nhau, nhưng shield được định địa chỉ riêng biệt thông
qua bus kết nối nối tiếp I2C, cho phép shield được xếp chồng lên nhau và được sử
dụng song song nhau. Arduino chuẩn sử dụng megaAVR là tổ chợp chip, đặc biệt là
ATmega8 , Atmega168, ATmega328, ATmega1280, và ATmega2560. Một số ít các
bộ vi xử lý khác đã được sử dụng tương thích chuẩn Arduino. Hầu hết bo mạch bao
gồm một bộ điều áp tuyến tính 5V và một bộ dao động tinh thể 16 MHz (hoặc cộng
hưởng gốm trong một số biến thể dao động), mặc dù một số thiết kế như LilyPad
chạy ở 8 MHz và chia sẻ bộ điều áp trên bo mạch do hạn chế thông số định dạng
thể. Bộ vi điều khiển của Arduino cũng được lập trình trước nhờ một bộ nạp khởi
động theo cách đơn giản là tải lên các chương trình vào bộ nhớ flash trên chip, so
với các thiết bị khác thường cần một lập trình viên bên ngoài hỗ trợ khi sử dụng.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 9/52

Ở cấp độ khái niệm, khi sử dụng xếp chồng phần mềm Arduino, tất cả bo mạch
được lập trình nhờ kết nối nối tiếp RS-232, nhưng cách này được thực hiện khác
nhau theo từng phiên bản của phần cứng . Bảng mạch Arduino nối tiếp chứa một
mạch dịch cấp để chuyển đổi giữa tín hiệu cấp-RS-232 và cấp-TTL. Bảng mạch
Arduino hiện nay được lập trình thông qua cổng USB, cài đặt này sử dụng chip
chuyển đổi USB-sang-nối tiếp như FTDI FT232. Một số biến thể, chẳng hạn như
Arduino Mini và Boarduino không chính thức, sử dụng một bảng mạch có thể tháo
rời chuyển đổi USB-sang-nối tiếp hoặc cáp, Bluetooth hoặc các phương pháp khác .
(Khi được sử dụng với các công cụ vi điều khiển truyền thống thay vì Arduino IDE,
lập trình AVR ISP chuẩn phải được sử dụng.)
Bảng mạch Arduino luôn cho thấy hầu hết các chân nối I/O pins của vi điều
khiển để sử dụng bởi các mạch khác. Các Diecimila, Duemilanove , và Uno hiện tại

cung cấp 14 chân I/O số, sáu trong số đó có thể tạo tiến hiệu điều biến độ rộng
xung, và sáu đầu vào tương tự. Các chân nằm ở mặt trên bo mạch, thông qua đầu
chân cái 0.10-inch (2,5 mm). Một số shield ứng dụng nhúng plug-in cũng đã có ở
dạng thương mại.
Bo mạch Arduino Nano và Bare Bones tương thích Arduino có thể cung cấp các
chân cắm đực ở mặt dưới của bo mạch để kết nối các bo mạch khác không cần hàn.
Có rất nhiều bo mạch tương thích Arduino và bo mạch dẫn xuất từ Arduino. Một
số có chức năng tương đương với Arduino và có thể được sử dụng thay thế lẫn cho
nhau. Phần lớn là Arduino cơ bản với việc bổ sung các trình điều khiển đầu ra phổ
biến, thường sử dụng trong giáo dục cấp trường để đơn giản hóa việclắp ráp các xe
đẩy và robot nhỏ. Những biến thể khác là tương đương về điện nhưng thay đổi tham
số dạng (form-factor), đôi khi cho phép tiếp tục sử dụng các Shield, đôi khi không.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 10/52

Một số biến thể sử dụng bộ vi xử lý hoàn toàn khác, với mức độ khác nhau về tính
tương thích.
1.6.4 Phần mềm
Môi trường phát triển tích hợp (IDE) Arduino là một ứng dụng đa nền tảng được
viết bằng Java, và được dẫn xuất từ IDE cho ngôn ngữ lập trình xử lý và các dự án
lắp ráp. Nó được thiết kế làm nhập môn lập trình cho các nhà lập trình và những
người mới sử dụng khác không quen thuộc với phát triển phần mềm. Nó bao gồm
một trình soạn thảo mã với các tính năng như làm nổi bật cú pháp, khớp dấu ngặc
khối chương trình, và thụt đầu dòng tự động, và cũng có khả năng biên dịch và tải
lên các chương trình vào bo mạch với một nhấp chuột duy nhất. Một chương trình
hoặc mã viết cho Arduino được gọi là "sketch" .

Chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với một
thư viện phần mềm được gọi là "Wiring" từ dự án lắp ráp ban đầu, cho hoạt động
đầu vào/đầu ra phổ biến trở nên dễ dàng hơn nhiều. Người sử dụng chỉ cần định
nghĩa hai hàm để thực hiện một chương trình điều hành theo chu kỳ :
setup() : hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình dùng
để khởi tạo các thiết lập.
loop() : hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt đi.
Khi bật điện bảng mạch Arduino, reset hay nạp chương trình mới, hàm setup() sẽ
được gọi đến đầu tiên. Sau khi xử lý xong hàm setup(), Arduino sẽ nhảy đến hàm
loop() và lặp vô hạn hàm này cho đến khi tắt điện bo mạch Arduino. Chu trình đó
có thể mô tả trong hình dưới đây:

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 11/52

Hình 2-1 Chu trình hoạt động của Arduino
Arduino IDE sử dụng GNU toolchain và AVR libc để biên dịch chương trình, và
sử dụng avrdude để tải lên các chương trình vào bo mạch chủ.
Do nền tảng Arduino sử dụng vi điều khiển Atmel, môi trường phát triển của
Atmel, AVR Studio hoặc Atmel Studio mới hơn, cũng có thể được sử dụng để phát
triển phần mềm cho các Arduino.
1.6.5 Arduino Mega 2560
1.6.5.1

Cấu tạo

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH



ĐỒ ÁN TỐT NGHIỆP
Trang 12/52

Hình 2-2 Arduino Mega 2560

Hình 2-3 Sơ đồ chân Arduino Mega 2560

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 13/52

Arduino Mega2560 là một vi điều khiển bằng cách sử dụng ATmega2560.
Hình 2-4 Định nghĩa các chân của Arduino Mega

Arduino Mega 2560 R3 là phiên bản nâng cấp của Arduino Uno R3 với số chân
giao tiếp, ngoại vi và bộ nhớ nhiều hơn.
1.6.5.2

Thông số kỹ thuật
-

Vi điều khiển chính: ATmega2560.

-

IC nạp và giao tiếp UART: ATmega16U2.


-

Nguồn nuôi mạch: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc
tròn DC (6~9VDC để đảm bảo mạch hoạt động tốt).

-

Số chân Digital: 54 (15 chân PWM).

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 14/52

-

Số chân Analog: 16

-

Giao tiếp UART : 4 bộ UART
+ Bộ 0: Chân 0 và 1.
+ Bộ 1: Chân 18 và 19.
+ Bộ 2: Chân 16 và 17.
+ Bộ 3: Chân 14 và 15.

-


Giao tiếp SPI : 1 bộ ( chân 50 -53 ) dùng với thư viện SPI của
Arduino.

-

Giao tiếp I2C : 1 bộ: Chân 20 và 21.

-

Ngắt ngoài : 6 chân.

-

Bộ nhớ Flash: 256 KB, 8KB sử dụng cho Bootloader.

-

SRAM: 8 KB.

-

EEPROM: 4 KB.

-

Xung clock: 16 MHz.

1.7 Module SIM 800A
1.7.1 Tổng quan về tin 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. 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ểc
hứa :
-

160 kí tự nếu như mã hóa kí tự 7 bit được sử dụng.

-

70 kí tự nếu như mã hóa kí tự 16 bit Unicode UCS2 được sử dụng.

 Sử dụng tin nhắn SMS đang ngày càng phát triển và phổ biến:
-

Tin nhắn có thể nhận và gửi ở bất kì thời điểm nào.

-

Hầu hết mọi người hiện nay đều có điện thoại di động, việc gửi tin
nhắn đã trở nên dễ dàng ở bất cứ đâu.

-

Các tin nhắn ít gây phiền phức trong việc giữ liên lạc.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP

Trang 15/52

 Tin nhắn SMS là một công nghệ trưởng thành và thành công. Đây 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ó là vì:
-

Tin SMS được hỗ trợ bởi các điện thoại sử dụng công nghệ GMS.

-

Tin SMS tương thích với việc mang các dữ liệu binary bên cạnh gửi
các text.

-

Tin SMS hỗ trợ việc chi trả trực tuyến.

-

Giúp điều khiển các thiết bị thông qua một bộ xử lí trung tâm nào đó.

1.7.2 Lý thuyến về module SIM 800A
1.7.2.1

Giới thiệu module SIM 800A

Hình 2-5 Mặt trước module SIM 800A

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH



ĐỒ ÁN TỐT NGHIỆP
Trang 16/52

Hình 2-6 Mặt sau module SIM 800A
Một modem GMS là một modem wireless, nó làm việc cùng với một mạng wireless
GMS. Một modem wireless hoạt động giống như một modem quay số. Điểm khác
chính là modem quay số truyền nhận dữ liệu thông qua một đường dây điện thoại cố
định trong khi đó modem wireless thì việc gửi nhận dữ liệu thông qua sóng.
Giống như điện thoại di động GMS, modem GMS yêu cầu thẻ sim với một mạng
wireless để hoạt động. Module SIM 800A là một trong những loại modem GMS.
Nhưng Module SIM 800A được nâng cao tốc độ truyền nhanh hơn. Nó sử dụng
công nghệ GMS 850Mhz, WGSM 900Mhz, DCS 1800 Mhz, có tính năng GPRS
của SIM 900. Và hỗ trợ GPRS theo dạng đồi thị mã hóa CS-1, CS-2, CS-3 và CS-4.
Trong đồ án thực hiện, Module SIM 800A có chức năng nhận tín hiệu từ điện thoại
rồi chuyển tín hiệu đến vi điều khiển để điều khiển trạng thái thiết bị đồng thời phản
hồi SMS về điện thoại để cho biết trạng thái các thiết bị.
1.7.2.2

Đặc điểm của module SIM 800A

1.7.2.2.1 Thông số kỹ thuật
 Nguồn cấp đầu vào : 5-18 VDC.
 Mức tín hiệu giao tiếp: TTL (3.3-5VDC) hoặc RS232.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 17/52


 Tích hợp IC chuyển mức tín hiệu RS232 MAX232.
 Tích hợp nguồn xung cao cung cấp cho SIM800A.
 Sử dụng khe Micro Sim.
 Thiết kế mạch nhỏ gọn, bề bỉ, chống nhiễu.
1.7.2.2.2 Thứ tự các chân
 Header 1:
 VCC: Nguồn dương từ 5-18VDC, lớn hơn 1A
 GND: Mass, 0VDC.
 EN: Mặc định nối lên cao, chức năng dùng để khởi động (Enable) hoặc
dừng hoạt động (Disable) Module Sim800, nếu nếu muốn module
Sim800 dừng hoạt động bạn có thể nối chân này xuống âm GND
(0VDC).
 232R: Chân nhận tín hiệu RS232.
 232T: Chân truyền tín hiệu RS232
 GND: Mass, 0VDC.
 RXD: Kết nối với RX của MCU.
 TXD: Kết nối với TX của MCU (Chân nhận tín hiệu TTL 3.3V).
 Header 2:
 BRXD: Thường không sử dụng, chân nhận tín hiệu, dùng để giao tiếp nạp
Firmware cho Sim800, mức tín hiệu 3.3VDC.
 BTXD: Thường không sử dụng, chân truyền tín hiệu, dùng để giao tiếp
nạp Firmware cho Sim800, mức tín hiệu 3.3VDC.
 GND: Mass, 0VDC.
 EPN: Ngõ ra loa Speaker âm
 EPP: Ngõ ra loa Speaker dương.
 MICP: Ngõ vào Micro dương.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH



ĐỒ ÁN TỐT NGHIỆP
Trang 18/52

 MICN: Ngõ vào Micro âm.
1.7.3 Tập lệnh AT Command
1.7.3.1

Các tập lệnh chung

AT : Kiểm tra module có hoạt động không.
Trả về: OK nếu hoạt động bình thường, báo lỗi hoặc không trả về nếu có lỗi xảy
ra.
ATEx : Bật (x=1) hoặc tắt (x=0) chế độ phản hồi lệnh vừa gửi (nên tắt đi).
AT+CPIN? : Kiểm tra Simcard.
Trả về: +CPIN: READY OK (nếu tìm thấy simcard).
AT+CSQ : Kiểm tra chất lượng sóng.
Trả về: +CSQ: xx,0 OK (xx là chất lượng sóng, tối đa là 31).
AT+COPS? : Kiểm tra tên nhà mạng.
Trả về: +COPS: 0,0,”Viettel Mobile” OK (nhận dạng được nhà mạng là Viettel
Mobile).
Trả về: +COPS: 0 (không thấy nhà mạng).
1.7.3.2

Các lệnh gọi điện

ATD0123456789; : Gọi điện cho số điện thoại 0123456789.
ATA : Chấp nhận cuộc gọi đến.
ATH : Hủy cuộc gọi.
AT+CUSD=1 : Chuyển chế độ USD để tra số dư tài khoản.

ATD*101#; : Kiểm tra tài khoản.
1.7.3.3

Các lệnh nhắn tin

AT+CMGF=x : Cấu hình tin nhắn (x=0: DPU, x=1:dạng ký tự)
AT+CNMI=2,x,0,0 : Chọn x=1 (chỉ báo vị trí lưu tin nhắn) hoặc x=2 (hiển thị ra
ngay nội dung tin nhắn).
Trả về: +CMTI: “SM”,3 (x=1).
Trả về: +CMT: “+84938380171″,””,”17/07/30,14:48:09+28″ noidungtinnhan.
AT+CMGR=x : Đọc tin nhắn tại vị trí lưu x.
Trả về: nội dung tin nhắn.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 19/52

AT+CMGD=x : Xóa tin nhắn được lưu ở vị trí x.
AT+CMGS=”sodienthoai” : Gửi tin nhắn cho sodienthoai, sau dòng lệnh này sẽ
nhận được ‘>’ (mã HEX là 0x3C), bây giờ có thể nhập vào nội dung tin nhắn, nhập
tiếp 0x1A để gửi tin nhắn đi hoặc 0x1B để hủy gửi tin nhắn.
1.8 Mạch RFID – RC522
1.8.1 Giới thiệu
Module RFID RC522 dùng để đọc các loại thẻ RFID, móc khóa RFID tần số
13,56 Mhz. Module RFID RC522 giao tiếp dễ dàng với các Board Auduino và các
vi điều khiển. Module RFID RC522 được ứng dụng rộng rãi trong các mô hình như
bảo mật xe máy, đóng mở cửa bằng thẻ RFID, các hệ thống quản lý, chấm công dựa
trên mã thẻ RFID,…

1.8.2 Sơ đồ chân

Hình 2-7 Mạch RFID-RC522
1.

SDA(SS): Chân lựa chọn chip khi giao tiếp SPI( Kích hoạt ở mức thấp).

2.

SCK: Chân xung trong chế độ SPI.

3.

MOSI(SDI): Master Data Out- Slave In trong chế độ giao tiếp SPI.

4.

MISO(SDO): Master Data In- Slave Out trong chế độ giao tiếp SPI.

5.

IRQ: Chân ngắt.

6.

GND: Chân mass.

7.

RST: Chân reset module.


THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 20/52

8.

Nguồn 3,3V.

1.8.3 Thông số kỹ thuật
Nguồn: 3.3VDC, 13 - 26mA.
Dòng ở chế độ nghỉ: <80uA.
Khoảng cách hoạt động: 0 - 60mm.
Tốc độ truyền dữ liệu: tối đa 10Mbit/s.
Nhiệt độ hoạt động: - 20⁰C ÷ 80⁰C .
Hỗ trợ ISO/ IEC 14443A/ MIFARE.
Dòng ở chế độ chờ: 1013mA .
Tần số sóng mang: 13.56MHz.
Giao tiếp: SPI.
Kích thước: 40mm × 60mm.
Độ ẩm hoạt động: 5% - 95%.
1.9 Các module cảm biến
1.9.1 Cảm biến nhiệt độ, độ ẩm DHT11

Hình 2-8 Cảm biến DHT11
Tính năng: Module cảm biến DHT11 có thể đo và trích xuất dữ liệu về nhiệt độ và
độ ẩm một cách dễ dàng thông qua giao tiếp digital 1 dây truyền dữ liệu duy nhất.
Nó có bộ xử ly` tín hiệu tích hợp trong cảm biến giúp có được dữ liệu hính xác mà

không phải qua bất kì tính toán nào như LM35.

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 21/52

Thông số Kỹ thuật:
Nguồn cấp: 3-5V.
Dòng sử dụng: 2.5mA max.
Đo tốt độ ẩm 2080%RH với sai số 5%.
Đo tốt nhiệt độ từ 0 đến 50oC với sai số 2%.
Tần số lấy mẫu tối đa 1Hz.
Kích thước: 15mm x 12mm x 5.5mm.

1.9.2 Cảm biến khí gas MQ-2

Hình 2-9 Cảm biến khí gas MQ-2
-

Cấu tạo từ chất bán dẫn SnO2.

-

Tính năng: sử dụng trong thiết bị phát hiện rò rỉ khí trong gia đình và
công nghiệp, phù hợp phát hiện các laoi5 khí như: hộn hợp khí
hydrocacbon nhẹ LPG, Iso butan, Propan, Metan, Rượu, Hydrogen,
Khói…


-

Nguyên lý hoạt động:sử dụng phần tử SnO2 có độ dẫn thấp hơn không
khí sạch, khi khí dễ cháy tồn tại, cam biến có độ dẫn điện cao hơn,
nồn độ chất dễ cháy càng cao thì độ dẫn điện của chất bán dẫn sẽ càng
cao và tương ứng chuyển đổi thành mức tín hiệu. Cảm biến xuất ra 2

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 22/52

dạng tín hiệu Analog và Digital, tín hiệu Digital có thể điều chỉnh độ
nhạy bằng biến trở.
1.9.3 Cảm biến thân nhiệt chuyển động PIR SR505 mini

Hình 2-10 Cảm biến thân nhiệt chuyển động PIR
-

Cảm biến thân nhiệt chuyển động PIR (Passive infrared sensor) HCSR505 Mini được dùng để phát hiện chuyển động của các vật thể phát
ra bức xạ hồng ngoại: con người, con vật, các vật phát nhiệt,…

-

Nguyên lý hoạt động: cảm biến sẽ xuất ra mức tín hiệu cao khi quét
phát hiện các vật chuyển động trong vùng quét, tín hiệu sẽ được giữ ở
mức cao trong một khoảng thời gian trễ T, trong khoảng thời gian đó
nếu cảm biến không quét được chuyển động nào khác thì cảm biến sẽ
trở về mức thấp.


-

Thộng số kỹ thuật:
Điện áp hoạt động:4.5-20VDC
Dòng tiêu thụ: <60uA
Mức tín hiệu: Hight 3.3V/Low 0V
Trigger: repeatable trigger

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 23/52

Thời gian trễ 8S ±30%
Góc quét: Max 100 độ
Khoảng cách bắt: 3m
Đường kính thấu kính: 10mm
Kích thước:10x23mm
1.10

Các thiết bị đầu ra

1.10.1 LCD 16x2, module I2C
1.10.1.1 Màn hình LCD 16x2

Hình 2-11 LCD 16x2
Là loại LCD hiển thị được 16 kí tự trên một hàng và nó có 2 hàng. LCD 16x2 có
tích hợp sẵn vi điều khiền HD44780 và nhà sản xuất chỉ đưa ra các chân cần thiết

cho việc giao tiếp của LCD.Cụ thể chức năng từng chân:
Bảng 2-1 Chức năng các chân của LCD

Chân

Tên

Chức năng

1

VSS

Nối đất

2

VDD

Chân cấp nguồn, nối với VCC=5V

3

VE

Điều chỉnh độ tương phản của LCD

4

RS


Chọn thanh ghi

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


ĐỒ ÁN TỐT NGHIỆP
Trang 24/52

5

R/W

Chọn chế độ đọc/ghi
Ở chế độ đọc: xuất ra DB0-DB7 khi phát hiện cạnh

6

E

lên và giữ cho đến khi xuống mức thấp.
Ở chế độ ghi: dữ liệu ở bus sẽ được chuyển vào
thanh ghi bên trong khi phát hiện 1 xong của chân E.

7 đến 14

D0-D7

15


A

Nguồn dương đèn nền

16

K

Nguồn âm đèn nền

-

8 đường bus dữ liệu troa đổi thông tin với MCU.

Thông số kỹ thuật:
Điện áp MAX-MIN: 7V, -0.3V
Hoạt động ổn định: 2.7-5.5V
Điện áp mức cao- thấp: 2.4-0.4
Dòng cấp nguồn: 350uA – 600uA
Nhiệt độ hoạt động: -30 – 750C

1.10.1.2 Module I2C

Hình 2-12 Module I2C

THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH


×