ĐỒ ÁN 3
ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ TRONG
NHÀ QUA ĐIỆN THOẠI (SMS)
MỤC LỤC
DANH MỤC CÁC HÌNH VẼ
HÌNH 2-1: SƠ ĐỒ CÁC CHÂN TRONG PIC16F877A[1].......................................5
HÌNH 2-2: SƠ ĐỒ KHỐI CỦA PIC16F877A[1]...............................................................7
HÌNH 2-3: SƠ ĐỒ CÁC CHÂN TRONG LCD 16X2[1].................................................8
HÌNH 2-4: SƠ ĐỒ CHÂN TRONG SIM900A[1].............................................................9
HÌNH 2-5: SENSOR CẢM BIẾN ÁNH SÁNG[1]..........................................................11
HÌNH 2-6: MODULE THỜI GIAN THỰC DS1307[1]..................................................11
HÌNH 3-: MẠCH NGUYÊN LÝ TRÊN PROTEUS.......................................................14
HÌNH 3-2: LAYOUT MẠCH TRÊN PROTEUS............................................................15
DANH MỤC CÁC BẢNG BIỂU
BẢNG 2-1: CHỨC NĂNG CÁC CHÂN PIC16F877A.....................................................6
BẢNG 2-2: CHỨC NĂNG CÁC CHÂN TRONG LCD 16X2........................................8
BẢNG 2-3: CHỨC NĂNG CÁC CHÂN TRONG SIM900A..........................................9
BẢNG 2-4: TẬP LỆNH AT TRONG SIM900A..............................................................10
BẢNG 2-5: CHỨC NĂNG CÁC CHÂN TRONG DS1307............................................12
BẢNG 2-6: BẢNG CHI TIẾT CÁC THANH GHI.........................................................12
DANH MỤC CÁC TỪ VIẾT TẮT
LCD
Liquid Crystal Display
IC
Integrated Circuit
EEPROM
Electrically Erasable Programmable Read-Only Memory
RAM
Random Access Memory
SRAM
Shadow Random Access Memory
ISP
Internet Service Provider
RISC
Reduced Instructions Set Computer
ĐỒ ÁN 3
Trang 6/32
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1 Đặt vấn đề
Ngày nay, yếu tố tự động là không thể thiếu để cuộc sống hiện đại, điều khiển các
thiết bị dân dụng hay trong nông nghiệp từ xa giúp người sử dụng thuận tiện bật tắt,
hẹn giờ, hay đảm bảo độ chính xác trong quá trình hoạt động của thiết bị: thời gian
tưới nước, lượng nước, tự động tắt khi quên…
Vì vậy, với những nhu cầu đó, mạch điều khiển thiết bị qua SMS giúp rất nhiều
trong nông nghiệp, gia đình.
1.2 Nhiệm vụ đề tài
- Dùng VDK PIC.
- Bật tắt đèn, kết hợp sensor quang.
- Cài đặt thời gian tưới cây qua SMS.
- Giám sát trạng thái thiết bị.
- Thiết kế và thi công hệ thống.
1.3 Đã thực hiện
- Sử dụng điện thoại để điều khiển bật tắt thiết bị ( đèn LED) trực tiếp qua
-
SMS.
Dùng cảm biến ánh sáng để tự động bật tắt đèn khi thiếu ánh sang, khi
đèn thay đổi trạng thái, hệ thống sẽ gửi tin nhắn lên điện thoại người
-
dùng.
Hẹn thời gian bật tắt thiết bị, ứng dụng trong hệ thống tưới nước tự động,
có sử dụng module thời gian thực hiện thị thời gian lên LCD.
1.4 Các đối tượng nghiên cứu
-
Tìm hiểu về vi xử lý PIC16F877A.
Module SIM900A.
Ngôn ngữ lập trình PIC.
Sensor cảm biến ánh sang.
Module thời gian thực DS1307.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 7/32
CHƯƠNG 2. THIẾT KẾ HỆ THỐNG
1.5 Sơ đồ khối hệ thống
Khối truyền
nhận lệnh
(SIM900)
Thiết bị 1
Khối điều khiển
Thiết bị điều
khiển
(PIC16F877A)
Cảm biến ánh sáng
(điện thoại)
Module thời gian
Khối hiện thị
Mạch
điều
khiển
và
giám
sát
thiết
bị
trong
nhà
qua
điện
thoại
(SMS)
thực
(LCD 16x2)
ĐỒ ÁN 3
Trang 8/32
Chức năng các khối:
-
Khối điều khiển, đảm bảo mạch hoạt động bình thường, điều khiển, xử lý dữ
liệu từ các module, gửi nhận thông tin từ Sim900, module thời gian, cảm
-
biến ánh sang, thiết bị.
Khối hiển thị (LCD) hiển thị thời gian thực, trạng thái thiết bị.
SIM900A nhận lệnh điều khiển từ người dùng, gửi về khối điều khiển, sau
-
đó nhận lệnh từ khối điều khiển, thông báo cho người dùng.
Thiết bị hiển thị trạng thái bật tắt.
1.6 Tìm hiểu linh kiện
1.1.1 PIC16F877A.
1.1.1.1Giới thiệu
PIC16F877A là dòng PIC phổ biến nhất hiện nay, được ứng dụng nhiều trong các
mạch điện tử thông dụng, cấu trúc tổng quát gồm:
-
8K Flash ROM.
368 bytes RAM.
5 ports ra vào với tín hiệu được điều khiển độc lập.
2 bộ định thời 8 bits ( Timer 0,2 )
1 bộ định thời 16 bits (Timer 1).
2 bộ CCP( Capture - Compare - PWM).
1 bộ biến đổi AD 10 bits, 8 ngõ vào.
2 bộ so sánh tương tự .
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 9/32
-
1 bộ định thời giám sát (WatchDog Timer).
1 cổng song song 8 bits với các tín hiệu điều khiển.
1 cổng nối tiếp.
15 nguồn ngắt.
Có chế độ tiết kiệm năng lượng.
Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming).
Được chế tạo bằng công nghệ CMOS.
35 tập lệnh có độ dài 14 bits.
Tần số hoạt động tối đa 20MHz.
1.1.1.2Sơ đồ các chân
HÌNH 2-1: SƠ ĐỒ CÁC CHÂN TRONG PIC16F877A[1].
OSC1/CLKIN
Chân ngõ vào của mạch dao động thạch anh. Định tần cho
xung nhịp và cũng là một chân ngõ vào của mạch tạo xung
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 10/32
OSC2/CLKOUT
nhịp.
Chân ngõ ra của mạch dao động thạch anh và là ngõ ra của
xung nhịp.
(Master Chân Reset. Lệnh tác dụng ở mức áp thấp.
MCLR
Clear)
RA0, RA1, RA2,
Chân xuất nhập của Port A.
RA3
RA4/TOCKI
Chân đa nhiệm, vừa làm chân xuất nhập của Port A và lại là
RB0/INT
chân lấy xung cho thanh đếm của đồng hồ Timer 0.
Chân đa nhiệm, vừa làm chân xuất nhập của Port B và lại là
chân phát động theo ngắt ngoài. Các chân của Port B có thể
được lập trình để có trở kháng lớn dùng để làm ngả vào, nhập
trạng thái ngoài vào PIC.
RB1, RB2, RB3
Chân xuất nhập Port B.
RB4, RB5
Chân xuất nhập của Port B và phát động ngắt theo sự thay đổi
trên các chân này.
RB6
Chân xuất nhập của Port B và phát động ngắt theo sự thay đổi
trên chân này. Nó còn có thể lập trình để dùng chân này phát
xung nhịp dùng cho công năng truyền dữ liệu nối tiếp.
RB7
Chân xuất nhập của Port B và phát động ngắt theo sự thay đổi
trên chân này. Nó còn có thể lập trình để dùng chân này trao
đổi dữ liệu dùng cho công năng truyền dữ liệu nối tiếp.
VSS
Chân nối đất để lấy dòng (ở đây là dòng điện tử).
VDD
Chân nối vào nguồn dương (từ 2V đến 5.5V).
BẢNG 2.1: CHỨC NĂNG CÁC CHÂN TRONG PIC16F877A.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 11/32
1.1.1.3Sơ đồ khối của PIC16F877A.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 12/32
HÌNH 2-2: SƠ ĐỒ KHỐI CỦA PIC16F877A[1].
1.1.2 LCD 16x2
-
HÌNH 2-3: SƠ ĐỒ CHÂN LCD 16X2 [1].
VSS
Chân nối đất cho LCD.
VDD
Chân cấp nguồn cho LCD (5 V).
VEE
Điều chỉnh độ tưởng phản cho LCD.
RS
Điều chỉnh thanh ghi nào sẽ ghi dữ liệu.
RW
Chọn chế độ đọc và ghi, tùy thuộc vào người lập trình.
E
Cho phép ghi vào LCD.
D0 - D7
8 đường bus để trao đổi thông tin.
LEDA/
Nguồn dương và âm cho đèn nền.
K
BẢNG 2-2: CHỨC NĂNG CÁC CHÂN TRONG LCD 16X2.
1.1.1.4SIM900A
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 13/32
SIM900A có các chức năng cơ bản của một chiếc điện thoại thông thường như nhắn
tin, gọi điện…
Băng thông:
-
SIM900A: Dual-band GSM/GPRS 900/1800MHz.
-
SIM900: Quad-band GSM/GPRS 850/900/1800/1900MHz.
HÌNH 2-4: SƠ ĐỒ CHÂN SIM900A[1].
VCC
Nguồn vô 5V.
TXD
Chân truyền Uart TX.
RXD
Chân nhận Uart RX.
Headphone
Chân phát âm thanh.
Microphone
Chân nhận âm thanh .
GND
Chân Mass, cấp 0V.
BẢNG 2-3: CHỨC NĂNG CÁC CHÂN TRONG SIM900A.
Tập lênh điều khiển.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 14/32
AT+CNMI
Hiển thị nội dung tin nhắn gửi đến
ATE[x]<CR><LF>(lệnh)
Chế độ echo là chế độ phản hồi dữ liệu truyền đến
OK<CR><LF>( trải lời)
của module Sim 900A, x = 1 bật chế độ echo , x =
0 tắt chế độ echo (bạn nên tắt chế độ này)
AT+CMGF=1<CR><LF>
Lệnh đưa SMS về chế độ Text , phải có lệnh này
OK<CR><LF>
mới gửi nhận tin nhắn dạng Text
AT+CMGS=”Số_điện
cấu trúc gửi tin nhắn.Đợi đến khi có ký tự ‘>’
_thoại”<CR><LF>
được gửi về. Gửi nội dụng tin nhắn “This is a test”
OK<CR><LF>
Đọc một nhắn vừa gửi đến, lệnh được trả về nội
AT+CMGR=1<CR><LF>
dung tin nhắn, thông tin người gửi, thời gian gửi
BẢNG 2-4: TẬP LỆNH AT TRONG SIM900a.
1.1.1.5Sensor cảm biến ánh sáng.
Sensor cảm biến ánh sáng sử quang trở có thể thay đổi điện trợ dựa vào ánh sáng
bên ngoài, tín hiệu ra vào của cảm biến tương ứng với các mưc 1 0 tượng trưng cho
trạng thái của thiết bị muốn bật hay tắt.
Gồm 3 chân:
-
VCC: chân cấp nguồn dương (3.3/5V).
VSS: chân nối đất
D0: chân dữ liệu, khi trời tối, điện trở tăng cao không cho dòng điện đi qua
và ngược lại. Dữ liệu sẽ được thu lại và truyền về vi điều khiển.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 15/32
HÌNH 2-5: SENSOR CẢM BIẾN ÁNH SÁNG [1].
1.1.1.6Module thời gian thực DS1307.
DS1307 là module cho phép người dùng có thể hiển thị thời gian chính xác với thời
gian trong thực tế bao gồm giờ, phút, giây.
HÌNH 2-6: MODULE THỜI GIAN THỰC [1].
X1
Kết nối đến thạch anh 32.768Khz làm nguồn dao động cho chip
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 16/32
X2
VBat
Kết nối đến cực dương của Pin dự phòng, có điện áp tiêu chuẩn khoảng
3V
GND
Kết nối đến đất.
SDA
Chân dữ liệu khi kết nối đến bus I2C
SCL
Chân nhận xung clock đồng bộ khi kết nối bus I2C
SQW/OUT
Ngõ xuất xung vuông, tần số có thể lập trình để thay đổi từ 1Hz, 4Khz, 8
Khz, 32 Khz
VCC
Nguồn cấp 5VDC
BẢNG 2-5: CHỨC NĂNG CÁC CHÂN TRONG DS1307.
BẢNG 2-6: CHI TIẾT CÁC THANH GHI.
CHƯƠNG 3. THIẾT KẾ CHI TIẾT
1.7 Lưu đồ giải thuật
Bắt đầu
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 17/32
Khởi tạo hệ thống
Đúng
Kiểm tra hệ thống
Sai
Gọi đến người
LCD tắt
Đúng
Xử lý
Hiện
thời gian, trạng
Dữ liệu từ sensor
Đúng
thái thiết bị
Kiểm tra lệnh
Đúng
Gửi tin điều
Thực hiện
khiển
lệnh
Kết thúc
Bắt đầu khởi tạo hệ thống, thực hiện chạy chương trình, nếu chương trình sai, LCD
tắt, điện thoại người dùng không nhận được cuộc gọi từ SIM900A. Nếu đúng, điện
thoại nhận được cuộc gọi.
Lúc này LCD hiện thời gian thực cùng trạng thái của các thiết bị trong mạch.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 18/32
Bắt đầu điều khiển thiết bị, người dùng gửi tin sms để điều khiển thiết bị theo lệnh,
tin nhắn được gửi về Sim900 và thông báo về khối điều khiển. PIC sẽ bật tắt thiết bị
tùy theo lệnh. Đồng thời LCD hiện trạng thái hiện tại của thiết bị và báo ngược về
điện thoại người dùng đã bật thiết bị thành công.
Kết thúc hoạt động.
1.8 Mạch nguyên lý.
HÌNH 3-1: MẠCH NGUYÊN LÝ TRÊN PROTEUS.
1.9 Layout mạch.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 19/32
HÌNH 3-2: LAYOUT MẠCH TRÊN PROTEUS.
CHƯƠNG 4. THI CÔNG MẠCH VÀ ĐO
ĐẠT ĐIỆN ÁP
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 20/32
-
1.10 Yêu cầu mô phỏng
Nguồn 5 V - 1A.
Điện áp ở các chân ra vào của PIC: 3.3 V.
Điều khiển qua SIM900A, thời gian phản hồi 30s.
Điện áp ra ở các đèn: 3.3V.
-
1.11 Đo đạt thực tế
Nguồn 4.9 V~ 5 V, sai số cho phép 0.1 V.
Áp ra ở các chân I/O: 3.3 V, sai sô cho phép 0.1 V.
Áp ra ở đèn LED : 3,3V
Thời gian phản hồi trên điện thoại: 30S
CHƯƠNG 5. KẾT LUẬN
1.12 Nhận xét
Trong quá trình làm, em nhận thấy mình còn nhiều thiếu sót trong quá trình thực
hiện như hàn mạch chưa chắc chắn. Còn thiếu sót khi tham khảo các tài liệu tiếng
anh.
Khả năng lập trình còn hạn chế.
1.13 Khả năng ứng dụng
Ứng dụng vi xử lý vào điều khiển các thiết bi trong nhà , có thể giao tiếp với máy
tính để hiện thi các thông số cần đo,và quan sát được không gian xung quang và
trong nhà. Và qua đó đưa ra các lệnh điều khiển qua điện thoại.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 21/32
Mạch hẹn giờ bật tắt thiết bị ứng dụng nhiều trong sử dụng bật tắt tưới nước tự động
trong nhà mà không cần có mặt, có thể ở xa và giám sát trạng thái thiết bị đang bật.
Có thể ứng dụng trong nông nghiệp
1.14 Hướng phát triển của đề tài.
Nếu đề tài được đầu tư nhiều hơn về tài chinh, thời gian. Thì có thể sẽ tiếp tục phát
triển thêm nhiều tính năng:
Điều khiển bằng cách gọi điện, thông qua giọng nói.
Thay thế đèn LED bằng các thiết bị gia dụng, các hệ thống tưới nước.
Tiếp tục nghiên cứu các tính năng qua giọng nói.
Có thể giám sát qua máy tính, giảm chi phí qua đường dây điện thoại.
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 22/32
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]
.
Tiếng Anh:
[2]
.
[3]
.
[4]
.
[5]
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 23/32
PHỤ LỤC
#include <main.h>
#include <DS1307.h>
/
*******************************************************************
*******************************************************************
***/
/
*******************************************************************
*******************************************************************
***/
//Khai bao bien toan cuc
char sms[90]; //Luu tin nhan nhan duoc vao mang
char c,c1,c2,c3,c4;//Kiem tra co tin nhan moi
unsigned int8 i=0,j=0,k=0;
unsigned int8 new_sms=0,hen;
unsigned int8 index=0;
char st[4];
#define as input(pin_D5)
int Giay,Phut , Gio ,tam;
/
*******************,************************************************
*******************************************************************
***/
void Delete_SMS(); //Ham xoa tin nhan
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 24/32
void send_sms(unsigned char n); //Ham gui tin nhan xac dinh sim900a khoi dong
xong
void call();
void anh_sang();
void khoi_tao(); //Cau hinh SIM
void clear_buffer(unsigned int8 time); //Reset lai bo nho dem de tranh bi treo
void Turn_ON(char name); //Ham bat thiet bi
void Turn_OFF(char name); //Ham tat thiet bi
void All_ON(); //Ham tat ca bat thiet bi
void All_OFF(); //Ham tat ca tat thiet bi
//Khi gui tin nhan den SIM900A se xay ra ngat RDA
#INT_RDA
void Serial(){ //Ngat du lieu khi truyen nhan (Ngat UART)
//-------------
Phan
nhan
xu
ly
tin
nhan----------------------------------------------------------------------------------------------c= getc(); //Gan ki tu vua moi nhan dc vao bien tam
sms[index++]=c;
//Nap ki tu vao mang
if(index>90) {index=0;}
if(c=='+') c1=c;
if(c=='C') c2=c;
if(c=='M') c3=c;
if(c=='T') c4=c;
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)
ĐỒ ÁN 3
Trang 25/32
if(c1=='+' && c2=='C' && c3=='M' && c4=='T') new_sms=1; //Kiem tra du lieu
ban dau no nhan duoc chinh la tin nhan moi
}
void main()
{
// set_tris_C(0b10000000);
lcd_init(); //Ham khoi tao LCD
lcd_putc('\f'); //Xoa trang man hinh
enable_interrupts(INT_RDA); //Cho phep ngat UART
enable_interrupts(GLOBAL);
delay_us(10);
All_OFF();
khoi_tao();
clear_buffer(1);
lcd_gotoxy(1,1);
printf(lcd_putc," He thong khoi ");
lcd_gotoxy(1,2);
printf(lcd_putc," dong hoan tat! ");
delay_ms(5000);
while(true)
{
Turn_ON(sms[0]);
Turn_OFF(sms[0]);
Mạch điều khiển và giám sát thiết bị trong nhà qua điện thoại (SMS)