1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code)

79 915 13

Đ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 79
Dung lượng 11,2 MB

Nội dung

TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code) ................................ TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code) ................................ TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code) ................................ TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code) ................................ TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code) ................................ TRẠM THÔNG TIN THỜI TIẾT tự ĐỘNG (có code) ................................

ĐỒ ÁN TỐT NGHIỆP TRẠM THÔNG TIN THỜI TIẾT TỰ ĐỘNG MỤC LỤC DANH MỤC CÁC HÌNH VẼ VI DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX CHƯƠNG TỔNG QUAN TRẠM THÔNG TIN THỜI TIẾT TỰ ĐỘNG 1.1 LÝ DO CHỌN ĐỀ TÀI 1.2 PHẠM VI THỰC HIỆN CỦA ĐỀ TÀI 1.3 KHẢ NĂNG ỨNG DỤNG RỘNG RÃI CỦA AWS 1.4 CƠ SỞ LÝ THUYẾT 1.4.1 Giao thức TCP/IP 1.4.2 Truyền thông nối tiếp UART CHƯƠNG XÂY DỰNG MƠ HÌNH TRẠM 2.1 CẤU TRÚC HỆ THỐNG AWS 2.2 PHẦN CỨNG CẢM BIẾN 2.2.1 Nhiệt độ, độ ẩm 2.2.2 Lượng mưa 2.2.3 Đo vận tốc gió 12 2.2.4 Đo hướng gió 14 2.2.5 Cường độ sáng 16 2.2.6 Áp suất khí 17 2.2.7 Truyền thơng 18 2.2.8 Bộ vi xử lý trung tâm 18 2.2.9 Khối nguồn20 5 CHƯƠNG THIẾT KẾ PHẦN MỀM QUẢN LÝ TRẠM 23 3.1 TỦ TRUNG TÂM 23 3.1.1 Quy trình hoạt động 3.1.2 Sơ đồ khối 24 23 3.1.3 Sơ đồ đấu dây tủ trung tâm 3.1.4 Lưu đồ giải thuật 26 3.2 PHẦN MỀM QUẢN LÝ TRẠM 31 3.2.1 Giao diện phần mềm GUI 31 3.2.2 Sơ đồ giải thuật 3.3 26 38 DỰ BÁO THỜI TIẾT 42 3.3.1 Vai trò dự báo thời tiết 42 3.3.2 Nguyên lý dự báo thời tiết 44 3.3.3 Phân tích số liệu thời tiết dựa quan trắc 46 3.3.4 Ứng dụng mạng Nơ-ron dự báo thời tiết CHƯƠNG THI CƠNG MƠ HÌNH TRẠM 52 4.1 MƠ HÌNH TRẠM 52 4.2 KẾT LUẬN 54 4.2.1 Hạn chế 54 4.2.2 Triển vọng đề tài 54 TÀI LIỆU THAM KHẢO PHỤ LỤC A 47 DANH MỤC CÁC HÌNH VẼ Hình 1-1 Cấu trúc chuỗi thông tin truyền Hình 2-1 Mơ hình hoạt động tổng quan hệ thống thu nhận thơng tin thời tiết .5 Hình 2-2 Sơ đồ khối hệ thống trạm Hình 2-3 Cảm biến DHT21 Hình 2-4 Đo mực nước siêu âm .8 Hình 2-5 Đo lượng nước cảm biến lưu lượng .9 Hình 2-6 Cấu tạo máng mưa nhỏ giọt 10 Hình 2-7 Cảm biến lưỡi gà 10 Hình 2-8 Cảm biến mưa .11 Hình 2-9 Cảm biến đo tốc độ gió SF-01 .12 Hình 2-10 Mặt cắt trục cảm biến tốc độ gió 13 Hình 2-11 Cảm biến hiệu ứng trường Hall 14 Hình 2-12 Encoder .14 Hình 2-13 Cánh gió điều hướng 15 Hình 2-14 Xung vuông kênh phân biệt chiều quay 15 Hình 2-15 Cảm biến cường độ sáng BH1750 .16 Hình 2-16 So áp sử dụng opam LM393 17 Hình 2-17 Cảm biến áp suất khí BMP180 17 Hình 2-18 ESP8266 18 Hình 2-19 Arduino Mega 2560 board trung tâm 19 Hình 2-20 Arduino UNO board phụ .19 Hình 2-21 Bộ chuyển nguồn 21 Hình 2-22 Mạch nguồn 5V-3A 22 Hình 3-1 Quy trình xử lý Aduino trung tâm 23 Hình 3-2 Sơ đồ khối hướng tín hiệu 24 Hình 3-3 Chuỗi thơng tin sau tính tốn từ Arduino 25 Hình 3-4 Tính tốn lượng mưa Arduino 26 Hình 3-5 Sơ đồ phân loại đóng khn liệu 28 Hình 3-6 Sơ đồ q trình truyền gói tin từ trạm lên máy chủ .29 Hình 3-7 Địa IP công khai .31 Hình 3-8 Giao diện phần mềm 31 Hình 3-9 Cụm gió 33 Hình 3-10 Cụm nhiệt độ .33 Hình 3-11 Cụm độ ẩm, áp suất khí .34 Hình 3-12 Cụm lượng mưa 34 Hình 3-13 Cụm ánh sáng .35 Hình 3-14 Cụm áp suất khí 35 Hình 3-15 Cụm độ cao theo mực nước biển 35 Hình 3-16 Cụm cài đặt 35 Hình 3-17 Cụm thống kê 37 Hình 3-18 Phần giới thiệu 37 Hình 3-19 Quy trình hoạt động phần mềm máy chủ 38 Hình 3-20 Quy trình nhận gói tin 38 Hình 3-21 Tách khơi phục liệu ban đầu .39 Hình 3-22 Mơ hình mạng nơ-ron 49 Hình 3-23 Cấu trúc mạng nơ-ron 49 Hình 3-24 Hàm chuyển đổi 50 Hình 3-25 Giải thuật dự báo 51 Hình 4-1 Mơ hình tổng quan hệ thống 52 DANH MỤC CÁC BẢNG BIỂU Bảng Bảng giá trị điện áp dòng điện thành phần hệ thống 20 Bảng Bảng tính hướng gió 40 Bảng Bảng quy định cấp gió Việt Nam 41 Bảng Bảng Độ ẩm, nhiệt độ thích hợp với người 44 Bảng Bảng phân tích dự báo thời tiết 47 DANH MỤC CÁC TỪ VIẾT TẮT AWS Automatic Weather Station UART Universal Asynchronous Receiver – Transmitter TCP/IP Transmission Control Protocol / Internet Protocol I2C Inter Integrated Circuit COM communication ANN Artificial Neural Networks AWS Automatic Weather Station TX Transmitter RX Receiver LSB least significant bit MSB most significant bit DC direct current EEPROM Electrically Erasable Programmable Read-Only Memory ĐỒ ÁN TỐT NGHIỆP Trang 1/56 CHƯƠNG TỔNG QUAN TRẠM THÔNG TIN THỜI TIẾT TỰ ĐỘNG 1.1 Lý chọn đề tài Mỗi ngày, hàng trăm ngàn trung tâm dự báo thời tiết toàn giới làm nhiệm vụ thu thập liệu biến đổi thời tiết, di chuyển khối khí áp từ phân tích đưa cảnh báo để người dân tìm cách ứng phó, thích nghi với thời tiết hợp lý Từ lâu, tin thời tiết hàng ngày quen thuộc với người, phần thiếu đời sống thường nhật Trung bình năm Việt Nam hứng chịu từ 10-15 bão (VD: năm 2017 Việt nam đón nhận 16 bão ) Dù cảnh báo từ sớm nhiên bão qt qua lúc người ta thấy mức độ tàn phá gây nó, hậu vơ nặng lên người dân đặc biệt biệt nông dân ngư dân mà hoạt động sản xuất phụ thuộc nhiều vào biến đổi thời tiết, khí hậu Hệ thống dự báo thời tiết Việt Nam yếu Số lượng trạm quan trắc ít, cơng nghệ dự báo thấp Thấu hiểu khó khăn người dân mùa mưa, bão nhằm hạn chế tối đa tác hại thời tiết cơng tác dự báo phải đặc lên hàng đầu xứng đáng nhận đầu tư cơng nghệ, đại hóa trạm dự báo thời tiết “thủ cơng” Việt Nam TRẠM THƠNG TIN THỜI TIẾT TỰ ĐỘNG đời lý 1.2 Phạm vi thực đề tài Trạm thông tin thời tiết tự động (tên tiếng Anh Automatic Weather Station gọi tắt AWS) trạm thu thập liệu điều kiện thời tiết gửi trung tâm dự báo thơng qua internet từ trung tâm phân tích số liệu đưa dự báo thời thời tiết Các điều kiện thời tiết trạm thu thập:  Nhiệt độ ĐỒ ÁN TỐT NGHIỆP Trang 2/56  Độ ẩm  Lượng mưa  Tốc độ hướng gió  Cường độ sáng  Áp suất khí AWS hoạt động xuyên suốt 24/24, liên tục cập nhật liệu trung tâm Dựa vào số liệu thu thập từ trạm máy chủ trung tâm phân tích số liệu thống kê đưa kết dự báo thời tiết vài 1.3 Khả ứng dụng rộng rãi AWS Chi phí sản xuất thấp nên việc nhân rộng trạm AWS tăng mật độ trạm quan trắc thời tiết dễ dàng, đặc biệt khu vực vùng cao khó khăn điều kiện kính tế Trạm đặt khu dân cư với mục đích dự báo thời tiết quy mơ hộ gia đình, nơng trại với nhu cầu cần đo đạc số yếu tố thời tiết AWS chạy độc lập mà không cần nguồn điện áp dân dụng khả kết nối từ xa thông qua kết nối internet nên thích hợp lắp đặt khu vực vùng sâu vùng xa, miền núi, hải đảo hay thuyền… Hướng phát triển AWS thu thập liệu lưu trữ ngoại tuyến khả kết nối với mạng lưới hệ thống dự báo thời tiết toàn cầu 1.4 Cơ sở lý thuyết 1.4.1 Giao thức TCP/IP Giao thức kiểm soát truyền tải (Transmission Control Protocol - TCP) Giao thức Internet (Internet Protocol - IP) ĐỒ ÁN TỐT NGHIỆP Trang 3/56 TCP/IP ban đầu Vint Cerf Bob Kahn xây dựng theo hợp đồng Bộ Quốc phòng Mỹ TCP/IP chuẩn phổ biến mà mạng nội diện rộng giao tiếp, cho phép máy tính kết nối với cho ứng dụng để gửi liệu Có lớp trừu tượng khác TCP/IP, lớp có giao thức riêng Các lớp gồm:  Lớp kết nối (link layer) - Đây lớp thấp ngăn TCP/IP nhóm phương thức vận hành kết nối máy chủ, thường biết đến Ethernet  Lớp Internet (IP) - Đây lớp kết nối mạng nội với  Lớp truyền tải (transport layer) (TCP) - Đây lớp điều khiển giao tiếp máy chủ tới máy chủ  Lớp ứng dụng (application layer) - Lớp ứng dụng tập hợp giao thức cụ thể giao tiếp liệu lớp trình tới trình 1.4.2 Truyền thông nối tiếp UART UART viết tắt Universal Asynchronous Receiver – Transmitter UART tích hợp hầu hết vi điều khiển PC/laptop với tên gọi cổng COM, tốc độ truyền nhận khoảng từ 9600 - 200000 baud Để đồng tốc độ truyền vi điều khiển tạo xung clock theo tốc độ baudrate quy định lập trình Cách thức truyền liệu UART  Để bắt đầu cho việc truyền liệu UART, START bit gửi đi, sau bit liệu kết thúc trình truyền STOP bit ĐỒ ÁN TỐT NGHIỆP Trang 58/56 4.2 Kết luận 4.2.1 Hạn chế Dù thiết kế để trạm hoạt động trời nhiên cần hạn chế để tủ trung tâm bị vô nước Mạch điện tử bên dễ hỏng gặp nước Một số phần vỏ làm thủ cơng chưa tinh tế dễ hỏng hóc Phần mềm máy chủ chưa hồn thiện phần phân tích số liệu đưa dự báo thời tiết thời gian hoạt động trạm chưa lâu Thiếu sở liệu để so sánh, kiểm chức kết dự báo Lập trình dựa tính tốn lý thuyết nên việc đo đạc nhiều có sai số 4.2.2 Triển vọng đề tài Như nói hệ thống dự báo thời tiết Việt Nam nhiều yếu theo đánh giá Phó Tổng Giám đốc Trung tâm KTTV QG Lê Thanh Hải sau:  Cả nước có 500 trạm quan trắc  Các trạm quan trắc thủ công việc đo đạc ghi nhận truyền số liệu quan trắc viên thực  Thời gian báo cáo liệu từ trạm trung tâm dự báo lâu, tình hình thời tiết dự báo thời tiết diễn biến phức tạp vượt khả dự báo trạm  Mật độ trạm mỏng  Nguồn nhân lực điều khiển vận hành hệ thống hạn chế Chính lẽ nên hội để mơ trạm thơng tin thời tiết tự động đưa vào vận hành , nhân rộng hồn tồn khả thi Chi phí xây dựng thấp, hoạt động độc lập tự vận hành truyền phát liệu máy chủ lợi trạm ĐỒ ÁN TỐT NGHIỆP Trang 59/56 Trạm đặt thuyền, nhà giàn, thiết kế theo hướng trôi lơ lửng sông, hồ, đảo hoàn toàn khả thi Nơi mà để xây dựng trạm quan trắc kích thước lớn khó khăn Hạn chế sức lao động sai sót từ người Việc nâng cấp hệ thống dự báo thời tiết Việt Nam vô cấp bách cần thiết Mỗi năm mùa mưa bão bao nỗi lo toan người dân lại đến Phòng tránh ứng phó kịp thời cách tốt để giảm thiểu thiệt hại không mong muốn thời tiết gây TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Trần Quang Khánh, Matlab ứng dụng, nhà xuất khoa học kỹ thuật [2] Học viện bưu viễn thơng, Giáo trình mạng máy tính, nhà xuất thơng tin truyền thơng [3] Nguyễn Linh Giang, Giáo trình lập trình C, nhà xuất giáo dục [4] Lê Tiến Thường, Mạch điện tử I, nhà xuất đại học quốc gia thành phố Hồ Chí Minh Tiếng Anh: [5] The Essence Of Chaos, Edward Lorenz [6] Artificial Neural Networks, Koprinkova-Hristova, , Mladenov [7] www.mathworks.com PHỤ LỤC A Arduino (main code) void wind () { wind_frequency++; } void rainfall () { rainfall_frequency++; delay(100); EEPROM.write(addrain, rainfall_frequency); if (addrain == EEPROM.length()) { addrain = 0; } } void setup() { Serial.begin(9600); Serial1.begin(9600); pinMode(wind_sensor, INPUT); digitalWrite(wind_sensor, HIGH); attachInterrupt(1, wind, RISING); sei(); // Enable interrupts currentTime = millis(); cloopTime = currentTime; dht.begin(); lightMeter.begin(); pinMode(rainfall_sensor, INPUT); digitalWrite(rainfall_sensor, HIGH); attachInterrupt(0, rainfall, RISING); } void loop() { currentTime = millis(); if(currentTime >= (cloopTime + 1000)) { cloopTime = currentTime; speed_wind = (wind_frequency); wind_frequency = 0; } float h = dht.readHumidity(); float t = dht.readTemperature(); uint16_t lux = lightMeter.readLightLevel(); int sensorReading = analogRead(A14); int rain = map(sensorReading, sensorMin, sensorMax, 0, 3); Serial.print(t); Serial.print('-'); Serial.print(h); Serial.print('-'); raincount = EEPROM.read(address); text=raincount; dodai=text.length(); switch (dodai) { case : Serial.print("0000"); Serial.print(raincount, DEC); break; case : Serial.print("000"); Serial.print(raincount, DEC); break; case : Serial.print("00"); Serial.print(raincount, DEC); break; case : Serial.print("0"); Serial.print(raincount, DEC); break; case : Serial.print(raincount, DEC); break; } hpa =Serial1.read(); Serial.print(hpa); } Serial.print('!'); } Matlab (main code) Run callback function RUN(hObject,event, handles) global s x y s1 data t ; t = datetime('now'); x=fscanf(s); y = strcat(s1,x); s1=y; if length(y)>39 %get 35 character data = strsplit(y,{' ','-'},'CollapseDelimiters',true); a=str2num(char(data(1))); %nhiet b=str2num(char(data(2))); %do am c=str2num(char(data(3))); %luongmua d=str2num(char(data(4))); %tocgio e=str2num(char(data(5))); %lux f=str2num(char(data(6))); %mua g=str2num(char(data(7))); %pressure set(handles.temperature,'String',a); set(handles.humidity,'String',b); set(handles.rainfall,'String',c); set(handles.windspeed,'String',d/80); set(handles.light,'String',e); set(handles.raining,'String',f); set(handles.pressure,'String',g); high= 96 * (a +273) /(g-1013.25)*6.1/20; set(handles.metters,'String',high); % 1013.25hpa 0metters switch f case set(handles.rain2,'String','Flood'); case set(handles.rain2,'String','Raining'); case set(handles.rain2,'String','Not Rain'); end fclose(s); delete(s); end View callback global i; load AWS.mat; j=i-1; time = datetime('now'); h=hour(time); %i ? h2m=h*60; m=minute(time); smin=h2m+m; delay=get(handles.timeupdate,'String'); delay=str2num(delay); dmin= get(handles.dtime,'String'); dmin=str2num(dmin); dh=fix(dmin/delay); % jump i %dm=fix(m/delay); %i=i-dh; %i,h now set(handles.time8,'String',strcat(num2str(h),':',num2str (m))); smin=smin-dmin; set(handles.time7,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); smin=smin-dmin; set(handles.time6,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); smin=smin-dmin; set(handles.time5,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); smin=smin-dmin; set(handles.time4,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); smin=smin-dmin; set(handles.time3,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); smin=smin-dmin; set(handles.time2,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); smin=smin-dmin; set(handles.time1,'String',strcat(num2str(fix(smin/60)), ':',num2str(mod(smin,60)))); u=num2str(j+1); xRange = strcat('B',u); Range=strcat('B2',':',xRange); temp = xlsread('data.xlsx',Range); set(handles.t8,'String',temp(j)); set(handles.t7,'String',temp(j-dh)); set(handles.t6,'String',temp(j-2*dh)); set(handles.t5,'String',temp(j-3*dh)); set(handles.t4,'String',temp(j-4*dh)); set(handles.t3,'String',temp(j-5*dh)); set(handles.t2,'String',temp(j-6*dh)); set(handles.t1,'String',temp(j-7*dh)); u=num2str(j+1); xRange = strcat('E',u); Range=strcat('E2',':',xRange); speedwind = xlsread('data.xlsx',Range); set(handles.v8,'String',speedwind(j)); set(handles.v7,'String',speedwind(j-dh)); set(handles.v6,'String',speedwind(j-2*dh)); set(handles.v5,'String',speedwind(j-3*dh)); set(handles.v4,'String',speedwind(j-4*dh)); set(handles.v3,'String',speedwind(j-5*dh)); set(handles.v2,'String',speedwind(j-6*dh)); set(handles.v1,'String',speedwind(j-7*dh)); u=num2str(j+1); xRange = strcat('G',u); Range=strcat('G2',':',xRange); pressure = xlsread('data.xlsx',Range); set(handles.p8,'String',pressure(j)); set(handles.p7,'String',pressure(j-dh)); set(handles.p6,'String',pressure(j-2*dh)); set(handles.p5,'String',pressure(j-3*dh)); set(handles.p4,'String',pressure(j-4*dh)); set(handles.p3,'String',pressure(j-5*dh)); set(handles.p2,'String',pressure(j-6*dh)); set(handles.p1,'String',pressure(j-7*dh)); u=num2str(j+1); xRange = strcat('C',u); Range=strcat('C2',':',xRange); humidity = xlsread('data.xlsx',Range); u=num2str(j+1); xRange = strcat('D',u); Range=strcat('D2',':',xRange); rainfall = xlsread('data.xlsx',Range); vi= get(handles.chose,'Value'); switch vi case %temp axes(handles.plot); t=[temp(j-7*dh) temp(j-6*dh) temp(j-5*dh) temp(j-4*dh) temp(j-3*dh) temp(j-2*dh) temp(j-1*dh) temp(j-0*dh) ]; stem(t,'LineStyle','-.', 'MarkerFaceColor','red', 'MarkerEdgeColor','green') set(handles.y,'String','°C'); case %speed axes(handles.plot); v=[speedwind(j-7*dh) speedwind(j-6*dh) speedwind(j-5*dh) speedwind(j-4*dh) speedwind(j-3*dh) speedwind(j-2*dh) speedwind(j-1*dh) speedwind(j0*dh) ]; stem(v,'LineStyle','-.', 'MarkerFaceColor','red', 'MarkerEdgeColor','green') set(handles.y,'String','m/s'); case %humjdjty h=[humidity(j-7*dh) humidity(j-6*dh) humidity(j5*dh) humidity(j-4*dh) humidity(j-3*dh) humidity(j-2*dh) humidty(j-1*dh) humidity(j-0*dh) ]; axes(handles.plot); stem(h,'LineStyle','-.', 'MarkerFaceColor','red', 'MarkerEdgeColor','green') set(handles.y,'String','%'); case %pressure p=[pressure(j-7*dh) pressure(j-6*dh) pressure(j5*dh) pressure(j-4*dh) pressure(j-3*dh) pressure(j-2*dh) pressure(j-1*dh) pressure(j-0*dh) ]; axes(handles.plot); stem(p,'LineStyle','-.', 'MarkerFaceColor','red', 'MarkerEdgeColor','green') set(handles.y,'String','hpa'); case r=[rainfall(j-7*dh) rainfall(j-6*dh) rainfall(j5*dh) rainfall(j-4*dh) rainfall(j-3*dh) rainfall(j-2*dh) rainfall(j-1*dh) rainfall(j-0*dh) ]; axes(handles.plot); stem(r,'LineStyle','-.', 'MarkerFaceColor','red', 'MarkerEdgeColor','green') set(handles.y,'String','ml'); end Update callback function update_Callback(hObject, eventdata, handles) global u data i y connect s s1; while u~=0 switch connect case delete(instrfind); pick = get(handles.COM,'Value'); s1=''; switch pick case s = serial('COM1'); case s = serial('COM2'); case s = serial('COM3'); case s = serial('COM4'); case s = serial('COM5'); case s = serial('COM6'); case s = serial('COM7'); case s = serial('COM8'); case s = serial('COM9'); case 10 s = serial('COM10'); end set(s,'BaudRate',9600,'DataBits',8,'Parity','none','Stop Bits',1); s.ReadAsyncMode = 'continuous'; %read direction s.BytesAvailableFcnCount = 1; s.InputBufferSize=5; s.OutputBufferSize=1; s.Terminator = 'CR'; s.BytesAvailableFcnMode = 'byte'; fopen(s); s.BytesAvailableFcn={@RUN,handles};% goi ham AUTO case t=tcpip('0.0.0.0', 80,'NetworkRole','server'); % Wait for connection set(handles.notice,'String','waiting for connection'); pause(1); fopen(t); set(hObject,'String','OK'); pause(1); set(handles.notice,'String','connect ok'); pause(1); for i=0:10 DataReceived=fread(t,2); data = hex2dec(DataReceived); set(handles.internet,'String',data); end end load AWS.mat; j=i; j=num2str(j); data = strsplit(y,{' ','-'},'CollapseDelimiters',true); a=str2num(char(data(1))); F1(1)=a; temp_max=max(temp); temp_min=min(temp(temp>0)); b=str2num(char(data(2))); F1(2)=b; c=str2num(char(data(3))); c=c*2/(pi*90*90); F1(3)=c; d=str2num(char(data(4))); d=d/8; F1(4)=d; e=str2num(char(data(5))); F1(5)=e; f=str2num(char(data(6))); F1(6)=f; g=str2num(char(data(7))); F1(7)=g; filename = 'data.xlsx'; t = datetime('now'); DateString = datestr(t); row={DateString}; yl=strcat('A',j); sheet = 1; xlswrite(filename,row,sheet,yl); column = {a}; xlRange = strcat('B',j); xlswrite(filename,column,sheet,xlRange); column = {b}; xlRange = strcat('C',j); xlswrite(filename,column,sheet,xlRange) column = {c}; xlRange = strcat('D',j); xlswrite(filename,column,sheet,xlRange) column = {d}; xlRange = strcat('E',j); xlswrite(filename,column,sheet,xlRange) column = {e}; xlRange = strcat('F',j); xlswrite(filename,column,sheet,xlRange) column = {g}; xlRange = strcat('G',j); xlswrite(filename,column,sheet,xlRange) i=i+1; %Xu ly so lieu bo sung save AWS.mat i; set(handles.tempmin,'String',temp_min); set(handles.tempmax,'String',temp_max); if d

Ngày đăng: 27/02/2018, 10:43

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w