Hệ Thống Điều Khiển Quạt Điện Thông Minh
1. Yêu cầu của đề tài
-
Quạt có 3 số điều khiển độc lập, có chức năng đảo
chiều (tuýp năng), phun sương điều khiển bằng điện và điều khiển qua Bluetooth.
-
Bàn phím điều khiển gồm 6 phím nhấn:
·
3 phím nhấn: bật trực tiếp các số của quạt.
·
1 phím: bật/tắt chế độ đảo chiều.
·
1 phím: bật/tắt chế độ phun sương.
·
1 phím: chuyển từ số sang tự động, tắt quạt.
-
Cảm biến nhiệt độ: mô phỏng bằng biến trở cho điện
áp ra trong phạm vi từ 0V đến 5V.
- Thiết kế phần mềm điều khiển mô phỏng cho chế độ điều khiển qua Bluetooth.
2. Phân tích thiết kế
2.1 Linh kiện
a. Vi điều khiển PIC16F877A
Hình 2.1: Sơ đồ chân của vi điều khiển
PIC16F877A
Hình 2.2: Sơ đồ khối của vi điều khiển
PIC16F777A
Tổ chức không gian bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển
PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data
Memory).
-
Bộ nhớ chương trình
Hình 2.3: Bộ nhớ chương trình của vi điều khiển
PIC16F877A
Bộ nhớ chương trình của vi điều khiển
PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1 word = 14 bit) và được
phân thành nhiều trang (từ page 0 đến page 3). Như vậy bộ nhớ chương trình có
khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng
1 word (14 bit).
Để mã hóa được địa chỉ của 8K word
bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13 bit (PC<12:0>).
Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h
(Reset vector). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ
0004h (Interrupt vector).
-
Bộ nhớ dữ liệu
Hình 2.4: Bộ nhớ dữ liệu của vi điều khiển PIC16F877A
Bộ nhớ dữ liệu của PIC là bộ nhớ
EEPROM được chia làm nhiều bamk. Đối với PIC16F877A, bộ nhớ dữ liệu được chia
ra làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức
năng đặc biệt SFR (Special Function Register) nằm ở các vùng địa chỉ thấp và
các thanh ghi mục đich chung GPR (General Purpose Register) 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 (ví dụ như
thanh ghi STATUS) 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 xuất và làm giảm bớt lệnh của chương trình.
Các thông số cơ bản
Đây là vi điều khiển thuộc họ
PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi
trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là 20 MHz với một
chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte
RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33
pin I/O.
v
Các đặc tính ngoại vi bao gồm các khối chức năng
sau:
·
Timer0: Bộ đếm 8 bit với bộ chia tần số 8
bit.
·
Timer1: Bộ đếm 16 bit với bộ chia tần số,
có thể thực hiện chức năng đếm dựa
vào xung clock ngoại vi ngay khi vi điều khiển hoạt động
ở chế độ sleep.
·
Timer2: bộ đếm 8 bit với bộ chia tần số,
bộ postcaler.
·
Hai bộ Capture/so sánh/điều chế độ rông xung.
·
Các chuẩn giao tiếp nối tiếp SSP (Synchronous
Serial Port), SPI và I2C.
·
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
·
Cổng giao tiếp song song PSP (Parallel Slave
Port) với các chân điều khiển RD, WR, CS ở bên ngoài.
·
Đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit.
·
Hai bộ so sánh.
·
Bên cạnh đó là một vài đặc tính khác của vi điều
khiển như:
§
Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
§
Bộ nhớ EEPROM với khả năng ghi xóa được
1.000.000 lần. Dữ liệu bộ nhớ
EEPROM có thể lưu trữ trên 40 năm.
§
Khả năng tự nạp chương trình với sự điều khiển của
phần mềm.
Nạp được chương trình ngay trên mạch điện ICSP (In
Circuit Serial Programming)
§
Watchdog Timer với bộ dao động trong.
§
Chức năng bảo mật mã chương trình.
§
Chế độ Sleep.
§
Có thể hoạt động với nhiều dạng Oscillator khác
nhau
b.
Màn hình LCD1602
Hình 2.5: Màn hình LCD1602
Giới thiệu
LCD 1602 (Liquid Crystal Display)
được dùng trong rất nhiều các ứng dụng của VĐK. LCD 1602 có rất nhiều ưu điểm
so với các dạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (kí tự đồ họa,
chữ, số, ); đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau dễ
dàng , tiêu tốn rất ít tài nguyên hệ thống, giá thành rẻ,…
Thông số kỹ thuật
-
Điện áp MAX : 7V
-
Điện áp MIN : - 0,3V
-
Điện áp ra mức thấp : <0.4V
-
Điện áp ra mức cao : > 2.4
-
Hoạt động ổn định : 2.7-5.5V
-
Dòng điện cấp nguồn : 350uA - 600uA
-
Nhiệt độ hoạt động : - 30 - 75 độ C
Chức năng từng chân của
LCD1602
-
Chân số 1 - VSS : chân nối đất cho LCD được nối
với GND của mạch điều khiển.
-
Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối
với VCC=5V của mạch điều khiển.
-
Chân số 3 - VE : điều chỉnh độ tương phản của
LCD.
-
Chân số 4 - RS : chân chọn thanh ghi, được nối với
logic "0" hoặc logic "1":
·
Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh
IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế
độ “đọc” - read).
·
Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ
liệu DR bên trong LCD.
-
Chân số 5 - R/W : chân chọn chế độ đọc/ghi
(Read/Write), được nối với logic “0” để ghi hoặc nối với logic “1” đọc.
-
Chân số 6 - E : chân cho phép (Enable). Sau khi
các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1
xung cho phép của chân này như sau:
·
Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển
vào thanh ghi bên trong khi phát hiện một xung (high-to-low transition) của tín
hiệu chân E.
·
Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra
DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ
ở bus đến khi nào chân E xuống mức thấp.
-
Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ
liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này
là: Chế độ 8 bit (dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7)
và Chế độ 4 bit (dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là
DB7).
-
Chân số 15 - A : nguồn dương cho đèn nền.
-
Chân số 16 - K : nguồn âm cho đèn nền.
c.
Module Bluetooth HC – 06
Giới thiệu
Với thiết kế nhỏ gọn, tiện lợi,
giao tiếp với vi điều khiển chỉ bằng 2 chân (Tx và Rx), module bluetooth HC06 sẽ
giúp bạn thực hiện các dự án truyền dẫn và điều khiển từ xa một cách dễ dàng.
Điểm khác biệt so với HC05 đó là
HC06 chỉ có thể chạy được 1 chế độ Slave (khác với HC05 có thể hoạt động với chế
độ Mater hoặc Slave). Điều này có nghĩa là bạn không thể chủ động kết nối từ vi
điều khiển đến các thiết bị ngoại vi. Mà cách kết nối là: bạn phải sử dụng thiết
bị ngoại vi (điện thoại thông minh, máy tính laptop) để dò tín hiệu kêt nối
Buletooth mà HC06 phát ra. Sau khi pair thành công bạn có thể gửi tín hiệu từ
vi điều khiển đến các thiết bị ngoại vi này, và ngược lại.
Thông số kỹ thuật
-
Điện áp hoạt động: 3V3-5V DC
-
Dòng điện tiêu thụ: 20-30mA
-
Nhiệt độ hoạt động: -20~75°C
-
Sử dụng chip: CSR Bluetooth V2.0
-
Cấu hình Slave mặc định, không thay đổi được.
-
Hỗ trợ tốc độ baud: 200,2400,4800,9600,19200,38400,57600,115200
-
Kích thước: 28x15x2,35mm
-
Giao tiếp: UART (TX,RX)
-
Tốc độ:
·
Bất đồng bộ: 2.1Mbps(Max)/160kbps
·
Đồng bộ: 1Mbps/1Mbps
-
Bảo mật: mã hóa và chứng thực
-
Cấu hình mặc định:
·
Tốc độ baud 9600, N, 8, 1
·
Mật khẩu: 1234
Hình 2.6: Module Bluetooth HC – 06
2.2 Các chức năng chính
-
Chế độ thủ công (Manual):
·
Người dùng có thể sử dụng bật độc lập 3 số để quạt
hoạt động.
·
Trong khi bật số hoặc không bật số, có thể sử dụng
một hoặc đồng thời chế độ quay (tuýp năng) hoặc phun sương.
-
Chế độ tự động (Auto):
·
Dựa vào nhiệt độ (t) thu được chuyển sang điện
áp 0 – 5V.
·
Nếu nhiệt độ từ 0 – 1V thì bật số 1.
·
Nếu nhiệt độ từ 1 – 2V à bật số 2.
·
Nếu nhiệt độ từ 2 – 3V à bật số 3.
·
Nếu nhiệt độ từ 3 – 4V à bật số 3 và chế độ
quay (tuýp năng).
·
Nếu nhiệt độ từ 4 – 5V à bật số 3, chế độ quay
và phun sương.
-
Chế độ điều khiển qua Bluetooth: Sử dụng phần mềm
điều khiển Window Form để mô phỏng.
2.3 Phần mềm điều khiển
-
Phần mềm dễ nhìn, dễ sử dụng.
-
Giao tiếp với Bluetooth qua chuẩn UART.
-
Tạo công tắc điều khiển và hình ảnh chuyển động
của cánh quạt quay theo tốc độ phụ thuộc vào số đã được bật.
3. Triển khai
3.1 Thiết kế phần cứng
v
Sơ đồ khối:
Hình 3.1: Sơ đồ khối hệ thống
v
Sơ đồ nguyên lý:
Hình 3.2: Sơ đồ nguyên lý của hệ thống
-
Bộ xử lý trung tâm: PIC16F877A với dao động thạch
anh 20MHz và nút nhấn Reset hệ thống.
-
Bluetooth: ghép nối với Module Bluetooth HC –
06.
-
LCD: Màn hình LCD1602 hiển thị chế độ hoạt động
cũng như trạng thái từng số khi được bật giúp người dùng dễ dàng sử dụng.
-
Nút nhấn: ở đây sử dụng 5 nút nhấn giữ trạng
thái cho 3 số độc lập, chế độ quay (SW) và chế độ phun sương (MIST); 1 nút nhấn
nhả MODE để thay đổi chế độ hoạt động cho hệ thống (Manual/Auto/Bluetooth).
-
Cảm biến nhiệt độ: sử dụng biến trở để mô phỏng
cho cảm biến nhiệt độ, từ giá trị biến trở nhận được chia ra thành các khoảng từ
0 – 5V để điều chỉnh quạt chạy tự động theo nhiệt độ.
-
Mode: sử dụng 2 led đơn xanh và đỏ. Khi ở chế độ
Manual, 2 led không sáng. Khi ở chế độ Auto thì led đỏ sáng, chế độ Bluetooth
thì led xanh sáng.
-
Khối relay để sử dụng đầu ra với 220V:
Hình 3.3: Khối Relay
·
Khi tín hiệu từ chân RC0 đưa vào là mức 0 (Tức =
0V) thì Q4 không dẫn do không có dòng IBE à Relay không làm việc.
·
Khi tín hiệu từ chân RC0 đưa vào là mức 1 (Tức =
5V) thì sẽ qua R6 hạn dòng, Q4 dẫn thông lúc này ta có dòng Ice là dòng điện chạy
qua cuộn dây à
Q4 à
Mass, Relay đóng tiếp điểm thường mở (Điều khiển thiết bị nào đó). Khí đó, led
D8 sẽ sáng để báo thiết bị này đã được bật.
·
Diot D7 trong mạch có tác dụng chống lại dòng điện
cảm ứng do cuộn đây sinh ra làm hỏng transistor.
Mục đích của R1 là tạo dòng vào cực
B của trans tới ngưỡng bão hòa để trans hoạt động như 1 chiếc khóa có điều kiện.
Dòng vào của Tin hiệu là rất nhỏ
không thể chạy thẳng Relay được nên sử dụng transistor để kích dòng cho Relay.
v
Lưu đồ thuật toán:
Hệ thống sử dụng nút nhấn để thay đổi
chế độ hoạt động (Manual/Auto/Bluetooth). Một biến đếm để nhận biết thay đổi trạng
thái. Khi bắt đầu chương trình, tức mod = 0, hệ thống sẽ hoạt động ở chế độ
Manual. Nút nhấn được sử dụng hàm ngắt, nối tới chân INT0, mỗi lần nhấn sẽ tăng
lên một đơn vị.
·
Khi mod = 0: chế độ Manual.
·
Khi mod = 1: chế độ Auto.
·
Khi mod = 2: chế độ điều khiển qua Bluetooth.
·
Khi mod ≥
3: mod = 0 à
chế độ Manual.
Cụ thể, các chế độ hoạt động được
dùng vào cách hoạt động như thế nào sẽ được trình bày ở hình 2.9, 2.10 và hình
2.11 dưới đây.
Hình 3.4: Lưu đồ thuật toán hệ thống
Hình 3.5: Lưu đồ thuật toán chế độ thủ công
Ở chế độ thủ công, người dùng vận
hành hệ thống bằng cách nhấn nút nhấn giữ trạng thái. Về cách sử dụng nút nhấn
đã được trình bày rõ ở trên lưu đồ thuật toán chế độ thủ công. Và đương nhiên,
khi đang giữ nút K1 (bật số 1), ta không thể bật số 2 hay 3 mà phải tắt số 1 đi
trước. Về chế độ phun sương (MI) và đảo chiều, tuýp năng (SW) có thể sử dụng
cùng lúc trong khi bật số.
Hình 3.6: Lưu đồ thuật toán chế độ Auto
Chế độ Auto, hệ thống hoạt động tự
động dựa trên nhiệt độ môi trường (ở đây có thể là phòng học, phòng ngủ,...),
có thể sử dụng các cảm biến nhiệt thông dụng như LM35, DS18B20, DHT11,... Trong
Proteus, sử dụng biến trở để mô phỏng cho cảm biến nhiệt độ, sau khi nhận được
giá trị từ biến trở chuyển đổi tỉ lệ sang điện áp từ 0 – 5V. Dựa vào vào đó, ta
chia thành 5 mức khác nhau để điều khiển quạt điện phù hợp.
Hình 3.7: Lưu đồ thuật toán chế độ Bluetooth
Khi hệ thống ở chế độ điều khiển
qua Bluetooth, hệ thống sẽ chờ phần mềm điều khiển gửi lệnh để thực hiện (ký tự).
Dựa vào các ký tự nhận được, ta sẽ gán nó phù hợp với những chế độ hoạt động của
quạt. Ví dụ, hệ thống gửi ký tự ‘1’ à bật số 1, ký tự ‘2’ à
tắt số 1. Cứ như vậy cho đến khi sử dụng hết chức năng của quạt điện.
3.2 Thiết kế phần mềm
3.2.1 Phần mềm Configure Virtual Serial Port Driver
Để mô phỏng điều khiển thiết bị qua
Bluetooth, sử dụng phần mềm Configure Virtual Serial Port Driver để tạo 2 cổng
COM giao tiếp với nhau.
Được xây dựng trên chức năng trình
điều khiển cổng COM ảo, Virtual Serial Port Driver là một ứng dụng phần mềm mạnh
mẽ và hiệu quả, Virtual Serial Port Driver hỗ trợ việc tạo ra các cổng nổi tiếp
ảo và kết nối chúng theo cặp thông qua dây cáp ảo.
Virtual Serial Port Driver cho phép
tách các cổng vật lý nối tiếp thành nhiều cổng giao tiếp ảo trong hệ thống giống
như các bản sao, và khi kết nối với phần cứng chúng vẫn hoạt động một cách
chính xác. Ngoài ra, tiện ích cũng cho phép chia sẻ các cổng nổi tiếp phần cứng
giữa nhiều ứng dụng.
Cổng nối tiếp ảo được tạo từ
Virtual Serial Port Driver có thể được điều khiển trực tiếp từ chính ứng dụng
thông qua Dynamic Link Library được cấp với VSPD. Link giữa các cổng nối tiếp ảo
nhanh hơn nhiều so với kết nối dây cáp null-modem thực và chỉ phụ thuộc vào tốc
độ xử lý.
Hình 3.8: Giao diện của phần mềm Configure
Virtual Serial Port Driver
Để tạo 2 cổng COM ảo ta chỉ chần chọn
“Add pair”, thao tác dễ dàng và dễ sử dụng. Từ đó, trên phần mềm mô phỏng, phần
Bluetooth chọn COM1 và phần mềm điều khiển chọn COM2 hoặc ngược lại, là ta có
thể giao tiếp giữa phần mềm và mô phỏng với nhau. Lưu ý: các thông số truyền phải
giống nhau (ví dụ như Baudrate, Data Bits,...)
3.2.2
Phần mềm điều khiển
Hình 3.9: Giao diện của phần mềm điều khiển
-
Simulation: Mô phỏng hoạt động của quạt khi điều
khiển, dựa vào các số điều khiển mà quạt quay với tốc độ khác nhau.
-
COM Port Control: ComboBox hiển thị những Port
hiện có trên máy tính, Button “Open” mở cổng COM được chọn ở ComboBox để bắt đầu
truyền dữ liệu, nếu COM đang được sử dụng sẽ hiện cảnh báo và người dùng phải
chọn COM khác để kết nối. Khi kết nối thành công, trạng thái Status sẽ là “ON”
và thanh Process Bar sẽ hoạt động. Button “Close”, đóng kết nối với cổng COM,
Status là “OFF” và Process Bar trở về trạng thái ban đầu.
-
Display: Sử dụng Picture Box để mô phỏng cho các
bóng LED, khi chế độ nào được bật, LED tương ứng sẽ được bật sang màu xanh.
-
Control: Gồm những nút nhấn được sử dụng Picture
Box để mô phỏng, khi bật công tắc ở đây thì mô phỏng Simulation quạt sẽ quay với
các số tương ứng, LED tương ứng ở phần Display sẽ được bật. Và không thể bật
cùng lúc 2 số, muốn đổi số phải tắt số đang bật.
Xem cách vận hành hệ thống: