Chế tạo bộ điều khiển nhiệt, hiện thị nhiệt độ trên LCD và gửi thông tin qua bluetooth. bạn đọc có thể liên hệ với tác giả qua địa chỉ gmail NDX7.4062gmail.com. để biết thêm thông tin. Đây là đồ án chế tạo bộ điều khiển nhiệt mục đích muốn đưa arduino vào trong nhà trường để giảng dạy.
Trang 1CHƯƠNG I : NGHIÊN CỨU TÌM HIỂU BỘ ĐIỀU KHIỂN NHIỆT ĐỘ CÓ
TRÊN THỊ TRƯỜNG
CHƯƠNG II: GIỚI THIỆU BỘ ARDUINO
II.1 Phần cứng.
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu
về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm
Arduino Uno là sử dụng chip Atmega328 Nó có 14 chân digital I/O, 6 chân đầu vào
(input) analog, thạch anh dao động 16Mhz
Một số thông số kỹ thuật như sau :
Chip ATmega328
Điện áp cấp nguồn : 5V
Điện áp đầu vào (input) (kiến nghị) : 7-12V
Điện áp đầu vào(giới hạn) : 6-20V
Số chân Digital I/O 14 (có 6 chân điều chế độ rộng xung PWM)
Số chân Analog (Input ) : 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32KB (ATmega328) với 0.5KB sử dụng bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Xung nhịp 16 MHz
Trang 2Sơ đồ chân của Arduino:
Hình 1 a) USB (1)
Arduino sử dụng cáp USB để giao tiếp với máy tính Thông qua cáp USB chúng ta
có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino
b) Nguồn ( 2 và 3 )
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông qua jack cắm 2.1mm ( cực dương ở giửa ) hoặc có thể sử dụng 2 chân Vin và GND
để cấp nguồn cho Arduino
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt Chúng ta có thể cấp
Trang 3một áp lớn hơn tuy nhiên chân 5V sẽ có mực điện áp lớn hơn 5 volt Và nếu sử dụng nguồn lớn hơn 12 volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch
Khuyết cáo các bạn nên dùng nguồn ổn định là 5 đến dưới 12 volt
Chân 5V và chân 3.3V (Output voltage) : các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp cho Arduino Lưu ý : không được cấp nguồn vào các chân này vì sẽ làm hỏng Arduino
GND: chân mass
c) Chip Atmega328
Chip Atmega328 Có 32K bộ nhớ flash trong đó 0.5k sử dụng cho bootloader Ngoài ra còn có 2K SRAM, 1K EEPROM
d) Input và Output ( 4, 5 và 6)
Arduino Uno có 14 chân digital với chức năng input và output sử dụng các hàm
pinMode(), digitalWrite() và digitalRead() để điều khiển các chân này tôi sẽ đề cập
chúng ở các phần sau
Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đó là:
Serial : chân 0 (Rx ), chân 1 ( Tx) Hai chân này dùng để truyền (Tx) và nhận (Rx)
dữ liêu nối tiếp TTL Chúng ta có thể sử dụng nó để giao tiếp với cổng COM của một số thiết bị hoặc các linh kiện có chuẩn giao tiếp nối tiếp
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu
“~” là các chân PWM chúng ta có thể sử dụng nó để điều khiển tốc độ động cơ, độ sáng của đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗ trợ giao tiếp theo chuẩn SPI
I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C Các chân A4 (SDA) và A5 (SCL) cho phép chúng tao giao tiếp giửa Arduino với các linh kiện có chuẩn giao tiếp là I2C
e) Reset (7): dùng để reset Arduino
II.2 Phần mềm.
Cài đặt phần mềm Arduino IDE và driver cho Arduino
1.Cài đặt chương trình Arduino IDE
Các bạn truy cập vào trang web http://arduino.cc/en/Main/Software và tải về
chương trình Arduino IDE phù hợp với hệ điều hành của máy mình bao gồm
Trang 4Windown, Mac OS hay Linux Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần giải nén và chạy chương trình không cần cài đặt
Sau khi cài đặt xong thì giao diện chương trình như sau:
Trang 5Hình 2.
2 Cài đặt Driver
Để máy tính của bạn và board Arduino giao tiếp được với nhau, chúng ta cần phải cài đặt driver trước tiên
Đầu tiên, các bạn chạy file arduino-1.6.4\drivers\dpinst-x86.exe (Windows x86) hoặc arduino-1.6.4\drivers\dpinst-amd64.exe (Windows x64) Cửa sổ “Device Driver Installation Wizard” hiện ra, các bạn chọn Next để tiếp tục.
Trang 6Hình 3 Quá trình cài đặt hoàn thành nhấn Finish
Trang 7Hình 4 Lựa chọn Broad Arduino phù hợp ở đây sử dụng Arduino Uno
Hình 5 Lựa chọn cổng kết nối với Arduino, để có thể nạp chương trình cho Arduino Kiểm tra hiện tại Arduino đang được kết nối ở cổng nào vào Device Manager
Trang 8Arduino đang được kết nối ở cổng Com3.
Hình 6
Trang 9Trên phần mềm chọn kết nối với cổng Com3
Hình 7
Trang 10Chức năng các nút trên phần mềm
Hình 8
Trang 11CHƯƠNG III THIẾT KẾ CHẾ TẠO BỘ ĐIỀU KHIỂN NHIỆT ĐỘ ỨNG DỤNG ĐIỀU
KHIỂN QUẠT THÔNG MINH III.1 Nguyên lý hoạt động
Hoạt động theo 2 chế độ đóng cắt thủ công và tự động
a. Chế độ thủ công : điều bật tắt từ xa thông qua Bluetooth
b. Chế độ tự động : Bật quạt khi nhiệt độ phòng tăng cao hơn mức cho phép, và tắt quạt khi nhiệt độ phòng giảm đi
Nhận giá trị nhiệt độ từ cảm biến sau đó arduino xử lý và gửi về điện thoại
Android thông qua Module Bluetooth HC-05 Và tác động relay đóng hoặc cắt
Hình 9
III.2 Chương trình điều khiển
Trang 12Bao gồm chương trình trên Arduino và chương trình trên điện thoại Android.
a.Chương trình trên Arduino
Nói qua về cấu trúc lệnh setup() và loop
Những lệnh trong setup() sẽ được chạy khi chương trình khởi động Sau khi setup() chạy xong thì loop() được chạy Lệnh loop() là một vòng lặp đi lặp lại và chỉ dừng khi tắt nguồn Arduino
Khi bấm khi reset thì Arduino sẽ trở về trạng thái như mới được cấp nguồn
// Khai báo biến
// điều khiển nhiệt độ và bật tắt qua bluetooth
char state;//khai báo kiểu dữ liệu cho biến
float nhietdo;
int chanlaynhiet=0;
int den=13;
int i;
void setup() {//
pinMode(den,OUTPUT);//khai báo đầu ra
Serial.begin(9600); // Kết nối bluetooth module ở tốc độ 9600
}
void loop() {//vòng lặp
if(Serial.available() > 0)//nhận dữ liệu và gửi dữ liệu
{
Trang 13// Đọc giá trị nhận được từ bluetooth
state = Serial.read();//đọc tín hiệu được gửi từ điện thoại
} else
state = 0;
nhietdo = analogRead (chanlaynhiet);//
nhietdo= (nhietdo*5.0*1000.0/1024.0)/10;//quy đổi nhiệt độ về độ c Serial.println(" ");//tạo khoảng trống trên màn hình
Serial.println(nhietdo);
switch (state){
case '1':
i=nhietdo-1;//đưa giá trị i <nhiệt độ để hàm if tắt đèn
digitalWrite(den,HIGH);
break;//dừng vòng lặp
case '2':
i=100;//đưa giá trị i lên cao để hàm if bật đèn
digitalWrite(den,LOW);
break;
case '3':
i=24;//chốt giá trị i cho hàm if
break;
case '4':
i=25;//chốt giá trị i cho hàm if
break;
case '5':
i=26;//chốt gí trị i cho hàm if
break;
case '6':
i=27;//chốt giá trị i cho hàm if
break;
case '7':
i=28;//chốt giá trị i cho hàm if
break;
Trang 14case '8':
i=29;//chốt giá trị i cho hàm if
break;
case '9':
i=30;//chốt giá trị i cho hàm if
break;
}
if(nhietdo>i)//hàm điều kiện nếu nhiệt độ quá mức cho phép sẽ tác động đèn sáng
{
digitalWrite(den,HIGH);
}
if(nhietdo<i-5)//nhiệt độ nhỏ hơn nhiệt độ đặt -5 hàm if cho phép đèn tắt {
digitalWrite(den,LOW);
}
delay(500);//arduino sẽ trễ 100ms giây mục đích để không gửi dữ liệu quá nhanh
}
b. Chương trình điều khiển trên điện thoại Android
Được tạo trên trang Web http://ai2.appinventor.mit.edu/
Trang 15Giao diện Web Chương trình cho Android:
Trang 16Về cách thiết kế phần mềm và xuất phần mềm (hướng dẫn bằng 19 hình ảnh )
III.3 Sơ đồ nguyên lý mạch điện