(Đồ Án Tốt Nghiệp) 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.pdf

89 5 0
(Đồ Án Tốt Nghiệp) 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.pdf

Đ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

Untitled 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 ĐỀ TÀI Tp Hồ Chí Minh 8/2020 NGÀNH CÔNG NGHỆ KỸ 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 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 Hình 5.18 Điều khiển từ xa quạt vận hành mức tốc độ 80 50 Hình 5.19 Ban đầu quạt tắt đứng yên 51 Hình 5.20 Quạt vận hành với mức tốc độ 50 52 Hình 5.21 Quạt vận hành với mức tốc độ 25 52 Hình 5.22 Quạt vận hành với mức tốc độ 80 52 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH x DANH MỤC BẢNG Bảng 3.1: Kết sau đo thông số quạt 18 Bảng 3.2: Dòng tiêu thụ điện áp hoạt động module 20 Bảng 4.1 Danh sách linh kiện 24 Bảng 5.1 Đánh giá tổng méo hài điện áp ngõ điều khiển 43 BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH x TĨM TẮT Hiện nay, với phát triển mạnh mẽ khoa học cơng nghệ thiết bị, hệ thống thông minh dần tạo Các hệ thống điều khiển thông minh sử dụng rộng rãi đời sống, bật ứng dụng nhiều nói đến hệ thống thơng minh điều khiển thiết bị điện nhà nói đến thiết bị điện hộ gia đình không nhắc đến quạt máy Hiện xu hướng điều khiển số với module chuyên dụng module LED, module Wifi, Bluetooth, board điều khiển Arduino, Raspberry, … phát triển cách mạnh mẽ Nhờ mà việc điều khiển hệ thống trở lên thuận tiện dễ dàng nhiều Nội dung đề tài áp dụng kiến thức điện tử kiến thức vi điều khiển học để thiết kế hệ thống điều khiển tốc độ động quạt máy Hệ thống gồm mạch công suất điều khiển tốc độ động với điều khiều khiển trung tâm Arduino Uno R3 Không thay đổi tốc độ trạng thái động nút nhấn nút xoay mạch công suất mà cịn điều khiển thơng qua ứng dụng Android điện thoại thông minh giao tiếp với vi điều khiển thông qua module Bluetooth HC-05 Số liệu hiển thị LCD 16X2 giao diện ứng dụng cách trực quan, dễ nhìn giúp người sử dụng dễ dàng thấy trạng thái tốc độ quạt máy Tốc độ động bao gồm nhiều cấp số khác khiến người sử dụng thay đổi để phù hợp với yêu cầu thân BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xi 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: 15/06/2023, 21:54

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

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

Tài liệu liên quan