背景分析
国内外均有自动浇花系统的应用,大多数自动浇花系统是利用虹吸原理,即利用渗透的方式浇花,这种方式浇花过程是连续的、不间断的,采用这种方式只能保证花不会干旱而死,不是花需要浇水时才进行浇灌。还有一些自动浇水系统,可以设定何时进行浇灌及浇灌时间,与上一种方式相同,也不是花需要浇水时才进行浇灌。
现在一些自动浇水系统,是采用单片机控制,利用湿度传感器采集湿度信息,需要浇水时自动浇灌,但是需要用在外部有水龙头的情况下,而家庭花草种植一般都放在阳台上,阳台上一般均没有水龙头,使用起来非常不方便。基于单片机的智能浇花系统可以在阳台上使用,能够按需自动浇花。
需求分析
随着社会经济的不断发展和社会消费水平不断的上升,人们对生活质量的要求也逐渐提高。比如对居家绿化的需求越来越大,于是很多人喜欢在家里或者办公室种植盆栽花卉,通过种植花卉可以放松心情、陶冶情操、净化室内空气、美化家庭环境。该系统是基于当下人们生活节奏快,无暇顾及家中花草的情况下设计出来的一个基于单片机STM32F103C86T为核心的智能浇水系统。
实现功能
1.实现温度、湿度、烟雾浓度、光照情况、土壤湿度、水位深度的环境采集
2.通过wifi模块将数据传送到云平台,小程序通过API调用实现数据的监控以及指令下发控制水泵舵机的驱动以及灯光的控制。
3.阈值
硬件选型:stm32f103zet6 0.96存OLED显示屏 DHT11 光敏传感器 土壤湿度传感器 超声波传感器 esp8266wifi模块
微信小程序端
![在这里插入图片描述](https://img-blog.csdnimg.cn/67b2319c9b584596bd96024238960d1d.pn
代码如下:
int main(void) {unsigned char *dataPtr = NULL;unsigned short timeCount = 0;//·¢Ëͼä¸ô±äÁ¿Configuration_init();printf("8266_INIT_ENDn");while(OneNet_DevLink())//½ÓÈëOneNETdelay_ms(500);printf("½ÓÈëonenet³É¹¦");while(1){ ValueCompare(); //ãÐÖµÉ趨key_num=KEY_Scan(0);if(key_num==1){GPIO_SetBits(GPIOB,GPIO_Pin_7); //Ë®±Ã¿ªË®key_num=0;shuibeng=1;}if(key_num==2){GPIO_ResetBits(GPIOB,GPIO_Pin_7); //Ë®±Ã¹ØË®shuibeng=0;}showdata();light=Lsens_Get_Val();shidu=Get_Adc_Average(1,10);//»ñÈ¡ÍÁÈÀʪ¶Èdistance=Hcsr04GetLength();//»ñÈ¡³¬Éù²¨´«¸ÐÆ÷ÊýÖµDistacne=distance;//printf("temp %d hum %d light %d diantce %drn",DHT11_Data.temp_int,DHT11_Data.humi_int,light,Distance);if(++timeCount >= 50)//ʱ¼ä¼ä¸ô5s{if( Read_DHT11(&DHT11_Data)==SUCCESS) //¡°¡±±íʾתÏòÒ»ÏÂÐÐ{humidityH=DHT11_Data.humi_int; //ʪ¶ÈÕûÊý²¿·ÖhumidityL=DHT11_Data.humi_deci; //ʪ¶ÈСÊý²¿·ÖtemperatureH=DHT11_Data.temp_int; //ζÈÕûÊý²¿·ÖtemperatureL=DHT11_Data.temp_deci; //ζÈСÊý²¿·Ö}OneNet_SendData();//·¢ËÍÊý¾Ý¸øonenettimeCount = 0;ESP8266_Clear();printf("Êý¾ÝÉÏ´«Íê³Érn");}dataPtr = ESP8266_GetIPD(0);//»ñȡƽ̨·µ»ØµÄÊý¾Ýif(dataPtr != NULL)//Èç¹û·µ»ØÊý¾Ý²»Îª¿ÕOneNet_RevPro(dataPtr);//ƽ̨·µ»ØÊý¾Ý¼ì²â // }
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152