基于basicRf+Wifi数据采集

基于basicRf+Wifi数据采集
ZigBee⽹络和Wi-Fi相组合的⼯作⽅式来针对环境情况进⾏感知。请基于ZigBee和Wi-Fi通信的温湿度采集系统。
使⽤1块ZigBee模块(⽩⾊)、1块ZigBee模块(⿊⾊)、1块Wi-Fi通讯模块、1个温湿度传感器模块,选取⽩⾊ZIGBEE模块安装温湿度传感器模块作为发送端,⿊⾊ZIGBEE 模块作为接收端。
将⿊⾊ZigBee模块⽤双公头的串⼝线和newland平台相连,平台上放上wifi模块,电脑连接wifi,在⽹络调试助⼿上查看数据。
1、将Wi-Fi通讯模块配置为AP⼯作模式,启⽤DHCP功能,配置热点名称为AP+⼯位号、密码为准考号后8位、信道⾃⾏决定、加密⽅式为WPA2_PSK、IP地址为
192.168.10.1,启⽤AP热点多连接,启⽤模块服务器模式(端⼝为8080)。
AT+CWMODE=2//设置AP模式
AT+CWDHCP=0,1//DHCP功能
AT+RST                    //重启
A+CWSAP="WiFi名称","WiFi密码",5,3//配置wifi
AT+CIPAP="XXX.XXX.XXX.XXX"//wifi模块当前使⽤的ip地址
AT+CIPMUX=1//设置多连接
AT+CIPSERVER=1,8080//启动wifi模块的服务器模式,端⼝号为8080,客户端ID号0~4
/*不出意外应该很顺利,如果过程中发⽣error,那就重新上电*/
2、在IAR中创建基于CC2530的BasicRf开发⼯程,⼯程保存到⼯程⽬录中,⼯程⽂件为test.eww,路径为:⼯程⽬录/project/test.eww。把考试资源包中的CC2530_lib和sensor_drv拷贝到⼯程⽬录中。项⽬应包括app、basicrf、board、common、mylib、sensor_drv、utils共7个⽂件夹
3、在IAR项⽬⼯作组(workspace)中增加EndDev模块,将考试资源中的“Project”⽂件夹中的“EndDev.c”⽂件导⼊到⼯程中app⽬录下并保证编译通过。蒙自水芹
4、在IAR项⽬⼯作组(workspace)中增加GateDev模块,将考试资源中的“Project”⽂件夹中的 “GateDev.c”⽂件导⼊到⼯程中app⽬录下并保证编译通过。
台风实时监控系统
5、完善“EndDev.c”⽂件中的代码,实现发送端功能。配置和初始化BasicRf (Channel 为13, PANID 为⼯位号,⽐如⼯位号为1234则PANID 为0x1234),获取温湿度传感器的温度和湿度值,按照下述数据格式发送给接收端:
帧头
帧长度温度数据湿度数据校验和固定值
0xCC 1字节0x051字节采集值1字节采集值1个字节为前4字
节累加和
void  configRF(void )
{
/*开始完善代码——basicRf 配置和初始化*/
cfg.panId=0x3211;
cfg.channel=11;
cfg.ackRequest=TRUE;
while (basicRfInit(&cfg)==FAILED);和嫩太阳能庭院灯
basicRfReceiveOn();
/*结束完善代码——basicRf 配置和初始化*/
}
void  main(void )
{
halBoardInit();
configRF();
Timer4_Init();
Timer4_On();
while (1)
{
APP_SEND_DATA_FLAG = GetSendDataFlag();
if (APP_SEND_DATA_FLAG == 1)
{
/*开始完善代码——获取温湿度数据,发送给接收端*/
unsigned int  tem,hum;
call_sht11(&tem,&hum);
txData[0]=0xCC ;
txData[1]=0x05;
txData[2]=tem;
txData[3]=hum;
txData[4]=CheckSum(txData,4);
basicRfSendPacket( 0xA0B0, txData, 5);
/*结束完善代码——获取温湿度数据,发送给接收端*/
FlashLed(1,100);
Timer4_On();
}
}
}
6、完善“GateDev.c”⽂件中的代码,实现接收端功能。配置和初始化BasicRf,当接收到发送端的⽆线
数据后,将温度、湿度数据通过串⼝发送给Wi-Fi通讯模块,发送格式为“当前温度:XX℃,当前湿度:XXRH。” 。对温度值进⾏判断,当温度值超过某个值(例如30度),接收端D3灯亮起,否则D3灯熄灭。
void configRF(void)
{
/*开始完善代码——basicRf配置和初始化*/
cfg.panId=0x3211;
cfg.channel=11;
cfg.ackRequest=TRUE;
while(basicRfInit(&cfg)==FAILED);
basicRfReceiveOn();
/*结束完善代码——basicRf配置和初始化*/
}
char sendStrToWifi[50];
void main(void)
{
halBoardInit();
configRF();
/*开始完善代码——串⼝发送AT指令,启⽤WIFI模块AP热点多连接*/
const char *cmdStr;
const char *DataStr;
for(int i=0;i<3;i++)
{
//initWifi();
cmdStr="AT+CIPMUX=1\r\n";
halUartWrite((uint8 *)cmdStr, strlen(cmdStr));
halMcuWaitMs(500);
/*结束完善代码——串⼝发送AT指令,启⽤WIFI模块AP热点多连接*/
/*开始完善代码——串⼝发送AT指令,启⽤WIFI模块服务器模式(端⼝为8080)*/
cmdStr="AT+CIPSERVER=1,8080\r\n";
halUartWrite((uint8 *) cmdStr, strlen( cmdStr));
/*结束完善代码——串⼝发送AT指令,启⽤WIFI模块服务器模式(端⼝为8080)*/
halMcuWaitMs(500);
}
while(1)
{
if(basicRfPacketIsReady())
{
FlashLed(2,100);
程控步进衰减器系统/*开始完善代码——接收发送端⽆线数据,根据湿度控制D3灯,并将温湿度数据通过WIFI发出去*/
basicRfReceive(rxData,5, NULL);
水泥增强剂配方if(rxData[2]>=26)        //对温度值进⾏判断,当温度值超过某个值(例如30度),接收端D3灯亮起,
石蜡乳液halLedSet(1);
else//否则D3灯熄灭。
halLedClear(1);
sprintf((char *)DataStr,"\r\n当前温度:%d℃, 当前湿度:%d", rxData[2],rxData[3]);
sprintf((char *)cmdStr,"AT+CIPSEND=0,%d\r\n",strlen(DataStr));
halUartWrite((uint8 *)cmdStr, strlen(cmdStr));
halMcuWaitMs(500);
uart_printf((char *)DataStr);
/*结束完善代码——接收发送端⽆线数据,根据湿度控制D3灯,并将温湿度数据通过WIFI发出去*/
}
}
}

本文发布于:2024-09-23 09:33:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/202523.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   数据   代码   温湿度   温度   完善
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议