- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
无线传感器当前最新最关键技术及前沿应用的调查实验报告(共9篇)
无线传感器当前最新最关键技术及前沿应用的调查实验报告(共9篇)
无限传感网络实验报告
无线传感器网络
综合实验报告
小组成员:陈相艺,陈思行,丁文俊,黄世杰,林泽伟
一. 实验名称:光照强度信息采集实验
二. 实验内容
传感器节点采集光照强度信息(如果没有光传感器,则采集电压参数),采用静态路由(指定父节点),通过多跳传到基站节点,基站节点通过串口与PC连接,将采集到的光照强度、节点ID、采样时间存入数据库,用户可以按照节点、时间或逻辑条件查询该数据库。本小组实验稍作简化之后,将数据改为自动生成一个文本文档,然后记录在内。
三. 实验目的
1、 了解如何运用节点上的传感器采集数据。
2、 掌握Sense和Oscilloscope程序,实现数据采集。
3、利用上课介绍的PC与节点之间的通信工具,把采集到的数据显示出来。
4、了解TinyOS中的永久数据存储方法。
四. 实验原理
1、基本介绍
传感(Sensing)是传感器网络应用中不可或缺的部分。它涉及到两个任务: ①配置传感器:配置会因平台的不同而不同
②读传感器数据
在TinyOS 2.0平台上,独立的sensing应用程序不再使用像ADCControl这样的配置接口。取而代之地,它们使用标准的数据获取接口:Read, ReadStream或ReadNow,来收集传感器数据。
2、Sense应用程序
2.1. 功能:周期性地对默认传感器采样并用LEDs显示低位
2.2. Sense实现过程:
①Sense.nc用Boot启动周期性计时器
②计时器一到时间,Sense.nc就signal一个timer事件 ③读数据是分相操作的
④读完用LEDs显示数据
2.3.DemoSensorC组件
①DemoSensorC为Sense提供了Readuint16_t接口
②Sense.nc无法知道他所连接的传感器,甚至无法知道是否从传感器得到数据,因为它能导通到任何提供Readuint16_t接口的组件 ③事实上DemoSensorC在不同的平台下是不一样的。平台依赖于DemoSensorC组件来定义应用程序从哪个传感器来采样。 ④DemoSensorC组件:
generic configuration DemoSensorC(){
provides interface Readuint16_t;
}
实现部分因平台不同而不同。
⑤DemoSensorC是一种间接获取传感器数据的方式,它会根据不同的平台实例化使用不同组件来获取传感器数据。
运行Sense应用:
make telosb install
3、Oscilloscope 应用程序
3.1. 功能:使传感器读来的数据在PC上可视化
3.2. 运行java GUI:type make-./run
五. 实验环境
1、 JDK1.6 for windows
2、 Cygwin with TinyOS 2.x
3、 UltraEdit / EditPlus
六. 源程序代码
import net.tinyos.message.*;
import net.tinyos.util.*;
import java.io.*;
import java.util.*;
public class Oscilloscope implements MessageListener
{
MoteIF mote;
Data data;
Window window;
int interval = Constants.DEFAULT_INTERVAL;
int version = -1;
/* Main entry point */
void run() {
data = new Data(this);
window = new Window(this);
window.setup();
mote = new MoteIF(PrintStreamMessenger.err);
mote.registerListener(new OscilloscopeMsg(), this);
}
/* The data object has informed us that nodeId is a previously unknown
mote. Update the GUI. */
void newNode(int nodeId) {
if(nodeId == 9)
{
window.newNode(nodeId);
}
}
void writefile(OscilloscopeMsg omsg)
{
try{
int id =
文档评论(0)