Professional Documents
Culture Documents
ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI:
Tác phong: (tinh thần, thái độ làm việc trong quá trình thực hiện)
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Quyển báo cáo: (hình thức, nội dung)
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Những kết quả đạt được của ĐATN
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Những hạn chế của ĐATN:
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Đánh giá chung đề tài
Xuất sắc Giỏi Khá Trung bình Yếu
Đề nghị:
Được phản biện Không được bảo vệ 󠅲
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
i
MỤC LỤC
ii
3.3.5 Cú pháp lệnh AT....................................................................................26
3.3.6 Các lệnh AT được sử dụng trong đồ án...............................................27
3.4 CẢM BIẾN NHIỆT ĐỘ LM35....................................................................29
3.4.1 Giới thiệu về cảm biến nhiệt độ LM35.................................................29
3.4.2 Thông số kỹ thuật..................................................................................30
3.4.3 Tính toán nhiệt độ đầu ra của LM35...................................................30
3.4.4 Sai số của LM35.....................................................................................30
3.5 CẢM BIẾN CẢM BIẾN KHÍ GAS.............................................................31
3.5.1 Giới thiệu về cảm biến khí gas MQ02..................................................31
3.5.2 Thông số kỹ thuật..................................................................................31
3.5.3 Nguyên lý hoạt động..............................................................................32
3.6 MODULE RELAY 4 KÊNH.......................................................................33
3.6.1 Giới thiệu về module relay 4 kênh........................................................33
3.6.2 Các thông số kỹ thuật............................................................................33
3.6.3 Các loại relay..........................................................................................34
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG...............................................................35
4.1 ĐIỀU KHIỂN THIẾT BỊ BẰNG SMS VỚI MODULE SIM900A...........35
4.1.1 Sơ đồ khối...............................................................................................35
4.1.2 Nguyên lý hoạt động..............................................................................36
4.1.3 Tính toán chi tiết....................................................................................37
4.1.4 Mạch in và mạch thực tế.......................................................................42
4.1.5 Chương trình..........................................................................................44
4.2 ĐIỀU KHIỂN THIẾT BỊ BẰNG SÓNG BLUETOOTH..........................67
4.2.1 Sơ đồ khối...............................................................................................67
4.2.2 Nguyên lý hoạt động..............................................................................68
4.2.3 Tính toán chi tiết....................................................................................69
4.2.4 Mạch in và mạch thực tế.......................................................................73
4.2.5 Chương trình..........................................................................................75
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.........................................84
5.1 TÓM TẮT.....................................................................................................84
5.2 KẾT QUẢ ĐẠT ĐƯỢC...............................................................................85
5.3 HƯỚNG PHÁT TRIỂN...............................................................................87
TÀI LIỆU THAM KHẢO.........................................................................................89
iii
iv
DANH MỤC CÁC HÌNH
v
sim 900A
vi
DANH MỤC CÁC BẢNG
vii
LỜI NÓI ĐẦU
Trong những năm gần đây, ngôi nhà thông minh (Smart Home) đã xuất hiện và
được ứng dụng rộng rãi trong cuộc sống từ những khách sạn hay resort sang trọng
cho đến những ngôi nhà hiện đại đều được lắp đặt hệ thống điều khiển thông minh.
Theo xu hướng phát triển đó, em quyết định lựa chọn thực hiện nghiên cứu đề tài:
“THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG
SMS VÀ BLUETOOTH”. Ngoài việc hoàn thành đồ án tốt nghiệp với những công
việc trên đây thì nó còn có ý nghĩa sâu sắc đối với sinh viên thực hiện. Một lần nữa
sinh viên được thực hành những kiến thức học được từ ghế nhà trường sẽ giúp hình
thành những sản phẩm công nghiệp, được sử dụng, cầm tay lắp những cảm biến mà từ
trước chỉ nằm trên trang giấy. Trong quá trình tiến hành không thể không gặp những
khó khăn vấp phải, do đó kích thích sinh viên tư duy để tìm ra phương án tối ưu và
trao đổi thảo luận với thầy cô, bạn bè. Tuy nhiên do hạn chế về kinh nghiệm thực tế và
thời gian thực hiện nên việc giải quyết đề tài không thể tránh khỏi những thiếu sót. Do
đó rất mong sự chỉ bảo thêm của quý thầy cô cũng như những đóng góp của các bạn
sinh viên. Xin chân thành cảm ơn!
viii
CHƯƠNG 1: GIỚI THIỆU
chuyển,…Vì vậy công nghệ không dây đã ra đời và phát triển mạnh mẽ, tạo rất
nhiều thuận lợi cho con người trong đời sống hằng ngày. Trong những năm gần
đây công nghệ truyền nhận dữ liệu không dây đang có những bước phát triển
mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát
từ xa, đặc biệt là các hệ thống thông minh. Hiện nay, có khá nhiều công nghệ
truyền nhận dữ liệu không dây như RF, Wifi, Bluetooth,SMS…Trong đó,
Bluetooth là một trong những công nghệ được phát triển từ lâu và luôn được cải
tiến để nâng cao tốc độ cũng như khả năng bảo mật. Trên thị trường Việt Nam
hiện nay chưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những
sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao. Việc
nghiên cứu và thiết kế một bộ sản phẩm điều khiển thiết bị không dây có một ý
nghĩa lớn, giúp tăng thêm sự lựa chọn cho người sử dụng, sản phẩm được sản
xuất trong nước nên giá thành rẻ và góp phần phát triển các hệ thống điều khiển
thông minh. Do đó, nhóm quyết định thực hiện đề tài: “Mạch điều khiển các
thiết bị trong gia đình sử dụng Bluetooth “ Đề tài ứng dụng công nghệ
Bluetooth phổ biến trên nhiều thiết bị, đặc biệt điểm mới của đề tài so với các
sản phẩm hiện có là điều khiển thông qua hệ điều hành Android giúp tận dụng
những thiết bị sử dụng hệ điều hành Android có sẵn của ngừời dùng giúp giảm
giá thành sản phẩm, ngoài ra với màn hình hiển thị lớn của điện thoại cho phép
hiển thị nhiều thông tin hơn. Bộ điều khiển thiết bị từ xa sau khi thi công xong
có thể điều khiển được bốn thiết bị. Trong mạch sử dụng smartphone để bắt tín
hiệu phát song từ Bluetooth HC-05 và thực hiện việc kết nối và phát tín hiệu
điều khiển. Tín hiệu điều khiển sau khi được mã hóa sẽ được truyền về
Bluetooth HC-05, dữ liệu sẽ được giải mã và đưa về vi điều khiển 16F887 để
xử lý, sau khi xử lý tín hiệu đáp ứng đúng với lập trình thì vi điều khiển 16F887
sẽ thực hiện việc xuất dữ liệu ra các DIGITAL (tức là ngõ ra I/0) để điều khiển
khối relay bật tắt từ những yêu cầu của bên phát.
hiệu về bộ xử lí trung tâm khi có tác động (xảy ra rò rỉ khí gas, qua nhiệt độ cho
phép). Qua xử lí, tín hiệu sẽ được gửi về thiết bị đầu cuối (mobile) của người chủ
nhà để báo cho chủ nhà biết có rò rỉ khí gas trong ngôi nhà hay quá nhiệt độ cho
phép. Bên cạnh đó việc kiểm tra và xử lý trạng thái bật/ tắt của các thiết bị trong
nhà khi chủ nhân không có mặt ở nhà cũng góp phần tích cực trong việc tích
kiệm điện năng cho gia đình và quốc gia.
Mục đích nghiên cứu về điều khiển thiết bị qua sóng Bluetooth:
Đề tài đượ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 đã học trong nhà trường để “ĐIỀU KHIỂN TỪ XA CÁC THIẾT BỊ
BẰNG SÓNG BLUETOOTH”. Điều khiển thiết bị bằng sóng Bluetooth
Module điều khiển giám sát có chức năng điều khiển và giám sát. Bên cạnh đó
việc kiểm tra và xử lý trạng thái bật/ tắt của các thiết bị trong nhà . Công nghệ
này hỗ trợ việc truyền dữ liệu qua các khoảng cách ngắn giữa các thiết bị di
động với nhau và với thiết bị cố định mà không cần một sợi cáp để truyền tải.
Tiết kiệm được chi phí lắp đặt nhưng dây cáp rườm rà , cũng như thời gian bật
tắt những thiết bị.
Đề tài này giúp nhóm hiểu rõ hơn về nguyên lý thu phát và ứng dụng những lý
thuyết được học vào thực tế. Đồng thời tìm hiểu thêm được những điều chưa
được học và nâng cao kỹ năng thực hành cũng như là những ứng dụng của
mạch trong thực tế.
Sử dụng điện thoại có hệ điều hành Android đã có app tạo sẵn để kết nối với
mạch bluetooth để điều khiển ON/OFF các thiết bị trong nhà trong phạm vi
sóng bluetooth có thể phủ sóng.
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 chi trả các dịch vụ trực tuyến.
2.1.2 Tổng quan về mạng GSM
2.1.2.1 Giới thiệu
GSM là hệ thống thông tin di động số toàn cầu, là công nghệ không dây thuộc thế
hệ 2G (Second Generation) có cấu trúc mạng tế bào, cung cấp dịch vụ truyền
giọng nói và chuyển giao dữ liệu chất lượng cao với các băng tần khác nhau:
400Mhz, 900Mhz, 1800Mhz và 1900Mhz, được tiêu chuẩn Viễn thông Châu Âu
(ETSI) quy định.
GSM là một hệ thống có cấu trúc mở nên hoàn toàn không phụ thuộc vào phần
cứng, người ta có thể mua thiết bị từ nhiều hãng khác nhau. Do nó hầu như có mặt
khắp mọi nơi trên thế giới nên khi các nhà cung cấp dịch vụ thực hiện việc ký kết
Roaming với nhau nhờ đó mà thuê bao GSM có thể dễ dàng sử dụng máy điện
thoại GSM của mình bất cứ nơi đâu.
Mặt thuận lợi to lớn của công nghệ GSM là ngoài việc truyền âm thanh với chất
lượng cao còn cho phép thuê bao sử dụng các cách giao tiếp khác rẻ hơn đó là
tin nhắn SMS. Ngoài ra để tạo thuận lợi cho các nhà cung cấp dịch vụ thì công
nghệ GSM được xây dựng trên cơ sở hệ thống mở nên nó dễ dàng kết nối các thiết
bị khác nhau từ các nhà cung cấp thiết bị khác nhau. Nó cho phép nhà cung cấp
dịch vụ đưa ra tính năng Roaming cho thuê bao của mình với các mạng khác trên
toàn thế giới. Và công nghệ GSM cũng phát triển thêm các tính năng truyền dữ
liệu như GPRS và sau này truyền với tốc độ cao hơn sử dụng EDGE.
GSM hiện chiếm chủ yếu thị trường di động với hàng tỷ thuê bao tại hàng trăm
quốc gia và vùng lãnh thổ. Các mạng thông tin di động GSM cho phép có thể
Roaming với nhau do đó những máy điện thoại di động GSM của các mạng
GSM khác nhau ở có thể sử dụng được nhiều nơi trên thế giới.
Công suất phát của máy điện thoại được giới hạn tối đa là 2 watts đối với băng tần
GSM 850/900Mhz và tối đa là 1 watts đối với băng tần GSM 1800/1900Mhz.
Mạng GSM sử dụng 2 kiểu mã hoá âm thanh để nén tín hiệu âm thanh 3,1khz đó
là mã hoá 6 và 13kbps gọi là Full rate (13kbps) và haft rate (6kbps).
Bluetooth 2.1 +ERD: Bên cạnh những ưu điểm của bản 2.0, Bluetooth 2.1 còn có
thêm cơ chế kết nối phạm vi nhỏ.
Bluetooth 3.0 + HS ( High Speed): Được giới thiệu vào 21/4/2009, chuẩn kết nối
này có tốc độ lý thuyết lên đến 24Mbps. Những thiết bị hỗ trợ Bluetooth 3.0
nhưng không có +HS sẽ không đạt được tốc độ trên.Tuy tốc độ cao nhưng
Bluetooth vẫn chỉ hỗ trợ nhu cầu chia sẻ nhanh file có dung lượng thấp hay kết nối
với loa, tai nghe…
Bluetooth 4.0: Ra mắt tháng 6/2010, phiên bản 4.0 là sự kết hợp của “classis
Bluetooth” ( Bluetooth 2.1 và 3.0 ), tức là vừa truyền tải nhanh lại còn tiết kiệm
năng lượng hơn.
Bluetooth 4.1: Năm 2014, Bluetooth nâng cấp lên bản 4.1 cải thiện tình trạng
chồng chéo dữ liệu của Bluetooth với mạng 4G, tối đa hóa hiệu năng nhờ tự điều
chỉnh băng thông, đồng thời tiết kiệm năng lượng hơn nhờ tối ưu thời gian chờ kết
nối lại.
Bluetooth 4.2: Là một bản nâng cấp nữa trong năm 2014, cải thiện tốc độ truyền
tải lên đến 2.5 lần so với v4.1, tiết kiệm năng lượng hơn, hạn chế lỗi kết nối cũng
như bảo mật tốt. Đồng thời tính năng quan trọng nhất là hỗ trợ chia sẻ kết nối
mạng internet theo giao thức IPv6.
2.2.3 Các chuẩn kết nối Bluetooth
Hầu hết mọi người đã quen thuộc với tai nghe Bluetooth, nhưng thực tế là nó có
thể làm được nhiều hơn vậy. Bluetooth cho phép kết nối và trao đổi thông tin giữa
các thiết bị như điện thoại di động, điện thoại cố định, máy tính bảng, máy tính
xách tay, máy in, thiết bị định vị dùng GPS, máy ảnh số, và thiết bị chơi game cầm
tay. Tất cả đã cho thấy kết nối này Bluetooth đang dần trở thành phần quan trọng
trong cuộc sống hiện đại ngày nay. Để ghép hai thiết bị Bluetooth với nhau, bạn
phải “pair” (kết đôi) chúng với nhau. Ví dụ, bạn có thể ghép chuột Bluetooth và
máy tính, tai nghe với điện thoại hay điện thoại với laptop.
Các ứng dụng nổi bật của Bluetooth gồm:
Điều khiển và giao tiếp không giây giữa một điện thoại di động và tai nghe không
dây.
Mạng không dây giữa các máy tính cá nhân trong một không gian hẹp đòi hỏi ít
băng thông.
Giao tiếp không dây với các thiết bị vào ra của máy tính, chẳng hạn như chuột,
bàn phím và máy in.
Thay thế các giao tiếp nối tiếp dùng dây truyền thống giữa các thiết bị đo, thiết bị
định vị, thiết bị y tế, máy quét mã vạch, và các thiết bị điều khiển giao thông.
Thay thế các điều khiển dùng tia hồng ngoại.
Gửi các mẩu quảng cáo nhỏ từ các pa-nô quảng cáo tới các thiết bị dùng Bluetooth
khác.
Điều khiển từ xa cho các thiết bị trò chơi điện tử.
Kết nối Internet cho máy tính bằng cách dùng điện thoại di động thay modem.
Ưu điểm:
Thay thế hoàn toàn dây nối.
Hoàn toàn không nguy hại đến sức khoẻ con người.
Bảo mật an toàn với công nghệ mã hóa trong. Một khi kết nối được thiết lập thì
khó có một thiết bị nào có thể nghe trộm hoặc lấy cắp dữ liệu.
Các thiết bị có thể kết nối với nhau trong vòng 20m mà không cần trực diện
(hiện nay có loại Bluetooth kết nối lên đến 100m)
Kết nối điện thoại và tai nghe Bluetooth khiến cho việc nghe máy khi lái xe
hoặc bận việc dễ dàng.
Giá thành rẻ.
Tốn ít năng lượng, chờ tốn 0.3mAh, tối đa 30mAh trong chế độ truyền dữ liệu.
Không gây nhiễu các thiết bị không dây khác.
Tính tương thích cao nên được nhiều nhà sản xuất phần cứng và phần mềm hỗ
trợ.
Nhược điểm:
Tốc độ thấp, khoảng 720kbps tối đa.
Bắt sóng kém khi có vật cản.
Thời gian thiết lập lâu.
byte, bao gồm các thanh ghi có chức năng đặc biệt SFG( special Funtion Register)
nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR( General
Purpose Pegister) nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR
thường xuyên được sử dụng sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp
thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình.
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng
nhớ đặt biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện hay khi
một ngắt xảy ra làm cho chương trình bị rẽ nhánh , giá trị của bộ đếm chương trình
PC tự động được vi điều khiển cất vào trong stack. Khi một trong các lệnh
RETURN, RETLW hay RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra
từ trong stack, vi điều khiển sẽ được thực hiện tiếp chương trình theo đúng quy
định trước.
Bộ nhớ Stack trong vi điều khiển PIC họ 16F8xx có khả năng chứa được 8 địa chỉ
và hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ
9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần
thứ 10 sẽ ghi đè lên giá trị 6 cất vào Stack, do đó ta không biết được khi nào Stack
tràn. Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có lệnh POP
hay PUSH, các thao tác với bộ stack sẽ hoàn toàn được điều khiển bởi CPU.
3.1.4 Các cổng xuất nhập trong PIC
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 đ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 dượ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 sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh những 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 đó.
Port A
Port A (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 Port A 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 còn lại. Bên cạnh đó Port A
còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung clock của
Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port).
Các thanh ghi SFR liên quan đến Port A bao gồm:
Port A (địa chỉ 05h) : chứa giá trị các pin trong
Port A. TRISA (địa chỉ 85h) : điều khiển xuất nhập.
CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.
CVRCON (địa chỉ 9Dh): thanh ghi điều khiển bộ so sánh điện áp.
ADCON1 ( địa chỉ 9Fh): thanh ghi điều khiển bộ ADC.
Port B:
Port B (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 Port B 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. Port B còn
liên quan đến ngắt ngoại vi và bộ Timer0. Port B 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ác thanh ghi SFR liên quan đến Port B bao gồm:
Port B (địa chỉ 06h,106h) : chứa giá trị các pin trong Port B
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.
Port C:
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 đó Port C 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 Port C: Port C (địa chỉ 07h) : chứa giá
trị các pin trong Port C.
TRISC (địa chỉ 87h) : điều khiển xuất nhập.
Port D:
Port D (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là
TRISD. Port D còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave
Port).
Các thanh ghi liên quan đến Port D bao gồm:
Thanh ghi Port D : chứa giá trị các pin trong Port D.
Sử dụng điện thoại để điều khiển các thiết bị. Khi đó chúng ta sẽ lập trình một
phần mềm trên điện thoại, kết nối với module bluetooth HC05. Vi điều khiển sẽ
giao tiếp với HC05 để nhận lệnh từ điện thoại hoặc gửi dữ liệu lên điện thoại, từ
đó đưa ra các hành động thích hợp(như bật tắt đèn,...) hoặc gửi thông tin về trạng
thái thiết bị, ...
Giao tiếp giữa các thiết bị phần cứng với nhau, mỗi thiết bị sẽ trang bị một module
HC05 và việc gửi nhận dữ liệu giữa các thiết bị phần cứng sẽ thông qua các
module HC05.
Cổng kết nối bluetooth V2.0 + EDR (Tăng tỗ đọ dữ liệu) 3Mbps điều chế với bộ
thu phát vô tuyến hoàn chỉnh 2.4 GHz.
Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền
nhận bình thường 8 mA
Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200.
Hướng dẫn trạng thái cổng PIO1: kết nối thấp, kết nối cao.
PIO10 và PIO11 có thể kết nối với màu đỏ và màu xanh dẫn riêng. Khi Module
được ghép nối, màu đỏ và màu xanh dẫn nhấp nháy 1 lần/ 2 giây trong khoảng
thời gian, trong khi không kết nối chỉ dẫn màu xanh dương nhấp nháy 2 lần/s.
Tự động kết nối với thiết bị cuối cùng về nguồn điện như mặc định.
Cho phép ghép nối thiết bị để kết nối làm mặc định.
Tự kết nối lại trong 30 phút khi ngắt kết nối do kết nối ngoài phạm vi kết nối.
Bảng 3.1: Chức năng các chân của module Bluetooth HC-05
RX EN dữ liệu
14 NC
INQ:address,type,signal
Phần địa chỉ (address) sẽ có định dạng như sau: 0123:4:567890. Để sử dụng địa
chỉ này trong các lệnh tiếp theo ta phải thay dấu “:” thành “,”
0123:4:567890 -> 0123,4,5678
AT+PAIR=<address>,<timeout> : Đặt timeout(s) khi kết nối với 1 địa chỉ slave
AT+LINK=<address> Kết nối với slave
Các lệnh ở chế độ Slave:
Module SIM900 có thể hoạt động với các tần số sau GSM 850MHz, 900 MHz,
DCS 1800MHz và PCS 1900MHz và cũng hỗ trợ kỹ thuật GPS định vị vị trí bằng
vệ tinh.
Sim900 được sử dụng trong đồ án này để làm module sim900, có kết nối với sim
điện thoại di động làm GSM modem. Module sim900 sẽ kết nối với các thiết bị
khác, phục vụ cho việc đóng ngắt thiết bị điện.
Tiết kiệm điện Ở chế độ ngủ tiêu thụ điện năng 1.5mA
Serial Port:
8 đường trên giao tiếp Serial Port. Serial Port có
thể được sử dụng cho CSD FAX, dịch vụ GPRS
và gửi lệnh AT để điều khiển module.
Giao tiếp Serial và giao Serial Port có chức năng ghép kênh
tiếp Debug Autobauding tốc độ baud từ 1200 bps đến
115200bps. Debug Port:
Hai đường trên giao tiếp Serial Port là TXD và
RXD Debug Port chỉ được sử dụng để gỡ rối hoặc
nâng cấp firmware
Bộ công cụ ứng dụng SIM Hỗ trợ SAT lớp 3, GSM Release 99 11,14
Từ các lệnh “AT” này, người lập trình có thể làm một số bước sau:
Ban đầu đọc tin nhắn, viết tin nhắn và xóa tin nhắn.
Thực hiện gửi tin nhắn SMS.
Kiểm tra toàn bộ chiều dài nội dung tin nhắn
Số lần gửi tin nhắn có thể thực hiện được trên một phút tương đối thấp, vào
khoảng 6-10 tin nhắn trên 1 phút.
Trong khuôn khổ của đồ án này em chỉ tìm hiểu 1 số tập lệnh cơ bản phục vụ cho
việc làm đồ án của mình. Sau đây em xin giới thiệu 1 số tập lệnh cơ bản để cài đặt
dùng cho dịch vụ SMS, bao gồm:
Bước đầu tiên là công việc khởi tạo.
Bước thứ hai là nhận và xử lý tin nhắn.
Bước làm cuối cùng là gửi tin nhắn đi.
3.3.4 Các thuật ngữ
<CR>: Carriage return (đƣợc dịch từ mã ASCII là $0D).
<LF>: Line Feed (đƣợc dịch từ mã ASCII là 0x0A)
MT : Mobile Terminal – Thiết bị đầu cuối (ở đây là Module sim900).
TE : Terminal Equipment – Thiết bị đầu cuối (ở đây là máy tính giao tiếp được
dùng để giao tiếp với Module sim).
3.3.5 Cú pháp lệnh AT
Lệnh khởi đầu : luôn là “AT” hoặc “at”
Lệnh kết thúc là : ký tự <CR>(trong đồ án cần chuyển sang mã ASCII là $0D).
Thông thường sau mỗi lệnh AT là một đáp ứng, cấu trúc của đáp ứng này là :
“<CR><LF><Response>“<CR><LF>”
Cú pháp chính của lệnh AT có thể đƣợc phân chia thành 3 loại : cú pháp có cấu
trúc cơ bản, cú pháp có cấu trúc tham số S, cú pháp có cấu trúc mở rộng.
Với các cú pháp nêu trên thì các lệnh có thể hoạt động ở nhiều chế độ khác nhau.
Các chế độ này được thống kê ở bảng bên dưới như sau :
Một số chế độ của lệnh AT :
AT+CMGR=1 thì sim900 sẽ đọc tin nhắn tại ngăn số 1 của bộ nhớ sim điện thoại gắn
ngoài.
3.3.6.7 Lệnh AT+CMGF : lựa chọn định dạng tin nhắn SMS
Lệnh AT+CMGF dùng để lựa chọn định dạng tin nhắn SMS, với hai chế độ là text và
PDU [14], cụ thể nhƣ sau: AT+CMGF=1: lựa chọn sử dụng tin nhắn ở chế độ văn
bản AT+CMGF=0: lựa chọn sử dụng tin nhắn ở chế độ PDU Đáp ứng trả về là “OK”
nếu như modem hỗ trợ, ngược lại, nếu modem không hỗ trợ chế độ định dạng tin
nhắn là text hoặc PDU thì đáp ứng trả về sẽ là “ERROR”.
3.3.6.9 Lệnh AT+CSAS : Lưu các thiết lập tin nhắn SMS
Lệnh AT+CSAS dùng để lưu các thiết lập SMS do người dùng đã cài đặt trước đó.
Lệnh này sẽ lưu trực tiếp các thông số đã cài đặt cho tin nhắn SMS như các lệnh
AT+CMGF=1; AT+CNMI=2,2,0,0,0...và còn nhiều lệnh khác liên quan tới tin nhắn
SMS đều được lưu lại bởi lệnh AT+CSAS này.
Cảm Biến Nhiệt Độ LM35 được sản xuất bởi hãng national Semiconductor dải đo
từ 0 Độ đến 100 độ C. LM35 là cảm biến tiêu hao điện năng thấp sử dụng điện áp
5V. Cảm biến gồm có 3 chân, 2 chân nguồn, 1 chân tín hiệu ra dạng Analog.
Chân dữ liệu của LM35 là chân ngõ ra điện áp dạng tuyến tính. Chân số 2 cảm
biến xuất ra cứ 1mV = 0.1°C (10mV = 1°C). Để lấy dữ liệu ở dạng °C chỉ cần lấy
điện áp trên chân OUT đem chia cho 10.
Chân 1 cấp điện áp 5V, chân 3 cấp GND, chân 2 là chân OUTPUT dữ liệu dạng
điện áp
Tương tự với ADC 11bit và Vcc khác ta cũng tính như trên để được công thức lấy
nhiệt độ
Dòng: 150mA
Tính hiệu tương tự (analog)
Thứ tự chân:
VCC Nguồn
GND GND
A0 Analog
D0 Digital
Sử dụng cơ bản:
PIC16f887
5V VCC
GND GND
ADC A0
4.1.1 Sơ đồ khối
KHỐI
KHỐI
CẢM
HIỂN THỊ
BIẾN
KHỐI
NGUỒN
KHỐI XỬ
LÝ PIC
16F887
KHỐI
MODULE KHỐI RELAY
SIM 900A
Hình 4.1 Sơ đồ hệ thống điều khiển thiết bị qua sms
Chức năng của từng khối:
Khối module sim900A: có chức năng gửi nhận tin nhắn SMS cho việc điều khiển
các thiết bị. Khối này cần 1 thiết bị điện thoại di động dành cho người sử
dụng( điều khiển). 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. Module Sim900A này phải được gắn sim của
nhà cung cấp dịch vụ và cũng cần phải có chức năng như một điện thoại di động
để kết nối với vi điều khiển 16F887. Khi người điều khiển có nhắn một tin nhắn có
chứa câu lệnh yêu cầu điều khiển thiết bị thì module sẽ nhận tin nhắn và được xử lí
bởi câu lệnh điều khiển được lập trình và được nạp vào vi điều khiển 16F887
Khối xử lý 16F887 là khối trung tâm trong việc xử lý và điều khiển phần cứng.
Khối do một vi điều khiển 16F887 đảm nhận và có nhiệm vụ gửi nhận dữ liệu với
Module sim 900A một cách liện tục. Khi Module Sim900A 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 hiện. Vi điều khiển có
nhiệm vụ giao tiếp với khối công suất để điều khiển thiết bị.
Khối hiển thị là khối hiển thị dữ liệu lên LCD khi khối xử lý 16F887 yêu cầu.
Khối cảm biến là gồm khối đo nhiệt độ môi trường và cảm biến phát hiện khí gas.
Khối nguồn là khối cung cấp nguồn ổn định cho toàn bộ hệ thống.
4.1.2 Nguyên lý hoạt động
B2: Khối xử lý gửi lệnh phản hồi đến module sim để module sim gửi tin nhắn đến điện
thoại người điều khiển báo mạch đã hoạt động.
B3: Khối xử lý tiếp tục quét khối cảm biến xem có bị quá nhiệt độ hay rò rỉ khí gas
không . Nếu có quá nhiệt độ hoặc bị rò rỉ khí gas thì bộ xử lý gửi lệnh báo quá nhiệt
hoặc rò rỉ gas đến module sim, module sim phản hồi đến điện thoại người điều khiển
đồng thời còi báo quá nhiệt hoặc rò rỉ khí gas báo lên.
B4: Nếu bộ cảm biến không bị rò rỉ hoặc quá nhiệt thì bộ điều khiển sẵn sàng đợi lệnh
điều khiển từ điện thoại master.
B5: Nếu điện thoại master nhắn tin đúng lệnh điều khiển thiết bị đến module sim thì
module sim gửi lệnh điều khiển sang cho bộ xử lý, bộ xử lý xử lý lệnh và điều khiển
thiết bị ON/OFF đến bộ relay.
Khối xử lý 16F887 là khối trung tâm trong việc xử lý và điều khiển phần cứng.
Khối do một vi điều khiển 16F887 đảm nhận và có nhiệm vụ gửi nhận dữ liệu
với Module sim 900A một cách liện tục. Khi Module Sim900A 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 hiện. Vi điều
khiển có nhiệm vụ giao tiếp với khối relay để điều khiển thiết bị.
Khối điều khiển 16F887 có nhiệm vụ gửi nhận dữ liệu với module Sim900A
một cách liên tục để điều khiển khối công suất đồng thời xuất dữ liệu lên khối
hiển thị.
Khối hiển thị gồm LCD được kết nối với chân từ B1 đến B7 của PIC16F887,
khối này sẽ hiển thị dữ liệu khi PIC16F887 gửi yêu cầu.
Khối cảm biến có nhiệm vụ báo quá nhiệt độ hoặc rò rỉ khí gas về cho bộ điều khiển,
bộ điều khiển sẽ gửi tin nhắn phản hồi cho module sim, module sim thực thi gửi cho
người điều khiển.
Hình 4.10 Ảnh thực tế mạch điều khiển bằng module sim 900A
//-----------------------------------------------------------------------------
#int_RDA
void RDA_isr(void)//Ngat du lieu khi truyen nhan
{
// re=1;
c=getc();//Gan ki tu vua nhan duoc vao bien tam
if(c=='+') c1=c;
if(c=='C') c2=c;
if(c=='M') c3=c;
if(c=='T') c4=c;
if(c1=='+' && c2=='C' && c3=='M' && c4=='T') NewSMS=1;//Kiem tra tin nhan
moi
if(c=='+') c1=c;
if(c=='C' || c=='c') c2=c;
if(c=='L' || c=='l') c3=c;
if(c=='I' || c=='i') c4=c;
if(Index>=80)//Kiem tra neu vuot qua chi so mang thi reset lai
{
Index=0;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//chuong trinh chinh
void main(void)
{
//khai bao bien cuc bo
set_tris_c(0b01000000);
output_bit(ThietBi_1,1);
output_bit(ThietBi_2,1);
output_bit(ThietBi_3,1);
output_bit(ThietBi_4,1);
output_bit(PIN_E1,0);
output_bit(PIN_E2,0);
setup_adc_ports(sAN0); //Xac dinh chan analog su dung
setup_adc(ADC_CLOCK_INTERNAL); //Chon thoi gian lay mau bang xung clock
IC
delay_us(10);
set_adc_channel(0);
char i,j,Temp;
char Content[]="CHAO BAN, BO DIEU KHIEN DA SAN SANG!!!";
_Init_lcd();
_CaiDat();
if(_DocSoDienThoai(SoDienThoai)<0)
{
sprintf(SoDienThoai,"0926045647");
_GhiSoDienThoai(SoDienThoai);
}
_CatDatSim(6);
_GuiTinNhan(SoDienThoai,Content);
_TatHetThietBi();
_KhoiDongXong();
_KTNhietDo();
_KTKhiGas();
if(t == 0 && x == 0)
output_bit(PIN_E1,0);
if(g == 0 && y == 0)
output_bit(PIN_E2,0);
if(t == 0)
x = 1;
if(g == 0)
y = 1;
delay_ms(500);
}
if(NewCall == 1)
{
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"CUOC GOI TOI.....");
_Delay(30);
_TuChoiCuocGoi();
_Delay(10);
_ReSet(20,1);
}
else if(NewSMS == 1)//Neu la tin nhan moi
{
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"CO TIN NHAN TOI\n...");
_Delay(20); //tao thoi gian tre de nhan du du lieu tin nhan trong ham ngat
_Reset(1,2);
SoDienThoai[0]='0';
for(i=0;i<80;i++)
{
if(SMS[i]=='+'&&SMS[i+1]=='8'&&SMS[i+2]=='4')//dau so Viet NAM minh
la +84
{
for(j=i+3;j<i+3+11;j++)
{
SoDienThoai[j-(i+3)+1]=SMS[j];
}
if(SoDienThoai[10]=='"')
{
SoDienThoai[10]='\0';
}
if(SoDienThoai[11]=='"')
{
SoDienThoai[11]='\0';
}
_GhiSoDienThoai(SoDienThoai);
break;
}
}
lcd_gotoxy(1,1);
printf(lcd_putc,"SDT:%s ",SoDienThoai);
for(j=0;j<80;j++)
{
if((SMS[j]=='t'||SMS[j]=='T')&&(SMS[j+1]=='a'||
SMS[j+1]=='A')&&(SMS[j+2]=='t'||SMS[j+2]=='T')
&&(SMS[j+3]=='h'||SMS[j+3]=='H')&&(SMS[j+4]=='e'||
SMS[j+4]=='E')&&(SMS[j+5]=='t'||SMS[j+5]=='T'))
{
_TatHetThietBi();
sprintf(Content,"DA TAT HET THIET BI");
_GuiTinNhan(SoDienThoai,Content);
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"DA TAT HET\nTHIET BI");
break;
}
if((SMS[j]=='b'||SMS[j]=='B')&&(SMS[j+1]=='a'||
SMS[j+1]=='A')&&(SMS[j+2]=='t'||SMS[j+2]=='T')
&&(SMS[j+3]=='h'||SMS[j+3]=='H')&&(SMS[j+4]=='e'||
SMS[j+4]=='E')&&(SMS[j+5]=='t'||SMS[j+5]=='T'))
{
_BatHetThietBi();
sprintf(Content,"DA BAT HET THIET BI");
_GuiTinNhan(SoDienThoai,Content);
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"DA BAT HET\nTHIET BI");
break;
}
if((SMS[j]=='t'||SMS[j]=='T')&&(SMS[j+1]=='a'||
SMS[j+1]=='A')&&(SMS[j+2]=='t'||SMS[j+2]=='T'))
{
Temp=SMS[j+3];
_DieuKhien(Temp,1);
sprintf(Content,"DA TAT THIET BI SO %c",Temp);
_GuiTinNhan(SoDienThoai,Content);
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"DA TAT THIET BI\nSO %c",Temp);
break;
}
if((SMS[j]=='b'||SMS[j]=='B')&&(SMS[j+1]=='a'||
SMS[j+1]=='A')&&(SMS[j+2]=='t'||SMS[j+2]=='T'))
{
Temp=SMS[j+3];
_DieuKhien(Temp,0);
sprintf(Content,"DA BAT THIET BI SO %c",Temp);
_GuiTinNhan(SoDienThoai,Content);
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"DA BAT THIET BI\nSO %c",Temp);
break;
}
if((SMS[j]=='t'||SMS[j]=='T')&&(SMS[j+1]=='r'||
SMS[j+1]=='R')&&(SMS[j+2]=='a'||SMS[j+2]=='A') &&(SMS[j+3]=='t'||
SMS[j+3]=='T'))
{
sprintf(Content,"NHIET DO: %i do C",voltage);
_GuiTinNhan(SoDienThoai,Content);
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"DANG GUI\nTIN NHAN...");
break;
}
if((SMS[j]=='t'||SMS[j]=='T')&&(SMS[j+1]=='t'||SMS[j+1]=='T'))
{
sprintf(Content,"TRANG THAI TB: %c%c%c
%c",status[1],status[2],status[3],status[4]);
_GuiTinNhan(SoDienThoai,Content);
_Xoa();
lcd_gotoxy(1,1);
printf(lcd_putc,"DANG GUI\nTIN NHAN...");
break;
} }
_Delay(10);
_Reset(10,1);
}
else if(t == 0 && g == 0)
{
if(a == 1)
_Xoa();
a = 0;
output_bit(PIN_E1,0);
output_bit(PIN_E2,0);
x = 1; y = 1;
_ManHinhChinh();
}
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void _Delay(char time)
{
int i;
for(i=0;i<time;i++)
{
delay_ms(100);//tao tre 0.1s
}
}
void _Init_lcd(void)
{
lcd_init();
lcd_putc('\f');
}
void _CaiDat(void)
{
enable_interrupts(INT_RDA); //cho phep ngat uart - ngat nhan du lieu tu sim900a
enable_interrupts(GLOBAL); //cho phep tat ca cac loai ngat hoat dong
}
{
Status[1]='#';
}
break;
}
case '2':
{
output_bit(ThietBi_2,Level);
if(Level==0)
{
Status[2]='0';
}
else
{
Status[2]='#';
}
break;
}
case '3':
{
output_bit(ThietBi_3,Level);
if(Level==0)
{
Status[3]='0';
}
else
{
Status[3]='#';
}
break;
}
case '4':
{
output_bit(ThietBi_4,Level);
if(Level==0)
{
Status[4]='0';
}
else
{
Status[4]='#';
}
break;
}
}
}
void _BatHetThietBi(void)
{
char i=0;
char array[]={'1','2','3','4'};
for(i=0;i<=3;i++)
{
_DieuKhien(array[i],0);
Status[i]='#';
}
}
void _TatHetThietBi(void)
{
char i=0;
char array[]={'1','2','3','4'};
for(i=0;i<=3;i++)
{
_DieuKhien(array[i],1);
Status[i]='0';
}
}
switch(Option)
{
case 1:
{
for(n=0;n<time;n++)
{
for(k=0;k<=80;k++)
{
SMS[k]='\0';
}
c1=c2=c3=c4=c5='\0';
NewSMS=0,NewCall=0;
Index=0;
_Delay(1);
}
break;
}
case 2:
{
for(n=0;n<time;n++)
{
c1=c2=c3=c4=c5='\0';
NewSMS=0,NewCall=0;
Index=0;
_Delay(1);
}
}
}
}
printf("AT\r\n");
_Delay(5);
printf("ATZ\r\n");
_Delay(5);
printf("ATE1\r\n");
_Delay(5);
printf("AT+ICF=3,3\r\n");
_Delay(5);
printf("AT+IPR=9600\r\n");
_Delay(5);
printf("AT&W\r\n");
_Delay(5);
printf("AT+CMGF=1\r\n");
_Delay(5);
printf("AT+CNMI=2,2,0,0,0\r\n");
_Delay(5);
printf("AT+CSAS\r\n");
_Delay(5);
printf("AT+CLIP=1\r\n");
_Delay(5);
printf("AT+CMGD=1,4\r\n");
_Delay(5);
lcd_gotoxy(1,1);
printf(lcd_putc,"DANG KHOI DONG");
for(i=0;i<16;i++)
{
lcd_gotoxy(i+1,2);
lcd_putc(Dot[i]);
_Delay(Time);
}
}
void _TuChoiCuocGoi(void)
{
printf("ATH\r\n");
_Delay(5);
}
for(i=0;i<11;i++)
{
SoDienThoai[i]=read_eeprom(i+0);
}
return SoDienThoai[0];
}
for(i=0;i<11;i++)
{
write_eeprom((i+0),SoDienThoai[i]);
}
while(1)
{
if(content[i]=='\0' || content[i]=='#' ||i>=80)
{
break;
}
putc(content[i]);
i++;
}
}
void _KhoiDongXong(void)
{
lcd_putc('\f');//xoa trang man hinh lcd
lcd_gotoxy(1,1);
printf(lcd_putc,"KHOI DONG XONG");
_Reset(20,1);
lcd_putc('\f');
}
void _ManHinhChinh(void)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"--DKTB QUA SMS--");
lcd_gotoxy(1,2);
printf(lcd_putc,"NHIET DO: %i^C",voltage);
delay_ms(1000);
}
void _Xoa(void)
{
lcd_putc('\f');
}
void _KTNhietDo(void)
{
ADC = read_adc();
delay_ms(100);
voltage = 500.0f / 1023 * ADC;
if(voltage>=50)
t = 1;
else if (voltage<50)
t = 0;
}
void _KTKhiGas(void)
{
if(input(PIN_E0) == 0)
g = 1;
else
g = 0;
}
KHỐI XỬ
LÝ PIC
16F887
KHỐI
MODULE KHỐI RELAY
HC-05
Hình 4.12 Sơ đồ khối bluetooth HC05
module HC-05 gửi tín hiệu điều khiển đến khối điều khiển để khối điều khiển
nhận lệnh và thực thi.
B3: Có thể bật tắt thiết bị bằng nút nhấn được thiết lập sẵn trên mạch.
4.2.3 Tính toán chi tiết
4.2.3.1 Khối xử lý PIC16F887
Khối module HC-05 là khối gửi nhận dữ liệu từ app được tạo sẵn để truyền đến
khối điều khiển, khối điều khiển nhận được sẽ thực thi nhiệm vụ.
Khối điều khiển 16F887 có nhiệm vụ gửi nhận dữ liệu với module HC 05 một
cách liên tục để điều khiển khối công suất đồng thời xuất dữ liệu lên khối hiển
thị.
Khối hiển thị gồm LCD được kết nối với chân từ D1 đến D7 của PIC16F887,
khối này sẽ hiển thị dữ liệu khi PIC16F887 gửi yêu cầu.
Hình 4.20 Mạch thực tế điều khiển thiết bị qua module HC05
#define RS RA1
#define RW RA2
#define E RA3
#define LCD portD
char nhan;
char ten[16] = ".DKTB=BLUETOOTH.";
char bien[16] = "DO AN TOT NGHIEP";
char led[16] = "D1 D2 D3 D4";
char on[16] = "ON ON ON ON ";
char off[16] = "OFF OFF OFF OFF";
int i,j,k,m,n;
void lenh()
{
RS = 0; RW = 0; E = 1; E = 0; delay_ms(1);
}
void dulieu()
{
RS = 1; RW = 0; E = 1; E = 0; delay_ms(1);
}
void lap()
{
LCD = 0xC0; lenh();
for(i=0;i<16;i++)
{
LCD = ten[i]; dulieu();
delay_ms(80);
}
}
void kia()
{
LCD = 0x80; lenh();
for(j=0;j<16;j++)
{
LCD = bien[j]; dulieu();
delay_ms(80);
}
}
void hienthi()
{
LCD = 0x80; lenh();
for(k=0;k<14;k++)
{
LCD = led[k]; dulieu();
}
}
void OnAll()
{
LCD = 0xC0; lenh();
for(m=0;m<15;m++)
{
LCD = on[m]; dulieu();
}
}
void OffAll()
{
LCD = 0xC0; lenh();
for(n=0;n<15;n++)
{
LCD = off[n]; dulieu();
}
}
void ON()
{
LCD = 'O'; dulieu();
LCD = 'N'; dulieu();
LCD = ' '; dulieu();
}
void OFF()
{
LCD = 'O'; dulieu();
LCD = 'F'; dulieu();
LCD = 'F'; dulieu();
}
#int_RB
void nut_nhan()
{
if(RB4==0)
{
if(RB0 == 0)
{
RB0 = 1; LCD = 192; lenh(); OFF();
}
else
{
RB0=0; LCD = 192; lenh(); ON();
}
}
if(RB5==0 )
{
if(RB1 == 0)
{
RB1 = 1; LCD = 196; lenh(); OFF();
}
else
{
RB1=0; LCD = 196; lenh(); ON();
}
}
if(RB6==0 )
{
if(RB2 == 0)
{
RB2 = 1; LCD = 200; lenh(); OFF();
}
else
{
RB2=0; LCD = 200; lenh(); ON();
}
}
if(RB7==0 )
{
if(RB3 == 0)
{
RB3 = 1; LCD = 204; lenh(); OFF();
}
else
{
RB3=0; LCD = 204; lenh(); ON();
}
}
}
#int_RDA
void nhannut()
{
nhan = getc();
if(nhan=='1')
{
RB0 = 0; LCD = 192; lenh(); ON();
}
if(nhan=='2')
{
RB1 = 0; LCD = 196; lenh(); ON();
}
if(nhan=='3')
{
RB2 = 0; LCD = 200; lenh(); ON();
}
if(nhan=='4')
{
RB3 = 0; LCD = 204; lenh(); ON();
}
if(nhan=='5')
{
portB = 240; OnAll();
}
if(nhan=='A')
{
RB0 = 1; LCD = 192; lenh(); OFF();
}
if(nhan=='B')
{
RB1 = 1; LCD = 196; lenh(); OFF();
}
if(nhan=='C')
{;
RB2 = 1; LCD = 200; lenh(); OFF();
}
if(nhan=='D')
{
RB3 = 1; LCD = 204; lenh(); OFF();
}
if(nhan=='E')
{
portB =15; OffAll();
}
}
void main()
{
portb = 15;
enable_interrupts(int_RDA);
enable_interrupts(int_RB);
enable_interrupts(global);
set_tris_A(0);
set_tris_B(240);
set_tris_C(128);
set_tris_D(0);
delay_ms(100);
LCD = 0x38; lenh();
LCD = 0x0C; lenh();
LCD = 0x01; lenh();
kia();
lap();
delay_ms(1500);
LCD = 0x01; lenh();
hienthi();
delay_ms(100);
OffAll();
while(1);
}
Sau khi gửi tin nhắn thì với nội dung tin nhắn đó, bộ xử lý sẽ thực hiên 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ừ điện thoại master để điều khiển các thiết bị điện và điện
thoại master cũng nhận được tin nhắn trả ngược lại với nội dung tin nhắn đã bật
hay tắt thiết bị đồng thời có thể tra nhiệt độ hiện tại.
Hệ thống có thể báo quá nhiệt độ và rò rỉ khí gas , đồng thời hiển thị LCD, báo
động còi và gửi tin nhắn đến số đã được lưu sẵn(số điện thoại master).
Hệ thống có thể điều khiển được thiết bị điện từ xa thông qua sóng Bluetooth.
Khi kết nối bluetooth điện thoại android với module HC05 thì module HC05 sẽ
báo tín hiệu đã kết nối bằng cách chớp tắt đèn trong 2 giây.
Khi điều khiển bật tắt trên app điện thoại , điện thoại sẽ truyền kí tự điều khiển
đến module bluetooth HC05, sau đó module HC05 sẽ gửi lệnh yêu cầu thực hiện
đến bộ xử lý để bật tắt thiết bị, đồng thời hiển thị trạng thái thiết bị lên LCD.
Ưu điểm:
Đối với điều khiển thiết bị bằng SMS:
Tiện lợi, tiết kiệm chi phí thi công.
Mô hình điều khiển đơn giản, thực hiện lệnh điều khiển một cách nhanh chóng.
Có thể điều khiển ở nhiều nơi với module sim 900A.
Nhiều điện thoại khác nhau có thể điều khiển được.
Đối với điều khiển thiết bị bằng bluetooth
Sử dụng app android nên dễ sử dụng và tiện ít.
Thực hiện lệnh điều khiển không mất phí đối với module HC05.
Nhược điểm:
Đối với điều khiển thiết bị bằng SMS:
Tốn phí khi điều khiển thiết bị.
Đối với điều khiển thiết bị bằng bluetooth
Khoảng hoạt động của mạch điều khiển có giới hạn
Mô hình điều khiển thiết bị bằng bluetooth chỉ một thiết bị được truy cập để điều
khiển.
Sử dụng nhiều loại cảm biến khác, cảm biến độ ẩm không khí để đo độ ẩm
không khí, hệ thống chống trộm tự động,… để ứng dụng vào đề tài. 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à.
Đề tài không những chỉ áp dụng cho các tòa nhà mà nên được mở rộng đối
với điều khiển thiết bị 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 bạn, 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 con người trong tương lai.