Báo cáo thực hành lập trình hệ thống
Giáo viên hướng dẫn : H uỳnh H ữu H ưng
Sinh viên thực hành : H ồ H ải N ghĩa – 13T3
Sinh viên thực hành: Trần V ăn T hanh - 13T3
ĐỀ TÀI: NGÔI NHÀ THÔNG MINH
Mục đích bài thực hành
hiểu về bảng mạch arduino
Cách sử dụng các linh kiện liên quan
Biết nối dây và đẩy code vào arduino
Hoàn thành sản phẩm demo
Ứ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ạ
22 trang |
Chia sẻ: huong20 | Ngày: 08/01/2022 | Lượt xem: 498 | Lượt tải: 0
Tóm tắt tài liệu Báo cáo thực hành Lập trình hệ thống - Ngôi nhà thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
Hệ thống cảm biến: cảm biến anh sáng và cảm biến nhiệt độ
Các thiết bị hiển thị: đèn LED
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,),
Và một số ứng dụng khác
Bảng thiết bị (các linh kiện cần dùng)
Cảm biến ánh sáng
Bảng mạch arduino
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)
Cảm biến ánh sáng
Thay đổi điện trở theo ánh sáng
HIGHT: bật
LOW: tắt
Có thể điều chỉnh độ nhạy
Trên mạch có 1 biến trở 10K ohm dùng để điều chỉnh độ nhạy 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 sáng: chỉ cần lượng ánh sáng nhỏ thì mạch sẽ tự ngắ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.
Kết nối các linh kiện và module code(lắp mạch quang trở và bóng đèn)
Lắp mạch như hình trê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
Kết nối các linh kiện và module code(lắp mạch quang trở và bóng đèn)
Lắp mạch như hình trê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
}
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)
Sơ đồ kết nối arduino với module 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;
Kết nối các linh kiện và module code(kết nối với bluetooth)
Sơ đồ kết nối arduino với module 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);
}
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 < 37 o c */
{
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
Các file đính kèm theo tài liệu này:
- bao_cao_thuc_hanh_lap_trinh_he_thong_ngoi_nha_thong_minh.pptx