基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)

这篇具有很好参考价值的文章主要介绍了基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本系统由通过wifi将浑浊度、PH值、温度采集的数据发送到手机APP,超过设定的阈值报警。

一、硬件材料清单:

1、STM32C8T6:控制器

2、OLED显示屏:显示传感器采集的数据

3、PH传感器:检测PH值

4、TDS传感器:检测浑浊度

5、DS18B02水温传感器:检测温度

6、ESP8266:将数据发送到手机端

7、蜂鸣器:超过阈值报警

二、实物图:

基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)

三、部分源码:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//定时器中断回调函数
{
    
    HAL_TIM_Base_Stop_IT(&htim2);//停止定时器中断
    
    static uint8_t cot = 0;
    char temp_a [50] = {0};
    char humidity_a[20] = {0};
    uint16_t ADC_Value,PH_Value1;
    double  ADC_ValueFF,PH_Value;
    char charadc[50]={0};
    char charph[50]={0};
    
    
    
    beep_OFF();//关闭蜂鸣器
    if(flag == 1)//关灯
    {
        HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
    }
    else //开灯
    {
        HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);
    }

    if (htim == (&htim2))
    {
       if(cot == 25)//5s发一次心跳包
       {
           HAL_UART_Transmit(&huart2,(uint8_t *)xtb, 2, 200);//发送心跳包
           cot = 0;//定时器计数归0
              
       }
        
       
         temperature = DS18B20_Get_Temperature();                //读取温度值
   
        HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&AD_Value,2);        //开启DMA

        ADC_ValueFF = -865.68*(AD_Value[0]*3.3/4096.0)+3291.3;//通过公式得到浑浊度的值
        
        PH_Value = AD_Value[1]*3.3/4096;                    //得到采集PH值的电压
        PH_Value = -5.9647*PH_Value+22.255;                        //通过公式转换成PH值

        if(PH_Value<=0) PH_Value = 0;                            //PH值小于0 矫正为0
        else if(PH_Value>=14) PH_Value = 14;                    //PH值大于14 矫正为14
   
        sprintf(temp_a,"%d.%dC",(int)temperature/10,(((int)temperature)%10));//将温度转换成字符串的格式
        sprintf(charph,"%.2F",PH_Value);                         //将PH转换成字符串的格式
        sprintf(charadc,"%.2F",ADC_ValueFF);                     //将浑浊度转换成字符串的格式
            
        Release((char*)"temp",(char*)temp_a);                    //在手机APP上面显示温度
        Release((char*)"PH",(char*)charph);                        //在手机APP上面显示PH值
        Release((char*)"Turbidity",(char*)charadc);                //在手机APP上面显示浑浊度
        
        OLED_ShowString(0,16,(uint8_t *)"temp:        ",16,1);    //在OLED显示屏上面显示temp:
        OLED_ShowString(40,16,(uint8_t *)temp_a,16,1);            //在OLED显示屏上面显示温度
        
        OLED_ShowString(0,32,(uint8_t *)"PH:       ",16,1);        //在OLED显示屏上面显示PH:
        OLED_ShowString(40,32,(uint8_t *)charph,16,1);            //在OLED显示屏上面显示PH值
   
        OLED_ShowString(0,48,(uint8_t *)"ZD:       ",16,1);        //在OLED显示屏上面显示ZD: 
        OLED_ShowString(40,48,(uint8_t *)charadc,16,1);            //在OLED显示屏上面显示浑浊度的值
        OLED_Refresh();                                            //刷新OLED显示屏


        if((int)(temperature/10)<T_Min||(int)(temperature/10)>T_MAX)//判断温度是否在设定范围 不在则蜂鸣器响
        {
            beep_On();//蜂鸣器响
        }
        else if((int)(ADC_ValueFF)<TDS_Min||(int)(ADC_ValueFF)>TDS_MAX)//判断浑浊度是否在设定范围 不在则蜂鸣器响
        {
            beep_On();//蜂鸣器响
        }
        else if((int)(PH_Value)<PH_Min||(int)(PH_Value)>PH_MAX)//判断PH值是否在设定范围 不在则蜂鸣器响
        {
            beep_On();//蜂鸣器响
        }
        else beep_OFF();//全部条件都不满足则关闭蜂鸣器

       cot++;//定时器计数加1
   
      
    }


    HAL_TIM_Base_Start_IT(&htim2);//开启定时器
}
 

四、原理图:

        以下是整个工程各个模块的原理图:

基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)

五.更多:

 如果想要更加详细的了解整个工程的话可以去b站看这个视频演示,下面为视频链接:

单片机毕业设计:基于stm32的远程水质检测_哔哩哔哩_bilibili

给个免费的三连哦!!!文章来源地址https://www.toymoban.com/news/detail-400123.html

到了这里,关于基于STM32(HAL库)的水质检测(浑浊度、PH值、温度、手机APP显示、wifi上云)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 70、基于STM32单片机的蓝牙智能热水器控制系统设计温度温控水温水位检测

    毕设帮助、开题指导、技术解答(有偿)见文末。 目录 摘要 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、硬件框图 七、程序源码 八、资料包括 随着社会的发展,人类科技的进步,各行各业都在使自己的产品智能化、数字化,因老式的热水器使用煤气

    2024年02月05日
    浏览(92)
  • 基于STM32的水质在线监测系统(论文+源码)

    1.系统设计 本次水质在线监测系统选用STM32单片机作为整个系统的主控制器,整个系统集成了温度传感器、浊度传感器、PH传感器,用于对环境内部的水温、水质、水资源的PH值来进行实际数据的检测工作,  2.实物效果

    2024年01月20日
    浏览(25)
  • STM32-03基于HAL库(CubeMX+MDK+Proteus)输入检测案例(按键控制LED)

    搭建完成开发STM32开发环境之后,开始GPIO的学习。上一节已经测试了使用GPIO的输出模式,实现LED点亮的功能。 本次案例实现GPIO的输入检测功能,实现按键状态检测,通过按键状态控制LED。 需求分析: 接线:PA6-KEY1、PA7-KEY2、PA0-LED1、PA1-LED2; KEY1控制LED1、KEY2控制LED2; 按键闭

    2024年04月23日
    浏览(38)
  • 【基于STM32F103C8T6的DS18b20温度检测系统】

    库函数是ST公司针对STM32系列微控制器提供的一套API,可以方便地实现各种功能。下面是一个基于STM32F103C8T6的温度检测系统的示例,使用了STM32F10x标准库函数。 硬件部分: - STM32F103C8T6微控制器 - 电源模块 - 温度传感器模块 软件部分: - Keil C编译器 - STM32F10x_StdPeriph_Driver库文件

    2024年01月20日
    浏览(33)
  • 毕业设计——基于STM32的智能家具控制系统(ESP-01S(8266)、手机app远程控制、远程显示温度)

    智能家具系统分为两个不同版本系列: ①系列一:手机app远程控制、远程检测温湿度显示在app,(云平台)    ---------本文章 ②系列二:语音识别控制                https://blog.csdn.net/m0_59113542/article/details/123742383 步进电机及相关驱动 步进电机28BYJ48 uln2003驱动板器4相5线

    2023年04月09日
    浏览(37)
  • STM32 CubeMX ADC采集 单通道,多通道,内部温度(轮询,DMA,中断)(HAL库)

    12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部 信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右 对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定

    2024年02月06日
    浏览(66)
  • 物联网毕设(基于STM32的蓝牙检测心率+步数+手机APP)

    目录 流程图 开发所需平台 keil5+Android studio 需要的元器件 线路连接图 stm32F103C8T6 蓝牙模块 心率模块(MAX30102)  震动开关(SW-18015P)  手机APP  实验效果 程序链接 底层 APP keil5+Android studio 线路连接图   stm32F103C8T6 蓝牙模块 ( JDY-31 蓝牙 SPP)我选择的是无主机的,这里可以修改

    2024年02月08日
    浏览(32)
  • STM32 HAL 检测PWM频率/占空比

    配置的系统时钟是100M,Timer的时钟也是100M Timer 的频率为:100M 分频 1000 = 0.1MHz 也就是定时器 每10us 计一个数 打开TIM4_CH2引脚中断 在 main.c 中开启中断 TIM4_CH2引脚中断回调 占空比%: TempPIpre *100 / TempPIpul 周期T: TempPIpul * 10us 频率f: 1 / T

    2024年02月13日
    浏览(31)
  • 基于STM32的温度控制系统

    提示:记录毕设 基于STM32的温度控制系统,主控使用STM32F103ZET6,在正点原子的精英板上开发(本人也在野火板子上测试成功)。 1.1设计(研究)目标: 我们研究一种基于STM32的智能温度控制系统。该系统以STM32F103作为主控芯片﹐配备了PTC加热器、测温模块﹑等一系列模块。本文

    2024年02月03日
    浏览(42)
  • Stm32_标准库_期末设计_温度测量&光照测量&手机与芯片通信实现信息的更新

    期末设计预期的效果是整个系统能对环境温度、环境的光照情况进行测量及显示,并且能对时间及日期进行显示。时间与日期的控制不再打算用按键进行修改,取而代之用蓝牙模块实现手机与蓝牙模块之间单向通信,即手机向蓝牙模块发送当前的时间或日期,蓝牙模块接受数

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包