最近考完试是真的无聊,突然想起来之前有想做过智能花盆的,而且零件也买了,因为没有时间一直没做,正好现在有空,就把它做了吧。
总体来说项目比较简单,所以做起来还是很快的,软硬件全部做完大概花个了四个小时,其中大部分时间在焊接硬件,老规矩,先来看我录的项目视频介绍
接下来当然是项目的源码,也给大家准备好了
这次没有单独设计APP,只用了机智云的Demo APP,大家有需要单独设计的请查看我的博客:“个人项目——机智云开源APP基础修改教程(Android)” https://blog.csdn.net/tichimi3375/article/details/80621362,里面有详细的修改步骤,包看包会。同样的用STM32连接机智云的教程也有:https://blog.csdn.net/tichimi3375/article/details/80292336
先上几张成品图
云端的数据点有
硬件连接如下
关键部分的代码如下
adcx=Get_Adc_Average(ADC_Channel_1,10);//获取PA1的adc值
adcy=Get_Adc_Average(ADC_Channel_2,10);//获取PA2的adc值
temp=(float)adcx*(3.3/4096);//得到电压
temp1=((float)adcy*(3.3/4096))*5;//得到电压再乘5,因为电压检测模块将检测到的电压缩小了5倍再输出给单片机
percent=(3.3-temp)/3.3*100;//自定义湿度百分比
adcz=Lsens_Get_Val();//得到光照强度
currentDataPoint.valueHumidity = percent;//上传湿度百分比
currentDataPoint.valueVoltage = temp1;//上传电池电压
currentDataPoint.valueLight = adcz; //上传光照强度
//printf("Humity:%f %%\r\n",percent);
//printf("ADC_channel2:%f\r\n",temp1);
if(0x01 == currentDataPoint.valueAutomatic)//如果自动模式开启
{
currentDataPoint.valueWatering=0;//浇水功能不能使用
if(percent<40)//如果湿度小于40%
{
LED0=1;//闭合继电器浇水
}else
{
LED0=0;//否则不动作
}
}else
{
if(0x01 == currentDataPoint.valueWatering)//如果自动模式关闭,浇水功能开启
{
//user handle
LED0=1;//闭合继电器浇水
}
else
{
//user ha.ndle
LED0=0;//否则不浇水
}
}
if(temp1<2)
{
currentDataPoint.valueWarning = 1;//如果电池电压小于2V,开启报警
}else
{
currentDataPoint.valueWarning = 0;
}
项目基本就是这样了,其实并不难,大家可以认真阅读学习。
至此,教程结束,谢谢大家,也欢迎大家关注我的个人技术与资源分享公众号“linkutures”