第一范文网 - 专业文章范例文档资料分享平台

ZigBee无线通信网络软件毕业设计 - 图文

来源:用户分享 时间:2025/5/16 9:36:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

通过响应“ERH”可以从网络外部读取到湿度信息。节点处理“ERH”命令的具体代码如下:

memcpy(RfTx.TxBuf, RfRx.RxBuf, 14); temp1 = Read_SHT1X(5);

RfTx.TXDATA.DataBuf[0] = (uint8) (temp1>>8); RfTx.TXDATA.DataBuf[1] = (uint8) (temp1&0xff); RfHaveTxDara = 1; //指示有数据需要发送

通过遥感按键可以将湿度传感节点和水泵节点绑定,可以根据湿度的采样值,来控制水泵工作状态,同样在周期事件中对湿度值进行了监测,其代码如下:

else if(SensorNum == 2) //处理湿度 {

f1 = Read_SHT1X(5); //读取湿度 f1 = f1 * 0.0405 - 4 - f1 * f1 * 2.8 * 0.000001; ch1 = (uint16)f1; if(ch1 < humThreshold) {

SampleApp_SendControlMsg(\} else {

SampleApp_SendControlMsg(\} }

humThreshold保存了湿度阈值,当读到的湿度信息与该阈值进行比较,当湿度值小于阈值则发送‘1’,来控制水泵打开,当湿度值大于阈值时则发送‘0’,来控制水泵停止。

具体在水泵节点端需要做相关的控制处理,对应代码如下: case CONTROL_PUMP: if(pkt->cmd.Data[0] == '0') {

P1_4 = 0; //关闭水泵

48

pumpOpen = 0;

LcdPutString16_8(0, 0, (void*)\}

else if(pkt->cmd.Data[0] == '1') {

P1_4 = 1; //打开水泵 pumpOpen = 1;

LcdPutString16_8(0, 0, (void*)\} break;

对‘1’和‘0’的处理就对应的将P1.4脚设置成“高电平”和“低电平”。即控制继电器的开合,从而对应到水泵工作与停止。

(7)二氧化碳浓度的读取与控制

该系统采用的二氧化碳传感器为MG811,该传感器出来的数据为模拟信号,通过必要的放大处理在接到CC2530的ADC的通道0引脚上,通过读AD值让后进行必要计算即可得到CO2的浓度值。其读二氧化碳浓度的代码如下:

int16 GetCo2Value(void) {

int16 adc_value, cdisplay, ppm; double c, ppmdou;

adc_value = HalAdcRead(0, HAL_ADC_RESOLUTION_12); c = ((double)adc_value*(3300.0/2048.0)); //换算成电压值 cdisplay = (int)(c); //return cdisplay; if(cdisplay>1072) {

ppm=400; }

if((1049

ppmdou = (500-((cdisplay-1049)*(100/(1072-1049)))); ppm = (int)ppmdou;

49

ZigBee无线通信网络软件毕业设计 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0odbr8n4ul1oirv32mep_13.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top