1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế và thi công hệ thống điều khiển tốc độ động cơ của quạt máy thông qua ứng dụng điện thoại Android

91 46 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 91
Dung lượng 4,1 MB

Nội dung

Hiện nay, với sự phát triển mạnh mẽ của khoa học và công nghệ thì các thiết bị,hệ thống thông minh cũng dần được tạo ra. Các hệ thống điều khiển thông minh đượcsử dụng rộng rãi trong đời sống, trong đó nổi bật và được ứng dụng nhiều có thể nóiđến hệ thống thông minh điều khiển thiết bị điện trong nhà và nếu nói đến các thiếtbị điện trong hộ gia đình thì không thể không nhắc đến quạt máy.Hiện nay xu hướng điều khiển số với các module chuyên dụng như moduleLED, module Wifi, Bluetooth, các board điều khiển như Arduino, Raspberry, … đangphát triển một cách mạnh mẽ. Nhờ đó mà việc điều khiển hệ thống trở lên thuận tiệnvà dễ dàng hơn rất nhiều.Nội dung của đề tài là áp dụng những kiến thức điện tử cũng như kiến thức vềvi điều khiển đã được học để thiết kế một hệ thống điều khiển tốc độ động cơ quạtmáy. Hệ thống gồm một mạch công suất điều khiển tốc độ động cơ với bộ điều khiềukhiển trung tâm là Arduino Uno R3. Không chỉ thay đổi tốc độ và trạng thái động cơbằng nút nhấn và nút xoay trên mạch công suất mà còn có thể điều khiển thông quaứng dụng Android trên điện thoại thông minh được giao tiếp với vi điều khiển thôngqua module Bluetooth HC05. Số liệu được hiển thị trên LCD 16X2 và trên giao diệncủa ứng dụng một cách trực quan, dễ nhìn giúp người sử dụng dễ dàng thấy đượctrạng thái và tốc độ hiện tại của quạt máy. Tốc độ của động cơ bao gồm rất nhiều cấpsố khác nhau khiến người sử dụng có thể thay đổi để phù hợp với yêu cầu của bảnthân nhất.

BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ CỦA QUẠT MÁY THÔNG QUA ỨNG DỤNG ĐIỆN THOẠI ANDROID GVHD: TS Quách Thanh Hải SVTH: Nguyễn Thanh Quang – 16141243 Vũ Thị Phương Anh Tp Hồ Chí Minh - 8/2020 – 16141106 TRƯỜNG ĐẠI HỌC SPKT TP.HCM KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP – TỰ DO – HẠNH PHÚC Tp HCM, ngày 04 tháng 08 năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Thanh Quang Vũ Thị Phương Anh MSSV MSSV Chuyên ngành: Kỹ Thuật Điện tử, Truyền Thông Mã ngành: Hệ đào tạo: Khóa: Đại học quy 2016 Mã hệ: Lớp: 16141243 16141106 141 16141DT2 I.TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ CỦA QUẠT MÁY THÔNG QUA ỨNG DỤNG ĐIỆN THOẠI ANDROID II NHIỆM VỤ Nội dung thực hiện: - Đọc tài liệu, đồ án tốt nghiệp, đề tài liên quan - Tìm hiểu linh kiện cơng suất MOSFET, OPTO - Tìm hiểu chuẩn truyền thơng UART, I2C - Tìm hiểu phần mềm Android Studio, module giao tiếp Bluetooth HC-05 - Thiết kế ứng dụng điều khiển tốc độ động quạt máy điện thoại - Thiết kế thi công mạch công suất điều khiển điện áp đầu vào quạt - Thiết kế thi cơng hồn thiện hệ thống điều khiển động quạt - Viết chương trình điều khiển cho Ardunio, nạp code chạy thử nghiệm, chỉnh sửa hoàn thiện hệ thống - Thực viết sách luận văn báo cáo - Tiến hành báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 09/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 04/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS QUÁCH THANH HẢI CÁN BỘ HƯỚNG DẪN: BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH i TRƯỜNG ĐẠI HỌC SPKT TPHCM Khoa Điện - Điện Tử Bộ Mơn Điện Tử Cơng Nghiệp CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc Tp Hồ Chí Minh, ngày 30 tháng năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình đóng vào báo cáo) Họ tên sinh viên: Nguyễn Thanh Quang MSSV: 16141243 Họ tên sinh viên: Vũ Thị Phương Anh MSSV: 16141106 Lớp: 16141DT2B Tên đề tài: Thiết kế thi công hệ thống điều khiển tốc độ động quạt máy thông qua ứng dụng điện thoại Android Tuần/ngày Nội dung Tuần - Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đồ án (30/3 – 5/4) Tuần (6/4 –12/4) Tuần (13/4 – 19/4) Tuần - GVHD tiến hành xét duyệt đề tài - Viết đề cương chi tiết lịch trình đồ án tốt nghiệp - Tìm hiểu đề tài lựa chọn thiết bị thích hợp (20/4 – 26/4) - Tìm hiểu cơng nghệ Bluetooth, giao tiếp UART Tuần - Tiến hành thiết kế sơ đồ khối, giải thích chức khối (27/4 – 3/5) Tuần (4/5 – 10/5) - Kết nối giao tiếp Arduino Uno với HC – 05 LCD 16x2 Tuần - Thiết kế sơ đồ nguyên lý cho ứng dụng Android điều khiển quạt qua Bluetooth (11/5 – 17/5) - Thiết kế giao diện cho ứng dụng Android Android Studio Tuần - Viết chương trình điều khiển cho ứng dụng Android Android Studio (18/5 – 24/5) Tuần (25/5 – 31/5) Xác nhận GVHD - Nghiên cứu, tính tốn thiết kế sơ đồ mạch cơng suất để điều khiển điện áp đầu vào quạt, giải thích ngun lý hoạt động mạch - Mơ mạch ii Tuần 10 (1/6 – 7/6) Tuần 11 (8/6 – 14/6) Tuần 12 (15/6 – 21/6) Tuần 13 (22/6 – 28/6) Tuần 14 (29/6 – 5/7) Tuần 15 (6/7 – 12/7) Tuần 16 (13/7 – 19/7) - Kết nối Arduino Uno với mạch công suất - Thiết kế sơ đồ nguyên lý cho hệ thống điều khiển - Viết chương trình điều khiển hệ thống - Thiết kế mơ hình hệ thống - Vẽ mạch PCB - Thi cơng phần cứng - Thử nghiệm tồn hệ thống Kiểm tra sữa chữa lỗi có - Viết báo cáo làm slide báo cáo - Hoàn thiện in báo cáo - Báo cáo với GVHD GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii LỜI CAM ĐOAN Đề tài tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Vũ Thị Phương Anh Nguyễn Thanh Quang iv LỜI CẢM ƠN Lời chúng em xin gửi lời cảm ơn sâu sắc thầy cô giáo Bộ môn Điện Tử Y Sinh nói riêng thầy Khoa Điện - Điện tử nói chung giúp đỡ, nhiệt tình bảo chúng em kiến thức liên quan tới lĩnh vực nghiên cứu đề tài, kiến thức sâu rộng bổ ích mà thầy cô truyền dạy cho chúng em suốt thời gian học tập trường Xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn TS Quách Thanh Hải tận tình hướng dẫn, giúp đỡ, cung cấp tài liệu kiến thức quan trọng tạo điều kiện thuận lợi cho chúng em suốt trình thực đề tài Chúng em gửi lời cảm ơn tới ba mẹ người thân đồng hành, chia sẻ động viên tinh thần vật chất suốt trình thực đề tài Chúng em gửi lời cảm ơn tới bạn ngành CNKT Điện tử - Truyền thông K16 trao đổi chia sẻ kiến thức kinh nghiệm quý báu suốt trình thực đề tài Xin chân thành cảm ơn! Người thực đề tài Nguyễn Thanh Quang Vũ Thị Phương Anh v MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi DANH MỤC HÌNH ẢNH viii DANH MỤC BẢNG x TÓM TẮT xi Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU .2 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN .3 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT .4 2.1 QUY TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ CỦA HỆ THỐNG 2.2 CƠ SỞ LÝ THUYẾT 2.2.1 Arduino Uno R3 2.2.2 Module HC - 05 2.2.3 LCD 16x2 2.2.4 Mạch chuyển đổi I2C cho LCD 2.2.5 Giao tiếp I2C 2.2.6 Giao tiếp UART 2.2.7 IC cách ly quang TLP250 2.2.8 IGBT 25N120 2.2.9 Encoder KY - 040 Chương TÍNH TỐN VÀ THIẾT KẾ 12 3.1 GIỚI THIỆU 12 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 12 3.2.1 Thiết kế sơ đồ khối hệ thống 12 3.2.2 Lựa chọn, tính tốn thiết kế mạch .13 3.2.3 Sơ đồ nguyên lý toàn mạch .21 Chương THI CÔNG HỆ THỐNG .22 4.1 GIỚI THIỆU 22 4.2 THI CÔNG HỆ THỐNG 22 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH vi 4.2.1 Thi công bo mạch .22 4.2.2 Lắp ráp kiểm tra 24 4.3 ĐÓNG GĨI VÀ THI CƠNG MƠ HÌNH 25 4.3.1 Đóng gói điều khiển 25 4.3.2 Thi cơng mơ hình .25 4.4 LẬP TRÌNH HỆ THỐNG 28 4.4.1 Lưu đồ giải thuật 28 4.4.2 Phần mềm lập trình cho vi điều khiển 32 4.4.3 Phần mềm lập trình cho điện thoại, máy tính, … 36 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC .39 4.5.1 Viết tài liệu hướng dẫn sử dụng .39 4.5.2 Quy trình thao tác .40 Chương KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 43 5.1 ĐÁNH GIÁ SẢN PHẨM 43 5.1.1 Đánh giá khả điều khiển kỹ thuật đề xuất 43 5.1.2 Đánh giá chức vận hành phần mềm xây dựng 47 5.2 ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC 53 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54 6.1 KẾT LUẬN 54 6.2 HƯỚNG PHÁT TRIỂN 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC 56 BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH vii DANH MỤC HÌNH ẢNH Hình 2.1 Hình ảnh minh họa cho Ardunio UNO R3 Hình 2.2 Hình minh họa cho Module Bluetooth HC-05 .5 Hình 2.3 LCD 16x2 Hình 2.4 Hình minh họa mạch chuyển đổi I2C cho LCD Hình 2.5 Sơ đồ kết nối giao tiếp UART .7 Hình 2.6 Hình ảnh minh họa cho IC cách quang TLP250 Hình 2.7 Hình minh họa sơ đồ chân IC cách quang TLP250 Hình 2.8 IGBT 25N120 Hình 2.9 Sơ đồ chân IGBT 25N120 Hình 2.10 Hình minh họa cho Encoder 040 Hình 2.11 Hình ảnh minh họa Encoder 10 Hình 2.12 Hình minh họa cho cấu tạo Encoder 10 Hình 2.13 Hình minh họa cho hình dạng Encoder 11 Hình 3.1 Sơ đồ khối hệ thống 12 Hình 3.2 Sơ đồ nguyên lý tổng quát Arduino Uno R3 13 Hình 3.3 Sơ đồ kết nối Arduino Uno R3 với Encoder Ky-040 HC-05 14 Hình 3.4 Kết nối LCD với mạch chuyển giao tiếp I2C .15 Hình 3.5 Sơ đồ nguyên lý kết nối Arduino Uno R3 với LCD .16 Hình 3.6 Sơ đồ nguyên lý mạch cách ly dùng TLP250 .17 Hình 3.7 Sơ đồ nguyên lý mạch công suất 17 Hình 3.8 Sơ đồ nguyên lý kết nối Arduino Uno R3 với khối công suất 19 Hình 3.9 Adapter nguồn 9V – 1A 20 Hình 3.10 Adapter nguồn đơi 12V – 1A .20 Hình 3.11 Sơ đồ nguyên lý hệ thống .21 Hình 4.1 Mặt mạch PCB 22 Hình 4.2 Mặt mạch PCB 23 Hình 4.3 Sơ đồ bố trí linh kiện 23 Hình 4.4 Mặt mạch sau lắp ráp hàn linh kiện 25 Hình 4.5 Mặt mạch sau lắp ráp hàn linh kiện 26 Hình 4.6 Lắp đặt mạch module nguồn lên mặt đế quạt 26 Hình 4.7 Lắp đặt HC-05, LCD I2C, Encoder Ky 040 lên mặt quạt 27 Hình 4.8 Quạt sau lắp đặt xong 27 Hình 4.9 Lưu đồ giải thuật cho Arduino Uno R3 28 BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH viii Hình 4.10 Lưu đồ chương trình xử lý thực liệu nhận .29 Hình 4.11 Lưu đồ ứng dụng điện thoại 30 Hình 4.12 Lưu đồ kết nối Bluetooth .31 Hình 4.13 Hình minh họa quy trình làm việc arduino 32 Hình 4.14 Giao diện lập trình Arduino 33 Hình 4.15 Hình minh họa giao diện file menu Ardunio 33 Hình 4.16 Giao diện Sketch Menu Arduino IDE 34 Hình 4.17 Giao diện Tool Menu Arduino IDE 35 Hình 4.18 Hình minh họa cho việc chọn Board Arduino cần sử dụng 35 Hình 4.19 Hình minh họa Arduino Toolbar .36 Hình 4.20 Tạo dự án Android Studio 36 Hình 4.21 Hộp thoại chọn thiết bị lập trình 37 Hình 4.22 Cấu hình cho dự án Android Studio 37 Hình 4.23 Phần mềm build biến cho dự án ban đầu 38 Hình 4.24 Giao diện lập trình phần mềm Android Studio 38 Hình 4.25 Chạy mơ ứng dụng viết .39 Hình 4.26 Lưu đồ quy trình thao tác 40 Hình 4.27 Lưu đồ quy trình điều khiển từ xa .41 Hình 4.28 Lưu đồ quy trình điều khiển tay 42 Hình 5.1 Dạng sóng điện áp ngõ cấp số 25 .43 Hình 5.2 Dạng sóng điện áp ngõ cấp số 50 .44 Hình 5.3 Dạng sóng điện áp ngõ cấp số 75 .44 Hình 5.4 Dạng sóng dịng điện ngõ cấp số 25 với R để đo dịng 100Ω 44 Hình 5.5 Dạng sóng dịng điện ngõ cấp số 50 với R để đo dịng 100Ω 45 Hình 5.6 Dạng sóng dịng điện ngõ cấp số 75 với R để đo dịng 100Ω 45 Hình 5.7 Dạng sóng xung kích cho IGBT cấp số 25 45 Hình 5.8 Dạng sóng xung kích cho IGBT cấp số 50 46 Hình 5.9 Dạng sóng xung kích cho IGBT cấp số 75 46 Hình 5.10 Chỉ số THD cấp số 75 46 Hình 5.11 Chỉ số THD cấp số 100 47 Hình 5.12 Biểu tượng ứng dụng điều khiển 47 Hình 5.13 Giao diện kết nối Bluetooth 47 Hình 5.14 Giao diện cài đặt Bluetooth mặc định điện thoại 48 Hình 5.15 Giao diện chờ cập nhật liệu ứng dụng 49 Hình 5.16 Giao diện điều khiển quạt từ xa 49 Hình 5.17 Điều khiển từ xa quạt vận hành mức tốc độ 50 50 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ix PHỤ LỤC bigNumberAt(10, 0); // BIG SPACE bigNumberAt(10, 3); // BIG SPACE bigNumberAt( 0, 7); // Character bigNumberAt(12, 10); // Character F bigNumberAt(12, 13); // Character F } CODE ANDROID STUDIO package com.example.controllerfan; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import android.app.ProgressDialog; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.content.Intent; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.CompoundButton; import android.widget.ProgressBar; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.UUID; public class ControlFan extends AppCompatActivity { static final UUID myUUID = UUID.fromString("00001101-0000-1000-800000805F9B34FB"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 PHỤ LỤC Button btnPlus, btnSub, btnDis, btnOn, btnOff; SeekBar seekBarSpeed; TextView valueOfSpeed, titleDeviceConnected; ProgressBar progressBarValue; private ProgressDialog progress; String dataToUpdate; String address = ""; String recDataString = ""; int valueInt; BluetoothAdapter bluetoothAdapter = null; BluetoothSocket bluetoothSocket = null; private boolean isConnected = false; private boolean newData = false; private boolean recvInProgress = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_control_fan); Intent intent = getIntent(); DeviceItem deviceToConnect = (DeviceItem) intent.getSerializableExtra(ConnectBluetooth.EXTRA_ADDRESS); address = deviceToConnect.getAddress(); //call the widgtes btnPlus = (Button)findViewById(R.id.btnPlus); btnSub = (Button)findViewById(R.id.btnSub); btnDis = (Button)findViewById(R.id.btnDisconnect); seekBarSpeed = (SeekBar)findViewById(R.id.seekBar); valueOfSpeed = (TextView)findViewById(R.id.textViewValue); titleDeviceConnected = (TextView) findViewById(R.id.txtViewTitleDeviceConnected); btnOn = (Button) findViewById(R.id.btnOn); btnOff = (Button) findViewById(R.id.btnOff); progressBarValue = (ProgressBar) findViewById(R.id.progressBarValue); new ConnectBT().execute(); titleDeviceConnected.setText(deviceToConnect.getDeviceName()); btnDis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //If the btSocket is busy BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 65 PHỤ LỤC if (bluetoothSocket!=null) { disconnect(); } } }); btnPlus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (bluetoothSocket!=null) { valueInt = progressBarValue.getProgress() + 1; if (valueInt = 0){ sendData(String.valueOf(valueInt)); sendData("ST"); progressBarValue.setProgress(valueInt); seekBarSpeed.setProgress(valueInt); valueOfSpeed.setText(String.valueOf(valueInt)); } } } }); btnOn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sendData("TO"); btnOnView(); } }); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 66 PHỤ LỤC btnOff.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sendData("TF"); btnOffView(); } }); seekBarSpeed.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser){ sendData(String.valueOf(progress)); valueOfSpeed.setText(String.valueOf(progress)); progressBarValue.setProgress(progress); Log.d("aa",String.valueOf(progress)); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { sendData("ST"); } }); } @Override protected void onResume() { super.onResume(); if (!bluetoothAdapter.isEnabled()){ showToast("Bluetooth bị tắt.\nVui lòng bật kết nối lại!!!"); disconnect(); } else { // phát triển thêm dùng chiết áp phần cứng if(isConnected == true){ sendData("UD"); readData(); updateState(dataToUpdate); } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 PHỤ LỤC @Override protected void onDestroy() { super.onDestroy(); if (bluetoothSocket!=null) { try { //close connection bluetoothSocket.close(); } catch (IOException e) { showToast("Lỗi: Không thể ngắt kết nối");} } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_list, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.menuAbout: Intent intentAbout = new Intent(ControlFan.this, AboutApp.class); startActivity(intentAbout); break; case R.id.menuHelp: Intent intentHelp = new Intent(ControlFan.this, HelpUser.class); startActivity(intentHelp); break; } return super.onOptionsItemSelected(item); } //toast message function private void showToast(String msg){ Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); } private class ConnectBT extends AsyncTask // UI thread { private boolean ConnectSuccess = true; //if it's here, it's almost connected @Override BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68 PHỤ LỤC protected void onPreExecute() { //show a progress dialog progress = ProgressDialog.show(ControlFan.this, "Đang kết nối ", "Chờ chút!!!"); } //while the progress dialog is shown, the connection is done in background @Override protected Void doInBackground(Void devices) { try{ if (bluetoothSocket == null || !isConnected) { // lấy default adapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); // Lấy quyền điều khiển thiết bị kết nối BluetoothDevice remoteDevice = bluetoothAdapter.getRemoteDevice(address);//connects to the device's address and checks if it's available // Tạo kênh Rfcomm để kết nối truyền liệu với uuid bluetoothSocket = remoteDevice.createInsecureRfcommSocketToServiceRecord(myUUID); // hủy tìm kiếm BluetoothAdapter.getDefaultAdapter().cancelDiscovery(); bluetoothSocket.connect(); } } catch (IOException e){ ConnectSuccess = false; } return null; } //after the doInBackground, it checks if everything went fine @Override protected void onPostExecute(Void result) { super.onPostExecute(result); if (!ConnectSuccess) { showToast("Kết nối thất bại! Đó có phải SPP Bluetooth? Hãy thử lại!"); finish(); } else { showToast("Đã kết nối"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69 PHỤ LỤC isConnected = true; sendData("UD"); readData(); updateState(dataToUpdate); } progress.dismiss(); } } private void updateState(String dataToUpdate) { if (dataToUpdate.charAt(0) == '1'){ btnOnView(); } else { btnOffView(); } int temp = Integer.parseInt(dataToUpdate.substring(1, dataToUpdate.length())); setProgressSpeed(temp); } private void setProgressSpeed(int progressSpeed) { valueOfSpeed.setText(String.valueOf(progressSpeed)); progressBarValue.setProgress(progressSpeed); seekBarSpeed.setProgress(progressSpeed); } private void btnOnView(){ btnSub.setEnabled(true); btnPlus.setEnabled(true); btnOn.setEnabled(false); btnOff.setEnabled(true); seekBarSpeed.setEnabled(true); } private void btnOffView(){ btnSub.setEnabled(false); btnPlus.setEnabled(false); btnOn.setEnabled(true); btnOff.setEnabled(false); seekBarSpeed.setEnabled(false); } private void readData(){ byte[] buffer = new byte[1]; int bytes; //while (!newData) { for (int i = 0; i

Ngày đăng: 07/06/2021, 08:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w