




摘要:設計一款基于Arduino的車載測雪系統,旨在實現對冬季冰雪路面數據的實時采集和監測。采用ArduinoUnoR3作為控制器,通過超聲波傳感器和溫濕度傳感器采集積雪深度數據和溫濕度數據,并由液晶1602實時顯示數據,為駕駛員冰雪天氣安全行駛提供參考依據。通過軟件仿真采集積雪深度數據和溫濕度數據,計算測量數據的誤差,分析測量的準確性,從而驗證該測雪系統設計的可行性。
關鍵詞:車載測雪系統Arduino控制器傳感器
中圖分類號:U463.6
DesignofanArduino-BasedVehicleSnowMeasurementDataSystem
ZHANGMan1LIWei2WANGWenshuai1FENGZhu1WANGZhiqiang1CUIHaibin1WANGJiangbei1
1.HarbinPetroleumUniversity,HarbinCity,HeilongjiangProvince,150028China;2.ComprehensiveInformationSecurityCenteroftheStaffDepartmentoftheArmedPoliceHeilongjiangCorps,HarbinCity,HeilongjiangProvince,150028China
Abstract:Inthisstudy,anArduino-basedvehiclesnowmeasurementsystemisdesigned,aimingtoachievereal-time?WgmjSxmtuHF1EGh4gTzYSB1Fy3nOuqN5yNVed4rRoy8=;datacollectionandmonitoringofwintericeandsnowroadconditions.ThesystemusesArduinoUnoR3asthecontroller,collectsdataofsnowdepth,temperatureandhumiditythroughultrasonicsensorsandtemperatureandhumiditysensors.Italsodisplaysthedatainreal-timeona1602LCDscreen,providingreferenceforsafedrivinginsnowyweatherforthedriver.Itcollectssnowdepthdataandtemperatureandhumiditydatathroughsoftwaresimulation,calculatesmeasurementdataerrors,analyzestheaccuracyofthemeasurements,andthusverifiesthefeasibilityofthesnowmeasurementsystemdesign.
KeyWords:Vehicle;Snowmeasurementsystem;Arduinocontroller;Sensor
我國東北地區大地冰雪覆蓋的時間較長,下雪結冰具有不確定性,給路面交通帶來安全隱患。突如其來的下雪和結冰給車輛行進帶來困擾。本文設計一種用于冬季冰雪頻繁地區路面檢測的系統,能根據測得的溫濕度數據確定行駛路面四周是否結冰,根據超聲波測距原理測得雪地厚度,為車輛平穩行駛,確定雪地行駛路線提供參考依據,為有清雪能力的車輛提供數據支持。氣象局采用積雪深度來衡量降雪強度,積雪深度是指積雪表面到下墊面的垂直深度[1]。
1總體設計
監測系統必備電源,電源模塊負責提供系統需要的各種供電電壓[2],本設計采用直流5V的電源模塊。如圖1所示,本文選用ArduinoUnoR3作為控制器,ArduinoUNOR3是一款基于ATmega328P的微控制器板[3]。選用數字溫濕度傳感器DHT22測量環境的溫度、濕度。DHT22適用于道路積雪監測系統中對溫濕度數據的采集,選用超聲波傳感器HC-SR04測量積雪深度,監測積雪情況。表1描述了各傳感器的工作參數,包括測量范圍、測量精度、工作電壓范圍、工作溫度范圍等。根據系統設計要求,傳感器是安裝在車底盤,工作在戶外,因此有環境溫度要求。
2系統工作原理
本設計分四步驟工作,分別為傳感器測量、數據處理、數據顯示和輸出、系統控制。車載測雪系統采用超聲波傳感器測量車下方積雪深度,溫濕度傳感器測量當前溫濕度。Arduino采集傳感器數據,根據預定的算法和邏輯處理數據。Arduino會將距離數據轉換為實際的雪深度數值,并根據采集的溫濕度情況。通過LCD顯示屏呈現給駕駛員。硬件的具體連接如圖2所示。
3超聲波傳感器測量原理
超聲波探頭發射一組超聲波脈沖,并由處理器記下初始發射時間[4],通過計算收到回波所需時間,來計算距離的。由于傳感器安裝高度固定,通過連續測量即可實現對雪深的
監測[5]。假設超聲波在空氣中的速度在恒定不變的前提下,得到數學表達式:
式(1)中:s為距離;v為超聲波速度(空氣中數值為343m/s);Δt為從發送到收到回波的時間差。
4軟件平臺及硬件支持
本設計采用Arduino2.2作為編程平臺,Proteus8.15作為硬件繪制和仿真平臺。
4.1系統程序
#include<LiquidCrystal_I2C.h>
#include<microDS18B20.h>
MicroDS18B20<12>sensor;
LiquidCrystal_I2Clcd(0x27,16,2);
#defineHC_TRIG3
#defineHC_ECHO2
uint32_tmyTimer1;
#defineALPHA0.2
floatfilteredDistance=0;
inttemper;
voidsetup(){
Serial.begin(9600);
lcd.init();
BJiyq3S/lJhUdHoAHfkmvg==lcd.backlight();
pinMode(HC_TRIG,OUTPUT);
pinMode(HC_ECHO,INPUT);
temper=sensor.getTemp();
}
voidloop(){
floatdist=getDist(temper);
floatfilteredDistance=getFilteredDistance(dist);
Serial.print(dist);
Serial.print("");
Serial.print(filternWfpJTvClGRRLRYQgCtc+Q==edDistance);//выводим
Serial.print("");
Serial.println(temper);
delay(50);
if(millis()-myTimer1>=1000)
{
myTimer1=millis();
lcd.setCursor(0,0);
lcd.print("");
lcd.setCursor(0,0);
lcd.print(filteredDistance);
}
}
floatgetDist(intt){
digitalWrite(HC_TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(HC_TRIG,LOW);
uint32_tus=pulseIn(HC_ECHO,HIGH);
return(us*(t*6/10+330)/2000ul/10);
}
floatgetFilteredDistance(floatnewDistance){
filteredDistance=(ALPHA*newDistance)+((1-ALPHA)*filteredDistance);
returnfilteredDistance;
}
{
"version":1,
"author":"ValeraGribov",
"editor":"wokwi",
"parts":[
{"type":"wokwi-Arduino-uno","id":"uno","top":0.6,"left":-115.8,"attrs":{}},
{"type":"wokwi-lcd1602","id":"lcd1","top":16, "left":236,"attrs":{"pins":"i2c"}},
{
"type":"wokwi-hc-sr04",
"id":"ultrasonic1",
"top":-228.9,
"left":197.5,
"attrs":{"distance":"18"}
},
{"type":"board-ds18b20","id":"temp1","top":-279.53,"left":4.08,"attrs":{}},
{
"type":"wokwi-resistor",
"id":"r1",
"top":-177.6,
"left":37.85,
"rotate":90,
"attrs":{"value":"5000"}
}
]
"connections":[
["lcd1:VCC","uno:5V","red",["h-28.8","v163.3","h-172.8"]],
["lcd1:GND","uno:GND.2","black",["h-19.2","v182.4","h-163.2"]],
["lcd1:SDA","uno:A4","green",["h-48","v201.8","h-67.2","v-9.6"]],
["lcd1:SCL","uno:A5","green",["h-19.2","v182.7","h-76.8"]],
["ultrasonic1:VCC","uno:5V","red",["v48","h-403.2","v374.4","h182.4","v-9.6"]],
["ultrasonic1:GND","uno:GND.1","black",["v19.2","h-298.8","v28.8"]],
["ultrasonic1:TRIG","uno:3","green",["v67.2","h-0.4"]],
["ultrasonic1:ECHO","uno:2","green",["v86.4","h-0.8"]],
["temp1:GND","uno:GND.1","black",["v0"]],
["temp1:VCC","uno:5V","red",["v9.6","h38.4","v-86.4","h-220.8","v576","h211.2"]],
["temp1:DQ","uno:12","green",["v0"]],
["temp1:DQ","r1:2","green",["v0"]],
["r1:1","temp1:VCC","red",["h0","v0","h-38.4","v-28.8"]]
],
"dependencies":{}
}
4.2積雪深度和溫濕度數據仿真測量結果
以2023年11月6日哈爾濱地區暴雪天氣數據為例,戶外溫度-9℃,相對濕度85%,積雪深度25cm。用前述數據作為本研究的輸入數據,如圖3、圖4所示,當戶外積雪深度輸入數據為25cm時,超聲波傳感器測得積雪深度數據為24cm,誤差為1cm。當戶外溫濕度輸入數據分別為-9℃、85%時,溫濕度傳感器測得溫度數據為-9℃,濕度數據為85%。仿真測量基本準確。
5結語
本設計為車輛駕駛員提供行車路上積雪深度和戶外環境溫濕度,為冰雪路面行車提供參考依據。
本研究實現了車載測雪系統功能,為冬季行車提供積雪數據信息。通過溫濕度傳感器判斷行駛路面是否結冰。選用超聲波傳感器回波反射測量車下雪地深度數據。
本文設計的是一種應用于冬季冰雪道路的測雪系統,通過電腦軟件仿真驗證測雪系統設計的可行性,從獲得的數據來看,超聲波測深度存在一定誤差,相對誤差為0.4%,為可以接受范圍。溫濕度傳感器測量仿真測量結果基本正確。
qExiJTKrHS8hB442bvdkFQ==本文軟件仿真驗證結果有一定的局限性,天氣轉暖積雪消融,超聲波傳感器無法到真實環境測量驗證,獲取真實數據。該系統在車輛底盤的準確位置還有待進一步校正。
參考文獻
[1]劉威.鐵路沿線激光雪深計研究與設計[D].南京:南京信息工程大學,2021.
[2]胡敏.基于邊緣AI的雪面識別技術研究與應用[D].南京:南京信息工程大學,2021.
[3]黃業源,李守曉.基于Arduino與Blinker云平臺的溫室大棚環境監控及自動灌溉系統設計[J].物聯網技術,2024,14(1):26-28,33.
[4]孟慶偉,張磊,蒲莉莉.超聲波自動化積雪深度測量與分析[J].測繪與空間地理信息,2021,44(9):102-105,109.
[5]周鵬,楊帥,楊斌,等.人工觀測與超聲波傳感器測量雪深的差異及其影響因素[J].貴州農業科學,2020,48(6):139-142.