標(biāo)題:
基于STM32單片機(jī)遠(yuǎn)程智能花盆GSM短信澆水補(bǔ)光設(shè)計(jì)源碼
[打印本頁(yè)]
作者:
何何何
時(shí)間:
2018-11-11 22:51
標(biāo)題:
基于STM32單片機(jī)遠(yuǎn)程智能花盆GSM短信澆水補(bǔ)光設(shè)計(jì)源碼
基于STM32單片機(jī)遠(yuǎn)程智能花盆GSM短信澆水補(bǔ)光設(shè)計(jì)
程序編程已經(jīng)添加附件,有需要的朋可以參考
單片機(jī)源程序如下:
#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; //讀取溫濕度標(biāo)志 定時(shí)器中處理
u8 LighFlag=0; //光照標(biāo)志
u8 ReadMes=0; //讀取短信標(biāo)志 定時(shí)器中處理
u8 delmes=0; //刪除短信
u8 MesgJiaoShuiFlag=0; //短信澆水標(biāo)志
u8 CountJiao=0; //短信澆水計(jì)時(shí) 定時(shí)器中處理
u8 MesgBuguangFlag=0; //短信補(bǔ)光標(biāo)志
u8 CountBu=0; //短信補(bǔ)光計(jì)時(shí) 定時(shí)器中處理
int main(void)
{
unsigned int i;
delay_init(); //延時(shí)函數(shù)初始化
NVIC_Configuration();//設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
uart_init(115200); //串口初始化
LED_Init(); //LED端口初始化
KEY_Init(); //按鍵端口初始化
TIM3_Int_Init(499,7199);//10Khz的計(jì)數(shù)頻率,計(jì)數(shù)到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; //關(guān)閉燈光
CTRL_RELAY=1; //關(guān)閉繼電器
for(i=0;i<50;i++) //延時(shí) 待gsm穩(wěn)定
{
delay_ms(100);
}
printf("AT+CMGF=1\r\n"); //設(shè)置字符
for(i=0;i<20;i++) //延時(shí)
{delay_ms(200);}
printf("AT+CSCS=\"GSM\"\r\n"); //設(shè)置gsm格式
for(i=0;i<20;i++) //延時(shí)
{delay_ms(20);}
printf("AT+CMGDA=\"DEL ALL\"\r\n");
for(i=0;i<20;i++) //延時(shí)
{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) //查看光照強(qiáng)度
{Lcd_1Put(14,1,'H');}
else
{Lcd_1Put(14,1,'L');}
if(DHT11.Hum_H<35) //
{
if(MesgJiaoShuiFlag==0) //短信不在控制時(shí)
{
CTRL_RELAY=0; //打開(kāi)繼電器
}
}
else
{
if(MesgJiaoShuiFlag==0) //短信不在控制時(shí)
{
CTRL_RELAY=1; //關(guān)閉繼電器
}
}
}
}
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; //打開(kāi)繼電器
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; //打開(kāi)燈光
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; //讀短信標(biāo)志清空
delay_ms(10);
}
if(LighR==1)
{
delay_ms(5);
if(LighR==1)
{
LighFlag=1;
if(MesgBuguangFlag==0) //短信不在控制時(shí)
{
CTRL_LIGH=0; //打開(kāi)燈光
}
}
}
else
{
LighFlag=0;
if(MesgBuguangFlag==0) //短信不在控制時(shí)
{
CTRL_LIGH=1; //關(guān)閉燈光
}
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
USER.rar
(93.93 KB, 下載次數(shù): 50)
2018-11-11 22:50 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
2568247339
時(shí)間:
2019-3-10 13:50
樓主,感覺(jué)附件程序貌似不完整,求分享完整程序
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1