我的订单购物车(0)联系客服 帮助中心供应商合作 嘉立创产业服务群
领券中心备货找料立推专区爆款推荐TI订货PLUS会员BOM配单工业品PCB/SMT面板定制

这土好不好,我一戳就知道!我花12元,做了个土壤检测笔……

2025-05-20 09:30:41阅读量:944

做了个土壤温湿度监测笔

土壤温湿度监测笔

以后我家小绿植的“生活环境”健康不健康,我一戳就知道!横批:了如指掌!

表情包
 
01
项目功能

项目功能

演示一下!

温湿度检测

 

01
什么原理来的??
 

这是一种TDR电容式的,高精度的,便携式的,土壤温湿度监测笔。

采用时域反射法对电容值进行测量,经过多次调试后,可对土壤的湿度进行精准测量。

该方案为非接触式土壤,可避免土壤对关键测量器件进行腐蚀实际使用时可在针头加一圈热缩管,不影响测量值,但需注意需要紧贴测量针。

具体到电路,要怎么设计呢?

 

02
电路设计
 

电路设计方案采用集成式TDR电容测量MCU加精调LC频选电路,也可以更改参数测量水培植物液位值。

 

原理图

原理图

PCB

PCB

来分析一下,这个简单的电路设计!

电路由以下部分组成,充电部分,主控模块,电源部分、开关机部分。

 

01 
充电部分
 
充电部分

采用CN3163对锂电池进行充电该芯片与TP4056管家兼容,可对单节锂电池进行快速充电,并自带过流过压保护,且无锂电池时也可稳压输出4.2V 

充电时U3亮起,U4熄灭;充满时U4亮起,U3熄灭。

 

02 
电源部分
 
电源部分

采用LDO电源芯片,稳压3.3V供电,该芯片压差70mV@(300mA),完全满足3.7V锂电池供电该系统最大10MA功耗。



03 
显示部分
 
显示部分

采用OLED显示屏显示,该屏幕尺寸为0.91寸,黑底白光,LED采用5MA低功耗LED,可最大降低功耗

 
04 
主控部分
 
主控部分

主控采用MCP62G进行采集和显示,该芯片采用M0内核,自带电容测量芯片;自带温度测量端,可测量土壤温度;也带有1路I2C可方便对OLED屏进行驱动,1路串口进行调试和接入联动模块。

03
软件代码
 
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
unsigned int temp=115,hh=122;unsigned int hhwarn1=600,hhwarn2=400,hhwarn3=200//10倍数数值int main(void){  char i;  unsigned char systime;  const unsigned char  *point;  SystemInit();              GPIOKEY_Configure();    TIM1_Configure();#if defined uart_en  PLATFORM_Init();	//Initialize configuration#endif  cap_structure.I_DRIVE = DRIVE_I_80mA;	//Select 4mA driving current  cap_structure.FIN_DIV = FIN_DIV_128;	//Input oscillation 128 division frequency  cap_structure.FREF_DIV = Fref_NO_DIV;	//Sampling clock without frequency division  cap_structure.clk = In_CLK;	//Using CAR AFE internal clock  if(cap_structure.clk == In_CLK)cap_structure.clkfre = 2.4/(Fref_NO_DIV+1);	//2.4Mhz sampling frequency  else if(cap_structure.clk == Ex_CLK)cap_structure.clkfre = 12.0/(Fref_NO_DIV+1);	//12.0Mhz sampling frequency  cap_structure.RCNT = RCNT_D;	//Set sampling time  cap_structure.avg = 20;  Cap_Afe_Init(&cap_structure);	//Initialize CAP AFE#if defined VT_EN        cap_structure.VT_CH=vt_structure;  myVT_Init(&cap_structure);  PLATFORM_InitDelay();      #endif	while (1){        Single_Measure(&cap_structure);	//Measure CAP AFE information    float Cx0,Cx1,CF1,CF0;    CF0 = Cd0*(Cp0+Cpcb0)/(Cd0+(Cp0+Cpcb0));    CF1 = Cd1*(Cp1+Cpcb1)/(Cd1+(Cp1+Cpcb1));    Cx1 = 1/((cap_structure.fre_ch1*cap_structure.fre_ch1)*4*(PI*PI)*L1)-CF1;    Cx0 = 1/((cap_structure.fre_ch0*cap_structure.fre_ch0)*4*(PI*PI)*L0)-CF0;    cap_structure.cap0 = Cs0*Cx0/(Cd0-Cx0);    cap_structure.cap1 = Cs1*Cx1/(Cd1-Cx1);    if(cap_structure.cap0<0)cap_structure.cap0=0;    if(cap_structure.cap1<0)cap_structure.cap1=0;       myGetVT(&cap_structure,50);	//Measuring temperature information    #if defined uart_enPR("CH0_COUNT:%d  CH0_FRE:%.3f Mhz  CH0_CAP:%.3f pF  CH1_COUNT:%d  CH1_FRE:%.3f Mhz  CH1_CAP:%.3f pF  VT:%.1f mV\r\n",cap_structure.count_ch0		,cap_structure.fre_ch0,cap_structure.cap0,cap_structure.count_ch1,cap_structure.fre_ch1,cap_structure.cap1,cap_structure.VT*1000);#endiftemp=cap_structure.VT*1000;hh  = (cap_structure.cap1/17.2*100-45.3)*2.45*10;     #if defined uart_en    PR("temp is %f",cap_structure.VT*(-16.66)+48.32);#endif    if(cap_structure.cap1>10)  if(hh=120)  {	 systime  =0;RCC_APB1PeriphClockCmd(RCC_APB1ENR_PWR, ENABLE);		PWR_EnterSLEEPMode(PWR_SLEEPNOW_WFE);  }}

 

项目DIY成本约

12元

 

05
开源网址
 

本项目已开源!

——想复刻想给作者点赞复制开源网址 前往原文。

开源网址:https://oshwhub.com/xiumusheng/soil-moisture-monitoring-pen