样图:
任务:
前段时间接手了一个项目,需求很简单,熟练的话可以在1小时内完成,要求:检测环境温度,土壤湿度,当前环境PH值,当PH<6或者PH>8时蜂鸣器报警,当土壤湿度小于某一值时开启水泵浇水,将所有数据在OLED上显示,并发送手机端,使手机端可以实时监测数据。话不多说,开始解析
首先确定硬件
按照任务要求:
- 需要检测环境温度--DHT11(温湿度传感器,IIIC通讯)
- 需要检测土壤湿度--土壤湿度传感器(ADC检测)(必须放土壤,否则检测不了)
- 需要检测当前环境PH值--PH4502C(ADC检测)
- 需要蜂鸣器报警--有源蜂鸣器
- 需要开启水泵浇水--继电器+水泵(引脚驱动能力有限)
- 需要数据在OLED上显示--OLED(4针脚IIC)
- 需要数据发送手机端--蓝牙HC-05(串口通讯)+手机端APP(蓝牙测试助手)
利用STM32F103C8T6作为主控,PCB电路板连接电路
代码思路:
首先初始化各个硬件、PWM(继电器用PWM驱动)
获取各个模块数据值
利用PH值变量判断蜂鸣器是