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

(Đồ án hcmute) thiết kế và thi công mô hình phát hiện nồng độ cồn

122 2 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 122
Dung lượng 5,9 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ - TRUYỀN THÔNG THIẾT KẾ VÀ THI CƠNG MƠ HÌNH PHÁT HIỆN NỒNG ĐỘ CỒN GVHD: Nguyễn Thanh Hải SVTT1: Hồ Quang Phúc MSSV: 13141240 SVTT2: Vũ Phúc Khang MSSV: 13141141 SKL 0 Tp Hồ Chí Minh, tháng 08/2017 an LỜI CAM ĐOAN Chúng cam đoan Đồ án tốt nghiệp cơng trình nghiên cứu thân dƣới hƣớng dẫn Tiến sĩ Nguyễn Thanh Hải Các kết công bố Đồ án tốt nghiệp “Thiết kế thi cơng mơ hình phát nồng độ cồn” trung thực không chép từ cơng trình khác Nhóm thực đề tài Hồ Quang Phúc – Vũ Phúc Khang iii an LỜI CẢM ƠN Lời cảm ơn xin gửi tới thầy Nguyễn Thanh Hải, thầy bận công việc giảng dạy, nhƣng thầy đồng ý hƣớng dẫn đồ án tốt nghiệp cho nhóm chúng tơi Trong q trình làm đồ án, thầy bảo, nhắc nhở để vƣợt qua khó khăn hồn thành đồ án tiến độ Bên cạnh đó, với lời nhận xét, góp ý thầy giúp chúng tơi có định hƣớng đắn thực đề tài Chúng tơi xin bày tỏ lịng biết ơn sâu sắc tới quý thầy cô khoa ĐiệnĐiện Tử Quý thầy cô ngƣời dạy dỗ, truyền đạt cho từ kiến thức nhất, đồng thời thƣờng xuyên giúp đỡ nhiệt tình chúng tơi có khó khăn vấn đề nghiên cứu đề tài, khơng cịn tạo điều kiện thuận lợi để chúng tơi có đƣợc mơi trƣờng, điều kiện nghiên cứu tốt Bên cạnh đó, chúng tơi xin gửi lời cảm ơn tới thầy Dƣơng Văn Bình ngƣời trực tiếp giúp đỡ giải đáp thắc mắc nhƣ góp ý cho chúng tơi hồn thành đồ án Cuối cùng, không quên gửi lời cảm ơn sâu sắc tới gia đình, ngƣời thân bạn bè nguồn động viên to lớn hỗ trợ mặt tinh thần nhƣ vật chất để có thêm động lực tự tin để hồn thành đồ án Nhóm thực đề tài Hồ Quang Phúc – Vũ Phúc Khang iv an MỤC LỤC Trang NHIỆM VỤ ĐỒ ÁN i LỊCH TRÌNH ii LỜI CAM ĐOAN iii LỜI CẢM ƠN iv MỤC LỤC v DANH MỤC CÁC TỪ VIẾT TẮT vii DANH MỤC HÌNH VẼ viii DANH MỤC BẢNG BIỂU xi TÓM TẮT xii 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 CẢM BIẾN CỒN MQ3 2.1.1 Khái niệm cảm biến 2.1.2 Cảm biến MQ3 2.1.3 Cấu tạo cảm biến 2.1.4 Nguyên lý hoạt động 2.2 VI ĐIỀU KHIỂN ARDUINO NANO 2.2.1 Khái niệm vi điều khiển 2.2.2 Board vi điều khiển Arduino Nano 2.2.3 Bộ ADC Arduino Nano 2.2.4 Timer/Counter Arduino Nano 2.2.5 Giao tiếp UART Arduino Nano 2.3 GIỚI THIỆU VỀ BLUETOOTH 10 2.3.1 Khái niệm Bluetooth 10 2.3.2 Các đặc điểm Bluetooth 11 2.3.3 Ƣu nhƣợc điểm Bluetooth 12 2.3.4 Module Bluetooth HC-06 12 v an 2.4 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID 14 2.4.1 Android gì? 14 2.4.2 Ƣu nhƣợc điểm Android 15 2.4.3 Kiến trúc hệ điều hành Android 16 CHƢƠNG TÍNH TỐN VÀ THIẾT KẾ 21 3.1 GIỚI THIỆU 21 3.2 TÍNH TỐN VÀ THIẾT KẾ 21 3.2.1 Thiết kế sơ đồ khối hệ thống 21 3.2.2 Tính tốn thiết kế mạch 22 3.2.3 Sơ đồ nguyên lý toàn mạch 38 CHƢƠNG THI CÔNG HỆ THỐNG 39 4.1 GIỚI THIỆU 39 4.2 THI CÔNG HỆ THỐNG 39 4.2.1 Thi công bo mạch 39 4.2.2 Lắp ráp kiểm tra 41 4.3 ĐĨNG GĨI VÀ THI CƠNG MƠ HÌNH 42 4.3.1 Đóng gói điều khiển 42 4.3.2 Thi công mô hình 44 4.4 LẬP TRÌNH HỆ THỐNG 45 4.4.1 Lƣu đồ giải thuật 45 4.4.2 Phần mềm lập trình cho vi điều khiển 56 4.4.3 Phần mềm lập trình cho điện thoại 57 4.5 HƢỚNG DẪN SỬ DỤNG 63 CHƢƠNG KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ 73 5.1 KẾT QUẢ 73 5.2 NHẬN XÉT 74 5.3 ĐÁNH GIÁ 75 CHƢƠNG KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 78 6.1 KẾT LUẬN 78 6.2 HƢỚNG PHÁT TRIỂN 79 TÀI LIỆU THAM KHẢO PHỤ LỤC vi an DANH MỤC CÁC TỪ VIẾT TẮT RH: Relative Humidity RF: Radio Frequency NFC: Near Field Communication LoRa: Long Range TI: Texas Intruments IC: Integated Circuit I/O: Input/Output MCU: Micro Controller Unit UART: Universal Asynchronous Receiver-Transmitter PC: Personal Computer PDA: Personal Digital Assistant AT: Attention USB: Universal Serial Bus VM: Virtual Machine API: Application Programming Interface ID: Identification EN: Enable LCD: Liquid Crytal Dislay GLCD: Graphic Liquid Crytal Dislay Op-Amp: Operational Amplifier IDE: Integrated Development Environment RAM: Random Access Memory vii an DANH MỤC HÌNH ẢNH Hình Trang Hình 2.1 Cảm biến MQ3 Hình 2.2 Sơ đồ chân cảm biến MQ3 Hình 2.3 Lõi nhơm chƣa đun nóng Hình 2.4 Lõi nhơm sau đƣợc đun nóng Hình 2.5 Hệ thống vi điều khiển Hình 2.6 Sơ đồ chức chân Arduino Nano Hình 2.7 Giao tiếp hệ thống dùng chuẩn UART Hình 2.8 Nguyên lý hoạt động chuẩn UART 10 Hình 2.9 Biểu tƣợng bluetooth 10 Hình 2.10 Ứng dụng Bluetooth điều khiển thiết bị ngoại vi 11 Hình 2.11 Module Bluetooth HC-06 13 Hình 2.12 Các phiên Android 15 Hình 2.13 Kiến trúc ngăn xếp hệ thống Android 17 Hình 3.1 Sơ đồ khối hệ thống 21 Hình 3.2 Ứng dụng mơ hình nón bảo hiểm 22 Hình 3.3 Sơ đồ kết nối cảm biến với vi điều khiển 22 Hình 3.4 Module cảm biến MQ3 23 Hình 3.5 Sơ đồ nối dây module cảm biến MQ3 23 Hình 3.6 Biểu đồ đặc tuyến quan hệ điện trở cảm biến với nồng độ số khí có khơng khí điều kiện chuẩn 25 Hình 3.7 Hai bảng liệu mẫu 27 Hình 3.8 Kết sau chạy mô MATLAB 28 Hình 3.9 Sai số thu đƣợc sau mô 29 Hình 3.10 Phƣơng trình đƣờng đặc tuyến thu đƣợc 29 Hình 3.11 Sơ đồ nối dây vi điều khiển Broad Arduino Nano 30 Hình 3.12 Sơ đồ nối dây mạch nạp CH340 Arduino Nano 31 Hình 3.13 Sơ đồ nguyên lý khối Module Bluetooth 31 Hình 3.14 Module Bluetooth HC-06 thực tế 32 Hình 3.15 Led hai màu ba chân thực tế 32 Hình 3.16 Sơ đồ hai loại led hai màu 32 Hình 3.17 Sơ đồ kết nối led hai màu Cathode chung với MCU 33 Hình 3.18 Pin sạc Lithium thị trƣờng 34 Hình 3.19 IC ổn áp 7805 sơ đồ bên 34 viii an Hình 3.20 Sơ đồ kết nối pin với IC7805 35 Hình 3.21 Kí hiệu Op-Amp 35 Hình 3.22 Sơ đồ khối báo nguồn lƣu động 36 Hình 3.23 Sơ đồ ngun lý tồn mạch 38 Hình 4.1 Sơ đồ mạch in khối xử lý trung tâm 39 Hình 4.2 Sơ đồ mạch in khối nguồn 40 Hình 4.3 Hình ảnh thực tế khối nguồn sau thi công 41 Hình 4.4 Hình ảnh thực tế khối xử lý trung tâm 42 Hình 4.5 Vỏ mica khối nguồn 43 Hình 4.6 Đóng gói khối nguồn 43 Hình 4.7 Vỏ mica khối xử lý trung tâm 44 Hình 4.8 Đóng gói khối xử lý trung tâm 44 Hình 4.9 Nón bảo hiểm ¾ đầu 44 Hình 4.10 Mơ hình thực tế sau thi cơng 45 Hình 4.11 Lƣu đồ chƣơng trình 46 Hình 4.12 Lƣu đồ chƣơng trình ngắt báo tràn Timer1 48 Hình 4.13 Lƣu đồ chƣơng trình ngắt báo tràn Timer2 49 Hình 4.14 Lƣu đồ chƣơng trình đo nồng độ cồn 50 Hình 4.15 Lƣu đồ chƣơng trình lập trình Android 51 Hình 4.16 Lƣu đồ nút nhấn đăng ký 52 Hình 4.17 Lƣu đồ nút nhấn đăng nhập 53 Hình 4.18 Lƣu đồ xử lý liệu cảnh báo 54 Hình 4.19 Lƣu đồ nút nhấn kết nối 55 Hình 4.20 Giao diện phần mềm Arduino IDE 56 Hình 4.21 Phần mềm Android Studio 58 Hình 4.22 Cấu trúc trang thiết kế giao diện Tab Design 58 Hình 4.23 Cấu trúc trang thiết kế giao diện Tab Text 60 Hình 4.24 Lựa chọn thiết bị cài đặt 60 Hình 4.25 Giao diện hình đăng nhập 62 Hình 4.26 Giao diện hình đăng ký 62 Hình 4.27 Giao diện hình hiển thị 63 Hình 4.28 Các bƣớc cài đặt Ứng dụng điện thoại 64 Hình 4.29 Bốn led báo nguồn sáng 64 Hình 4.30 Led báo khối trung tâm cảm biến sáng 64 Hình 4.31 Giao diện khởi động Ứng dụng 65 ix an Hình 4.32 Lỗi đăng nhập không thành công 65 Hình 4.33 Giao diện trang đăng ký 66 Hình 4.34 Lỗi tạo tài khoản khơng thành cơng 66 Hình 4.35 Đăng ký tài khoản thành công 67 Hình 4.36 Giao diện đăng nhập thành công 67 Hình 4.37 Led báo mạch sẵn sàng hoạt động 68 Hình 4.38 Giao diện nồng độ cồn bình thƣờng 68 Hình 4.39 Cảnh báo nồng độ cồn vƣợt ngƣỡng cho phép 69 Hình 4.40 Cảnh báo nồng độ cồn vƣợt ngƣỡng khẩn cấp 69 Hình 4.41 Led báo nhấp nháy màu đỏ nón bảo hiểm 70 Hình 4.42 Giao diện lịch sử nồng độ cồn 70 Hình 4.43 Xóa lịch sử 71 Hình 4.44 Giao diện kết thúc Ứng dụng 71 Hình 4.45 Thông tin hƣớng dẫn sử dụng 72 Hình 5.1 Kết mơ hình sau thi cơng 73 Hình 5.2 Ứng dụng SmartPhone 73 Hình 5.3 Đƣờng đặc tuyến từ datasheet nhà sản xuất 75 Hình 5.4 Kết sau mơ 76 Hình 5.5 Sai số thu đƣợc sau mô 76 Hình 5.6 Bốn led báo dung lƣợng pin lúc đầy yếu 77 x an DANH MỤC BẢNG BIỂU Bảng Trang Bảng 2.1 Thông số kỹ thuật cảm biến MQ3 Bảng 3.1 Giá trị R S đo mơi trƣờng điều kiện phịng 26 Bảng 3.2 Liệt kê điện áp dòng linh kiện sử dụng mạch 33 Bảng 4.1 Danh sách linh kiện 40 Bảng 4.2 Bảng giá trị điện áp thực tế lý thuyết khối nguồn 41 Bảng 4.3 Bảng phân bố tài nguyên Project 59 xi an PHỤ LỤC android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.phucho.myapplication.Display" android:weightSum="1"> /> BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH an PHỤ LỤC Code file Dislay.java: package com.example.phucho.myapplication; import android.Manifest; import android.app.AlertDialog; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.database.Cursor; import android.graphics.Color; import android.media.MediaPlayer; import android.os.Message; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Method; import java.util.UUID; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.content.Intent; import android.os.Build; import android.os.Handler; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH an PHỤ LỤC import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import java.util.Calendar; import android.widget.TextView; import android.widget.Toast; import android.os.Vibrator; import android.telephony.SmsManager; import android.widget.ToggleButton; import android.content.ActivityNotFoundException; import android.net.Uri; import com.google.android.gms.appindexing.Action; import com.google.android.gms.appindexing.AppIndex; import com.google.android.gms.appindexing.Thing; import com.google.android.gms.common.api.GoogleApiClient; import static com.example.phucho.myapplication.R.*; public class Display extends AppCompatActivity { private static final String TAG = "bluetooth2"; ToggleButton btn_chophep; ImageView img_xemlichsu; TextView txt_canhbao, txt_nongdo, txt_status, txt_user; Handler h; boolean tt = false; boolean tt_mess = false,tt_call=false; final int RECIEVE_MESSAGE = 1; private BluetoothAdapter btAdapter = null; private BluetoothSocket btSocket = null; private StringBuilder sb = new StringBuilder(); private ConnectedThread mConnectedThread; CoSoDuLieu myDb; private static final UUID MY_UUID = UUID.fromString("00001101-00001000-8000-00805F9B34FB"); private static String address = "20:16:10:28:81:58"; String num; float AlcholValueActual; Vibrator v; private GoogleApiClient client; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(layout.activity_display); myDb = new CoSoDuLieu(this); final String username = getIntent().getStringExtra("UserName"); num = getIntent().getStringExtra("NumberPhone"); txt_user = (TextView) findViewById(id.txt_user); final TextView txt_sdt = (TextView) findViewById(id.txt_sdt); txt_user.setText(username); txt_sdt.setText(num); img_xemlichsu=(ImageView)findViewById(id.img_xemlichsu); btn_chophep = (ToggleButton) findViewById(id.btn_chophep); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH an PHỤ LỤC txt_status = (TextView) findViewById(id.txt_status); txt_nongdo = (TextView) findViewById(id.txt_nongdo); txt_canhbao = (TextView) findViewById(id.txt_canhbao); v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); final MediaPlayer nhac = MediaPlayer.create(Display.this, raw.translate); ImageView img_logout = (ImageView)findViewById(id.img_logout); h = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case RECIEVE_MESSAGE: byte[] readBuf = (byte[]) msg.obj; String strIncom = new String(readBuf, 0, msg.arg1); sb.append(strIncom); int endOfLineIndex = sb.indexOf("~"); if (endOfLineIndex > 0) { String sbprint = sb.substring(0, endOfLineIndex); if (sbprint.charAt(0) == '#') { txt_nongdo.setText(sbprint.substring(1, 6) + " mg/l"); AlcholValueActual = Float.parseFloat(sbprint.substring(1, 5)); if (AlcholValueActual < 0.25) { txt_canhbao.setText("Nồng độ cồn thể bạn chƣa vƣợt mức cho phép Bạn nên cân nhắc việc điều khiển phƣơng tiện giao thông."); v.vibrate(0); txt_nongdo.setTextColor(Color.BLACK); tt_mess = false; tt_call= false; if (tt) { nhac.pause(); tt = false; } mConnectedThread.write("a"); } else if ((AlcholValueActual>=0.25)&& (AlcholValueActual

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

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

TÀI LIỆU LIÊN QUAN