Tải bản đầy đủ (.docx) (20 trang)

điều khiển thiết bị bằng bluetooth dùng PIC16F ( có code và mạch in )

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 (733.68 KB, 20 trang )

MỤC LỤC

DANH MỤC HÌNH ẢNH
Hình 1.1: Sơ đồ khối……………………………………………………………………….……7
Hình 2.1: Vi điều khiển PIC16F877A………………………………………………….….….9
Hình 2.2: Chức năng cơ bản của PIC 16F887A……………………………………….…....9
Hình 2.3: Sơ đồ chân vi điều khiển 16F887A…………………………………………....…
10
Hình 2,4: Module Bluetooth HC-06…………………………………………………..….….10
Hình 4.1: Sơ đồ khối của mạch điều khiển thiết bị qua Bluetooth………………….……
14
Hình

4.2:



đồ

nguyên



của

mạch………………………………………………………...15
Hình 4.3: Khối nguồn…………………………………………………………………...….
….15
Hình 4.4: Khối Relay………………………………………………………………….……….16
Hình 4.5: Khối thạch anh……………………………………………………………………..17
Hình



4.6:

Khối

vi

điều

khiển



kết

nối

với

module

Bluetooth…………………………...17
Hình 4.7: Khối Reset…………………………………………………………………………..18
Hình

5.1:



đồ


mạch

in……………………………………………………………………….19
Hình 5.2: Mạch thực tế……………………………………………………………………..…20


Chương 1: GIỚI THIỆU VỀ ĐỀ TÀI
1.1 Mục đích:
Giao tiếp không dây phổ biến và linh hoạt như Bluetooth cho phép các thiết bị dễ
dàng kết nối trao đổi dữ liệu trong khoảng cách ngắn một cách đơn giản nhất. Nó cho
phép việc kết nối không dây với các thiết bị điện, điện tử trở nên tiện dụng và hiệu quả
hơn.
Kết hợp các yếu tố trên, việc xây dựng một hệ thống điều khiển các thiết bị điện
gia dụng bằng Smartphone thông qua giao tiếp Bluetooth là ứng dụng rất thực tế và
mang tính hiệu quả, tiện lợi cao để hướng đến một cuộc sống tiện nghi, hiện đại.
1.2 Nội dung và nhiệm vụ:
 Nội dung của đề tài:
Xây dựng phần mềm điều khiển trên Smartphone,một ưu điểm là hầu như các
thiết bị Smartphone đều được tích hợp công nghệ Bluetooth, vì thế người dùng có thể
dễ dàng kết nối được với mạch để điều khiển. Việc điều khiển trở lên thuận tiện và tiết
kiệm chi phí so với làm bộ điều khiển, ứng dụng này sẽ có chức năng chính là truyền,
nhận dữ liệu qua Bluetooth để điều khiểnthiết bị.
Sử dụng một Module Bluetooth để truyền nhận dữ liệu với Smartphone và việc
truyền nhận này được điều khiển bởi một vi điều khiển. Vi điều khiển ở đây là
PIC16F877A, vi điều khiển này có 2 nhiệm vụ chính: xử lý dữ liệu và điều khiển kích
đóng ngắt các Relay để điềukhiển các thiết bị điện.
 Nhiệm vụ của đề tài:
Phần mềm điều khiển trên điện thoại phải kết nối nhanh với mạch điều khiển,
chính xác và an toàn tuyệt đối.

Hệ thống mạch cứng của vi xử lý có độ ổn định, bền, nhỏ gọn và điều khiển chính
xác các thiết bị điện như đã thao tác trên Smartphone.


Hạn chế tối đa nhiễu khi sử dụng với các thiết bị điện khác nhau, đặc biệt là các
thiết bị có nhiễu từ trường cao.
Khoảng cách điều khiển giữa điện thoại Android và mạch điều khiển đảm bảo
hợp lý trong khoảng cách dưới 100m.
Giá thành phải phù hợp với một hệ thống ổn định và có tính ứng dụng thực tiễn
cao.
1.3 Phương pháp:
Thiết bị được điều khiển
Khối vi điều khiển
Module Bluetooth
Khối nguồn
Giao diện điều khiển trên Smartphone
Khối Relay
Hình 1.1: Sơ đồ khối
Tổng quan về các khối:
• Khối nguồn:
- Module Bluetooth : 3.3V ( Hỗ trợ IC ổn áp đầu vào 5V)
- Khối vi điều khiển: Vinput = 5V
- Khối Relay: Vinput = 5V
- Điều khiển thiết bị 12V
• Khối vi điều khiển: sử dụng vi điều khiển PIC16F877A.
• Khối Relay: gồm hai mạch relay điều khiển đóng ngắt hai thiết bị.
• Khối giao diện điều khiển trên Smartphone: sử dụng Smartphone có hệ điều
hành Android.
• Khối module Bluetooth HC-06.



Chương 2: GIỚI THIỆU PHẦN CỨNG
2.1 Vi điều khiển PIC16F877A:
2.1.1
Giới thiệu về vi điều khiển:
 Các đặc trưng của vi điều khiển PIC16F877A:
Hình

fgfg3.1:

PHìnhICHkvdskvmdsvkm16F

Hình 2.1: Vi điều khiển PIC16F877A
-

PIC16F877A là loại vi điều khiển 8bit tầm trung của hãng microchip.
PIC16F877A có kiến trúc Havard, sử dụng tập lệnh kiểu RISC (Reduced

Instruction Set Computer) với chỉ 35 lệnh cơ bản.
- Tất cả các lệnh được thực hiện trong một chu kì lệnh ngoại trừ các lệnh rẽ nhánh.
 Các chức năng cơ bản của PIC16F877A:
Hình 3.2: Chức năng PIC16F877A

Hình 2.2: Chức năng cơ bản của PIC 16F887A


2.1.2 Sơ đồ chân:
Hình 3.3: Sơ đồ chân
Hình 3.3: Sơ đồ chân


Hình 2.3: Sơ đồ chân vi điều khiển 16F887A
2.2 Module Bluetooth HC-06:
Hình 3.4: Module Bluetooth HC-06

Hình 2,4: Module Bluetooth HC-06
Module bluetooth HC-06 master / slave dùng để thiết lập kết nối Serial giữa hai
thiết bị bằng sóng bluetooth. Điểm đặc biệt của module bluetooth HC-06 là module có
thể hoạt động được ở hai chế độ: MASTER hoặc SLAVE.


-

Ở chê độ SLAVE: cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để
dò tìm module sau đó pair với mã PIN là 1234. Sau khi pair thành công sẽ có 1

-

cổng serial từ xa hoạt động ở baud rate 9600.
Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác và tiến
hành pair chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone.
Thông số kỹ thuật:














Giao tiếp UART với tốc baud lập trình được.
Tích hợp anten.
Kết nối ở biên mạch.
Cấu hình Slave hay Master là cấu hình ban đầu, không thay đổi được.
Điện áp sử dụng 3.3V ( Hỗ trợ IC ổn áp đầu vào 5V)
Thứ tự chân: KEY RXD TXD 5.0 3.3 GND
Tốc độ hỗ trợ: 200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Kích thước: 28x15x2.35 mm
Dòng hoạt động: 20-30 mA
Tần số: 2.4 GHz ISM band
Cấu hình mặc định: 9600 baud rate, N, 8, 1
Giao tiếp bằng lệnh AT:
• Kết nối Module với USB TO COM set KEY xuống mức thấp (GND)
• Cấp nguồn cho Module và chuyển key lên 3.3V

Chương 3. TỔNG QUAN VỀ GIAO TIẾP BLUETOOTH
3.1 Khái niệm về bluetooth:
Bluetooth là công nghệ không dây cho phép các thiết bị điện-điện tử giao tiếp với
nhau trong khoảng cách ngắn, bằng song vô tuyến qua băng tần chung ISM (Industrial,
Scientific, Medical) trong dãy tầng 2.40-2.48 GHz. Đây là dãy băng tầng không cần


đăng ký được dành riêng để dung cho các thiết bị không dây trong công nghiệp, khoa
học, y tế.
3.2 Tính năng trong hoạt động:
 Ưu điểm của bluetooth:

- Tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết bị, bao


gồm cả các thiết bị cầm tay và điện thoại di động.
Khoảng cách giao tiếp cho phép :
Khoảng cách giữa hai thiết bị đầu cuối có thể lên đến 10m ngoài trời, và 5m



trong tòa nhà.
Khoảng cách thiết bị đầu cuối và Access point có thể lên tới 100m ngoài trời và

-

30m trong tòa nhà.
Bluetooth được dùng trong giao tiếp dữ liệu tiếng nói: có 3 kênh để truyền tiếng

-

nói, và 7 kênh để truyền dữ liệu trong một mạng cá nhân.
Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm

hỗ trợ.
- Có khả năng bảo mật từ 8->128 bits.
 Khuyết điểm của bluetooth:
- Khoảng cách kết nối còn ngắn so với các công nghệ mạng không dây khác.
- Số thiết bị active, pack cùng lúc trong một piconect còn hạn chế.
- Tốc độ truyền của Bluetooth không cao.
- Dễ bị nhiễu.
- Bảo mật còn thấp.

3.3 Hoạt động của Bluetooth:
Kỹ thuật Bluetooth có thể coi là phức tạp. Nó dung kỹ thuật nhảy tần số trong
các time slot (TS), được thiết kế để làm việc trong môi trường nhiễu tần số radio,
Bluetooth dùng chiến lược nhảy tần để tạo nên sức mạnh liên kết truyền thông và
truyền thông thông minh. Cứ mỗi lần gửi hay nhận một packet xong, Bluetooth lại
nhảy sang một tần số mới, như thế sẽ tránh được nhiễu từ các tín hiệu khác.
So sánh với các hệ thống khác làm việc trong cùng băng tần, song radio của
Bluetooth nhảy tần nhanh và dung packet ngắn hơn. Vì nhảy nhanh và packet ngắn sẽ
làm giảm va chạm với song từ lò vi song và các phương tiện gây nhiễu khác trong khí
quyển.


Có 3 phương pháp được sử dụng trong việc kiểm tra tính đúng đắn của dữ liệu
truyền đi:
-

ForwadErrorCorrrection: thêm 1 số bit kiểm tra vào phần Header hay Payload

-

của packet.
Automatic Repeat Request:dữ liệu sẽ được truyền lại cho tới khi bên nhận gửi

-

thông báo là đã nhận đúng.
Cyclic Redundancy Check: mã CRC thêm vào các packet để kiểm chứng liệu
Payload có đúng không.
Bluetooth hỗ trợ 1 kênh dữ liệu bất đồng bộ, hay 3 kênh tín hiệu thoại đồng


bộ nhau cùng một lúc, hay 1 kênh hỗ trợ cùng lúc dữ liệu bất đồng bộ và tín hiệu
đồng bộ.


Chương 4: THIẾT KẾ PHẦN CỨNG
Sơ đồ khối:Thiết bị được điều khiển
Khối vi điều khiển
Module Bluetooth
Khối nguồn
Giao diện điều khiển trên Smartphone
Khối Relay
4.1
4.2

Sơ đồ nguyên lý:

Hình 4.1: Sơ đồ khối của mạch điều khiển thiết bị qua Bluetooth


Hình 4.2: Sơ đồ nguyên lý của mạch
4.3

Chức năng từng khối theo sơ đồ nguyên lý:
4.3.1 Khối nguồn:

Hình 4.3: Khối nguồn


Điện áp đầu vào là 12Vdc được lấy từ Power Adaptor chuyển đổi từ nguồn điện
xoay chiều 220V, điện áp 12V đó được cấp cho thiết bị được điều khiển. Điện áp 12V

đó sau khi qua IC LM7805 xuất ra điện áp 5V dc chính là Vcc cấp cho hai khối Relay
hoạt động và cấp cho khối vi điều khiển. Khối module Bluetoothhoạt động ở 3.3V
nhưng với tích hợp IC ổn áp nên hoạt động tốt khi cấp nguồn Vcc = 5V.
4.3.2 Khối Relay ( khối công suất ):

Hình 4.4: Khối Relay
• Relay (Rơ-le) là một công tắc (khóa K). Nhưng khác với công tắc ở một chỗ cơ
bản, rơ-le được kích hoạt bằng điện thay vì dùng tay người. Chính vì lẽ đó, rơ-le
được dùng làm công tắc điện tử. Vì rơ-le là một công tắc nên nó có 2 trạng
thái: đóng và mở.
• Trong hình 4.4, điện áp vào là 5V, sử dụng Transistor NPN (C1815) để điều
khiển. Khi S2 = 1; Q3 thông, có dòng điện cấp cho cuộn hút của Relay. Tiếp
điểm 1 nối với 3, đèn LED3 sáng, thiết bị được điều khiển đóng. Khi S2 = 0; Q3
tắt, không có dòng qua cuộn hút. Tiếp điểm 1 nối với 2, đèn LED3 tắt, thiết bị
được điều khiển ngắt.


4.3.3 Khối thạch anh (khối tạo xung):

Hình 4.5: Khối thạch anh

Tần số thạch anh chọn 20MHz.
4.3.4 Khối vi điều khiển và sơ đồ kết nối với Module Bluetooth:

Hình 4.6: Khối vi điều khiển và kết nối với module bluetooth


Vi điều khiển PIC16F877A kết nối với module bluetooth qua bốn chân : Tx, Rx,
Vcc, GND tương ứng với các chân 25, 26, 32, 31 của PIC như hình trên.
4.3.5. Khối reset:


Hình 4.7: Khối Reset
Khối RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút Reset được ấn điện
áp +5V từ nguồn được nối vào chân Reset của vi điều khiển được chạy thẳng xuống đất lúc này điện áp
tại chân vi điều khiển thay đổi đột ngột về 0, VĐK nhận biết được sự thay đổi này và khởi động lại
trạng thái ban đầu cho hệ thống.


Chương 5: SƠ ĐỒ MẠCH IN VÀ KẾT QUẢ THIẾT KẾ
5.1. Sơ đồ mạch in:

Hình 5.1: Sơ đồ mạch in


5.2. Mạch thực tế:

Hình 5.2: Mạch thực tế


Chương 7: KẾT LUẬN
7.1. Kết quả đạt được:
- Mạch được thiết kế trên phần mềm thiết kế Altium.
- Kích thước của mạch 10x7cm.
- Mạch được phủ đồng để chống nhiễu tuyệt đối.
- Code được xử lý trên chương trình biên dịch PIC C Compiler.
- Thiết kế được mạch điều khiển thiết bị với nguồn điện áp đầu vào ban đầu là
12V. Điện áp cấp cho khối vi điều khiển và module Blutooth hoạt động ở 5V,
điện áp cấp cho khối relay điều khiển thiết bị hoạt động tốt là 5V. Theo như kết
-


quả thực tế, thiết bị được điều khiển có điện áp 12V được dùng là quạt.
Được kết nối bluetooth, với giao diện điều khiển trên Smartphone, khi thao tác

ta điều khiển đóng ngắt được quạt hoặc thiết bị khác.
7.2. Ưu điểm:
- Mạch thiết kế có kích thước nhỏ gọn.
- Dễ lắp đặt, giá thành rẻ, dễ dàng kết nối với thiết bị để điều khiển.
- Điều khiển tốt trong phạm vi <30m.
7.3. Nhược điểm:
• Chưa nhớ được địa chỉ Module Bluetooth vào điện thoại nên mỗi lần kết nối
phải Search Device, tốn nhiều thời gian.
• Ứng dụng còn ít chức năng cũng như các tùy chọn còn ít.
• Khoảng cách điều khiển còn tùy thuộc vào từng thiết bị.
• Mạch điều khiển được thiết kế còn khá đơn giản, số cổng điều khiển chỉ mới có
2 cổng. Còn nhiễu khi sử dụng các thiết bị từ trường cao.
7.4. Hướng phát triển:
- Thiết kế phần mạch điện hoàn hảo hơn, tích hợp thêm nhiều tính năng mới như:
-

điều khiển, cảnh báo, đo đạc…vv
Thêm các chuẩn kết nối khác trên mạch điện, điều khiển qua tín hiệu RF. Wifi,

-

hay qua mạng LAN…
Tiếp tục nghiên cứu mạch điều khiển, cũng như ứng dụng trên Mobile Android
để thêm nhiều tính năng mới, cũng như độ ổn định của hệ thống tăng thêm.




1.
2.
3.
4.

Tài liệu tham khảo:
Hồ Trung Mỹ, Vi xử lý, Nhà xuất bản Đại học quốc gia TP. Hồ Chí Minh – 2013
www.dientuvietnam.net
www.banlinhkien.vn
/>

PHỤ LỤC
Code được sử dụng trong mạch:
#include <16F877A.h>
#fuses NOWDT,NOPUT,HS,NOPROTECT,NOLVP
#USE DELAY(CLOCK=20000000)//thach anh 20Mhz
#define TB1 pin_b0
#define TB2 pin_b1
#use rs232(uart,baud=9600,parity=N,bits=8)
int state;
#INT_RDA
void recive()
{
char state1;
state1=getchar();
state=state1;
}
void main()
{
enable_interrupts(GLOBAL);

enable_interrupts(INT_RDA);
//khi bluetooth gui thi ngat toan bo phia sau.
while(true)
{
switch (state)
{
case '1':


output_high(TB1);
break;
case '2':
output_high(TB2);
break;
case '3':
output_high(TB1);
output_high(TB2);
break;
case '5':
output_low(TB1);
output_low(TB2);
break;
}
}
}
32.59%




×