泰凌微TLSR825x智能照明解决方案开发之实例解析
一 前记
前几天,看到了一个笑话,一个朋友在群里吼道,老婆送的皮带,用了半年之后,怎么里面掉出来一个电路板,这个是是啥?
笔者看了回复道,哥们,老婆不放心你啊。
在这个万物都可智能的时代,产品不加上智能,都不好意思说你的产品是高科技产品。这不来了,客户提出新的需求了,他要做
做一个智能的灯。咋个智能法呢?
1 有流光,冷白,暖白,渐变等灯光的效果可以切换。
2 可以根据时间和周围环境亮暗来调整灯光亮度。
3 可以通过手机APP和按键双重控制开关。
本着有求必应的态度,我这不就开始倒腾起来了。
二 代码解析
1 ble无线通信,这个就是通过APP下发命令进行解析,以前讲过ble的通信流程,这里不做赘述了。
2 灯光效果函数:
流光函数:
void app_fluxay_mode_set(void)
{
uint8_t tmp_rgb_a = OFF,tmp_rgb_b = OFF,tmp_rgb_c = OFF,tmp_rgb_d = OFF; #if 1
if(ON == fluxay_flow_four)
{
fluaxy_flow_mode_reset_out(); if(APP_MODE_ID_FLUXAY != app_xp_get_mode_id())
{
app_xp_set_mode_id_no_flash(APP_MODE_ID_FLUXAY); } }
渐变灯函数:
void app_pwm_led_loop(int data,uint8_t from_state)
{
printf("app_pwm_led_loop data :%d\r\n",data);
static uint8_t local_led_state = 0; //daylight
if (data>=0&&data<=100)
{
app_pwm_rgb_stop();
local_led_state = 1;
app_pwm_cw_on(100-data);
app_pwm_ww_on(data);
}
3 按键处理:
unsigned int key_debounce_filter( u32 mtrx_cur[], u32 filt_en ){
u32 kc = 0;
#if (LONG_PRESS_KEY_POWER_OPTIMIZE)
unsigned char matrix_differ = 0;
#endif
static u32 mtrx_pre[ARRAY_SIZE(drive_pins)];
static u32 mtrx_last[ARRAY_SIZE(drive_pins)];
foreach_arr(i, drive_pins){
u32 mtrx_tmp = mtrx_cur[i];
#if (STUCK_KEY_PROCESS_ENABLE)
stuckKeyPress[i] = mtrx_tmp ? 1 : 0;
#endif
if(
4 传感器处理
一个光敏传感器,通过ADC信号,来采集光线的强度,这个后期进行专门的讲解。
三 效果展示
初步的demo已经搭建好,接下来就是产品的细节打磨和PCBA的适配了。

四 总结备忘
825x系列作为一个mcu+ble的平台芯片,在氛围灯市场占有一定的市场份额。具有性价比高,功耗低,功能强大等特点。
加上自研的系统,开发这个产品真是速度快啊。
泰凌微TLSR825x智能照明解决方案开发之实例解析的更多相关文章
- [TLSR8267] 泰凌微 telink tlsr8267 ble ADC 用法浅谈
1.读 datasheet 在<DS_TLSR8267-E21_Datasheet for Telink BLE SoC TLSR8267.pdf>第11章详细介绍了ADC相关属性及参数. ...
- GVS智能照明再下一城,前方到站贵阳地铁2号线!
近期,"新基建"又频频刷屏,也为城轨交通建设快速发展提供了广阔的想象空间. 在新基建的导向作用下,越来越多城市加入地铁阵营.如果说普铁和高铁作为城市的发展窗口,那么地铁则是城市交通 ...
- 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台
国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...
- 国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台
平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了 ...
- 理想的GVS智能照明体验,就在汕头迎宾花园酒店
汕头,依海而生,海在城中央是汕头特色. 汕头湾将汕头分为南北两岸,造就绝美市区海岸线,一碧万顷的海湾,焕然一新的海港,在市区就能直接看海. 在北山湾,动可结伴冲浪,静可观海吹风,动静都是一种快乐. 当 ...
- 【NetDIY智能主控】开发计划
经过一个轮回,硬件开发.硬件创业又被推到了历史的前台. 面向低端.初级的硬件爱好者,以Arduino和81单片开发板为核心的开源硬件越来越深入人心,参与的人群越来越多,相关硬件和周边模块也越来越便宜. ...
- WCF分布式开发步步为赢(2)自定义托管宿主WCF解决方案开发配置过程详解
上一节<WCF分布式框架基础概念>我们介绍了WCF服务的概念和通信框架模型,并给出了基于自定义托管服务的WCF程序的实现代码.考虑到WCF分布式开发项目中关于托管宿主服务配置和客户端添加引 ...
- 智能电视TV开发---直播视频客户端结构设计和实现
在智能电视TV开发---客户端和服务器通信里面我们实现了客户端和服务端的简单通信,接下来我们做一个简单的客户端界面,来实现手机端来操控智能电视的TV端. 一.存储视频的结构设计 我们在做客户端的时候, ...
- 微控工具xp模块-开发版[微信(wechat)二次开发模块]
http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方 ...
- 智能家居APP开发
智能家居APP开发 APP开发技术qq交流群:347072638 前言,随着智能硬件设备的流行,智能家居開始红火,智能家居就是家用电器的智能化.包含智能锁,灯,空调,灯,音箱等等,移动设备通过WIFI ...
随机推荐
- Windows安装MySQL到最后卡主无响应处理办法
安装mysql-5.5.62-winx64到最后Ready to execute ... 生效配置时卡主无响应 最有效,最快的解决办法 就是:重启电脑 或者 关闭电脑,在开机,找到MySQL安装目录, ...
- Intel Arrow Lake处理器还是8+16 24核心:接口换LGA1851
Intel已经确认,将在今年内发布未来两代处理器Arrow Lake.Lunar Lake,其中前者将弥补Meteor Lake的不足,同时用于笔记本.桌面.服务器,现在它的核心规格流出了. 这份曝光 ...
- 面试官:SpringCloudGateway过滤器类型有哪些?
在 Spring Cloud Gateway 中,过滤器是在请求到达目标服务之前或之后,执行某些特定操作的一种机制.例如,它可以实现对传入的请求进行验证.修改.日志记录.身份验证.流量控制等各种功能. ...
- java在服务器上创建文件(以shell脚本为例)并执行
java在服务器上创建文件(以shell脚本为例)并执行 1️⃣ 首先写个方法,来在服务器上创建脚本 package com.preciouslove.xinxin_emo.controller; i ...
- kafka-Kafka3.4版本创建topic出现zookeeper is not a recognized option
问题描述:在linux云服务器上搭建了一套kafka3.0集群,然后按照以前的创建topic指令: ./kafka-topics.sh --zookeeper hadoop01:2181,hadoop ...
- PostgreSQL-可以通过localhost连接,无法通过IP地址连接。
(1)如果PostgreSQL配置文件中没有允许访问该服务器的IP地址,则需要先添加允许访问的IP地址,并在防火墙中开放相应的端口.(2)在PostgreSQL配置文件postgresql.conf中 ...
- 基于keras的文本情感识别
情感识别是一个典型的分类问题,可以使用Keras来实现,本文是之前整理的笔记,分享出来大家一起学习. 流程描述 Keras文本情感分类基于机器学习算法,会根据大量数据训练出分类模型,然后使用训练好 ...
- 掌握C语言文件操作:从入门到精通的完整指南!
欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 什么是文件 文件其实是指一组相关数据的有序集合.这个数据集有一个名称,叫做文件名.文 ...
- JS Leetcode 81. 搜索旋转排序数组 II 题解,补救二分法的可行性
壹 ❀ 引 今日LeetCode题为153. 寻找旋转排序数组中的最小值,在10个月前,我已在JS leetcode 寻找旋转排序数组中的最小值 题解分析,你不得不了解的二分法一文中写了本题的题解,所 ...
- fmt、变量、常量
fmt包 fmt包主要用于打印数据,常用的有Printf.Print.Printf // 文件所属包 package main // 导入fmt包,主要用于打印数据 import "fmt& ...