Bắt đầu Nhấn 1 Nhấn 2 Nhấn 3 Nhấn Exit Chương trình chỉnh đồng hồ RTC Chương trình điều khiển thiết bị Chương trình test thiết bị Kết thúc Đ Đ Đ Đ S S S S
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 53
Giải thích lưu đồ
Ở chế độ Mode, khi nhấn nút 1 sẽ vào chương trình chỉnh đồng hồ RTC. Khi chỉnh xong nhấn nút Exit để quay về chế độ Mode. Tương tự, nhấn nút 2 vào chương trình điều khiển thiết bị và nút 3 vào chương trình test thiết bị.
c. Lưu đồ của chương trình RTC
Lưu đồ Hình 4.13. Lưu đồ chương trình RTC. Bắt đầu Mode = 0 Nhấn nút Mode Mode = Mode +1 Mode = 7 Mode = 0 Mode = 1 Chỉnh giờ Nhấn exit Mode = 2 Chỉnh phút Chỉnh thứ Kết thúc S S Đ Đ Mode = 6 S S S S Đ Đ Đ
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 54
Giải thích lưu đồ
Khi vào chương trình RTC, mode bằng 0. Sau đó cứ nhấn nút mode là mode được tăng lên 1 đơn vị. Khi mode bẳng 7 sẽ quay về 0. Với mode bằng 1 sẽ vào chỉnh giờ, mode bằng 2 sẽ vào chỉnh phút, mode bằng 3 sẽ vào chỉnh ngày, mode bằng 4 sẽ vào chỉnh tháng, mode bằng 5 sẽ vào chỉnh năm, mode bằng 6 sẽ vào chỉnh thứ. Nhấn Exit chương trình kết thúc.
d. Lưu đồ chương trình điều khiển thiết bị ( ON/OFF )
Lưu đồ
Hình 4.14. Lưu đồ chương trình điều khiển thiết bị.
Giải thích lưu đồ
Khi nhấn nút 1 thì sẽ đảo trạng thái đèn (đang sáng thì tắt và ngược lại). Sau đó sẽ kiểm tra trạng thái của đèn và báo qua điện thoại Android để đồng bộ. Tương tự, nhấn nút 2 thì sẽ đảo trạng thái quạt (đang quay thì tắt và ngược lại). Sau đó sẽ kiểm tra trạng thái của quạt và báo qua điện thoại Android để đồng bộ. Khi nhấn nút 3 thì sẽ đảo trạng thái bơm (đang bơm nước thì tắt và ngược lại). Sau đó sẽ kiểm tra trạng thái của bơm và báo qua điện thoại Android để đồng bộ. Nhấn Exit chương trình kết thúc.
Bắt đầu Nhấn 1 Nhấn 2 Nhấn 3 Nhấn Exit Kết thúc Đảo trạng thái đèn, kiểm tra và báo qua đ.thoại
Androi
Đảo trạng thái quạt, kiểm tra và
báo qua đ.thoại Androi
Đảo trạng thái bơm, kiểm tra và báo qua đ.thoại Androi S S S S Đ Đ Đ Đ
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 55 e. Lưu đồ chương trình Test
Lưu đồ
Hình 4.15. Lưu đồ chương trình Test.
Giải thích lưu đồ
Khi nhấn nút 1 thì sẽ bật đèn. Sau đó nhấn giữ nút 1 sẽ kiểm tra độ sáng của đèn. Tương tự, nhấn nút 2 thì sẽ bật quạt. Sau đó nhấn giữ nút 2 để kiểm tra tốc độ cao nhất của quạt. Khi nhấn nút 3 thì sẽ bật bơm. Sau đó nhấn giữ nút 3 để kiểm tra lưu lượng cao nhất của bơm trong 1 giờ là bao nhiêu. Nhấn Exit chương trình kết thúc.
Bắt đầu Nhấn 1 Nhấn 2 Nhấn 3 Nhấn Exit Bật đèn, kiểm tra độ sáng Bật quạt, kiểm tra tốc độ Bật bơm, kiểm tra lưu lượng
Còn nhấn Còn nhấn Còn nhấn Kết thúc S S S S Đ Đ Đ Đ Đ Đ Đ S S S
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 56 f. Lưu đồ chương trình giám sát
Lưu đồ
Hình 4.16: Lưu đồ chương trình giám sát.
Giải thích lưu đồ
Khi vào chương trình chính hệ thống sẽ kiểm tra sự cố trước. Nếu sự cố xảy ra cho thiết bị đèn (được cấp nguồn mà khơng sáng) thì sẽ báo lỗi và ngắt nguồn ngay. Tương tự, nếu sự cố xảy ra cho thiết bị quạt (được cấp nguồn mà khơng quay) thì sẽ báo lỗi và ngắt nguồn ngay. Nếu sự cố xảy ra cho thiết bị bơm (đang bơm mà hết nước) thì sẽ báo lỗi và ngắt nguồn ngay.
Bắt đầu Sự cố máy bơm Kiểm tra sự cố Sự cố bóng đèn Sự cố máy quạt
Tắt đèn, bão lỗi Tắt quạt, bão lỗi Tắt bơm, bão lỗi
Kết thúc
S S S
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 57 g. Lưu đồ của điện thoại
Lưu đồ
Hình 4.17. Lưu đồ chương trình điện thoại.
Giải thích lưu đồ
Khi mở app hệ thống sẽ cần kết nối Bluetooth. Sau đó kích hoạt các luồng chạy ngầm từ Arduino lên để cập nhật trạng thái các thiết bị hiện tại cho app trên điện thoại. Nếu ta điều khiển trên điện thoại thì sẽ gửi dữ liệu về cho Arduino để thay đổi trạng thái thiết bị.
4.4.2 Phần mềm lập trình Arduino IDE a. Giới thiệu phần mềm lập trình a. Giới thiệu phần mềm lập trình
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
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 Gửi dữ liệu về thiết bị để cập nhật
Cập nhật các đối tượng trên ứng dụng
Các đối tượng được cập nhật bởi người dùng
S
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 58
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. Để 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).
b. 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.18. 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.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 59 Hình 4.20. 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.
Hình 4.21. 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.
4.4.3 Phần mềm lập trình Android Studio
a. Giới thiệu phần mềm lập trình Android Studio (cho điện thoại).
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 60
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.
b. 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
Hình 4.22. Giao diện tải Androi Studio.
+ 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.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 61 Hình 4.23. 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 ) 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.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 62
+ Đá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.25. Đá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.
Hình 4.26. 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:
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 63 Hình 4.27. Chọn ổ đĩa để cài đặt.
+ Chọn dung lượng bộ nhớ cho HAXM, khoảng 2 - 3GB là đủ.
Hình 4.28. 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.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 64
Bước 3: Chạy Android Studio
+ 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.30. 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.
+ Ở 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.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 65 c. Viết chương trình hệ thống
Đố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.
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).
AndroidMainfest.xml
Hình 4.32. 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"/>
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 66
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(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.33. 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 đã
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 67
- 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)
Hình 4.34. Thành phần Text của activity_main.xml.
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.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 68 Hình 4.35. 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).
+ 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
CHƯƠNG 4. THI CƠNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 69 Hình 4.36. 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. + TextView hienthi; //Khai báo 1 biến kiểu TextView.
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.
+ 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