Dòng tiêu thụ của các thiết bị

Một phần của tài liệu Điều khiển thiết bị điện báo nhiệt độ báo cháy (Trang 58 - 112)

Tên thiết bị Dịng tiêu thụ trung bình Dòng tiêu thụ cực đại

Module Bluetooth HC- 05 8 mA 35 mA Module MQ2 160 mA 200 mA Module DHT11 2.5 mA 5 mA Module LCD 16x2 50 mA 100 mA Khối nút nhấn 10 mA Adruino Mega 2650 200 mA

Module Relay 4 kênh 800 mA

Tổng 1350 mA

Dựa vào số liệu trên, ta chọn khối nguồn có thể cung cấp lớn hơn 1.5 lần, ở đây do sự có săn linh kiện nên ta chọn adapter làm khối nguồn cho thiết bị. Adapter có thồn số chính như sau:

 Nguồn vào: 220 VAC.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 49

 Điện áp ngõ ra: 5 VDC.

 Dòng ngõ ra cực đại: 3A.

Lý do chọn Adapter làm khối nguồn vì sự tiện lợi cũng như độ ổn định cao cho thiết bị khi hoạt động lâu dài. Chọn dòng cung cấp khá lớn (3A) lý do chính là do tổn hao linh kiện cũng như bảo đảm nhiệt độ hoạt động trong phạm vi an toàn nên lựa chọn adapter làm khối nguồn là lựa chọn tối ưu nhất.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 50

Chương 4. THI CÔNG HỆ THỐNG

4.1 GIỚI THIỆU

Chương này bao gồm trình bày kết quả thi cơng phần cứng bao gồm quá trình vẽ mạch nguyên lý, vẽ mạch layout, lắp ráp và test mạch khối nút nhấn, vỏ hộp thiết bị, bố trí các module cùng với các tải là các bóng đèn.

4.1.1 Thi cơng khối nút nhấn

Sơ đồ layout của khối nút nhấn:

Hình 4.1: Sơ đồ layout của khối nút nhấn.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 51

 Các jack cắm HC-05, MQ-2, DHT11 là các jack cắm của các module cảm biến.

 Jack J1 và J2 lần lượt là ngõ ra của các cảm biến DHT11 và MQ-2.

 Jack I2C_0, I2C_1, I2C_2 là ngõ vào và 2 ngõ ra được nối từ 2 chân SDA và SCl trên board Adruino.

 Jack cắm J4 là tín hiệu ngõ ra của các nút nhấn.

 Các jack cắm P1 – P4 là các ngõ ra cấp nguồn cho các module rời.

4.1.2 Thi công vỏ thiết bị

Thiết bị sau khi hoàn thành và gắn đầy dủ thiết bị:

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 52

4.2 LẬP TRÌNH HỆ THỐNG 4.2.1 Lưu đồ giải thuật 4.2.1 Lưu đồ giải thuật

a. Lưu đồ chương trình chính của thiết bị

Bắt đầu

Cấu hình IN/OUT Khai báo các cổng UART

Khai báo các thư viện Định nghĩa các chân trên bộ điều khiển.

Kiểm tra đã kết nối Bluetooth chưa

Gửi trạng thái hiện tại lên điện thoại Đúng Đọc thời gian Quét bàn phím Sai Cập nhật trạng thái ngõ ra Cập nhật màn hình LCD Có vào chế độ chỉnh giờ hay

khơng Sai Vào chế độ chỉnh giờ Đúng 1 1 Nhận được dữ liệu Sai Xử lí kết quả và lưu vào biến tạm Đúng Hình 4.3: Lưu đồ chương trình chính.

BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 53

b. Lưu đồ chương chình con chỉnh giờ của thiết bị

Bắt đầu Kiểm tra phím Mode Kiểm tra phím Up Sai Kiểm tra phím Down Sai

Tăng giá trị biến mode Đúng

Tăng giá trị biến tạm hiện thời theo biến

mode

Giảm giá trị biến tạm hiện thời theo

biến mode Đúng Đã tăng hết biến mode chưa Sai 2 Sai Cập nhật thời gian Đúng

Lưu giá trị hiện thời vào biến tạm

Kết thúc

2

Đúng

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 54

c. Lưu đồ chương trình chính của chương trình trên điện thoại

Bắt đầu

Khai báo thư viện Khai báo luồng chạy ngầm Khai báo kết nối Bluetooth

Đã kết nối Bluetooth Kích hoạt luồng chạy ngầm để nhận dữ liệu Đúng Cập nhật các đối tượng trên ứng dụng Sai

Các đối tượng được cập nhật bởi người dùng

Gửi dữ liệu về thiết bị để cập nhật

Hình 4.5: Lưu đồ chương trình trên điện thoại. 4.2.2 Phần mềm lập trình cho bộ điều khiển 4.2.2 Phần mềm lập trình cho bộ điều khiển

a. Giới thiệu phần mềm lập trình IDE

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngơn ngữ riêng. Ngơn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung. Và Wiring lại là một biến thể của C/C++. Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++. Riêng trong đề tài này thì nó được gọi là “ngôn ngữ

Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy. Ngôn ngữ Arduino

bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu. Nếu học tốt việc lập trình với ngơn ngữ C đã được học ở mơn “Kĩ thuật lập trình giao tiếp” thì việc lập trình Arduino sẽ rất dễ dàng.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 55 Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một mơi trường lập trình Arduino được gọi là Arduino IDE (Intergrated Development Environment).

Các bước cài đặt Arduino IDE:

 Bước 1: Truy cập địa chỉ http://arduino.cc/en/Main/Software/ . Đây là nơi lưu trữ cũng như cập nhật các bản IDE của Arduino. Bấm vào mục Windows ZIP file for non admin install như hình.

Hình 4.6: Giao diện download IDE.

+ Bạn sẽ được chuyển đến một trang mời quyền góp tiền để phát triển phần mềm cho Arduino, tiếp tục bấm JUST DOWNLOAD để bắt đầu tải như hình.

BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 56

Hình 4.7: Chọn just download để tải IDE về máy tính.

Hình 4.8: Chọn thư mục lưu file tải về.

 Bước 2: Sau khi download xong, bấm chuột phải vào file vừa download arduino-1.6.4-windows.zip và chọn “Extract here” để giải nén.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 57

Hình 4.9: Giải nén thư mục tải về.

 Bước 3: Copy thư mục arduino-1.6.4 vừa giải nén đến nơi lưu trữ.

 Bước4: Chạy file trong thư mục arduino-1.6.4 để khởi động Arduino IDE.

BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP 58

Hình 4.10: Giao diện sau khi cài đặt của Arduino IDE.

Vùng lệnh bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như hình sau:

Hình 4.11: Các nút lệnh trong IDE.

Vùng viết chương trình bạn sẽ viết các đoạn mã của mình tại đây. Tên chương trình của bạn được hiển thị ngay dưới dãy các Icon, ở đây nó tên là “sketch_julo6a§”. Để ý rằng phía sau tên chương trình có một dấu “§”. Điều đó có nghĩa là đoạn chương trình chưa được lưu lại.

BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 59

Hình 4.12: Giao diện vùng viết chương trình IDE.

Vùng thơng báo những thông báo từ IDE sẽ được hiển thị tại đây. Để ý rằng góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng. Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM, ta sẽ khơng thể upload được code.

BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 60

b. Code của chương trình chính

void loop() { if(digitalRead(44)&&connect_state){ connect_state = false; HC05_send("@"); HC05_send("doam"); HC05_send((int)h); HC05_send("nhiet"); HC05_send((int)t); HC05_send("#"); delay(100); if(dv0) HC05_send("dv01#"); else HC05_send("dv00#"); delay(100); if(dv1) HC05_send("dv11#"); else HC05_send("dv10#"); delay(100); if(dv2) HC05_send("dv21#"); else HC05_send("dv20#"); delay(100); }

if(!digitalRead(44)) connect_state = true; unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis;

if(!digitalRead(mq_pin)) {temp_string = "dv31"; bell = true; phathien = true;}

else {temp_string = "dv30";bell = false; phathien = true;} if(digitalRead(44)){ HC05_send("@"); HC05_send(temp_string); HC05_send((int)h); HC05_send("nhiet"); HC05_send((int)t);

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 61

HC05_send("#");

} else{

Serial.println("chua ket noi"); }

}

readDS1307(); quetphim_mode();

if(HC05_recieve() > 0) data = HC05.readString(); if(data.length() > 0) {

int dv = data.substring(2, 3).toInt(); int dv_stt = data.substring(3,4).toInt(); switch (dv){ case 0: if(dv_stt == 1) dv0 = true; else dv0 = false; Serial.println("0"); if(dv0) HC05_send("@dv01#"); else HC05_send("@dv00#"); break; case 1: if(dv_stt == 1) dv1 = true; else dv1 = false; Serial.println("1"); if(dv1) HC05_send("@dv11#"); else HC05_send("@dv10#"); break; case 2: if(dv_stt == 1) dv2 = true; else dv2 = false; Serial.println("2"); if(dv2) HC05_send("@dv21#"); else HC05_send("@dv20#"); break; case 3:

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 62 break; default: break; } Serial.print(data);data = ""; phathien = true; } if(phathien){ phathien = false;

if(dv0)temp_boolean = false; else temp_boolean = true;

digitalWrite(dv0_pin, temp_boolean); if(dv1)temp_boolean = false;

else temp_boolean = true;

digitalWrite(dv1_pin, temp_boolean); if(dv2)temp_boolean = false;

else temp_boolean = true;

digitalWrite(dv2_pin, temp_boolean); if(bell)temp_boolean = false;

else temp_boolean = true;

digitalWrite(bell_pin, temp_boolean); }

for(int z = 5; z <= 8; ++z) quetphim_dv(z); /* Hiển thị thời gian ra Serial monitor */ switch (mode) { case 0: main_display(); break; default: setTime_display(); break; } }

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 63

4.2.3 Giới thiệu bộ phần mềm Android Studio a. Giới thiệu phần mềm Android Studio a. Giới thiệu phần mềm Android Studio

Android Studio, mơi trường lập trình phát triển ứng dụng được giới thiệu tại Google I/O 2013. Dựa trên “IntelliJ IDEA Community Edition”, công cụ này Google I/O 2013. Dựa trên “IntelliJ IDEA Community Edition”, công cụ này hoạt động giống WYSIWYG, cho phép lập trình viên tạo ứng dụng, dễ dàng thực hiện các thay đổi và xem trước trong thời gian thực, đồng thời cũng có khả năng tăng tốc sản phẩm, thiết kế giao diện đẹp hơn trước. Đặc biệt là Tiếng Việt cũng được hỗ trợ trong Android Studio.

Android Studio hỗ trợ một loạt các cách giả lập để xem trước ứng dụng, vì vậy ngay cả khi khơng có thiết bị thử nghiệm, ta vẫn có thể chắc chắn rằng mọi thứ đều hoạt động trơn tru. Android Studio sử dụng nền tảng ngơn ngữ Java để lập trình xây dựng ứng dụng.

Các bước cài đặt Androi Studio:

 Bước 1 : Đầu tiên các vào trang Developer của android, bấm vào nút Download Android Studio for Windowns để tải về Android Studio, liên kết để truy cập: https://developer.android.com/intl/vi/sdk/index.html

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 64 Sau khi bấm vào đó sẽ hiện ra một mục Điều khoản và Điều kiện, ta tích vào Tơi đã đọc và đồng ý với các điều khoản và điều kiện trên và bấm vào nút download ngay phía bên dưới.

Hình 4.15: Chọn điều khoản và tải Androi Studio.

Bước 2 : Cài đặt Android Studio trên Windows:

+ Chạy file android-studio-bundle-141.2456560-windows.exe(đây là phiên bản lúc viết báo cáo này) vừa tải về. Màn hình giới thiệu của Android Studio xuất hiện, nhấn Next để tiếp tục.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 65

Hình 4.16: Chọn next để cài đặt file.

+ Đánh dấu vào các thành phần muốn cài đặt. Sau đó nhấn Next để tiếp tục:

Hình 4.17: Đánh dấu vào các thành phần bạn muốn cài đặt.

+ Chọn I Agree để chấp nhận các điều khoản trong giấy phép sử dụng của Android Studio.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 66

Hình 4.18: Chọn I Agree để chấp nhận cài đặt.

+ Chọn vị trí để cài đặt Android Studio (dung lượng tối thiểu 500 MB) và vị trí cài đặt SDK (dung lượng tối thiểu 3.2 GB). Nhấn Next để tiếp tục:

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 67 + Chọn dung lượng bộ nhớ cho HAXM, khoảng 2 - 3GB là đủ.

Hình 4.20: Chọn dung lượng bộ nhớ cho HAXM.

+ Cuối cùng, chọn Install để quá trình cài đặt được bắt đầu.

Hình 4.21: Chọn Install để cài đặt bất đầu.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 68

+ Khi chạy ứng dụng lần đầu sẽ có hộp thoại hỏi ta có import setting từ những version android đã có hay khơng, bước này ta có thể bỏ qua khơng cần quan tâm.

Hình 4.22: Chọn dịng thứ 2 để chạy ứng dụng.

+ Chọn giao diện, mặc định có 2 giao diện, đen và trắng ta có thể thay đổi trong mục cài đặt sau khi khởi động.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 69 + Ở lần chạy đầu tiên, Android cần phải tải về một số thành phần. Ta cần

phải chờ đợi cho đến khi tải về và cài đặt q trình hồn thành là xong.

Hình 4.24: Giao diện làm việc của Android Studio.

Đối với người thực hiện đề tài này, tự nhận thấy là một người không chuyên về lập trình trên mơi trường Android Studio nên trong đề tài ta chỉ cần quan tâm đến ba thành phần chính trong Adroid Studio để phát triển ứng dụng phục vụ yêu cầu của đề tài. Ba thành phần đó là: AndroidMainfest.xml, activity_main.xml và MainActivity.java. AndroidMainfest.xml.

Trong bất kỳ một project Android nào khi tạo ra đều có một file

AndroidMainfest.xml, file này được dùng để định nghĩa các screen (màn hình,

sau này ta dùng tên là Activity) sử dụng, các permission (các cấp quyền) cũng như các theme (chủ đề) cho ứng dụng. Đồng thời nó cũng chứa thơng tin về

phiên bản SDK cũng như main_activity sẽ chạy đầu tiên. Trong file

AndroidMainfest.xml bao giờ cũng có 3 thành phần chính đó là: Application, permission và version.

BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 70 Trong đề tài này, chúng ta chỉ cần quan tâm đến thành phần permission

trong AndroidMainfest.xml. Vì chúng ta cần cấp phát quyền sử dụng các yếu tố trên thiết bị Adroid như: Bluetooth cho ứng dụng để thực hiện yêu cầu của đề tài. Các thành phần khác ta sẽ để mặc định (default).

Hình 4.25: Nội dung của file AndroidMainfest.xml.

Ở hình trên, ta có thể dễ dàng nhận thấy có nội dung đã được cấp quyền đó là:

 Quyền sử dụng Bluetooth với cú pháp:

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permission android:name="android.permission.BLUETOOTH"/>

 Activity_main.xml

+ Trong một project Android, file activity_main.xml là nơi chứa các

thông tin về thiết kế giao diện ứng dụng (chỉ của riêng màn hình chính của ứng dụng). Các đối tượng tương tác trên ứng dụng như: Nút nhấn

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 71 (Button), danh sách (ListView), nhãn (TextView), v.v… đều được mô tả chi tiết trên file này.

 Có 2 thành phần chính trong activity_main.xml đó là: Design và Text. + Design: Là thành phần chứa các đối tượng lập trình của ứng dụng.

Giao diện của thành phần này bao gồm:

 Cột trái: Danh sách các đối tượng xếp theo nhóm (Layout, Widgets, Text Fields, Containers, v.v…).

 Cột giữa: Mô phỏng giao diện thực tế (các đối tượng sẽ được thiết kế vào đây).

 Cột phải: Nơi xác định những thuộc tính của đối tượng.

Hình 4.23 mơ tả một giao diện gồm một nhãn in chữ “Hello world” và một nút nhấn với tên “New button” đã được đưa vào.

Hình 4.26: Thành phần Design của activity_main.xml.

+ Text:

 Là thành phần mơ tả một cách chi tiết thuộc tính của từng đối tượng đã được lựa chọn và đưa vào giao diện ứng dụng.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 72 Khi người lập trình có nhu cầu điều chỉnh một cách chính xác các thuộc tính của đối tượng như: Địa chỉ, chiều cao, độ rộng, khoảng cách giữa các thuộc tính, vị trí, màu sắc, v.v… trên giao diện thiết kế thì có thể can thiệp vào thành phần này. Nếu như việc thiết kế chỉ mang tính tương đối thì ta chỉ việc kéo thả và điều chỉnh đối tượng sao cho vừa ý trong thành phần Design mà không cần can thiệp vào thành phần Text.

Ví dụ cú pháp để mô tả 1 nút nhấn đơn giản:

<Button android:layout_width="wrap_content" (chiều cao)

android:layout_height="wrap_content" (chiều cao)

android:text="New Button" (nhãn thể hiện tên)

android:id="@+id/button" (địa chỉ dùng để truy xuất) android:layout_below="@+id/textView" (layout_below)

android:layout_centerHorizontal="true" (phần bố chính giữa)

android:layout_marginTop="51dp" /> (khoảng cách với viền trên cùng là 51dp)

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 73

 MainActivity.java

+ MainActivity.java là class chứa toàn bộ source code của màn hình giao diện đã thiết kế ở activity_main.xml.

+ Các thao tác lập trình, xây dựng cách thức hoạt động của ứng dụng đều được thực hiện trên thành phần MainActivity.java dựa trên

giao diện các đối tượng đã thiết kế trước đó trên activity_main.xml.

Hình 4.28: Giao diện thành phần MainActivity.java.

Ở Hình 4.28, ta thấy nội dung đầu của MainActivity.java được chia làm 3 phần:

Import: Nơi add các thư viện cần sử dụng (thường phần này sẽ tự

import).

 Hàm onCreate(): Nơi diễn ra các hoạt động của ứng dụng trên giao diện chính (các thao tác lập trình chủ yếu thực hiện trên phần này).

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 74

 Hàm onCreateOptionMenu() và hàm onOptionsItemSelected(): Nơi

xử lý đối tượng là nút nhấn setting của ứng dụng. Đối với đề tài này, tất cả các thao tác xử lý đều không sử dụng setting nên chúng ta không cần quan tâm đến.

Về phần nội dung của phần xử lý đối tượng này, chúng ta sẽ xét một ví dụ đơn giản để từ đó nắm được các thao cơ bản nhất để xử lý được các đối tượng trên Android Studio.

Một phần của tài liệu Điều khiển thiết bị điện báo nhiệt độ báo cháy (Trang 58 - 112)

Tải bản đầy đủ (PDF)

(112 trang)