用户试用分享篇-+ SensorTag OPT3001环境光传感器服务加入
http://www.ti.com.cn/ww/wireless_connectivity/sensortag2015/index.html
OPT3001 - 环境光传感器
OPT3001 传感器用于测量可见光的密度。 传感器的光谱响应与人眼的视觉响应紧密匹配,其中具有很高的红外线阻隔。
OPT3001 是一款可如人眼般测量光强的单芯片照度计。 OPT3001 器件兼具精密的频谱响应和较强的 IR 阻隔功能,因此能够如人眼般准确测量光强且不受光源影响。 对于为追求美观效果而需要将传感器安装在深色玻璃下的工业设计而言,较强的 IR 阻隔功能还有助于保持高精度。 OPT3001 专门针对构建基于光线的人眼般体验的系统而设计,是人眼匹配度低且红外阻隔能力差的光电二极管、光敏电阻或其它环境光传感器的首选理想替代产品。
测量范围可达 0.01lux 至 83k lux,且内置有满量程设置功能,无需手动选择满量程范围。 此功能允许在 23 位有效动态范围内进行光测量。
数字操作可灵活用于系统集成。 测量既可连续进行也可单次触发。 控制和中断系统可自主操作,允许处理器进入休眠状态,同时传感器会搜索适当的唤醒事件并通过中断引脚报告。 数字输出通过 I2C 以及 SMBus 兼容的两线制串口报告。
OPT3001 兼具低功耗和低电源电压特性,可延长电池供电系统的电池寿命。
数据表:http://www.ti.com/lit/ds/symlink/opt3001.pdf
在sensorTAG中原理图:
内部结构图:
Pin脚定义
设备地址:sensortagADDR接的是VDD,所以地址是1000101
加入协议栈过程:
函数SensorTag_createTask是opt3001的任务函数入口。
注册到RTOS中
回调函数SensorTag_taskFxn是opt3001的任务处理函数。
进到SensorTag_taskFxn函数中,首先是初始化SensorTag_init.
因为SensorTag_createTask这个任务中添加了很多服务,所以我们这里只看opt3001的。
在初始化函数SensorTag_init中SensorTagOpt_init()是opt3001的初始化。
Optic_addService()添加服务
sensorAttrTable数组定义了opt3001的所有服务
没贴完。下图说明了所以服务。
回到SensorTagOpt_init()中,SensorTagOpt_reset是复位opt3001.
初始化完成后,回到任务函数SensorTag_taskFxn中
SensorTagOpt_processSensorEvent();就是opt3001事件处理函数。
sensorOpt3001Read是读取传感器值函数。
根据数据手册我们知道光通量计算是lux=0.01X2E[3:0]XR[11:0].
读取数据后通过调用Optic_setParameter发送到客户端,即主机。
传感器在板卡上的位置: