个人项目——基于STM32的太阳能供电智能花盆

        最近考完试是真的无聊,突然想起来之前有想做过智能花盆的,而且零件也买了,因为没有时间一直没做,正好现在有空,就把它做了吧。

        总体来说项目比较简单,所以做起来还是很快的,软硬件全部做完大概花个了四个小时,其中大部分时间在焊接硬件,老规矩,先来看我录的项目视频介绍

        点击观看视频

        接下来当然是项目的源码,也给大家准备好了

        点击下载代码

        这次没有单独设计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”


猜你喜欢

转载自blog.csdn.net/tichimi3375/article/details/80642246