摘要:设计一款基于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.