這個是我用32做的智能家居系統,可通過esp8266模塊通過手機控制電器,超級方便哦
單片機源程序如下:
- #include "stm32f4xx.h"
- #include "systick.h"
- #include "led.h"
- #include "sys.h"
- #include "key.h"
- #include "tim4.h"
- #include "beep.h"
- #include "usart.h"
- #include "stdio.h"
- #include "DHT11.h"
- #include "duoji.h"
- #include "PWN.h"
- #include "stdlib.h"
- char read_data[30]={0};
- uint16_t count=0;
- float temp=22,Humi=67;
- uint8_t data;
- int kk=5,kkk=0,kai=0;
- char Strf[2000]={0};
- uint8_t dht_data[5]={0},ret=0;
- char Strf[2000];
- void wendu()
- {
- USART3_SendString("AT+CIPSEND=0,21\r\n");
- delay_ms(700);
- ret = dht11_read_data(dht_data);
- if(ret == 0) //????
- {
- sprintf(Strf,"Temp=%d.%d,humi=%d.%d\r\n",dht_data[2],dht_data[3],dht_data[0],dht_data[1]);
- USART3_SendString(Strf);
- }
- }
- void duoji_pwm(uint32_t zhuan)
- {
- int i;
- for(i=0;i<100;i=i+zhuan)
- {
- TIM_SetCompare2(TIM3,i);
- delay_ms(50);
- }
- }
- //-----------------------------------------------------------------
- void moshi_1()
- {
-
-
-
- int a=0,i=5,j=0,k=0,c_s=3;
- uint16_t shu[4];
- int ceshi[5]={0};
-
- if(read_data[count-1]=='n' && read_data[count-7]=='b')
- {
- PFout(8)=1;
- a=0;
- }
- else if(read_data[count-1]=='f' && read_data[count-8]=='b')
- {
- PFout(8)=0;
- a=0;
- }
-
-
-
- if(read_data[count-1]=='l' && read_data[count-9]=='G')
- {
- int x=0;
- wendu();
- a=0;
- }
-
-
-
-
- if((read_data[count-7]=='l' || read_data[count-6]=='l' || read_data[count-5]=='l')&&(read_data[count-6]=='e' || read_data[count-5]=='e'|| read_data[count-4]=='e'))
- {
- for(i=0;read_data[count-1-i]!='_';i++)
- {
- shu[i]=read_data[count-1-i];
- }
- if(i==3)
- {
- j=100;
- }
- else if(i==2)
- {
- j=(shu[0]-'0')+(shu[1]-'0')*10;
- }
- else if(i==1)
- j=shu[0]-'0';
-
- ceshi[c_s++]=j;
- delay_ms(20);
- if((ceshi[c_s-1])-(ceshi[c_s-2])==0)
- {
- a=0;
- c_s=3;
- }
- TIM_SetCompare1(TIM14,j);
- a=0;
- }
-
-
-
-
-
- if((read_data[count-7]=='d' || read_data[count-6]=='d'|| read_data[count-5]=='d' )&&(read_data[count-6]=='u' || read_data[count-5]=='u'|| read_data[count-4]=='u'))
- {
- for(i=0;read_data[count-1-i]!='_';i++)
- {
- shu[i]=read_data[count-1-i];
- }
- if(i==3)
- {
- j=(shu[0]-'0')+(shu[1]-'0')*10+(shu[2]-'0')*100;
- }
- else if(i==2)
- {
- j=(shu[0]-'0')+(shu[1]-'0')*10;
- }
- else if(i==1)
- j=shu[0]-'0';
-
- ceshi[c_s++]=j;
- delay_ms(20);
- if((ceshi[c_s-1])-(ceshi[c_s-2])==0)
- {
- a=0;
- c_s=3;
- }
- if(j==0){kkk=0;}
- if(j<45&&j>0){kk=14;kkk=1;}
- else if(j>45&&j<90){kk=10;kkk=1;}
- else if(j>90&&j<135){kk=7;kkk=1;}
- else if(j>135&&j<180){kk=3;kkk=1;}
- }
- }
- int main(void)
- {
- Systick_init(168);
- usart1_init();
- usart3_init(115200);
- ESP8266_Init();
- beep_init();
- led_init();
- tim7_init();
- hongwai_init();
- DHT11_init();
- tim14_pwm_init();
- tim3_ch2_pwm_init();
-
- while(1)
- {
- if(a==0)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
zonggongcheng19.rar
(4.08 MB, 下載次數: 67)
2018-7-18 22:09 上傳
點擊文件名下載附件
總工程 下載積分: 黑幣 -5
|