"); //-->
概况
本文档主要介绍智能彩灯五路产品原型的应用代码部分,关于环境搭建、SDK移植、下载调试。
注:可根据本文档,在IoT开发平台实时体验实现智能彩灯五路产品
链接:https://iot.tuya.com/?_source=f4d84f4a7084838a1b9d01f6395976a3
步骤
第 1 步:下载验证
ST Nucleo,按键1长按为配网,指示灯旁黑色按键为开发板复位口,USB为程序下载口。

涂鸦三明治(PWM)照明功能板

涂鸦三明治 Wi-Fi MCU 通信板(E3S)

连接方式如下:(从上到下依次为:涂鸦三明治(PWM)照明功能板,ST Nucleo,涂鸦三明治 Wi-Fi MCU 通信板(E3S))
注意:为防止电脑 USB 供电不足导致下载完成后,开发板不断重启,推荐使用独立电源板供电,或者,下载时将 RGB 板取下,下载完成后再接上。
第 2 步:程序实现
开发者需要重点关注三个函数setup(),loop()与 dp_download_handle()
1.setup()函数用于执行一些初始化内容,只执行一次
void setup() {
pinMode(PC13, INPUT); //配网初始化
mySerial.begin(9600); //软件串口初始化
mySerial.println("myserial init successful!");
Serial.begin(115200); //PA3 RX PA2 TX
Serial.println("serial init successful!\r\n");
light_data_int(); //RGB冷暖灯初始化
IIC_Init(); //IIC初始化用于驱动RGB灯
delay(10);
rgb_init(0, 0, 0);
wifi_protocol_init(); //协议串口初始化函数
timer_init(); //定时器初始化
Hue_shade_start(&a);
}
2.loop()函数将会循环执行函数体中的内容
void loop() {
if (init_flag == 0) {
time_cnt++;
if (time_cnt % 6000 == 0) {
time_cnt = 0;
cnt ++;
}
wifi_stat_led(&cnt); //WI-FI状态处理
}
wifi_uart_service(); //WI-FI串口处理服务
myserialEvent(); //串口接收处理
key_scan(); //重置配网按键检测
}
/*****************************************************************************
函数名称 : dp_download_handle
功能描述 : dp下发处理函数
输入参数 : dpid:DP序号
value:dp数据缓冲区地址
length:dp数据长度
返回参数 : 成功返回:SUCCESS/失败返回:ERRO
使用说明 : 该函数用户不能修改
*****************************************************************************/
unsigned char dp_download_handle(unsigned char dpid, const unsigned char value[], unsigned short length)
{
/*********************************
当前函数处理可下发/可上报数据调用
具体函数内需要实现下发数据处理
完成用需要将处理结果反馈至APP端,否则APP会认为下发失败
***********************************/
unsigned char ret;
printf("dpid = %d\r\n", dpid);
switch (dpid)
{
case DPID_SWITCH_LED:
//开关处理函数
ret = dp_download_switch_led_handle(value, length);
break;
case DPID_WORK_MODE:
//模式处理函数
ret = dp_download_work_mode_handle(value, length);
break;
case DPID_BRIGHT_VALUE:
//白光亮度处理函数
ret = dp_download_bright_value_handle(value, length);
break;
case DPID_TEMP_VALUE:
//白光色温处理函数
ret = dp_download_temp_value_handle(value, length);
break;
case DPID_COLOUR_DATA:
//彩光颜色处理函数
ret = dp_download_colour_data_handle(value, length);
break;
case DPID_CONTROL_DATA:
//调节处理函数
ret = dp_download_control_data_handle(value, length);
break;
default:
break;
}
return ret;
}
3.dp_download_handle()主要用于处理由云端下发的DP数据,开发者需要根据相应的DP下发实现相应的功能
/*****************************************************************************
函数名称 : dp_download_handle
功能描述 : dp下发处理函数
输入参数 : dpidDP序号
value:dp数据缓冲区地址
length:dp数据长度
返回参数 : 成功返回:SUCCESS/失败返回:ERRO
使用说明 : 该函数用户不能修改
*****************************************************************************/
unsigned char dp_download_handle(unsigned char dpid, const unsigned char value[], unsigned short length)
{
/*********************************
当前函数处理可下发/可上报数据调用
具体函数内需要实现下发数据处理
完成用需要将处理结果反馈至APP端,否则APP会认为下发失败
***********************************/
unsigned char ret;
printf("dpid = %d\r\n", dpid);
switch (dpid)
{
case DPID_SWITCH_LED:
//开关处理函数
ret = dp_download_switch_led_handle(value, length);
break;
case DPID_WORK_MODE:
//模式处理函数
ret = dp_download_work_mode_handle(value, length);
break;
case DPID_BRIGHT_VALUE:
//白光亮度处理函数
ret = dp_download_bright_value_handle(value, length);
break;
case DPID_TEMP_VALUE:
//白光色温处理函数
ret = dp_download_temp_value_handle(value, length);
break;
case DPID_COLOUR_DATA:
//彩光颜色处理函数
ret = dp_download_colour_data_handle(value, length);
break;
case DPID_CONTROL_DATA:
//调节处理函数
ret = dp_download_control_data_handle(value, length);
break;
default:
break;
}
return ret;
}
云端下发的颜色数据为 HSV 格式我们需要将其转化为 RGB 格式,并对 RGB 数据修正,即得到正确的 RGB 值供显示
RGB 调光部分几个重要API:
如果您想了解更多电工照明行业技术干货,我推荐您看下沈军武老师(资深电工照明行业技术专家,拥有10余年电工照明行业经验)在2020年6月3日晚19:30的直播课分享,届时沈老师将会带来《新基建逻辑下,如何实现智慧升级》的干货课程。参加课程还有机会免费获取三明治开发板,以及联网模块,课程详情见下方海报。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
意法半导体半桥栅极驱动器简化低压系统中的GaN电路设计
赋能边缘人工智能:2025贸泽与你大咖说即将重磅启幕
国产高精度、高速率ADC芯片,正在崛起
热电制冷摄像机配套电源的研究
CF148系列双电源通用型四运放
LM324单、双电源通用型四运放
中美达成贸易框架,可避免100%关税并暂停稀土限制
请问那位大侠有UC/GUI的 LCDLIN.C LCD CONTROLLER?
代做vxworks系统下界面开发
铅酸蓄电池自动充放电控制器的设计与实现
[交流]FPGA设计工具软件及IPcore交流!
mpc860+vxWorks兼职招聘(上海)
CF7631系列双电源高输入阻抗三运放
先进开发工具赋能国产车规级MCU在新能源汽车动力系统落地
DC-DC 转换器工作原理是什么?
代做vxworks系统下界面开发
瑞萨汽车仪表盘解决方案—H8S/228x
教你怎样改善输出滤波
利用Wave-Inspector进行数字系统查障
半导体靶材,如何左右7nm以下制程?
淼森波×泰克科技联合实验室正式揭牌
面向先进处理解决方案的低压大电流设计
模拟训练设备的操作评估专家系统
时钟芯片的低功耗设计
人形机器人,带火这些国产芯片
平面变压器的结构原理与应用
IDC发布2026全球IT行业十大预测:塑造未来IT领导力的三大力量
CM358单电源通用型双运放
学习并行总线波形捕获与分析!
μA747双电源通用型双运放