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

92 9 0
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

Đ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

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 – 16141106 Tp Hồ Chí Minh - 8/2020 TRƯỜNG ĐẠI HỌC SPKT TP.HCM KHOA ĐIỆN – ĐIỆN TỬ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP – TỰ DO – HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 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: Chuyên ngành: Nguyễn Thanh Quang Vũ Thị Phương Anh Kỹ Thuật Điện tử, Truyền Thông MSSV 16141243 MSSV 16141106 Mã ngành: 141 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2016 Lớp: 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Ụ - Đọ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, (30/3 – 5/4) tiến hành chọn đồ án Tuần (6/4 –12/4) - GVHD tiến hành xét duyệt đề tài Tuần - Viết đề cương chi tiết lịch trình đồ án tốt (13/4 – 19/4) nghiệp Tuần (20/4 – 26/4) - Tìm hiểu đề tài lựa chọn thiết bị thích hợp - Tìm hiểu công nghệ Bluetooth, giao tiếp UART Tuần (27/4 – 3/5) Tuần Xác nhận GVHD - Tiến hành thiết kế sơ đồ khối, giải thích chức khối - Kết nối giao tiếp Arduino Uno với HC – 05 (4/5 – 10/5) LCD 16x2 Tuần (11/5 – 17/5) - Thiết kế sơ đồ nguyên lý cho ứng dụng Android điều khiển quạt qua Bluetooth - 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 (18/5 – 24/5) Android Android Studio Tuần (25/5 – 31/5) - 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 nguyên lý hoạt động mạch - Mô mạch ii Tuần 10 (1/6 – 7/6) - 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 Tuần 11 (8/6 – 14/6) - Thiết kế mơ hình hệ thống - Vẽ mạch PCB Tuần 12 (15/6 – 21/6) - Thi công phần cứng Tuần 13 - Thử nghiệm toàn hệ thống Kiểm tra sữa (22/6 – 28/6) chữa lỗi có Tuần 14 (29/6 – 5/7) - Viết báo cáo làm slide báo cáo Tuần 15 (6/7 – 12/7) - Hoàn thiện in báo cáo Tuần 16 (13/7 – 19/7) - 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 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 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 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 toá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 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 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ơ đồ ngun 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 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: 26/05/2021, 10:40

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan