Thiết kế bãi giữ xe thông minh dạng trụ tròn và chế tạo mô hình

80 12 0
Thiết kế bãi giữ xe thông minh dạng trụ tròn và chế tạo mô hình

Đ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

Đồ án Tốt nghiệp là một trong những học phần bắt buộc của sinh viên ngành Cơ Điện Tử nói riêng cũng như sinh viên khối ngành kĩ thuật nói chung Để thiết kế hoàn chỉnh một cơ cấu một cụm chi tiết máy hay một máy thì đòi hỏi sinh viên cần phải có hiểu biết và nắm chắc các kiến thức về lĩnh vực cơ khí cũng như điện tử Đây là điều kiện thuận lợi cho nhóm tác giả được ứng dụng các kiến thức đã học vào thực tế Cuộc sống gắn liền với sự tiện lợi được sử dụng các dụng cụ máy móc hiện đại Đối với các nước phát triển công nghệ tự động hóa được áp dụng vào nhiều lĩnh vực khác nhau những công việc thường được giúp đỡ bởi những máy móc hiện đại Bãi giữ xe thông minh giải quyết được vấn đề các phương tiện giao thông đặc biệt là xe ô tô gia tăng nhanh chóng Đối với nước ta bãi giữ xe thông minh còn khá mới Trong tương lai cùng với sự phát triển của đất nước thì việc di chuyển bằng xe ô tô ngày càng được sử dụng nhiều để thay thế cho xe gắn máy Bên cạnh đó dân số tăng lên nhanh chóng ở các thành phố lớn làm quỹ đất ngày càng hạn chế Do vậy bãi đỗ xe thông minh dạng trụ tròn sẽ là một lựa chọn hợp lí để thay thế các bãi giữ xe thông thường

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ BÃI GIỮ XE THƠNG MINH DẠNG TRỤ TRỊN VÀ CHẾ TẠO MƠ HÌNH Người hướng dẫn: Sinh viên thực hiện: TS ĐẶNG PHƯỚC VINH TRƯƠNG ĐĂNG ÂN NGUYỄN LÊ HUY Đà Nẵng, 2019 TÓM TẮT Tên đề tài: Thiết kế bãi giữ xe thơng minh dạng trụ trịn chế tạo mơ hình Sinh viên thực hiện: Trương Đăng Ân Số thẻ SV: 101140130 Lớp 14CDT1 Nguyễn Lê Huy Số thẻ SV: 101140144 Lớp 14CDT1 Đồ án Tốt nghiệp học phần bắt buộc sinh viên ngành Cơ Điện Tử nói riêng sinh viên khối ngành kĩ thuật nói chung Để thiết kế hoàn chỉnh cấu, cụm chi tiết máy hay máy địi hỏi sinh viên cần phải có hiểu biết nắm kiến thức lĩnh vực khí điện tử Đây điều kiện thuận lợi cho nhóm tác giả ứng dụng kiến thức học vào thực tế Cuộc sống gắn liền với tiện lợi, sử dụng dụng cụ, máy móc đại Đối với nước phát triển cơng nghệ tự động hóa áp dụng vào nhiều lĩnh vực khác nhau, công việc thường giúp đỡ máy móc đại Bãi giữ xe thông minh giải vấn đề phương tiện giao thông, đăc biệt xe ô tơ gia tăng nhanh chóng C C R L T Đối với nước ta bãi giữ xe thông minh Trong tương lai, với phát triển đất nước việc di chuyển xe ô tô ngày sử dụng nhiều để thay cho xe gắn máy Bên cạnh đó, dân số tăng lên nhanh chóng thành phố lớn làm quỹ đất ngày hạn chế Do vậy, bãi đỗ xe thơng minh dạng trụ trịn lựa chọn hợp lí để thay bãi giữ xe thông thường U D Với đề đặt trên, nhóm tác giả định chọn đề tài tốt nghiệp “Thiết kế bãi giữ xe thông minh dạng trụ trịn chế tạo mơ hình” làm đề tài nghiên cứu ĐẠI HỌC ĐÀ NẴNG CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự - Hạnh phúc KHOA CƠ KHÍ NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP TT Họ tên sinh viên Số thẻ SV Lớp Ngành Trương Đăng Ân 101140130 14CDT1 Kỹ thuật điện tử Nguyễn Lê Huy 101140144 14CDT1 Kỹ thuật điện tử Tên đề tài đồ án: THIẾT KẾ BÃI GIỮ XE THƠNG MINH DẠNG TRỤ TRỊN VÀ CHẾ TẠO MƠ HÌNH Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ kết thực Các số liệu liệu ban đầu: Nội dung phần thuyết minh tính tốn: C C R L T Chương 1: Giới thiệu tổng quan đề tài Chương 2: Tính tốn thiết kế phần khí Chương 3: Tính tốn thiết kế hệ thống điều khiển Chương 4: Kết luận Các vẽ đồ thị: Bản vẽ sơ đồ động học Bản vẽ mạch thuật toán Bản vẽ cụm chi tiết Bản vẽ tổng thể mơ hình Bản vẽ khung mơ hình Ngày giao nhiệm vụ đồ án: Ngày hoàn thành đồ án: U D : A0 : A0 : A0 : A0 : A0 01/02/2019 01/06/2019 Đà Nẵng, ngày 01 tháng 02 năm 2019 Trưởng Bộ môn……………………… Người hướng dẫn TS Đặng Phước Vinh LỜI NÓI ĐẦU Hiện đất nước ta giai đoạn phát triển, bên cạnh phát triển kinh tế thị trường, an ninh quốc phòng phát triển mạnh mẽ rộng lớn khoa học kỹ thuật Các công nghệ thuộc lĩnh vực khác nhờ đời để đáp ứng nhu cầu xã hội để phù hợp với q trình cơng nghiệp hóa đại hóa đất nước Hiện kĩ thuật điện tử ngày áp dụng nhiều vào thực tiễn đưa vào giảng dạy rộng rãi trường Đại học Cao đẳng nước Trong trường Đại học Bách khoa - Đà Nẵng trường lớn nước đầu tư phát triển lĩnh vực ứng dụng vào đời sống Với việc hồn thành mơn học kỹ thuật vi điều khiển, hệ thống điện tử, đồ án hệ thống điện tử chúng tơi có chuẩn bị tốt để bắt tay vào đồ án tốt nghiệp Nhận hướng dẫn tận tình thầy Đặng Phước Vinh, chia sẻ kiến thức bạn anh chị nhiều thầy khác, nhóm bắt tay vào việc nghiên cứu thực đề tài “ Thiết kế bãi giữ xe thơng minh dạng trụ trịn C C chế tạo mơ hình ” R L T U D Do khả tiếp thu kiến thức hạn chế thời gian có hạn nên đồ án nhóm khơng thể tránh khỏi sai sót hình thức nội dung, mong nhận góp ý để đề tài hồn thiện Chúng xin chân thành cảm ơn thầy giúp đỡ thời gian thực đồ án Đà Nẵng, ngày tháng năm 2019 Tác giả Trương Đăng Ân – Nguyễn Lê Huy i LỜI CAM ĐOAN Chúng xin cam đoan: Những nội dung đồ án thực hướng dẫn trực tiếp TS Đặng Phước Vinh Mọi tham khảo đồ án trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian dối, xin chịu hoàn toàn trách nhiệm Tác giả C C R L T Trương Đăng Ân – Nguyễn Lê Huy U D ii MỤC LỤC TÓM TẮT NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP LỜI NÓI ĐẦU i LỜI CAM ĐOAN ii MỤC LỤC iii DANH SÁCH CÁC BẢNG, HÌNH VẼ v CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI 1.1 Tính cấp thiết đồ án 1.2 Mục tiêu đồ án 1.3 Đối tượng phạm vi nghiên cứu C C 1.4 Nhiệm vụ đồ án R L T 1.5 Phân tích lựa chọn giải pháp bãi giữ xe tô tự động 1.5.1 Các giải pháp bãi giữ xe ô tô tự động 1.5.2 Phân tích lựa chọn phương án U D 1.6 Nhiệm vụ luận văn 1.6.1 Tóm tắt nguyên lý hoạt động bãi giữ xe ô tô tự động 1.6.2 Các vấn đề cần giải quyết: 1.6.3 Phương hướng giải CHƯƠNG 2: TÍNH TỐN VÀ THIẾT KẾ PHẦN CƠ KHÍ 2.1 Sơ đồ động học 2.2 Tính tốn thiết kế cụm chi tiết bàn xoay 10 2.2.1 Thiết kế khí 10 2.2.2 Tính chọn động 10 2.3 Tính tốn thiết kế cụm chi tiết nâng hạ xe: 11 2.3.1 Thiết kế khí: 11 2.3.2 Tính chọn động cơ: 12 2.4 Tính tốn thiết kế cụm chi tiết gửi lấy xe: 13 iii 2.4.1 Thiết kế khí: 13 2.4.2 Tính chọn động cơ: 14 2.5 Thiết kế mơ hình 14 2.6 Mơ hình thực tế 16 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN 17 3.1 Sơ đồ tổng quát 17 3.2 Tổng quan phần mềm thiết bị sử dụng 18 3.2.1 RFID 18 3.2.2 Arduino: 19 3.2.3 Mạch điều khiển 22 3.2.4 Cảm biến màu sắc TCS3200 24 C C 3.2.5 Cảm biến tiệm cận (cảm biến từ) 26 3.2.6 Công tắc hành trình 27 R L T 3.2.7 Phần mềm Visual Studio 28 3.3 Sơ đồ mạch điện 35 U D 3.4 Chương trình điều khiển 36 3.4.1 Xử lí ảnh 36 3.4.2 Lập trình Arduino sở liệu Access 41 3.4.3 Thiết kế giao diện người dùng 42 CHƯƠNG 4: KẾT LUẬN 47 4.1 Kết đạt 47 4.2 Hạn chế: 47 4.3 Hướng phát triển đề tài: 47 TÀI LIỆU THAM KHẢO 48 iv DANH SÁCH CÁC BẢNG, HÌNH VẼ Bảng 3.1 Nguyên lý nhận diện màu sắc Hình 1.1 Giải pháp bãi giữ xe tơ dạng xe di chuyển vịng quanh tịa nhà Hình 1.2 Giải pháp bãi giữ xe tơ xếp chồng Hình 1.3 Giải pháp bãi giữ xe tơ tự động dạng tịa nhà vng Hình 1.4 Giải pháp bãi giữ xe tơ tự động tịa nhà dạng hình trụ Hình 2.1 Sơ đồ động bàn xoay Hình 2.2 Sơ đồ động cấu nâng hạ Hình 2.3 Sơ đồ động cấu cất/lấy Hình 2.4 Cụm chi tiết bàn xoay C C Hình 2.5 Động gạt nước điện chiều 12V-50W R L T Hình 2.6 Các kích thước cụm chi tiết tang cáp Hình 2.7 Tang cáp U D Hình 2.8 Động điện chiều JGB37-550 Hình 2.9 Cụm chi tiết gửi lấy xe Hình 2.10 Động điện chiều có hộp giảm tốc Hình 2.11 Các kích thước khung mơ hình Hình 2.12 Mơ hình tổng thể thiết kế Solidworks Hình 2.13 Mơ hình tổng thể thực tế Hình 3.1 Sơ đồ tổng quát thiết bị kết nối với máy tính Hình 3.2 Sơ đồ ngun lý hoạt động cơng nghệ RFID Hình 3.3 Arduino Nano Hình 3.4 Ngun lí hoạt động chung bo mạch Arduino Hình 3.5 Module điều khiển L298 Hình 3.6 Sơ đồ đấu dây điều khiển động v Hình 3.7 Cảm biến màu sắc Hình 3.8 Cấu tạo cảm biến màu sắc Hình 3.9 Cảm biến tiệm cận Hình 3.10 Sơ đồ ngun lí cảm biến tiệm cận Hình 3.11 Module cơng tắc hành trình Hình 3.12 Giao diện khởi động phần mềm Visual Studio 2013 Hình 3.13 Giao diện lập trình Visual Studio Hình 3.14 Tạo project Hình 3.15 Thiết kế form Hình 3.16 Lập trình form C C Hình 3.17 Thêm thư viện Hình 3.18 Thêm Windows Form, Class, User Control, Compoment R L T Hình 3.19 Kết nối với sở liệu Hình 3.20 Kết nối với file sở liệu Hình 3.21 Sơ đồ nối dây Hình 3.22 Lưu đồ thuật tốn U D Hình 3.23 Ảnh gốc Hình 3.24 Ảnh nhị phân Hình 3.25 Ảnh nhị phân sau khử nhiễu Hình 3.26 Ảnh sau làm nhoè Hình 3.27 Ảnh vùng biển số xe Hình 3.28 Nhận diện biển số xe Hình 3.29 Lưu đồ thuật tốn Hình 3.30 Camera logitech C270 Hình 3.31 Hình ảnh chụp thực tế vi Hình 3.32 Giao diện camera Hình 3.33 Giao diện biển sơ, vị trí Hình 3.34 Giao diện trạng thái bãi đỗ xe Hình 3.35 Giao diện thơng tin liệu xe vào Hình 3.36 Giao toàn hệ thống C C R L T U D vii DataTable DataTable(); myDataTable = new myDataTable.Load(Program.Database.SelectSQL("SE LECT * FROM guixetd ")); dataGridView1.DataSource = myDataTable; DataTable myDataTable1 = new DataTable(); myDataTable1.Load(Program.Database.SelectSQL ("SELECT * FROM cot ")); dataGridView2.DataSource = myDataTable1; } // HIỂN THỊ DATAGRIDVIEW private void initView(object sender, EventArgs e) { dataGridView1.AutoGenerateColumns = false; const int NumberColumn = 7; dataGridView1.ColumnCount = NumberColumn; string[] list = new string[NumberColumn] { "STT", "UID", " BIENSO", "VITRI", "GIOVAO", "GIORA", "THONGKE" }; string[] header_name = new string[NumberColumn] { "STT", "UID", "BIENSO", "VITRI", "GIOVAO", "GIORA", "THONGKE" }; int[] width_col = new int[NumberColumn] { 50, 150, 150, 100, 125, 125, 150 }; for (int i = 0; i < NumberColumn; i++) { dataGridView1.Columns[i].Name = list[i]; } C C R L T U D dataGridView1.Columns[i].DataPropertyName = list[i]; dataGridView1.Columns[i].HeaderText = header_name[i]; dataGridView1.Columns[i].Width = width_col[i]; dataGridView1.Columns[i].ValueType = typeof(String); dataGridView1.Columns[i].Visible = true; } private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { for (int i = 0; i < dataGridView1.RowCount; i++) { dataGridView1.Rows[i].Cells[0].Value = Convert.ToString(i + 1); } } // HIỂN THỊ DATAGRIDVIEW private void initView1(object sender, EventArgs e) { dataGridView2.AutoGenerateColumns = false; const int NumberColumn = 2; dataGridView2.ColumnCount = NumberColumn; string[] list = new string[NumberColumn] { "LOCATION", "TRANGTHAI" }; string[] header_name = new string[NumberColumn] { "LOCATION", "TRANGTHAI" }; int[] width_col = new int[NumberColumn] { 100, 100 }; for (int i = 0; i < NumberColumn; i++) { dataGridView2.Columns[i].Name = list[i]; dataGridView2.Columns[i].DataPropertyName = list[i]; dataGridView2.Columns[i].HeaderText = header_name[i]; dataGridView2.Columns[i].Width = width_col[i]; dataGridView2.Columns[i].ValueType = typeof(String); dataGridView2.Columns[i].Visible = true; } } private void dataGridView2_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { for (int i = 0; i < dataGridView2.RowCount; i++) { dataGridView1.Rows[i].Cells[0].Value = READER ĐỌC RẤT NHIỀU GIÁ TRỊ KHĨ XỬ LÍ // KIỂM TRA UID Ở TÌNH TRẠNG ĐANG GIỮ XE HAY ĐÃ LẤY XE RỒI ĐỂ THÊM XE HOẶC LẤY XE for (int i = 0; i < (dataGridView1.RowCount - 1); i++) { // CHẠY VÒNG TRÊN XUỐNG THEO HÀNG ĐỂ XEM UID VỪA GỬI CÓ TỒN TẠI VÀ Ở TRẠNG THÁI ĐANG GIỮ XE HAY KHÔNG if ((in_data == dataGridView1.Rows[i].Cells["UID"] FormattedValue.ToString()) && Convert.ToString(i + 1); } } // HIỂN THỊ THÔNG TIN LÊN FORM KHI CLICK ĐÚP CHUỘT private void dataGridView1_DoubleClick(object sender, EventArgs e) { int row = dataGridView1.CurrentCell.RowIndex; cboID.Text = dataGridView1.Rows[row].Cells["UID"] FormattedValue.ToString(); cbobienso.Text = dataGridView1.Rows[row].Cells ["BIENSO"].FormattedValue.ToString(); cbovitri.Text = dataGridView1.Rows[row].Cells["VITRI"] FormattedValue.ToString(); cbogiovao.Text = dataGridView1.Rows[row].Cells ["GIOVAO"].FormattedValue.ToString(); cbogiora.Text = dataGridView1.Rows[row].Cells["GIORA"] FormattedValue.ToString(); } // KẾT NỐI RFID public void ketnoi_() { RFID = new SerialPort(); RFID.PortName = "COM4"; RFID.BaudRate = 9600; RFID.DataBits = 8; RFID.Parity = Parity.None; RFID.StopBits = StopBits.One; RFID.Open(); RFID.DataReceived RFID_DataReceived; } // NHẬN UID KHI QUÉT THẺ VÀ HIỂN THỊ private void RFID_DataReceived(object sender, SerialDataReceivedEventArgs e) { int TAM = 0; int bien = 0; this.Invoke(new EventHandler(refresh)); in_data = RFID.ReadLine();// ĐỌC UID RFID.Close();// ĐĨNG RFID ĐỂ XỬ LÍ, NẾU K ĐĨNG NGAY KHI VỪA NHẬN TÍN HIỆU THÌ RFID C C R L T U D += (dataGridView1.Rows[i].Cells["THONGKE"] FormattedValue.ToString() == "ĐANG GIỮ XE")) { TAM = 1; bien = i; // LƯU VỊ TRÍ } } if (TAM == 1) { this.Invoke(new EventHandler(displaydata_event2));// HIỂN THỊ UID VÀ THỜI GIAN QUÉT GIỜ VÀO layxe(bien); // LẤY XE TẠI VỊ TRÍ ĐÃ LƯU } else // NẾU KHÔNG THỎA DIEU KIEN THÌ THÊM XE { this.Invoke(new EventHandler(displaydata_event));// HIỂN THỊ UID VÀ THỜI GIAN QUÉT GIỜ RA this.Invoke(new EventHandler(themxe)); // this.Invoke(new EventHandler(refresh)); } RFID.Open(); // MỞ LẠI RFID } // LÀM MỚI GIAO DIỆN FORM public void refresh(object sender, EventArgs Program.Database.UpdateSQL(sql); // CẬP NHẬT DL this.Invoke(new EventHandler(refresh)); this.Invoke(new EventHandler(loadData)); } else MessageBox.Show("KHƠNG THỂ XĨA","THƠNG BÁO !"); e) { cboID.Text = ""; cbogiovao.Text= ""; cbovitri.Text = ""; cbogiora.Text = ""; // cbobienso.Text = ""; } // HIỂN THỊ UID VÀ THỜI GIAN QUÉT GIỜ RA displaydata_event2(object } // HÀM LẤY XE Ở VỊ TRÍ HÀNG BT TRONG dataGridView1 datatime = DateTime.Now; cboID.Text = in_data; cbogiora.Text = datatime.ToString(("HH:mm:ss") + "\t\t\t"); } // HIỂN THỊ UID VÀ THỜI GIAN QUÉT GIỜ VÀO private void displaydata_event(object sender, EventArgs e) { private void layxe(int bt) { // HIỂN THỊ THÔNG BÁO DialogResult hoi; hoi = MessageBox.Show(" Lấy xe ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Question); if (hoi == DialogResult.OK) { // HIỂN THỊ LÊN FORM cbobienso.Text = private void sender, EventArgs e) { datatime = DateTime.Now; cboID.Text = in_data; cbogiovao.Text = datatime.ToString(("HH:mm:ss") + "\t\t\t"); } // THOÁT FORM private void btnThoat_Click(object sender, EventArgs e) { Close(); } R L T U D // XĨA THƠNG TIN CSDL private void btnXoa_Click(object sender, EventArgs e) { if (cbogiora.Text != "") // NẾU CÓ GIỜ RA, TỨC LÀ ĐÃ LẤY XE RỒI MỚI ĐƯỢC XÓA { String sql = "Delete from guixetd where (GIOVAO = '" + cbogiovao.Text + "')";// XĨA HÀNG TỪ CSD GUIXETD Ở VỊ TRÍ CĨ GIÁ TRỊ GIỜ VÀO BẰNG cbogiovao.Text C C dataGridView1.Rows[bt].Cells["BIENSO"] FormattedValue.ToString(); cbovitri.Text dataGridView1.Rows[bt].Cells["VITRI"] FormattedValue.ToString(); cbogiovao.Text dataGridView1.Rows[bt].Cells = = ["GIOVAO"].FormattedValue.ToString(); // CẬP NHẬT GHI VÀO CSDL guixetd Ở HÀNG CÓ GIÁ TRỊ GIỜ VÀO BẰNG GIÁ TRỊ dataGridView1.Rows[bt].Cells["GIOVAO"] FormattedValue.ToString() , Ở TRƯỜNG THONGKE GIÁ TRỊ "ĐÃ LẤY XE ", TRƯỜNG GIORA GIÁ TRỊ BẰNG GIÁ TRỊ Ở TEXTBOX cbogiora.Text String sql = "update guixetd Set THONGKE = '" + "ĐÃ LẤY XE " + "' , GIORA = '" + cbogiora.Text + "' where ( GIOVAO ='" + dataGridView1.Rows[bt].Cells["GIOVAO"] FormattedValue.ToString() + "' )"; Program.Database.UpdateSQL(sql); String sql1 = "update cot Set TRANGTHAI = '" + "Null" + "' where (LOCATION = '" + if (cbovitri.Text == "31") { T31.Image = kxe; } if (cbovitri.Text == "32") { T32.Image = kxe; dataGridView1.Rows[bt].Cells["VITRI"] FormattedValue.ToString() + "')"; Program.Database.UpdateSQL(sql1); this.Invoke(new EventHandler(loadData)); // HIỂN THỊ ẢNH VÀ GỬI TÍN HIỆU ĐIỀU KHIỂN ĐỘNG CƠ Bitmap kxe = new Bitmap("kxe.png"); if (cbovitri.Text == "11") { T11.Image = kxe; serialPort1.Write("2"); } if (cbovitri.Text == "33") { T33.Image = kxe; } if (cbovitri.Text == "34") { T34.Image = kxe; } if (cbovitri.Text == "12") { T12.Image = kxe; serialPort1.Write("4"); } if (cbovitri.Text == "13") { T13.Image = kxe; serialPort1.Write("6"); } if (cbovitri.Text == "14") { T14.Image = kxe; } if (cbovitri.Text == "21") { T21.Image = kxe; } if (cbovitri.Text == "22") { T22.Image = kxe; } if (cbovitri.Text == "23") { T23.Image = kxe; } if (cbovitri.Text == "24") { T24.Image = kxe; } } } } // HÀM KIỂM TRA VỊ TRÍ TRỐNG GẦN NHẤT BẰNG CÁCH QUÉT dataGridView2 private void kiemtra(object sender, EventArgs e) { for (int i = 0; i < 12 ; i++) { if (dataGridView2.Rows[i].Cells["TRANGTHAI"] FormattedValue.ToString() == "Null") { thaydoi = i; break; } C C U D R L T } cbovitri.Text dataGridView2.Rows[thaydoi].Cells = ["LOCATION"].FormattedValue.ToString(); } // HÀM THÊM XE private void themxe(object sender, EventArgs e) { // THÔNG BÁO DialogResult hoi; hoi = MessageBox.Show("Thêm xe ", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Question); if (hoi == DialogResult.OK) { { this.Invoke(new EventHandler(kiemtra)); // TÌM VỊ TRÍ THÊM // THÊM VÀO CSDL guixetd Ở CÁC TRƯỜNG UID, BIENSO, VITRI, GIOVAO, GIORA ,THONGKE CÁC GIÁ TRỊ LẦN LƯỢT Ở CÁC TEXTBOX String sql = "insert into guixetd ( UID, BIENSO, VITRI, GIOVAO, GIORA ,THONGKE ) values ('" + cboID.Text + "','" + cbobienso.Text + "','" + cbovitri.Text + "','" + cbogiovao.Text + "' ,'" + cbogiora.Text + "','" + "ĐANG GIỮ XE" + "')"; OleDbDataReader reader = Program.Database.SelectSQL(sql); // CẬP NHẬT TRÁNG THÁI CĨ XE Ở VỊ TRÍ MỚI THÊM String sql1 = "update cot Set TRANGTHAI = '" + "CÓ XE" + "' where (LOCATION = '" + cbovitri.Text + "')"; Program.Database.UpdateSQL(sql1); this.Invoke(new EventHandler(loadData)); // HIỂN THỊ ẢNH VÀ GỬI TÍN HIỆU ĐIỀU KHIỂN Bitmap xe = new Bitmap("xe.png"); if (cbovitri.Text == "11") { T11.Image = xe; serialPort1.Write("1"); } T13.Image = xe; serialPort1.Write("5"); } if (cbovitri.Text == "14") { T14.Image = xe; } if (cbovitri.Text == "21") { T21.Image = xe; } if (cbovitri.Text == "22") { T22.Image = xe; } if (cbovitri.Text == "23") { T23.Image = xe; C C R L T U D } if (cbovitri.Text == "24") { T24.Image = xe; } if (cbovitri.Text == "31") { T31.Image = xe; } if (cbovitri.Text == "32") { T32.Image = xe; } if (cbovitri.Text == "33") { T33.Image = xe; if (cbovitri.Text == "12") { } if (cbovitri.Text == "34") { T34.Image = xe; T12.Image = xe; serialPort1.Write("3"); } if (cbovitri.Text == "13") if ((source == null) || (target == null)) } } } private double source, string target) { return 0.0; CalculateSimilarity(string if ((source.Length == 0) || (target.Length == 0)) return 0.0; if (source == target) return 1.0; int stepsToSame = ComputeLevenshteinDistance(source, target); return (1.0 - ((double)stepsToSame / (double)Math.Max(source.Length, target.Length))); } // Step for (int i = 0; i

Ngày đăng: 27/04/2021, 15:17

Từ khóa liên quan

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

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

Tài liệu liên quan