Tải bản đầy đủ (.pdf) (22 trang)

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

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 (2.35 MB, 22 trang )


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)


Giới thiệu về bảng mạch arduino

Vi điều khiển

ATmega32u4 (họ 8bit)

Tần số hoạt động

16 MHz 

Dòng tiêu thụ ở các chân I/O

40mA

Điện áp vào khuyên dùng

7-12V – DC

Điện áp vào giới hạn

6-20V – DC

Điện áp hoạt động

5V – DC


Số chân Digital I/O

14 (7 chân PWM)

Số chân Analog

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

40 mA

Dòng ra tối đa (5V)

500 mA

Dòng ra tối đa (3.3V)

50 mA

Bộ nhớ flash

32 KB (ATmega32u4) với 4KB
dùng bởi bootloader

SRAM

2.5 KB (ATmega32u4)


EEPROM

1 KB (ATmega32u4)

Kích thước

68.6mm x 53.3mm


Ứ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
arduino

Cảm biến ánh sáng

Cảm biến nhiệt
độ LM35

Module Bluetooth
HC06

Đè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 ánh 

HIGHT: ộ
bật
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 đCó
ể ng
ắt m
ạch.
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 nhận
tín hiệu đầu vào cho cảm biê}
void loop (){
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


Smarthome
Ø

Ø

Ø

 nhà thông mình là xu thế mới trong 
kiến trúc hiện đại.
 động hóa các thiết bị điện tử, điện 
gia dụng, từ đèn chiếu sáng, mô tơ 
rèm cửa, máy lạnh, cho tới hệ 
thống giải trí nghe nhìn, an ninh, an 
toàn ...
 kết nối khi vắng nhà (thông qua 
internet)

Chỉ Với 1 thao tác có thể điều khiển tất cả các thiệt 
bị hoạt động




×