Lưu đồ chương trình trên điện thoại

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 64)

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 chun 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 tồ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.

Ta sẽ xét một ví dụ như sau: Giao diện gồm có 1 nút nhấn. Khi nhấn nút thì hiện ra chữ “Hello world”.

Từ ví dụ trên, ta tiến hành tạo 1 project theo nội dung hướng dẫn và tiến hành tạo 1 giao diện gồm 1 nhãn chứa thông tin là chuỗi chữ “Hello world” và 1 button (nút nhấn) trên thành phần main_activity.xml. Giao diện giống như Hình 4.23. Sau đó ta chuyển sang MainActivity để tiến hành viết chương trình cho

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

Hình 4.29: Nội dung chương trình sau khi lập trình.

Đầu tiên ta lưu ý tới 2 dòng khai báo Button và TextView bên dưới Class MainActivity extends Activity:

 Button nutnhan; //Khai báo 1 biến kiểu button (nút nhấn).

 TextView hienthi; //Khai báo 1 biến kiểu TextView (biến tượng trưng

cho đối tượng nhãn).

Hai biến được khai báo ở trên để được sử dụng cho tất cả các hàm trong class

MainActivity extends Activity() thì ta sẽ khai báo ngay bên dưới class

MainActivity extends Activity().

Tiếp theo ta di chuyển xuống hàm onCreate(). Tại đây ta tiến hành thao tác lập trình xử lý đối tượng đúng theo yêu cầu của ví dụ. Ý nghĩa các cú pháp như sau:

nutnhan = (Button)findViewById(R.id.button); // Biến nutnhan sau

khi được khai báo sẽ được lấy để truy xuất đối tượng nút nhấn trên giao diên thơng qua địa chỉ id của nó là button

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

hienthi = (TextView)findViewById(R.id.textView); // Tương tự với biến

nutnhan, biến hienthi sau khi khai báo sẽ được lấy để truy xuất đối tượng nhãn hiển thị chữ “Hello world” trên giao diện thông qua địa chỉ id của nó là textView

Sau khi truy xuất các đối tượng xong, có nghĩa là bây giờ việc xử lý trên các biến đã khai báo chính là xử lý trên đối tượng. Ta chú ý đến thao tác xử lý đối tượng nút nhấn trên Hình 4.23

nutnhan.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

hienthi.setText("Hello world");

}

});

Hình 4.30: Thao tác xử lý của hàm nút nhấn.

Ý nghĩa của cú pháp xử lý trên có nghĩa là: Khi nhận thấy có tác động lên đối tượng nút nhấn (thuộc tính setOnClickListener của nutnhan được tác động) thì sẽ tạo 1 sự kiện mới new View.OnClickListener() (một hàm con

onClick(View v) sẽ được tạo ra để ghi nhận nội dung thiện hiện sự kiện). Và sự

kiện mới đó là hiển thị dòng chữ “Hello world” trên màn hình. Thuộc tính

setText(“String”) của hienthi được tác động để làm thỏa mãn yêu cầu hiển thị

chuỗi String cần hiển thị.

Việc xử lý đối tượng xem chúng ta sẽ làm việc với đối tượng đó ra sao, đối tượng đó làm việc như thế nào v.v… đều đã được hỗ trợ tối đa trong Android Studio. Tùy vào từng trường hợp khi lập trình ứng dụng mà ta có thể lựa chọn nhiều cách xử lý khác nhau trên nhiều đối tượng khác nhau.

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

4.3 CHƯƠNG TRÌNH ĐIỀU KHIỂN TRÊN ĐIỆN THOẠI 4.3.1 Hướng dẫn sử dụng phần mềm điều khiển

Việc sử dụng thiết bị Android điều khiển các thiết bị ngoại vi khác giờ đã khơng cịn q xa lạ với nhiều người. Bài viết sau đây sẽ hướng dẫn cách sử dụng smartphone Android cài ứng dụng Đồ án tốt nghiệp điều khiển các thiết bị điện có hiển thị nhiệt độ độ ẩm báo cháy.

Các bước sẽ được hướng dẫn dưới đây:

Hình 4.31: Giao diện phần mềm.

 Bước 1: Mở giao diện điện thoại Android.

 Bước 2: Bật ứng dụng Bluetooth trên điện thoại.

 Bước 3: Chọn thiết bị kết nối Bluetooth tên thiết bị ở đây là HC-05 mật khẩu mặc định là 1234.

 Bước 4: Mở ứng dụng Đồ án tốt nghiệp chọn nút nhấn CONNECT sau

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

 Bước 5: Trên giao diện đồ án tốt nghiệp có 3 switch tên là thiết bị 1, thiết bị 2, thiết bị 3.

 Bước 6: Switch 1 đẩy qua phải sẽ mở thiết bị 1, đẩy sang trái sẽ tắt thiết bị 1. Tương tự với 2 cái còn lại.

+ Dưới switch 3 là khu vực hiển thị nhiệt độ . + Dưới hiển thị nhiệt độ là hiển thị độ ẩm .

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 64)

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

(112 trang)