最近考完试是真的无聊,突然想起来之前有想做过智能花盆的,而且零件也买了,因为没有时间一直没做,正好现在有空,就把它做了吧。
总体来说项目比较简单,所以做起来还是很快的,软硬件全部做完大概花个了四个小时,其中大部分时间在焊接硬件,老规矩,先来看我录的项目视频介绍
接下来当然是项目的源码,也给大家准备好了
这次没有单独设计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”