无线传感器数据通信实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
无线传感器数据通信实验报告

实验二:无线传感器数据通信实验 一、实验目的: 在无线传感器节点的单片机驱动代码的基础上,编写无线通信程序,实现多个传感器节点之间的双向数据传输。 二、实验原理: 温湿度传感器和单片机采用的是类似IIC的串行通信,和单片机相连如图1-8所示 VDD和GND是传感器供电引脚。 SCK是时钟引脚,在通信这个过程中,SCK信号都是有单片机控制的。 DATA是数据线,和单片机IO口相连。用于向传感器发送指令和从单片机读走数据。数据在时钟的上升沿生效在时钟是高电平时保持不变。在时钟是低电平时准备数据。接口如图所示。 图1-8 温湿度接口 单片机先向传感器发送开始命令,然后开始通信,开始命令时序图如图所示。在SCK高电平时,将数据线拉低,在下一个时钟高电平期间,将数据线拉高。开始信号发送完毕。 图1-9 开始信号 再开始信号后是命令信号,命令信号包含3位地址位(只支持000)和5位命令位组成。传感器在接收到1byte数据时(即第八个时钟下降沿)将数据线拉低,表示数据正确接收。在九个下降沿被释放。命令如下表。 单片机在发送完命令信号后,等待温湿度传感器测量完成。传感器在转换完成后将数据线拉低。单片机产生时钟信号,从温湿度传感器读数据。数据包含2bytes的测量结果和1bytes的校验。单片机在收到每字节数据都要将数据线拉低给出应答信号。数据高位在前,低位在后。传感器在测量结束和通信完毕后自动进入休眠。具体操作见数据手册。时序图如图1-10所示。 图1-10 传感器工作时序图 8、 计算公式 温度计算公式: 湿度计算公式: 三、实验设备: ZIGBEE无线空气温湿度传感器一个、装有实验软件的计算机。 四、实验内容: 1、 用MDK打开工程模板。 2、把similar_i2C.csimilar_i2C.h加入到工程。 将similar_i2c文件夹拷贝到工程模板目录中。 调用similar_i2C.c中函数,编写温度采集和湿度采集代码 在工程模板根目录下建立sht1xx_sensor1xx.c和sht1xx.h空文件,将c加入到工程,将h文件加入到工程设置中 ()调用温度采集和湿度采集函数,并对原始数据进行处理。 在原有的程序的基础上,添加代码使程序能够根据数据计算出湿度,并显示出来。 计算湿度的公式: 代码: (主函数部分) #include arch_include.h #include sht1xx.h #include similar_i2c.h uint16_t temp_value; uint16_t rh_value; float g_temp; float g_rh; int main(void){ system_init_from_reset(); SENSOR_VBAT_ON(); SI32_PBSTD_A_enable_pullup_resistors(SI32_PBSTD_1); delay_us(100000); while (1){ temp_value=SHT15_temp_samp(); g_temp=-39.7+0.04*temp_value; //计算温度公式 rh_value=SHT15_rh_samp(); g_rh=-4+0.0405*rh_value+rh_value*rh_value*(-2.8)/1000000+(g_temp-25)*(0.01+0.00008*rh_value); //计算湿度公式 delay_us(1000000); } }SHT15_rh_samp函数部分) float SHT15_rh_samp() { uint8_t RH_data[3]; float rh=0; simliar_i2c_transstart(); //transmission start similar_i2c_write_byte(0x06); //send command to sensor similar_i2c_write_byte(0x00); //send value of status register simliar_i2c_transstart(); similar_i2c_write_byte(0x05); SIMILAR_I2C_DATA_IN; delay_us(100000); SIMILAR_I2C_DATA_OUT; RH_data[0]=similar_i2c_read_byte(SIMILAR_I2C_ACK)

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档