|
使用 TLink 远程控制开发板灯光的亮度、色温以及 RGB 颜色。主程序如下:
#include "stdio.h"
#include "string.h"
#include "DELAY/Delay.h"
#include "ADC/ADC.h"
#include "LED/LED.h"
#include "NVIC/NVIC.h"
#include "IIC/IIC.h"
#include "OLED/OLED.h"
#include "DHT11/DHT11.h"
#include "UART/uart.h"
#include "NetWork.h"
#include "LIGHT/Light.h"
#include "TIMx/TIMx.h"
#include "DMA/DMA.h"
#include "TLink.h"
extern u16 RGB_buffer[69];
DeviceSta_Strcture device = {0};
int main(void)
{
u8 i = 0;
u16 DHT11_data; //存储DHT11传感器采集数据
/*初始化各外设*/
initSysTick();
initADC();
initUART();
initUART2();
initLED();
initDHT11();
initIIC();
initOLED();
initNVIC(NVIC_PriorityGroup_2);//开启UART2的接收和空闲中断
/*设置定时器2时钟为10us,1KHz*/
initTIMx(TIM2,719,100,TIM_IT_Update,DISABLE);
initTIM2OC1(50);
initTIM2OC2(50);
initTIMx(TIM4,0,89,TIM_IT_Update,DISABLE);
initTIM4OC1(0);
initDMA(DMA1_Channel1, (u32)(&TIM4->CCR1), (u32)RGB_buffer,sizeof(RGB_buffer));
/*亮度10%,色温50%,RGB红光*/
initLight(0,0,0,0,0);
formatScreen(0x00);//清屏
/*打印ESP8266启动信息到OLED*/
if(initESP8266()!=0)
{
showString(0,0,"init ok!",FONT_16_EN);
}else
{
showString(0,0,"init error!",FONT_16_EN);
}
if(connectAP(SSID,PWD)!=0)
{
showString(0,2,"conn ap ok!",FONT_16_EN);
}else
{
showString(0,2,"con ap error!",FONT_16_EN);
}
if(connectTlink()!=0)
{
showString(0,4,"conn TLink ok!",FONT_16_EN);
}else
{
showString(0,4,"conn TLink no!",FONT_16_EN);
}
Delay_ms(1000);//让数据保持一段时间
formatScreen(0x00);
showCNString(32,0," ",FONT_16_CN);
showString(0,2,"Hum :",FONT_16_EN);
showString(0,4,"Temp:",FONT_16_EN);
showString(0,6,"Lux :",FONT_16_EN);
while (1)
{
/*数据采集显示*/
if(++i>30)
{
i = 0;
DHT11_data = readDHT11();
device.Humidity = DHT11_data>>8;
device.Temperature = DHT11_data&0x00FF;
device.Lux = getConvValueAve(10,1000);
showNumber(40,2,device.Humidity,DEC,3,FONT_16_EN);
showNumber(40,4,device.Temperature,DEC,3,FONT_16_EN);
showNumber(40,6,device.Lux,DEC,4,FONT_16_EN);
sendDeviceStatus(&device);
}
toggleLED();
Delay_ms(100);
}
}
|
-
-
智能灯泡.7z
193.07 KB, 下载次数: 49, 下载积分: 黑币 -5
|