标题:
基于STM32单片机远程智能花盆GSM短信浇水补光设计源码
[打印本页]
作者:
何何何
时间:
2018-11-11 22:51
标题:
基于STM32单片机远程智能花盆GSM短信浇水补光设计源码
基于STM32单片机远程智能花盆GSM短信浇水补光设计
程序编程已经添加附件,有需要的朋可以参考
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "usart.h"
#include "timer.h"
#include "lcd1602.h"
#include "dht11.h"
char tab[16];
u8 ReadDhtFlag=0; //读取温湿度标志 定时器中处理
u8 LighFlag=0; //光照标志
u8 ReadMes=0; //读取短信标志 定时器中处理
u8 delmes=0; //删除短信
u8 MesgJiaoShuiFlag=0; //短信浇水标志
u8 CountJiao=0; //短信浇水计时 定时器中处理
u8 MesgBuguangFlag=0; //短信补光标志
u8 CountBu=0; //短信补光计时 定时器中处理
int main(void)
{
unsigned int i;
delay_init(); //延时函数初始化
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化
LED_Init(); //LED端口初始化
KEY_Init(); //按键端口初始化
TIM3_Int_Init(499,7199);//10Khz的计数频率,计数到500为50ms
LED=0;
Lcd_GPIO_init(); //初始化lcd引脚
Lcd_Init(); //初始化lcd屏幕
delay_ms(20);
Lcd_Puts(0,0,"My Designer! "); //初始化显示
// sprintf(tab,"NowTemp:%02d DH:%02d",(u16)DHT11.Tem_H,(u16)DHT11.Hum_H); //1602显示
sprintf(tab,"Temp:%02d DH:%02d L ",(u16)DHT11.Tem_H,(u16)DHT11.Hum_H);
Lcd_Puts(0,1,(unsigned char *)tab); //初始化显示
CTRL_LIGH=1; //关闭灯光
CTRL_RELAY=1; //关闭继电器
for(i=0;i<50;i++) //延时 待gsm稳定
{
delay_ms(100);
}
printf("AT+CMGF=1\r\n"); //设置字符
for(i=0;i<20;i++) //延时
{delay_ms(200);}
printf("AT+CSCS=\"GSM\"\r\n"); //设置gsm格式
for(i=0;i<20;i++) //延时
{delay_ms(20);}
printf("AT+CMGDA=\"DEL ALL\"\r\n");
for(i=0;i<20;i++) //延时
{delay_ms(20);}
LED=1;
while(1)
{
if(ReadDhtFlag==1)
{
ReadDhtFlag=0;
if(DHT11_ReadData()) //是否读取到温湿度
{
sprintf(tab,"Temp:%02d DH:%02d L ",(u16)DHT11.Tem_H,(u16)DHT11.Hum_H);
Lcd_Puts(0,1,(unsigned char *)tab); //初始化显示
if(LighFlag==1) //查看光照强度
{Lcd_1Put(14,1,'H');}
else
{Lcd_1Put(14,1,'L');}
if(DHT11.Hum_H<35) //
{
if(MesgJiaoShuiFlag==0) //短信不在控制时
{
CTRL_RELAY=0; //打开继电器
}
}
else
{
if(MesgJiaoShuiFlag==0) //短信不在控制时
{
CTRL_RELAY=1; //关闭继电器
}
}
}
}
if(ReadMes==1)
{
ReadMes=0;
printf("AT+CMGR=1\r\n"); //读取短信 串口中接收到 timebuf[]中
delay_ms(200);
for(i=0;i<SIZEBUF-4;i++)
{
LED=0;
if((timebuf[i]=='j')&&(timebuf[i+1]=='i')&&(timebuf[i+2]=='a')&&(timebuf[i+3]=='o')&&(timebuf[i+4]=='s')) //查询是否接收到JW
{
MesgJiaoShuiFlag=1;
CountJiao=0;
CTRL_RELAY=0; //打开继电器
printf("AT+CMGDA=\"DEL ALL\"\r\n");//删除所有短信
delay_ms(500);
}
if((timebuf[i]=='b')&&(timebuf[i+1]=='u')&&(timebuf[i+2]=='g')&&(timebuf[i+3]=='u')&&(timebuf[i+4]=='a')) //查询是否接收到JW
{
MesgBuguangFlag=1;
CountBu=0;
CTRL_LIGH=0; //打开灯光
printf("AT+CMGDA=\"DEL ALL\"\r\n");//删除所有短信
delay_ms(500);
}
LED=1;
}
for(i=0;i<SIZEBUF;i++)
{
timebuf[i]='0'; //清空timebuf
}
delmes++;
if(delmes>=10)
{
delmes=0;
printf("AT+CMGDA=\"DEL ALL\"\r\n");//删除所有短信
delay_ms(500);
}
ReadMes=0; //读短信标志清空
delay_ms(10);
}
if(LighR==1)
{
delay_ms(5);
if(LighR==1)
{
LighFlag=1;
if(MesgBuguangFlag==0) //短信不在控制时
{
CTRL_LIGH=0; //打开灯光
}
}
}
else
{
LighFlag=0;
if(MesgBuguangFlag==0) //短信不在控制时
{
CTRL_LIGH=1; //关闭灯光
}
}
}
}
复制代码
所有资料51hei提供下载:
USER.rar
(93.93 KB, 下载次数: 50)
2018-11-11 22:50 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
2568247339
时间:
2019-3-10 13:50
楼主,感觉附件程序貌似不完整,求分享完整程序
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1