一、樹莓派采集土壤濕度傳感器數(shù)據(jù)
生活中我們經(jīng)常會養(yǎng)一些花花草草,但是因為平常工作忙碌或者其他事情往往把家里的這些花花草草給忘記了澆水。導致自己喜歡的花草就這樣枯萎了,又或者在農(nóng)業(yè)生產(chǎn)環(huán)境中對新生的培育發(fā)芽的種子對濕度要求比較高的情況。那么有沒有一款可以自動澆水的的方案了。這里玩樹莓派的極客朋友可能會想到用土壤濕度傳感器來判斷什么時候澆水,沒錯今天我們牛人技術就為大家講講用樹莓派采集土壤濕度的方法。
二、傳感器的選擇和連接
市面上有兩種原理的傳感器,分別是電阻式土壤濕度傳感器和電容式土壤濕度傳感器。這里我們建議大家使用電容式土壤濕度傳感器因為除了其精度高些之外,電阻式土壤傳感器因為其設計的原理會使得長期放入土壤里的傳感腳極容易被電解和腐蝕,從而大大降低了傳感器的使用壽命而且也影響精度。
一般電容式土壤濕度傳感器都是支持3.3伏特至5.5伏特的電壓,這個區(qū)間的電壓在樹莓派的GPIO接口上還是非常容易取得的,連接到樹莓派的5V電壓腳上之后接上ADC模擬信號轉(zhuǎn)數(shù)字信號轉(zhuǎn)換模塊板上。這里土壤傳感器模塊和樹莓派相連接的一方有四個針腳他們分別是AO模擬信號輸出,DO數(shù)字信號輸出,GND電源負極,VCC電源正極(采用3.3V或者5V電壓)這里我們把VCC連接到樹莓派的PIN2針腳上面,把GND連接到樹莓派的PIN6針腳上面,然后再把數(shù)字信號輸出腳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();
}
}