基于stm32单片机的土壤检测仪系统设计

 本设计的硬件构成:

STM32F103C8T6单片机最小系统板(包含+3.3V稳压电路+时钟晶振电路+复位电路(上电自复位,手动复位)),温度传感器、PH传感器、OLED显示屏、按键、蜂鸣器、语音播报模块、蓝牙模块等电路构成;

功能介绍:

1、单片机采集土壤的湿度值、温度值、PH值。

2、采用OLED显示器显示土壤信息。

3、按键设置土壤湿度、温度、PH值阈值,当湿度触发阈值时,语音播报:湿度低,自动启动水泵补水。温度、PH触发阈值时,蜂鸣器报警。按键能手动控制水泵。

4、通过蓝牙连接手机APP,实时显示数据,接收报警信息,并能远程控制水泵的开关。

5、按键可调整报警值阈值,可切换手自动模式,控制水泵的开关。

PCB图:

程序源码:

int main(void)
 {
   vu8 key=0;  
  
  delay_init();         //延时函数初始化    
  BEEP_Init();           //初始化蜂鸣器端口
  KEY_Init();           //初始化与按键连接的硬件接口
  uart_init(9600);
   usart2_Init(9600);  
  TIM2_Int_Init(999,7199);//10Khz的计数频率,计数到5000为500ms  
  Adc_Init();
   FAN_Init();
​
   
  OLED_Init();
  OLED_ColorTurn(0);//0正常显示,1 反色显示
  OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
​
  display_refresh(); 
  BEEP=1;
  PUMP=1; 
  
  Delay_ms(500);
​
  while(1)
  {
    key=KEY_Scan(1);  //得到键值
    KEY_Handle(key);
    
    APP_Handle();
    
    
    if(T_1s>45)
    {
      T_1s=0;
      if(mode==AUTO)
      {
        if((warn_flag==2))
        {
            play_voice(1);
        }
      }  
    }
    
    if(T_100ms>=10)
    {
      T_100ms = 0;
      if(refresh==1)
        APP_refresh();
      if(people_flag>0)
        people_flag--;
      
      //采集湿度、PH值
      ALValue = (u16)Humi(); 
      PH = Get_PH();
      //采集温度值
      Temp=((u16)DS18B20_Get_Temp());
​
      
      if(set==0)           //set为0,说明现在不是设置状态
      {
          display_refresh();   //显示AD数值和报警值
        
        if(warn_flag>0)
        {
          BEEP=~BEEP;
        }
        else
          BEEP=1;
        
        if((Temp>setTemp))
        {
          warn_flag=1;
        }
        else if(ALValue<WARNING)
        {
          warn_flag=2;
        }
        else if(PH>setPH)
        {
          warn_flag=3;
        }
        else
        {
          warn_flag=0;
        }
        
        
        if(mode==AUTO)
        {
          if((warn_flag==2))
          {
            if(PUMP_state==1)
              PUMP=0;
          }
          else
          {
              PUMP=1;
          }
        }    
      }
        
​
    }
    
​
  }   
}

资料链接:https://pan.baidu.com/s/1j1N-Vf8JcQFP5ozN0Q6Bdw 
提取码:gb4z

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于STM32单片机的电子负载仪系统设计可以用于测试和评估各种电子设备的负载能力。该系统主要包括STM32单片机、负载电阻、电源模块和显示模块等组成。 首先,STM32单片机作为系统的核心控制部分,负责接收和处理来自用户的指令,并控制负载电阻的工作状态。通过编程控制STM32单片机,可以实现负载电阻的电流和电压的精确调节,以模拟各种电子设备的工作状态。 其次,负载电阻用于接收STM32单片机输出的电流和电压控制信号,并通过调节电阻来模拟负载设备。通过改变负载电阻的阻值,可以模拟电子设备在不同负载下的工作情况,并测试其稳定性和性能表现。 电源模块用于提供能源给负载电阻,确保负载电阻可以正常工作。可以根据不同的负载要求,选择适当的电源模块来提供所需的电压和电流。 显示模块用于显示测试结果和参数。可以根据需要设计一个液晶屏或者LED显示屏,用于显示当前负载电流、电压、功率等信息,便于用户进行观察和分析。 整个系统的工作流程如下:用户通过操作系统的界面选择需要测试的负载电流或电压值,STM32单片机接收到用户指令后,调节负载电阻的电流和电压值,并将实时的工作参数显示在显示模块上。 基于STM32单片机的电子负载仪系统设计具有可靠性高、精度高、控制灵活等特点,可以有效地满足电子设备负载能力测试的需求。同时,该系统设计也可以进行扩展和改进,以适应不同领域的需求,为电子设备设计和生产提供强有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值