首页 理论教育 终端节点编程中的温度检测函数和数据校正问题

终端节点编程中的温度检测函数和数据校正问题

时间:2023-06-29 理论教育 版权反馈
【摘要】:终端节点编程时,需要解决两个问题:将温度检测函数放在什么地方?上述函数中有个温度数据的校正,不是很准确,CC2530自带的温度传感器校正比较麻烦,读者可以暂不考虑温度的校正,只需要掌握传感器和ZigBee协议栈的接口方式。第5、6行,将温度数据转换为ASCII码。注意,发送数据的长度使用sizeof关键字计算得到。

终端节点编程中的温度检测函数和数据校正问题

终端节点编程时,需要解决两个问题:将温度检测函数放在什么地方?如何发送温度数据?使用ZigBee协议栈进行无线传感器网络开发时,将传感器操作有关的函数(如读取传感器数据的函数)放在协议栈的App目录下,如图12-5所示。

图12-5 将传感器操作有关的函数放在协议栈的App目录下

Sensor.h文件内容如下:

CC2530单片机内部有温度传感器,使用该温度传感器的步骤:

(1)使能温度传感器。

(2)连接温度传感器到ADC。

然后,就可以初始化ADC、确定参考电压、分辨率等,最后启动ADC读取温度数据即可。

上述函数中有个温度数据的校正,不是很准确,CC2530自带的温度传感器校正比较麻烦,读者可以暂不考虑温度的校正,只需要掌握传感器和ZigBee协议栈的接口方式。

此时,温度读取函数就完成了,只需要在Enddevice.c函数中调用该函数读取温度数据,然后发送即可。

Enddevice.c文件内容如下:

可以使用上述代码实现温度数据的读取与发送。

第1行,定义了1个变量用于存储温度数据。

第2行,定义了1个TEMPERATURE类型的变量temperature,这是发送和接收双方共同使用的数据包格式,使用共同的数据包格式主要是为了便于数据处理及校验等。

第3行,填充命令头。(www.xing528.com)

第4行,读取温度数据。

第5、6行,将温度数据转换为ASCII码。

第7行,填充命令尾。

第8~11行,初始化目的地址以及发送格式,在此使用的发送模式是单播发送,协调器的网络地址是0x0000。

第12行,调用数据发送函数AF DataRequest()进行数据发送。注意,发送数据的长度使用sizeof关键字计算得到。

虽然上述代码较为简单,但是向读者展示了在无线传感器网络中,传感器和ZigBee无线网络的接口方式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈