Báo cáo Thực hành lập trình hệ thống - Đề tài: Ngôi nhà thông minh

Báo cáo thực hành  
lập trình hệ thống  
ĐỀ TÀI: NGÔI NHÀ THÔNG MINH  
Giáo viên hướng dẫn: Huỳnh Hữu Hưng  
Sinh viên thực hành: Hồ Hải Nghĩa – 13T3  
Sinh viên thực hành: Trần Văn Thanh - 13T3  
Mục đích bài thực hành  
1. hiểu về bảng mạch arduino  
2. Cách sử dụng các linh kiện liên quan  
3. Biết nối dây và đẩy code vào arduino  
4. Hoàn thành sản phẩm demo  
5. Ứng dụng (công nghệ vào đời sống: nhà thông minh)  
Vi điều khiển  
ATmega32u4 (họ 8bit)  
16 MHz  
Tần số hoạt động  
Giới thiệu về bảng mạch arduino  
Dò ng tiêu thụ ở cá c châ n I/O  
Điện á p vào khuyên dùng  
Điện á p vào giới hạn  
Điện á p hoạt động  
Số châ n Digital I/O  
Số châ n Analog  
40mA  
7-12V – DC  
6-20V – DC  
5V – DC  
14 (7 châ n PWM)  
12 (cá c châ n PWM có thể dùng  
như châ n Analog bì nh thường -  
nghĩa là có thể dùng Analog read)  
(độ phâ n giải 10bit)  
Dò ng tối đa trên mỗi châ n I/O  
Dò ng ra tối đa (5V)  
Dò ng ra tối đa (3.3V)  
Bộ nhớ flash  
40 mA  
500 mA  
50 mA  
32 KB (ATmega32u4) với 4KB  
dùng bởi bootloader  
SRAM  
2.5 KB (ATmega32u4)  
1 KB (ATmega32u4)  
68.6mm x 53.3mm  
EEPROM  
Kí ch thước  
Ứng dụng của arduino trong thiết kế nhà  
thông minh  
1. Hệ thống cảm biến: cảm biến anh sá ng và cảm biến nhiệt độ  
2. Cá c thiết bị hiển thị: đèn LED  
3. 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,…), …  
4. Và một số ứng dụng khá c  
Bảng thiết bị  
(các linh kiện cần dùng)  
Bảng mạch  
Cảm biến á nh sá ng  
Cảm biến nhiệt  
Module Bluetooth  
HC06  
arduino  
độ LM35  
Đèn LED  
Motor  
Module role  
Dâ y nối điện  
Kết nối các linh kiện và module code  
(lắp mạch quang trở và bóng đèn)  
Trên mạch có 1 biến trở 10K ohm dùng để điều  
chỉnh độ nhạy sáng:  
• Thay đổi điện trở theo á nh sá ng  
Vặn về bên trái (nhìn theo hướng từ dưới  
lên quang trở): tăng độ nhạy của cảm biến với  
• HIGHT: bật  
ánh sáng: chỉ cần lượng ánh sáng nhỏ thì mạch  
sẽ tự ngắt.  
• LOW: tắt  
Vặn về bên phải: giảm độ nhạy của cảm biến với  
ánh sáng, cần lượng ánh sáng với cường độ  
mạnh hơn để ngắt mạch.  
• Có thể điều chỉnh độ nhạy  
Cảm biến á nh sá ng  
Kết nối các linh kiện và module code  
(lắp mạch quang trở và bóng đèn)  
Sử dụng cảm biến kết hợp với arduino để  
lập trình bật tắt.  
• Tín hiệu xuất ra là giá trị Digital  
HIGHT (5V) và LOW  
• Tại chân OUT trả về hai mức là HIGHT  
và LOW  
Lắp mạch như hì nh trên  
Kết nối các linh kiện và module code  
(lắp mạch quang trở và bóng đèn)  
int cambien = 10;// khai báo chân  
digital 10 cho cảm biến  
int Led = 8;//kháo báo chân digital 8  
cho đèn LED  
void setup (){  
pinMode(Led,OUTPUT);//pinMode xuất tín  
hiệu đầu ra cho led  
pinMode(cambien,INPUT);//pinMode  
tín hiệu đầu vào cho cảm biê}  
void loop (){  
nhận  
int value = digitalRead(cambien);//lưu  
giá trị cảm biến vào biến value  
digitalWrite(Led,value);//xuất giá trị  
ra đèn LED  
}
Lắp mạch như hì nh trên  
Kết nối các linh kiện và module code  
(lắp cảm biến nhiệt và motor)  
• Cảm biến nhiệt độ LM35 sử dụng trong ứng dụng đo nhiệt  
độ thời gian thực.  
• Nhiệt độ được xá c định bằng cá c đo hiệu điện thế ngõ ra  
của LM35  
• Đơn vị nhiệt độ: °C  
• Nhiệt độ thay đổi tuyến tí nh: 10mmV/°C  
• Độ chí nh xá c thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài  
khoảng 2°C tới 150°C  
• LM35 có hiệu năng cao, công suất tiêu thụ là 60uA  
Kết nối các linh kiện và module code  
(lắp cảm biến nhiệt và motor)  
int sensorPin = A0;//chân analog kết  
nối tới cảm biến LM35  
void setup() {  
Serial.begin(9600);  
//Khởi động  
Serial ở mức baudrate 9600  
//không cần phải pinMode cho các  
chân analog trước khi dùng nó  
}
void loop() {  
//đọc giá trị từ cảm biến LM35  
int reading=analogRead(sensorPin);  
Kết nối các linh kiện và module code  
(lắp cảm biến nhiệt và motor)  
//tính ra giá trị hiệu điện thế (đơn vị Volt)  
từ giá trị cảm biến  
float voltage = reading * 5.0 / 1024.0;  
// ở trên mình đã giới thiệu, cứ mỗi 10mV = 1  
độ C.  
// Vì vậy nếu biến voltage là biến lưu hiệu  
điện thế (đơn vị Volt)  
// thì ta chỉ việc nhân voltage cho 100 là ra  
được nhiệt độ!  
float temp = voltage * 100.0;  
Serial.println(temp);  
delay(1000);//đợi 1 giây cho lần đọc tiếp  
theo  
}
Kết nối các linh kiện và module code  
(kết nối với bluetooth)  
Điều khiển arduino thông qua thiết bị bluetooth bằng điện thoại  
android  
• Ứng dụng để điều khiển các thiết bị điện trong nhà như bật  
tắt đèn, quạt.... từ xa. Hoặc tự làm một chiếc ô tô điều  
khiển từ xa  
• Module này gồm 4 chân GND, VCC, TX, RX  
• Khi kết nối cần nối chân TX với chân 0 và chân RX nối với  
chân 1 trên Arduino sau đó bạn có thể lập trình gửi và nhận  
dữ liệu như 1 cổng Serial thông thường.  
• Module này có 3 loại Master, Slave và loại chạy được cả 2  
chế độ Master và Slave  
Kết nối các linh kiện và module code  
(kết nối với bluetooth)  
Điều khiển arduino thông qua thiết bị  
bluetooth bằng điện thoại android  
➢ sử dụng phần mềm trên điện thoại  
Android: DroiDuino  
➢khi kết nối với điện thoại mật khẩu mặc  
định là: 1234  
Kết nối các linh kiện và module code  
(kết nối với bluetooth)  
char state; // Khai báo biến  
void setup() {  
/* Cài đặt các chân bạn muốn điều khiển thành  
thành Ouput châ n 0, 1, 2*/  
pinMode(0, OUTPUT);  
pinMode(1, OUTPUT);  
pinMode(2, OUTPUT);  
Serial.begin(9600); // Kết nối bluetooth module  
ở tốc độ 9600  
}
void loop() {  
if(Serial.available() > 0){  
state = Serial.read(); // Đọc giá trị nhận được  
từ bluetooth  
} else  
state = 0;  
Sơ đồ kết nối arduino với module  
bluetooth  
Kết nối các linh kiện và module code  
(kết nối với bluetooth)  
Serial.println(state); // điều khiển các chân  
0,1,2  
if (state == '1') //nếu chọn 1 thì đèn sáng  
{
digitalWrite(Led, HIGH);  
delay(1000);  
//trễ 1000  
}
else if (state == '2') //chọn 2 công tắc motor  
quay  
{
digitalWrite(fan, HIGH);  
}
else if (state == '0') //chọn không cả đèn và  
motor đề tắt  
{
digitalWrite(fan, LOW);  
digitalWrite(Led, LOW);  
}
Sơ đồ kết nối arduino với module  
bluetooth  
Kết nối các linh kiện và module code  
int cambien = 10; // khai báo chân digital 10 cho cảm biến  
float temperature = 0; //biến để lưu trữ nhiệt độ  
int fan = 9; //digital điều chỉnh motor  
int Led = 8; //kháo báo chân digital 8 cho đèn LED  
char state = 0; // trạng thái của bluetooth  
void setup (){  
pinMode(Led,OUTPUT); /*pinMode xuất tín hiệu đầu ra  
cho led*/  
pinMode(cambien,INPUT); /*pinMode nhận tín hiệu đầu  
vào cho cảm biên*/  
pinMode(fan,OUTPUT); //configuracion del pin 9  
Serial.begin(9600); /*Ket noi bluetooth module o toc do  
goc 9600.*/  
}
Kết nối các linh kiện và module code  
void loop (){  
int value = digitalRead(cambien); //* lưu giá trị cảm biến  
vào value*/  
digitalWrite(Led,value); //xuất giá trị ra đèn LED  
float temperature = ((5.0*analogRead(A0)*100.0)/1024.0);  
Serial.println (temperature); // in ra nhiệt độ  
if (temperature < 37) /* motor không quay nếu < 37oc */  
{
digitalWrite(fan, LOW);  
}else {  
digitalWrite(fan,HIGH);  
}
//-----------------  
Kết nối các linh kiện và module code  
if(Serial.available() > 0)  
{
state = Serial.read(); // đọc các byte bluetooth  
}
if (state == '1') {  
digitalWrite(Led, HIGH); //nếu chọn 1 thì đèn sáng  
delay(1000);  
} else if (state == '2') {  
digitalWrite(fan, HIGH); //nếu chọn 2 thì motor quay  
} else if (state == '0') { /*nếu chọn không thì cả đèn cả  
mottor đều tắt*/  
digitalWrite(fan, LOW);  
digitalWrite(Led, LOW);  
}
}
Demo sản phẩm  
Tải về để xem bản đầy đủ
pptx 22 trang yennguyen 27320 Free
Bạn đang xem 20 trang mẫu của tài liệu "Báo cáo Thực hành lập trình hệ thống - Đề tài: Ngôi nhà thông minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptxbao_cao_thuc_hanh_lap_trinh_he_thong_de_tai_ngoi_nha_thong_m.pptx