一、树莓派收集土壤湿度传感器数据
日子中咱们经常会养一些花花草草,可是由于往常作业繁忙或许其他工作往往把家里的这些花花草草给忘记了洒水。导致自己喜爱的花草就这样干枯了,又或许在农业生产环境中对重生的培养发芽的种子对湿度要求比较高的状况。那么有没有一款能够主动洒水的的计划了。这儿玩树莓派的极客朋友可能会想到用土壤湿度传感器来判别什么时候洒水,没错今日咱们牛人技能就为咱们讲讲用树莓派收集土壤湿度的办法。
二、传感器的挑选和衔接
市道上有两种原理的传感器,分别是电阻式土壤湿度传感器和电容式土壤湿度传感器。这儿咱们主张咱们运用电容式土壤湿度传感器由于除了其精度高些之外,电阻式土壤传感器由于其规划的原理会使得长时间放入土壤里的传感脚极简单被电解和腐蚀,然后大大降低了传感器的运用寿命并且也影响精度。
一般电容式土壤湿度传感器都是支撑3.3伏特至5.5伏特的电压,这个区间的电压在树莓派的GPIO接口上仍是十分简单获得的,衔接到树莓派的5V电压脚上之后接上ADC模拟信号转数字信号转化模块板上。这儿土壤传感器模块和树莓派相衔接的一方有四个针脚他们分别是AO模拟信号输出,DO数字信号输出,GND电源负极,VCC电源正极(选用3.3V或许5V电压)这儿咱们把VCC衔接到树莓派的PIN2针脚上面,把GND衔接到树莓派的PIN6针脚上面,然后再把数字信号输出脚DO衔接到树莓派的GPIO_GEN1的GPIO18端口上面。然后再把传感器模块的另一端两个针脚连到土壤触摸插销板上面,这样土壤湿度传感器的衔接就根本结束了。
三、PYTHON收集土壤传感器代码
代码中经过获取GPIO的电平凹凸来判别土壤中的水分含量
publicGpioPinMoistureSensorOutputPin{get;set;}
publicDispatcherTImerDispatcherTImer{get;set;}
publicMainPage(){
this.IniTIalizeComponent();Loaded+=OnLoaded;
}
privateasyncvoidOnLoaded(objectsender,RoutedEventArgsroutedEventArgs){
varctl=awaitGpioController.GetDefaultAsync();MoistureSensorOutputPin=ctl?.OpenPin(21);
if(MoistureSensorOutputPin!=null){
MoistureSensorOutputPin.SetDriveMode(GpioPinDriveMode.Input);
DispatcherTImer=newDispatcherTimer(){
Interval=TimeSpan.FromSeconds(1)
};
DispatcherTimer.Tick+=(O_O,n_n)=》{
varpinv=MoistureSensorOutputPin.Read();
if(pinv==GpioPinValue.High){
Debug.WriteLine(“IsDry”);
}
else{
Debug.WriteLine(“OkWaterDetected!”);
}
};
DispatcherTimer.Start();
}
}