1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu chế tạo và vận hành thực nghiệm mô hình điều hòa không khí sử dụng năng lượng mặt trời

117 1 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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu, chế tạo vận hành thực nghiệm mơ hình điều hịa khơng khí sử dụng lượng mặt trời ĐẶNG VĂN AN Ngành Quản lý kinh tế Giảng viên hướng dẫn: PGS.TS Đặng Trần Thọ Hà Nội, 2023 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ HỒN THIỆN CƠNG TÁC QUẢN LÝ THUẾ THU NHẬP CÁ NHÂN TẠI CỤC THUẾ TỈNH TUYÊN QUANG NHỮ THẢO LINH Ngành Quản lý kinh tế Giảng viên hướng dẫn: TS Nguyễn Linh Đan Viện: Kinh tế Quản lý Hà Nội, 2022 Chữ ký GVHD CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Nhữ Thảo Linh Mã số HV: 20202485M Đề tài luận văn: Hồn thiện cơng tác quản lý thuế thu nhập cá nhân Cục Thuế tỉnh Tuyên Quang Ngành: Quản lý kinh tế Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 17 tháng 10 năm 2022 với nội dung sau: Đã bổ sung thêm chỉnh sửa nội dung “Sự cần thiết nghiên cứu đề tài”, “Mục tiêu nghiên cứu’’, điều chỉnh rõ “Phạm vi nghiên cứu” Chương Bỏ phần “Kinh nghiệm quốc tế” Điều chỉnh lại thời gian bảng biểu chương Đã chỉnh sửa lại giải pháp chương 3, nêu rõ cho phù hợp với hạn chế chương Đã điều chỉnh lại lỗi kỹ thuật cho phù hợp Ngày 31 tháng 10 năm 2022 Giảng viên hướng dẫn Tác giả luận văn TS Nguyễn Linh Đan Nhữ Thảo Linh CHỦ TỊCH HỘI ĐỒNG PGS TS Vũ Quang LỜI CAM ĐOAN Tôi xin cam đoan số liệu, kết nghiên cứu luận văn "Hoàn thiện công tác quản lý thuế thu nhập cá nhân tỉnh Tuyên Quang" kết nghiên cứu riêng Các tài liệu, số liệu sử dụng luận văn, trích dẫn luận văn rõ nguồn gốc từ Bộ Tài chính, Tổng cục Thuế, Cục Thuế tỉnh Tuyên Quang, Cục Thống kê tỉnh Tuyên Quang cung cấp cá nhân thu thập từ văn Luật, sách, báo, tạp chí Thuế, báo cáo ngành Thuế kết nghiên cứu có liên quan đến đề tài công bố./ Tuyên Quang, ngày tháng Tác giả luận văn Nhữ Thảo Linh năm 2022 LỜI CẢM ƠN Bản luận văn hoàn thành sau trình học tập nghiên cứu tơi giảng đường thực tiễn Bên cạnh nỗ lực thân, kết hướng dẫn giúp đỡ người Tôi bày tỏ lòng biết ơn sâu sắc đến TS Nguyễn Linh Đan, người tận tình hướng dẫn tơi hồn thành luận văn Xin trân trọng cảm ơn thầy cô giáo Viện Kinh tế Quản lý Trường Đại học Bách khoa Hà Nội truyền đạt kiến thức, trang bị kỹ cho tơi q trình học tập giúp đỡ tơi hồn tất thủ tục để hoàn thành Luận văn Xin trân trọng cảm ơn Ban lãnh đạo đồng nghiệp ngành thuế Tuyên Quang tạo điều kiện, cung cấp thông tin để tơi hồn thành luận văn; Tơi xin chân thành cảm ơn gia đình bạn bè giúp đỡ, động viên, khích lệ tơi q trình học tập hoàn thành Luận văn Xin chân thành cám ơn! Tuyên Quang, ngày tháng Tác giả luận văn Nhữ Thảo Linh năm 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Độc lập – Tự – Hạnh phúc *** *** ĐỀ TÀI LUẬN VĂN Giảng viên hướng dẫn: PGS.TS Đặng Trần Thọ Học viên thực hiện: Đặng Văn An Mã số học viên: 20202610M Đề tài luận văn: Nghiên cứu, chế tạo vận hành thực nghiệm mơ hình điều hịa khơng khí sử dụng lượng mặt trời Số liệu ban đầu: - Mơ hình thực nghiệm có cơng suất 12000BTU/h - Sử dụng lượng mặt trời, dùng cặp môi chất H2O/LiBr - Mơ hình có thiết bị đo đạc, xác định thông số ảnh hưởng đến hiệu làm lạnh Mơ tả tóm tắt nội dung u cầu tính tốn: - Nghiên cứu, tìm hiểu cơng nghệ máy lạnh hấp thụ - Phân tích, xây dựng sở liệu tính tốn thiết bị mơ hình thí nghiệm Nghiên cứu, tính tốn, thiết kế mơ hình thí nghiệm Chế tạo mơ hình thử nghiệm Vận hành thử nghiệm đánh giá mơ hình Hà Nội, ngày tháng năm 2022 Giảng viên hướng dẫn (Ký, ghi rõ họ tên) LỜI CAM ĐOAN Tôi xin cam đoan luận văn nghiên cứu, tính toán, thiết kế hướng dẫn thầy giáo PGS Đặng Trần Thọ Để hoàn thành luận văn sử dụng tài liệu ghi mục tài liệu tham khảo, ngồi khơng sử dụng tài liệu khác mà không ghi Nếu sai tơi xin chịu hình thức kỷ luật theo quy định Người lập cam đoan (Ký ghi rõ họ tên) Đặng Văn An LỜI CẢM ƠN Mở đầu luận văn: “Nghiên cứu, chế tạo vận hành thực nghiệm mơ hình điều hịa khơng khí sử dụng lượng mặt trời”, em xin bày tỏ lòng biết ơn sâu sắc lời cảm ơn chân thành tới thầy giáo – Phó Giáo sư Đặng Trần Thọ, người thầy tận tình hướng dẫn, bảo, giúp đỡ em hoàn thành luận văn Với đặc thù đề tài nghiên cứu, chế tạo vận hành thiết bị điều hịa khơng khí sử dụng lượng mặt trời, bên cạnh khối lượng kiến thức chuyên ngành, cần phải chế tạo, lắp đặt thiết bị thí nghiệm, tiến hành đo đạc thu thập số liệu khiến em gặp nhiều khó khăn Tuy nhiên, bảo tận tình đơn đốc thầy Đặng Trần Thọ, em hiểu rõ vấn đề, xác định phương hướng bước giải khó khăn để hồn thành luận văn Thầy giúp đỡ em nhiều không kiến thức, mà phong cách tiếp cận vấn đề, cách thức làm việc chuyên nghiệp hiệu Qua em xin gửi lời cảm ơn sâu sắc đến thầy cô Viện KH & CN Nhiệt Lạnh, khoa Năng lượng nhiệt trường Cơ khí, Đại học Bách Khoa Hà Nội, mà thầy truyền đạt cho chúng em không kiến thức chuyên ngành mà kinh nghiệm sống quý báu Đây hành trang, tiền đề quan trọng để chúng em vững đường nghiệp Xin gửi lời cảm ơn chân thành đến gia đình, bạn bè động viên, giúp đỡ, tạo điều kiện tốt để em học tập, nghiên cứu hoàn thành luận văn Một lần em xin chân thành cảm ơn! MỤC LỤC CHƯƠNG TỔNG QUAN 1.1 Máy lạnh hấp thụ 1.1.1 Khái niệm nguyên lý làm việc 1.1.2 Phân loại 1.1.3 Một số máy lạnh sử dụng máy nén nhiệt khác 10 1.2 Đặc trưng máy lạnh hấp thụ 12 1.2.1 Môi chất sử dụng 12 1.2.2 Vật liệu chế tạo 14 1.2.2.1 Vật liệu kim loại 14 1.2.2.2 Vật liệu phi kim 16 1.2.3 Năng lượng sử dụng 16 1.2.4 Đánh giá máy lạnh hấp thụ 17 1.3 Các yếu tố ảnh hưởng 18 1.3.1 Ảnh hưởng nhiệt độ 19 1.3.1.1 Ảnh hưởng nhiệt độ nguồn nhiệt 19 1.3.1.2 Ảnh hưởng nhiệt độ bình hấp thụ 20 1.3.2 Ảnh hưởng áp suất .21 1.3.3 Ảnh hưởng nồng độ 22 1.3.4 Ảnh hưởng khả ăn mịn mơi chất 23 1.4 Tổng quan nghiên cứu máy lạnh hấp thụ 24 1.4.1 Tình hình nghiên cứu giới 24 1.4.2 Tình hình nghiên cứu Việt Nam 28 1.5 Khả ứng dụng máy lạnh hấp thụ 29 1.6 Mục đích nghiên cứu nội dung thực 34 1.6.1 Mục đích nghiên cứu 34 1.6.2 Phạm vi nghiên cứu 34 CHƯƠNG LÝ THUYẾT MÁY LẠNH HẤP THỤ .35 2.1 Cơ sở xác định chu trình 35 2.1.1 Cơ sở tính tốn chu trình máy lạnh H2O/LiBr 35 2.1.2 Thiết lập chu trình làm việc 36 2.1.3 Cơ sở tính tốn thơng số nhiệt vật lý dung dịch H2O/LiBr 37 2.1.4 Cơ sở xác định phụ tải 42 2.2 Cơ sở tính toán thiết bị hệ thống 43 2.2.1 Cơ sở tính tốn thiết bị bay 43 2.2.2 Cơ sở tính tốn thiết bị ngưng tụ 46 2.2.3 Cơ sở tính tốn bình sinh 47 2.2.4 Cơ sở tính tốn bình hấp thụ 48 2.2.5 Cơ sở tính chọn bơm dung dịch 48 2.2.6 Cơ sở tính chọn đường ống kết nối 49 2.2.7 Cơ sở tính chọn van tiết lưu 49 2.2.8 Cơ sở tính tốn hệ thống cấp nhiệt 49 CHƯƠNG TÍNH TỐN, THIẾT KẾ, CHẾ TẠO MƠ HÌNH THỰC NGHIỆM 52 3.1 TÍNH TỐN CHU TRÌNH 52 3.1.1 Lựa chọn thông số máy lạnh hấp thụ cấp H2O/LiBr 52 3.1.2 Xác định điểm nút 52 3.2.TÍNH CÁC DỊNG NHIỆT VÀ DỊNG DUNG DỊCH 54 3.2.1 Tính tốn dịng dung dịch 54 3.2.2 Tính tốn phụ tải thiết bị 54 3.3 TÍNH TỐN THIẾT KẾ CHẾ TẠO MÁY LẠNH HẤP THỤ 55 3.3.1 Tính tốn, thiết kế chế tạo thiết bị bay 55 3.3.2.Tính tốn, thiết kế chế tạo thiết bị ngưng tụ 57 3.3.3.Tính tốn thiết kế chế tạo thiết bị sinh 58 3.3.4.Tính thiết kế thiết bị hấp thụ 61 3.3.5.Tính chọn bơm dung dịch 62 3.3.6 Tính chế tạo thiết bị tiết lưu 64 3.3.7.Tính tốn thu lượng mặt trời 64 CHƯƠNG VẬN HÀNH THỬ NGHIỆM VÀ ĐÁNH GIÁ MƠ HÌNH 68 4.1 Xác định quy trình vận hành 68 4.1.1 Xác định chế độ vận hành 68 4.1.2 Đánh giá sai số 68 4.1.2.1 Sai số phương pháp đo 68 4.1.2.2 Sai số thiết bị đo 69 4.1.2.3 Sai số ngẫu nhiên 70 4.1.3 Quy trình vận hành 71 PHỤ LỤC (Chương trình tính tốn entanpy dung dịch H2O/LiBr môi trường Matlab) %Tinh toan Entanpy cua dung dich H2O-LiBr c=input (“Nhap vao nong dung dich, %, c = “); t=input (“Nhap vao nhiet dung dich, Celcius, t = “); A(1,1)=1.134125; A(2,1)=-4.80045*10^(-1); A(3,1)=-2.161438*10^(-3); A(4,1)=2.336235*10^(-4); A(5,1)=-1.188679*10^(-5); A(6,1)=2.291532*10^(-7); A(1,2)=4.124891; A(2,2)=-7.643903*10^(-2); A(3,2)=2.589577*10^(-3); A(4,2)=-9.500522*10^(-5); A(5,2)=1.708026*106(-6); A(6,2)=-1.102363*10^(-8); A(1,3)=5.743693*10^(-4); A(2,3)=5.870921*10^(-5); A(3,3)=-7.375319*10^(-6); A(4,3)=3.277592*10^(-7); A(5,3)=-6.062304*10^(-9); A(6,3)=3.901897*10^(-11); Entanpy=0; for i=1:6 for j=1:3 h=A(i,j)*c^(i-1)*t^(j-1); Entanpy=Entanpy+h; end end Entanpy % Xuat ket qua, kJ / kg 84 PHỤ LỤC (Tính tốn thiết bị bay hơi) Theo [1], độ chênh nhiệt độ trung đối tính theo cơng thức (2.28) Trong đó: t1  t2 ' to = 30 – = 24 K t2  t2 " to = 22 – = 16 K Thay vào cơng thức (2.28) ta có:  tb = 20K * Xác định hệ số tỏa nhiệt phía làm cánh: Với chiều dài ống l = 600mm ta có số cánh ống: nc  600   171 cánh sc   c  0,5 Kích thước danh định: F01.d  Fc1 dE  Fc1 2.nc F01  Fc1 Trong đó: Fc1 : [m2], diện tích cánh ống, dùng cánh vuông nên: Fc1   s12 –  d22 /  nc  0,095 m2 F01 : [m2], diện tích phần khơng làm cánh ống F01   d2 t.nc  0,014 m2 F21  F01  Fc1  0,095  0,014  0,109 m2 Thay vào cơng thức (2.30) ta có: dE = 0,016 m Tốc độ cực đại khe hẹp: o max  d 2h c  1     s1 s1.s2  Theo [2], chọn vận tốc o = 1,3 m/s thay số liệu vào công thức (2.31) ta có tốc độ cực đại khe hẹp max = 3m/s Tiêu chuẩn Re: Re f  max d E v = 3005 85 Với điều kiện khơng khí chuyển động qua chùm ống so le, theo [1] ta có tiêu chuẩn Nu tính theo công thức: 0,67 Nu f  0,25.Re  s1  d     d2  0,2  s d    1  t  0,2 = 39 Nhiệt độ trung bình khơng khí, t1tb: t1tb = 0,5 x (30 + 22) = 26 oC Theo [5] ta có: ρ – 1,18 kg/m3 λ – 0,026 W/mK ν – 0,000015624 m2/s Pr – 0,702 Hệ số tỏa nhiệt phía cánh: c  Nu f  dE = 65 W/m2K Hệ số tỏa nhiệt phía khơng khí tính theo cơng thức (2.35): 2  c Fc1 c    F21 Trong đó: χ : Tỷ số diện tích phần khơng có cánh phần có cánh  Với  h  hc F01 0, 014   0, Fc1 0, 095 2 c = 0,3, cánh có tiết diện vuông, theo [1] tra bảng 2.30 c  c ta có hiệu suất cánh ηc = 0,97 Thay số liệu vừa tìm vào cơng thức (2.35) ta tìm hệ số tỏa nhiệt phía khơng khí: 2  c Fc1 c    F21 = 63 W/mK Hệ số làm cánh εc tính theo cơng thức (2.37): c   nc  d c2  d 22  2.d1.l Thay số liệu vào cơng thức (2.37) ta tìm hệ số làm cánh εc = * Xác định hệ số tỏa nhiệt phía mơi chất: Hệ tỏa nhiệt lỏng H2O bay ống tính cơng thức (2.38): 1  46t 3,33 p0,5 , W/m2K 86 Trong đó: 1 độ chênh nhiệt độ so với vách: p áp suất tuyệt đối nước bay ống Giả thiết biết nhiệt độ vách để thay vào công thức (2.38) [sử dụng phương pháp lặp để giải tốn, kiểm tra lại sau có kết quả] Chọn 1 = K, thay vào công thức (2.38) ta có: 1 = 196 w/m2K Thay kết vừa tính vào cơng thức (2.27) ta tính hệ số truyền nhiệt K = 143 w/m2K Lại có q1 = K.tb = 2831 w/m2 Mặt khác: q1 = 1.1 => 1 = 14,5K có sai lệch lớn nên phải tính lại Sử dụng phương pháp lặp ta tìm 1 = 8,5 K thỏa mãn Ta tìm K = 299 w/m2K Thay vào cơng thức ta có diện tích trao đổi nhiệt thiết bị bay là: F = 0,59 m2 Từ diện tích trao đổi nhiệt vừa tìm được, thay số vào cơng thức từ (2.39) – (2.43) ta tìm kích thước thiết bị bay trình bày bảng 3.5 87 PHỤ LỤC (Tính tốn thiết bị sinh hơi) Với cơng suất nhiệt bình sinh QSH = 4,34 , kW Theo [4], ta lấy công suất nhiệt cần cấp 110% cơng suất nhiệt bình sinh hơi: QNC = 1,1x4,34 = 4,77 kW Nhiệt độ bình sinh = 85 [oC], ta chọn giả thiết để thiết kế bình sinh sau: Đường kính ống xoắn: d1= 19 mm Đường kính ngồi ống xoắn: d2= 20 mm Khoảng cách ống vỏ bình: s = mm Khoảng cách ống: h = 1,2.d2 = 1,2.20 = 24 mm Nhiệt độ nước gia nhiệt vào ống xoắn: tH1 = 90 oC Nhiệt độ nước gia nhiệt khỏi ống xoắn: tH2 = 87 oC Nhiệt độ trung bình nước gia nhiệt: t = 0,5(tH1 + tH2) = 88,5oC theo [5] ta có: ρ = 960,4kg/m3; λ = 0,682W/mK; ν = 3,055.10-7m2/s; Pr = 1,819 Lưu lượng khối lượng nước gia nhiệt thiết bị sinh : QNC 4, 77 GNC    0,38 Kg/s C pH (t H  t H ) 4, 216.(90  87) Trong đó: Ta có : ttb  tmax  tmin (90  85)  (87  85)   3, 27 K tmax 90  85 ln ln 87  85 t tmin Tốc độ chuyển động nước gia nhiệt [6]: H  GNC m/s d12  H  Trong đó:  H :Khối lượng riêng nước gia nhiệt,  H = 1000 kg/m3 d1 : Đường kính ống trao đổi nhiệt, [m] H  4.0,38  1,39 m/s 960, 4. 0, 0192 Theo [1] tiêu chuẩn Re nước tính theo cơng thức: Re  H d1 1,39.0, 019   86448 > 104 v 3, 055.107 Tiêu chuẩn Nu nước: 88 Nu  0,021.Re0,8 Pr 0,43 A Với A  ( Pr 0.25 ) , muốn tìm Prw ta phải biết nhiệt độ tw nhiệt độ bề mặt Prw ống Ta giả sử biết tw để tính tốn, sau kiểm tra lại Giả sử: tw  th  ttb = 86,64oC ta có Prw = 1,9 Thay vào cơng thức ta được: 1,819 0,25 Nu  0, 021.864480,8.1,8190,43.( )  239 1,9 Hệ số tỏa nhiệt nước gia nhiệt:  0, 682 1  Nu  239  8579 W/m2.K d1 0, 019 Hệ số tỏa nhiệt dung dịch [6]:   11,7772G  1,0581 W/m2.K [*] Trong đó: G mật độ phun xác định công thức G  Ga với N số ống tiêp NL xúc trực tiếp với dung dịch L chiều dài ống Mặt khác: 2  q2 W/m2.K tb Với q2 mật độ dòng nhiệt phía dung dịch Khi chế độ ổn định ta có q2 = q1 với q1 mật độ dịng nhiệt phía nước gia nhiệt có giá trị bằng: q1  t2 1   o  t  t1  11072 W/m2   1 o Hệ số tỏa nhiệt dung dịch: 2  q2 11072   6751 W/m2.K [**] tb 1,64 Hệ số truyền nhiệt: kSH  d d2   ln  1 d1 o d1  , W/m2.K Thay số liệu vào ta kSH = 4736 W/m2.K 89 Theo [6] diện tích trao đổi nhiệt thiết bị sinh là: FSH  QSH kSH [(t H  td )  a(t H  t H )  b(td  td )] 4,34.103   0,16m 4736.[(90  77)  0, 65(90  87)  0, 65(85  77)] Theo [2] ta tính tốn bố trí thiết bị sau: Tổng chiều dài ống xoắn thiết bị sinh hơi: LSH = FSH /(π.d2) Thay giá trị vào ta có: LSH = 0,16 /(π.0,02)= 2,6 m Chọn đường kính bình D = 250 [mm], với khoảng cách từ ống trao đổi nhiệt đến mặt bình s = [mm], nx tính theo công thức N = LSH/π(D-2s) = 2,6/π.(0,25 – 2.0,004) = 3.5 vòng Chiều dài vòng là: L = π(D-2s) = 0,76 m Thay số liệu vừa tính vào [*] ta được:   11, 7772G  1, 0581  11, 7772 Ga  1, 0581  1109 W/m2.K NL Ta thấy:  2*   2** nên ta phải giả thiết lại nhiệt độ tw Sử dụng phương pháp lặp: Ta có tw = 87,83oC ứng với t1  87,83  85  2,83 oC thì:  2*  1069 W/m2.K,  2**  1068 W/m2.K sai số 0,1% < 5% (Đạt yêu cầu) Theo [6] diện tích trao đổi nhiệt tính là: QSH FSH   0,79m2 kSH [(tH  td )  a(tH  tH )  b(td  td1 )] Tổng chiều dài ống xoắn thiết bị sinh hơi: LSH = 0,79 / (π.0,02)= 13,2 [m] Số vòng ống: N = LSH/π(D-2s) = 13,2 / π.(0,25 – 2.0,004) = 17,3 vòng Làm trịn thành 18 vịng Chiều cao bình sinh xác định theo công thức: H = (N – 1).h + hm Trong đó: 90 hm: [mm], chiều cao phần dung dịch phía ống xoắn, theo [2] chọn hm = 40 [mm] Thay số vào ta tính được: H = 472[mm], chọn H =500 mm Để đảm bảo lượng nhiệt cấp cho bình sinh hơi, phía ngồi bình sinh cần bọc lớp cách nhiệt Ở dùng vật liệu cách nhiệt PolyUrethane, độ dày lớp cách nhiệt chọn δi = 50 mm Sử dụng công thức (2.44), (2.45), (2.46) ta tìm thơng số thiết bị bay trình bày bảng 3.9 91 PHỤ LỤC (Code lập trình thiết bị thu thập liệu nhiệt độ) new Vue({ el: '#app', data() { return { isAutoScroll: true, isShowTimestamp: true, // isConnected: false, rxData: '', txData: '', rxObjData: {}, rawOutputData: '', newLineOptions: [ { label: 'No line ending', value: 'NO_LINE_ENDING', }, { label: 'Newline', value: 'NEW_LINE', }, { label: 'Carriage return', value: 'CARRIAGE_RETURN', }, { label: 'Both NL & CR', value: 'BOTH_NL_AND_CR', }, ], newLineSelected: 'NO_LINE_ENDING', baudrateOptions: [300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200], baudrate: 115200, port: null, reader: null, onReadingSerial: false, outputPanel: null, allRecordData: [], currentRecordData: { data: [ 92 { id: 1, label: 'Tk', value: '30.22', }, { id: 2, label: 'To', value: '31.22', }, { id: 3, label: 'Tgn', value: '33.22', }, { id: 4, label: 'Tbl1', value: '34.22', }, { id: 5, label: 'Tbl2', value: '35.22', }, ], timestamp: Date.now(), }, chart: null, chartLabels: [], chartData: [ { label: 'T1', data: [], borderWidth: 1, borderColor: '#e74c3c', }, { label: 'T2', data: [], borderWidth: 1, borderColor: '#3498db', }, 93 { label: 'T3', data: [], borderWidth: 1, borderColor: '#16a085', }, { label: 'T4', data: [], borderWidth: 1, borderColor: '#34495e', }, { label: 'T5', data: [], borderWidth: 1, borderColor: '#7f8c8d', }, ], excelData: '' } }, methods: { async handleConnect() { if (!this.isConnected) { await this.connectSerial() } else { await this.disconnectSerial() } }, clearOutput() { this.rawOutputData = '' this.excelData = '' }, async connectSerial() { try { console.log('connect') setTimeout(() => { this.onReadingSerial = true console.log('START_READING_SERIAL') this.rxObjData = {} this.rxData = '' }, 2000) 94 const filter = {usbVendorId: 0x2341} this.port = await navigator.serial.requestPort({filters: [filter]}) await this.port.open({baudRate: this.baudrate}) this.reader = this.port.readable.getReader() try { while (true) { const {value, done} = await this.reader.read() if (done) { // |reader| has been canceled console.log('reader break') break } dnc = new TextDecoder('utf-8') str = dnc.decode(value) if (this.onReadingSerial) { this.rxData += str if (str.includes('\n')) { this.rxObjData = { timestamp: Date.now(), value: this.rxData, } this.onReadline() this.rxData = '' } } } } catch (error) { // Handle |error|… } finally { console.log('reader releaseLock') this.reader.releaseLock() } } catch (error) { console.log(error) this.rxData += error + '\r\n' } }, async disconnectSerial() { this.onReadingSerial = false this.reader.releaseLock() 95 await this.port.close() this.port = null }, onReadline() { if (this.isShowTimestamp) { this.rawOutputData += `${new Date(this.rxObjData.timestamp).toLocaleTimeString( 'vi-VN' )} => ${this.rxObjData.value}` } else { this.rawOutputData += this.rxData } if (this.isAutoScroll) { this.scrollToBottom() } this.mapRecordData() this.mapChartData() this.mapExcelData() }, scrollToBottom() { this.outputPanel.scrollTop = this.outputPanel.scrollHeight }, mapRecordData() { const arrData = this.rxData.trimEnd().split(',') this.currentRecordData.data[0].value = arrData[0] ? arrData[0] : '-' this.currentRecordData.data[1].value = arrData[1] ? arrData[1] : '-' this.currentRecordData.data[2].value = arrData[2] ? arrData[2] : '-' this.currentRecordData.data[3].value = arrData[3] ? arrData[3] : '-' this.currentRecordData.data[4].value = arrData[4] ? arrData[4] : '-' this.currentRecordData.timestamp = new Date().toString() this.allRecordData.push(this.currentRecordData) }, mapChartData() { const arrData = this.rxData.trimEnd().split(',') const timestamp = new Date().toLocaleTimeString('vi-VN') this.addData(timestamp, arrData) }, 96 addData(label, arrData) { this.chart.data.labels.push(label); this.chart.data.datasets.forEach((dataset, index) => { dataset.data.push(arrData[index] || null); }); this.chart.update(); }, mapExcelData() { const tmp = this.rxData.trimEnd() + ',' + new Date().toLocaleTimeString('vi-VN') + ',' + new Date().toLocaleDateString('vi-VN') + '\r\n' this.excelData += tmp; }, handleExportData() { console.log(this.excelData) const filename = 'terminal-' + Date.now().toLocaleString('viVN') + '.csv' this.download(this.excelData, filename, 'csv') }, download(data, filename, type) { var file = new Blob([data], {type: type}); if (window.navigator.msSaveOrOpenBlob) // IE10+ window.navigator.msSaveOrOpenBlob(file, filename); else { // Others var a = document.createElement("a"), url = URL.createObjectURL(file); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); setTimeout(function() { document.body.removeChild(a); window.URL.revokeObjectURL(url); }, 0); } } }, computed: { portInfo() { return this.port?.getInfo() || null }, isConnected() { 97 return this.portInfo?.usbVendorId ? true : false }, portReadable() { return this.port?.readable || null }, outputData() { return this.rawOutputData }, }, mounted() { this.outputPanel = document.getElementById('output-panel') this.scrollToBottom() const ctx = document.getElementById('myChart') this.chart = new Chart(ctx, { type: 'line', data: { labels: this.chartLabels, datasets: this.chartData }, options: { scales: { y: { beginAtZero: true, }, }, }, }) console.log(this.chart) }, destroy() {}, }) 98

Ngày đăng: 03/06/2023, 08:20

Xem thêm: