1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) điều khiển và giám sát thiết bị điện trong nhà

137 4 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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ ĐIỆN TRONG NHÀ GVHD: ThS NGUYỄN TRƯỜNG DUY SVTH: BÙI GIA THUYẾT MSSV: 09201050 SVTH: VŨ XUÂN TƯỜNG MSSV: 09201063 SKL 0 Tp Hồ Chí Minh, tháng 01/2017 an 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 - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ ĐIỆN TRONG NHÀ GVHD: ThS Nguyễn Trường Duy SVTH: Bùi Gia Thuyết MSSV: 09201050 SVTH: Vũ Xuân Tường MSSV: 09201063 Tp Hồ Chí Minh - 01/2017 an TRƯỜNG ĐH 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 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 10 tháng 01 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Chuyên ngành: Hệ đào tạo: Khóa: Bùi Gia Thuyết Vũ Xuân Tường Kỹ thuật Điện - Điện tử Đại học quy 2009 I TÊN ĐỀ TÀI: ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ ĐIỆN TRONG NHÀ Họ tên sinh viên: MSSV: 09201050 MSSV: 09201063 Mã ngành: Mã hệ: Lớp: 092010 II NHIỆM VỤ Các số liệu ban đầu: (ghi thơng số, tập tài liệu tín hiệu, hình ảnh,…) Nội dung thực hiện: (ghi nội dung cần thực phần tổng quan) III NGÀY GIAO NHIỆM VỤ: 10/10/2016 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 10/01/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS NGUYỄN TRƯỜNG DUY CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP ii an TRƯỜNG ĐH 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 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 10 tháng 01 năm 2017 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: BÙI GIA THUYẾT Lớp: 092010 Họ tên sinh viên 2: VŨ XUÂN TƯỜNG Lớp: 092010 MSSV: 09201050 MSSV: 09201063 Tên đề tài: ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ ĐIỆN TRONG NHÀ Tuần/ngày Tuần Nội dung Tuần Gặp GVHD nghe phổ biến yêu cầu Tiến hành chọn đồ án GVHD tiến hành xét duyệt đề tài Tuần Viết tóm tắt yêu cầu đề tài chọn Tuần Tiến hành thiết kế sơ đồ khối Tuần Tuần Thiết kế sơ đồ mạch Giải thích ngun lý mạch Tính tốn, chọn mua linh kiện Tuần Lập trình giao tiếp Tuần Thi cơng mạch in Tuần Tuần 10 Hồn chỉnh lập trình điều khiển Viết báo cáo Hoàn chỉnh báo cáo Tuần 11 In sách đồ án Xác nhận GVHD Tuần 12 Tuần 13 GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii an LỜI CAM ĐOAN Đề tài nhóm 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 Bùi Gia Thuyết Vũ Xuân Tường iv an LỜI CẢM ƠN Xin gửi lời cảm ơn chân thành đến quý thầy cô khoa Điện – Điện tử giảng dạy em suốt bốn năm học tạo điều kiện thuận lợi để em thực tốt đề tài Cảm ơn gia đình, cha mẹ nguồn động viên to lớn vật chất tinh thần suốt thời gian học hành, để em có tương lai, theo đuổi ước mơ nghiệp Đặc biệt cảm ơn thầy ThS NGUYỄN TRƯỜNG DUY tạo điều kiện hướng dẫn em cách học tập nghiên cứu để hoàn thành tốt đồ án tốt nghiệp Cuối xin chúc gia đình, bạn bè q thầy, nhiều sức khỏe thành công công việc Xin chân thành cảm ơn! Người thực đề tài Bùi Gia Thuyết Vũ Xuân Tường v an MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan iv Lời cảm ơn v Mục lục vi Liệt kê hình vẽ vii Liệt kê bảng vẽ viii Tóm tắt ix 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 giám sát thiết bị điện nhà 2.2 Giới thiệu phần cứng 2.2.1 Giới thiệu kit Arduino Mega2560 2.2.2 Màn hình hiển thị LCD 10 2.2.3 Các loại Module cảm biến 12 2.2.4 Đồng hồ thời gian thực RTC 18 2.2.5 Bộ truyền nhận Bluetooth 20 2.2.6 Các phương thức giao tiếp 22 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 27 3.1 Giới thiệu 27 3.2 Tính tốn thiết kế hệ thống 27 3.2.1 Thiết kế sơ đồ khối hệ thống 28 3.2.2 Tính tốn thiết kế mạch 29 3.2.2.1 Kết nối khối Arduino Mega2560 29 vi an 3.2.2.2 Kết nối khối cảm biến 31 3.2.2.3 Kết nối khối hiển thị 35 3.2.2.4 Kết nối module thời gian RTC 36 3.2.2.5 Thiết kế khối nút nhấn 36 3.2.2.6 Kết nối module Bluetooth 38 3.2.2.7 Thiết kế khối relay khênh 38 3.2.2.8 Thiết kế khối nguồn 39 3.2.3 Sơ đồ nguyên lý toàn mạch 41 CHƯƠNG THI CÔNG HỆ THỐNG 43 4.1 Giới thiệu 43 4.2 Thi công hệ thống 43 4.2.1 Thi công board mạch 43 4.2.2 Lắp ráp kiểm tra 46 4.3 Đóng gói thi cơng mơ hình 48 4.3.1 Đóng gói điều khiển 48 4.3.2 Thi cơng mơ hình 49 4.4 Lập trình hệ thống 51 4.4.1 Lưu đồ giải thuật 51 4.4.2 Phần mềm lập trình Arduino IDE 57 4.4.3 Phần mềm lập trình Arduino Studio 59 4.5 Hướng dẫn sử dụng, thao tác 70 4.5.1 Hướng dẫn sử dụng 70 4.5.2 Quy trình thao tác 77 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 79 5.1 Kết 79 5.2 Nhận xét 82 5.3 Đánh giá 83 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 85 6.1 Kết luận 85 6.2 Hướng phát triển 85 TÀI LIỆU THAM KHẢO 87 PHỤ LỤC 88 vi an LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1: Kit Arduino Mega256 Hình 2.2: Sơ đồ chân kit Arduino Mega2560 Hình 2.3: Hình dáng chân hình LCD 16x2 10 Hình 2.4: Hình dáng chân modul I2C LCD16x2 mặt trước 12 Hình 2.5: Hình dáng chân modul I2C LCD16x2 mặt sau 12 Hình 2.6: Module cảm biến đo nhiệt độ độ ẩm DHT11 13 Hình 2.7 Module cảm biến khí ga MQ2 13 Hình 2.8: Sơ đồ kết nối MQ2 14 Hình 2.9: Module cảm biến ánh sáng 15 Hình 2.10: Module cảm biến tốc độ động 16 Hình 2.11: Module cảm biến lưu lượng nước S201 17 Hình 2.12: Hai gói cấu tạo chip DS1307 18 Hình 2.13: Tổ chức nhớ DS1307 19 Hình 2.14: Module RTC tích hợp sẵn 20 Hình 2.15: Mặt trước mặt sau module HC-05 21 Hình 2.16: Bus I2C thiết bị ngoại vi 22 Hình 2.17: Kết nối thiết bị vào bus I2C 23 Hình 2.18: Phương thức truyền I2C 23 Hình 2.19: Khung truyền liệu chuẩn I2C 25 Hình 2.20: Tín hiệu tương đương UART RS232 25 Hình 2.21: Khung truyền truyền nhận UART 26 Hình 3.1: Sơ đồ khối tồn hệ thống 28 Hình 3.2: Sơ đồ kết nối khối Arduino Mega2560 29 Hình 3.3: Sơ đồ kết nối khối cảm biến 31 Hình 3.4: Kết nối module cảm biến DHT11 32 Hình 3.5: Kết nối module cảm biến khí gas MQ2 33 Hình 3.6: Kết nối module cảm biến ánh sáng 33 Hình 3.7: Kết nối module đo tốc độ động 34 Hình 3.8: Kết nối module cảm biến lưu lượng nước 35 Hình 3.9: Sơ đồ kết nối khối hiển thị 35 Hình 3.10: Sơ đồ kết nối module thơi gian thực RTC 36 vii an Hình 3.11: Sơ đồ mạch khối nút nhấn 37 Hình 3.12: Sơ đồ kết nối module Bluetooth 38 Hình 3.13: Sơ đồ mạch khối relay kênh 39 Hình 3.14: Khối nguồn thiết bị 41 Hình 3.15: Sơ đồ nguyên lý toàn mạch 41 Hình 4.1: Sơ đồ mạch in khối nút nhấn 43 Hình 4.2: Sơ đồ mạch in khối relay kênh 44 Hình 4.3: Sơ đồ bố trí linh kiện khối relay kênh 45 Hình 4.4: Hình mặt khối nút nhấn 46 Hình 4.5: Hình mặt khối relay kênh 47 Hình 4.6: Hình mặt khối relay kênh 47 Hình 4.7: Hình sơ đóng gói điều khiển 48 Hình 4.8: Hình đóng gói điều khiển 48 Hình 4.9: Mơ hình sơ hệ thống 49 Hình 4.10: Mơ hình hồn thành hệ thống 50 Hình 4.11: Lưu đồ chương trình 51 Hình 4.12: Lưu đồ chương trình Mode 52 Hình 4.13: Lưu đồ chương trình RTC 53 Hình 4.14: Lưu đồ chương trình điều khiển thiết bị 54 Hình 4.15: Lưu đồ chương trình test 55 Hình 4.16: Lưu đồ chương trình giám sát 56 Hình 4.17: Lưu đồ chương trình điện thoại 57 Hình 4.18: Giao diện download IDE 58 Hình 4.19: Chọn just download để tải IDE về máy tính 58 Hình 4.20: Chọn thư mục lưu file tải về 59 Hình 4.21: Giải nén thư mục tải về 59 Hình 4.22: Giao diện tải Androi Studio 60 Hình 4.23: Chọn điều khoản tải Androi Studio 61 Hình 4.24: Chọn next để cài đặt file 61 Hình 4.25: Đánh dấu vào thành phần bạn muốn cài đặt 62 Hình 4.26: Chọn I Agree để chấp nhận cài đặt 62 Hình 4.27: Chọn ổ đĩa để cài đặt 63 Hình 4.28: Chọn dung lượng nhớ cho HAXM 63 vii an PHỤ LỤC android:id="@+id/textView8" android:layout_gravity="center_horizontal" /> BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 113 PHỤ LỤC c Chương trình MainActivity.java package com.example.buigiathuyet.datn_app; import android.app.ProgressDialog; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import android.os.Handler; import android.os.Vibrator; import android.speech.tts.TextToSpeech; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Locale; import java.util.Set; import java.util.UUID; public class MainActivity extends AppCompatActivity { int enable=0; BluetoothAdapter BLT = null; Set BLTPaired; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 114 PHỤ LỤC BluetoothSocket BLTthucthi = null; private ProgressDialog progress; static final UUID myUUID = UUID.fromString ("00001101-0000-1000-8000-00805F9B34FB"); String Address = null; private boolean isBtConnected = false; private InputStream inStream = null; boolean stopWorker = false; byte delimiter = 10; int readBufferPosition = 0; byte[] readBuffer = new byte[1024]; Handler handler = new Handler(); ArrayListarrList=null; ArrayAdapteradapterr=null; String capnhat; LinearLayout LNL; Button KetNoi; ImageButton SW1; ImageButton SW2; ImageButton SW3; TextView NhietDo,DoAm; ListView HienThiKQ; ArrayList MangHinh; int DL1=0; int DL2=0; int DL3=0; TextToSpeech TextVoice; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LNL=(LinearLayout)findViewById(R.id.LN); KetNoi = (Button)findViewById(R.id.buttonKetNoi); SW1=(ImageButton)findViewById(R.id.switch1); SW2=(ImageButton)findViewById(R.id.switch2); SW3=(ImageButton)findViewById(R.id.switch3); NhietDo=(TextView)findViewById(R.id.tvND); DoAm=(TextView)findViewById(R.id.tvDA); HienThiKQ=(ListView)findViewById(R.id.listViewKQ); MangHinh = new ArrayList(); MangHinh.add(R.drawable.on); MangHinh.add(R.drawable.offf); SW1.setImageResource(MangHinh.get(1)); SW2.setImageResource(MangHinh.get(1)); SW3.setImageResource(MangHinh.get(1)); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 115 PHỤ LỤC arrList=new ArrayList(); adapterr=new ArrayAdapter(this,android.R.layout.simple_list_item_1,arrList); KiemTraVaBatBlueTooth(); TextVoice = new TextToSpeech(getApplication(), new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { TextVoice.setLanguage(Locale.ENGLISH); } }); } @Override protected void onStart() { super.onStart(); KetNoi.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ThietBiDaKetNoi(); } }); SW3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(enable==1) { if(DL3==1) { SW3.setImageResource(MangHinh.get(1)); GuiDuLieu(30); } else if(DL3==0) { SW3.setImageResource(MangHinh.get(0)); GuiDuLieu(31); } } else{msg("Kết nối với Bluetooth trước");} } }); SW2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(enable==1) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 116 PHỤ LỤC { if(DL2==1) { SW2.setImageResource(MangHinh.get(1)); GuiDuLieu(20); } else if(DL2==0) { SW2.setImageResource(MangHinh.get(0)); GuiDuLieu(21); } } else{msg("Kết nối với Bluetooth trước");} } }); SW1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(enable==1) { if(DL1==1) { SW1.setImageResource(MangHinh.get(1)); GuiDuLieu(10); } else if(DL1==0) { SW1.setImageResource(MangHinh.get(0)); GuiDuLieu(11); } } else{msg("Kết nối với Bluetooth trước");} } }); } @Override protected void onDestroy() { super.onDestroy(); try { BLTthucthi.close(); BLT.disable(); } catch (IOException e) { e.printStackTrace(); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 117 PHỤ LỤC private void GuiDuLieu(int MaXY) { if (BLTthucthi!= null) { try { BLTthucthi.getOutputStream().write(MaXY); } catch (IOException e) { msg("gửi bị lỗi"); } } } private void KiemTraVaBatBlueTooth() { BLT = BluetoothAdapter.getDefaultAdapter(); if(BLT == null) { //thiết bị khơng hỗ trợ msg("Thiết bị khơng hỗ trợ Bluetooth"); finish();//kết thúc apk Kết thúc ứng dụng } else if(!BLT.isEnabled()) { //Hỏi ý kiến người dùng có bật bluetooth hay không? Intent turnBTon = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(turnBTon,1); } } private void ThietBiDaKetNoi() { BLTPaired = BLT getBondedDevices(); ArrayList danhsach = new ArrayList(); if (BLTPaired.size()>0) { for(BluetoothDevice bt : BLTPaired) { danhsach.add(bt.getName() + "\n" + bt.getAddress()); } } else { msg("Khơng có thiết bị pair"); } BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP an 118 PHỤ LỤC final ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, danhsach); HienThiKQ.setAdapter(adapter); HienThiKQ.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { String info = ((TextView) view).getText().toString(); String address = info.substring(info.length() - 17); Address=address; new ConnectBT().execute(); //Gọi lớp kết nối bluetooth tự tạo } }); } private class ConnectBT extends AsyncTask // UI thread { private boolean ConnectSuccess = true; //if it's here, it's almost connected @Override protected void onPreExecute() { //hiện hộp thoại đợi progress = ProgressDialog.show(MainActivity.this, "Đang kết nối", "xin đợi "); } @Override //trong hộp thoại "đang kết nối " diện việc kết nối thiết bị hoàn tất protected Void doInBackground(Void devices) { try { if ((BLTthucthi == null) || (!isBtConnected)) { //xác định bluetooth thiết bị điẹn thoại; BLT = BluetoothAdapter.getDefaultAdapter(); //connects to the device's address and checks if it's available BluetoothDevice dispositivo = BLT.getRemoteDevice(Address); //create a RFCOMM (SPP) connection BLTthucthi = dispositivo.createInsecureRfcommSocketToServiceRecord(myUUID); BluetoothAdapter.getDefaultAdapter().cancelDiscovery(); BLTthucthi.connect();//Bắt đầu kết nối } } catch (IOException e) { //if the try failed, you can check the exception here BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 119 PHỤ LỤC ConnectSuccess = false; } return null; } @Override //after the doInBackground, it checks if everything went fine protected void onPostExecute(Void result) { super.onPostExecute(result); if (!ConnectSuccess) { msg("Connection Failed Is it a SPP Bluetooth? Try again."); Vibrator VV = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); VV.vibrate(1000); TextVoice.speak("Connection Failed Please shutdown application and try again.", TextToSpeech.QUEUE_FLUSH, null); //finish(); } else { KetNoi.setText("Connected"); msg("Đã kết nối"); TextVoice.speak("Connected", TextToSpeech.QUEUE_FLUSH, null); isBtConnected = true; KetNoi.setVisibility(View.GONE); HienThiKQ.setVisibility(View.GONE); beginListenForData(); GuiDuLieu(45); enable=1; } progress.dismiss(); } } public void beginListenForData() { try { inStream = BLTthucthi.getInputStream(); } catch (IOException e) { } Thread workerThread = new Thread(new Runnable() { @Override public void run() { while(!Thread.currentThread().isInterrupted()&& !stopWorker) { try { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 120 PHỤ LỤC int byteAvailable = inStream.available(); if(byteAvailable>0) { byte[] packetBytes = new byte[byteAvailable]; inStream.read(packetBytes); for(int i=0;i

Ngày đăng: 02/02/2023, 09:06

Xem thêm: