1. 程式人生 > 實用技巧 >497【畢設課設】基於51微控制器太陽能鋰電池無線WiFi光照控制路燈

497【畢設課設】基於51微控制器太陽能鋰電池無線WiFi光照控制路燈

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

51微控制器太陽能鋰電池無線WiFi APP光照控制路燈21
本系統由STC89C52微控制器、太陽能電池板、鋰電池充放電保護、升壓、
WIFI模組、高亮LED燈、A/D取樣PCF8591、光照檢測組成。
1、通過太陽能給鋰電池充電,具有充電保護。鋰電池通過升壓升壓到
5V給整個微控制器系統供電;
2、上電預設自動狀態,通過光敏電阻檢測光照,進而控制燈的亮度,
天越黑,燈越亮;分0-4檔。
3、可以通過手機APP,通過藍芽控制燈的亮滅,點選“關閉”將關閉
Led;點選“開啟”將根據光照情況控制led燈即步驟2的作用。
4、微控制器檢測太陽能電池板的電壓,並將太陽能是否在給電池充電狀態
傳送給手機,手機APP相應狀態顯示。

傳送控制命令:
*C# //關閉led燈
*O# //開啟led燈 根據光照情況控制led燈

裝置傳送資料:
例子:*BYD1# //BY電池在充電 BN電池不在充電 D表示檔位1代表1檔
例子:*BND2# //BY電池在充電 BN電池不在充電 2檔

點選並拖拽以移動​

#include <reg52.h> 
#include <intrins.h>
#include <stdio.h>
#include <string.h>
#include "delay.h"
#include "i2c.h"

sbit LED0 = P1^1;
sbit LED1 = P1^0;

unsigned char Count1 =0 ; //pwm對比
unsigned char setPwm1 = 2;	  //pwm初始值
unsigned char reportMes = 0;	   //上報資料標誌

#define OPEN 0x22
#define CLOSE 0x33

unsigned long time_20ms=0;	   //定時器計數

float LighV=0.0;		  	//檢測電壓
float SunVolt=0.0;				  //檢測電流

unsigned char i,MesCount=0 ;
unsigned char sendDataFlag ;
unsigned char dis0[15]; //串列埠傳送內容
unsigned char BufTab[20]; //暫存 wifi串列埠傳送來的資料
unsigned char Count;	   //串列埠資料計數
unsigned char UartBusy=0;  //串列埠接收判忙
unsigned char ReadFlag=0;//串列埠讀取標誌	
unsigned long Num = 0;		   //計數
unsigned char rebackFalg =0 ;	  //返回命令標誌
unsigned char WifiCtrFlag = 1;			   //wifi控制標誌

void Init_Timer0(void);//函式宣告
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);