版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xluc目录实验一 开发环境搭建实验2实验二 程序烧录实验2实验三 硬件接口实验2实验四 adc采样实验2实验五 串口通讯实验2实验六 点对点射频实验2实验七 传感器添加实验2实验八 基于网关板的pc机数据采集和分析实验2实验九 基于sink节点数据采集和分析实验2实验 十 基于web的数据录入和数据访问实验2实验一 开发环境搭建实验以下步骤描述了如何逐步搭建无线传感器网络实验开发环境 注:本开发环境是在windows xp操作系统下搭建的先决条件: atosenet环境:cygwin atos4tinyos.msi安装包,在光盘的路径为,无线传感器网络1.5tinyos2tinyos_ins
2、tallatos4tinyos.msi 。 keil c51编译器安装包:c51v808a.exe,在光盘的路径为,无线传感器网络1.5tinyos2tinyos_installc51v808a.exe 。 iis服务器:准备一张 windows xp professional 的安装光盘。 sql server 2005数据库管理工具 :准备一张sql server 2005的安装光盘。创建atosenet环境:cygwin1. 打开无线传感器网络光盘,进入如下路径 tinyos2tinyos_install, 双击atos4tinyos.msi 进入安装过程2. 进入如下界3. 单机下一步
3、4. 选择合适的路径(这里选择缺省路径),点击“下一步”5. 单击安装,进入安装进程如下6. 安装完成后将出现如下两个界面7. 选择完路径后单击“点击开始安装”8. 进入cygwin 安装界面,安装完成后自动弹出如下界面:9. 请任意键后即可完成安装。桌面上会自动建立cygwin 的快捷方式,单击进入即可安装keil c51 编译器10. 打开无线传感器网络光盘,进入如下路径 tinyos2tinyos_install, 双击c51v808a.exe 进入安装过程11. 单击“next”并且选中“i agree to all the terms of the preceding license
4、 agreement”12. 选择默认的路径13. 选择安装路径后,单击“next”:14. 输入用户名等资料后单击“next”进入安装进度界面:15. 单击“finish”完成安装过程。桌面上会自动建立 keil的快捷方式,单击进入即可。至此无线传感器网络实验开发环境搭建已完成实验二 程序烧录实验以下步骤描述了如何逐步执行实验 2 “程序烧录实验”来实现节点程序的烧写。先决条件: 安装好cygwin和tinyos实验环境。 掌握对无线节点进行程序烧写的方法。cygwin下烧写节点程序1. 启动cygwin,输入命令cd /进入tinyos主目录,用命令ls可以查看目录下的所有文件。2. 输入
5、命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命令,使环境变量生效。3. 进入apps文件夹,再进入atosenet文件夹,输入ls查看4. 对基站节点烧写 对于基站节点,请将基站节点插入网关板的插口处,将usb线缆一端与pc端usb口连接,一端与基站板usb slave端连接。发现新硬件后选择自动安装软件,选择下一步直到完成安装。5. 进入如下目录:cd /opt/atos/apps/atosenet/antbase6. 执行烧录命令:make antc3 install nid=01 grp=0
6、17. 烧写成功8. 对传感器节点烧写对于传感器节点,请将传感器节点插入网关板的插口处(直接将网关板节点取下替换),将usb线缆一端与pc端usb口连接,一端与基站板usb slave端连接。9. 进入如下目录:cd /opt/atos/apps/atosenet/antc310. 执行烧写命令:make antc3 aso=th type=1 install nid=02 grp=01(以温湿度传感器为例)11. 出现如下结果注1:此处nid给定了节点号,不能为01,请从02开始编号即可。必须为两位的十六进制数(不够补零)注2:grp给定了网络号,所有联网的节点必须一致。必须为两位的十六进制
7、数(不够补零)注3:传感器温湿度单温度光流量血压海拔霍尔雨滴火焰type123456789asothtlightfluxbloodaltitudehoarerainfire实验三 硬件接口实验以下步骤实现通过io和rtc控制小灯亮灭的过程先决条件: 安装好cygwin和tinyos实验环境。 掌握对无线节点进行程序烧写的方法。led小灯的点亮:1. 启动cygwin,输入命令cd /进入tinyos主目录,用命令ls可以查看目录下的所有文件。2. 输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命
8、令,使环境变量生效,最后执行export | grep atosroot来查看。3. 输入命令cd apps,进入应用程序目录后,再用ls查看目录下包含的文件和目录,然后使用命令mkdir myproject来创建一个名为myproject的目录。4. 输入命令cd myproject,进入新创建的myproject目录,然后在myproject目录下使用命令vi led.nc来创建工程文件led.nc。5. 下图为工程文件led.nc的程序代码,完成代码编写后使用命令 :wq保存文件并退出。configuration ledimplementationcomponents ledm; /*
9、led模块程序,用于实现led代码 */components mainc; /* tinyos2主模块,这里用于关联系统启动 */* led模块程序的boot接口与系统boot接口关联 这样系统启动时会调用ledm的boot接口?*/ledm.boot - mainc.boot;6. 在myproject目录下使用命令vi ledm.nc来建立模块文件ledm.nc。7. 下图为模块文件ledm.nc的程序代码,完成代码编写后使用命令 :wq保存文件并退出。module ledmuses interface boot;implementation/* led灯演示*/task void dem
10、oled()/* 目前节点上提供两个led灯led_blue - 蓝灯led_yellow - 黄灯*/led_blue_off; /* 熄灭蓝色led灯 */led_yellow_on; /* 点亮黄色led灯 */* 启动事件处理函数,在led.nc已经关联到mainc.boot接口系统启动后会调用此函数*/event void boot.booted()post demoled();8. 用命令ls可以查看在myproject目录下包含了新建的led.nc和ledm.nc两个文件,然后在myproject目录下用vi makefile命令来编写makefile文件。9. 下图为makef
11、ile文件的程序代码,完成代码编写后使用命令 :wq保存文件并退出。component=led#pflags += -duse_module_led#include $(makerules)10. 使用命令ls查看myproject目录下包括新建的makefile文件。11. 将cc2430核心板插到网关板上,连接上usb_slave线缆,打开网关板电源,进入工程myproject目录,运行烧录命令:12. 可以看到网关板上的d2、d3灯在交替闪烁,而将cc2430核心板插到电池板上,也会看到相同的现象rtc的使用:1. 启动cygwin,输入命令cd 进入tinyos主目录,用命令ls可以查
12、看目录下的所有文件。2. 输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命令,使环境变量生效,最后执行export | grep atosroot来查看。3. 输入命令cd apps,进入应用程序目录后,再用ls查看目录下包含的文件和目录,然后使用命令mkdir myproject来创建一个名为myproject的目录。4. 输入命令cd myproject,进入新创建的myproject目录,然后在myproject目录下使用命令vi timerled.nc来创建工程文件timerled.nc
13、。5. 下图为工程文件timerled.nc的程序代码,完成代码编写后使用命令 :wq保存文件并退出。configuration timerledimplementationcomponents timerledm; /* timerled模块程序,用于实现具体代码 */components mainc; /* tinyos2主模块,这里用于关联系统启动 */* timerled模块程序的boot接口与系统boot接口关联 这样系统启动时会调用ledm的boot接口?*/timerledm.boot - mainc.boot;/*使用系统毫秒级timer组件新建第一个定时器并且接口关联到tim
14、erledm处理模块*/components new timermillic() as timer1;timerledm.timer1 - timer1;/*使用系统毫秒级timer组件新建第二个定时器*/components new timermillic() as timer2;timerledm.timer2 - timer2;6. 在myproject目录下使用命令vi timerledm.nc来建立模块文件timerledm.nc。7. 下图为模块文件timerledm.nc的程序代码,完成代码编写后使用命令 :wq保存文件并退出。module timerledmuses inter
15、face boot;/* timer为系统接口tmilli指明了定时器的精度为毫秒 */uses interface timer as timer1; /* as关键字为接口别名 */uses interface timer as timer2;implementation/* 任务: 切换黄色led灯 */task void toggleledyellow()led_yellow_toggle;/* 启动事件处理函数,在timerled.nc已经关联到mainc.boot接口系统启动后会调用此函数*/event void boot.booted()/* 定时器1: 持续工作,每隔2s触发一次
16、 */call timer1.startperiodic(2000);/* 定时器2: 持续工作,每隔3s触发一次*/call timer2.startperiodic(3000);/* 定时器1的事件处理函数 */event void timer1.fired()/* 事件处理中直接切换蓝色led灯 */led_blue_toggle;/* 定时器2的事件处理函数 */event void timer2.fired()/* 可以用任务触发,等待系统调用触发黄色led切换*/post toggleledyellow();8. 用命令ls可以查看在myproject目录下包含了新建的timerl
17、ed.nc和timerledm.nc两个文件,然后在myproject目录下用vi makefile命令来编写makefile文件。9. 下图为makefile文件的程序代码,完成代码编写后使用命令 :wq保存文件并退出。component=timerled#pflags += -duse_module_led#include $(makerules)10. 使用命令ls查看myproject目录下包括新建的makefile文件。将cc2430核心板插到网关板上,连接上usb_slave线缆,打开网关板电源, 进入工程myproject目录,运行烧录命令11. 可以看到网关板上的d2每隔2s亮
18、一次,d3灯每隔3s亮一次,而将cc2430核心板插到电池板上,也会看到相同的现象实验四 adc采样实验以下步骤描述了如何逐步执行实验来实现adc采样的值。先决条件: 安装好cygwin和tinyos实验环境。 掌握对无线节点进行程序烧写的方法。利用adc对传感器进行采样1. 启动cygwin,输入命令cd /进入tinyos主目录,用命令ls可以查看目录下的所有文件。2. 点击cygwin输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命令,使环境变量生效。3. 查看设置结果 ,如下图:4. 输
19、入命令cd apps,进入应用程序目录后,再用ls查看目录下包含的文件和目录,然后使用命令mkdir myproject来创建一个名为myproject的目录。5. 输入命令cd myproject,进入新创建的myproject目录,然后在myproject目录下使用命令vi adcsensor.nc来创建工程文件adcsensor demo。configuration adcsensorimplementationcomponents adcsensorm; /* adcsensor模块程序,用于实现具体代码 */components mainc; /* tinyos2主模块,这里用于关联
20、系统启动 */* adcsensor模块程序的boot接口与系统boot接口关联 这样系统启动时会调用adcsensorm的boot接口*/adcsensorm.boot - mainc.boot;/* 系统ad采集组件*/components new adcc() as adcdemo;adcsensorm.adccontrol - adcdemo;adcsensorm.adcread - adcdemo;6. 在myproject目录下使用命令vi adcsensorm.nc来建立模块文件adcsensorm.nc#include adc.h#define dbg_lev9module a
21、dcsensormuses interface boot;uses interface adccontrol;uses interface read as adcread;implementationtask void sensordata()adbg(dbg_lev, rnstart adc reading.);/*配置adc工作模式:1: 14bit a/d2: 参考电压 vdd 3.3v3: ad通道4(p0.4)*/ call adccontrol.enable(adc_ref_avdd, adc_14_bit, adc_ain4); if (call adcread.read() =
22、 success)adbg(dbg_lev, okrn);elseadbg(dbg_lev, failrn);event void adcread.readdone(error_t result, int16_t val)/*响应于adcread.read(),系统ad转换完成触发该事件*/if (result = success)adbg(dbg_lev, adcread.readdone: success, value=0x%xrn, val);elseadbg(dbg_lev, adcread.readdone: fail!rn, val);event void boot.booted(
23、)post sensordata();7. 用命令ls可以查看在myproject目录下包含了新建的adcsensor.nc和adcsensorm.nc两个文件,然后在myproject目录下用vi makefile命令来编写makefile文件component=adcsensor#使用led模块pflags += -duse_module_led#使用串口调试模块pflags += -duart_debug#调试级别pflags += -dadbg_level=9#include $(makerules)8. 步骤1: 将cc2430核心板插到网关板上,连接上usb_slave线缆,打开网
24、关板电源,进入工程myproject目录,执行make antc3 install。9. 烧录成功:10. 结果:启动后通过串口可以获得adc 采样的值实验五 串口通讯实验以下步骤描述了如何逐步执行实验来实现调试信息输出及i/o口控制实验。先决条件: 安装好cygwin和tinyos实验环境 熟悉tinyos程序设计 掌握对无线节点进行程序烧写的方法利用调试函数进行串口输出:1. 启动cygwin,输入命令cd /opt/atos/apps进入应用程序目录2. 在/opt/atos/apps目录下建立一个serialdebug目录3. 用cd命令切换到在serialdebug目录下4. 用vi
25、命令在该目录下建立serialdebug.nc工程文件5. 并在该文件中输入如下内容:6. 用vi命令在该目录下建立serialdebugm.nc模块文件7. 并在该文件中输入如下内容,按esc键,输入 :wq保存并退出编辑状态/* 定义调试级别,参加makefile的adbg_level定义,设置大于等于adbg_level */#define dbg_lev9module serialdebugmuses interface boot;implementation/* 任务: 通过串口打印信息来调试 */task void debugserial()uint8_t num1 = 0x39;
26、uint32_t num2 = 0x12345678;float float1 = 123.1234;/* adbg,格式类似于printf,第一个参数为调试等级,可以参见tos/lib/common/antdebug.h */* 打印字符和字符串 */adbg(dbg_lev, rnrndemo of serial debugrn, x);adbg(dbg_lev, 1. this is a string, and this is char %crn, x);/* 打印8位的数字 */adbg(dbg_lev, 2. num1: hex=0x%x, dec=%drn, (int)(num1)
27、, (int)(num1);/* 打印32位数字 */adbg(dbg_lev, 2. num2: hex=0x%lx, dec=%ldrn, (uint32_t)(num2), (uint32_t)(num2);/* 打印浮点数*/adbg(dbg_lev, 3. float: %frn, float1);/* 启动事件处理函数,在serialdebug.nc已经关联到mainc.boot接口系统启动后会调用此函数 */event void boot.booted()post debugserial();8. 用vi命令在该目录下建立makefile文件9. 并在该文件中输入如下内容,按es
28、c键,输入 :wq保存并退出编辑状态component=serialdebug#使用led模块pflags += -duse_module_led#使用串口调试模块pflags += -duart_debug#调试级别pflags += -dadbg_level=9#include $(makerules)10. 设置环境变量, 在cygwin环境下进入/opt/atos目录11. 执行如下命令脚本setupenv进行环境变量设置12. 利用cd命令切换回serialdebug目录,执行make antc3 install编译工程文件并将其自动烧写到cc2430中。(执行该步骤必须保证网关板的
29、usb与计算机连接上,并且通电)13. 当出现如下界面说明成功编译并烧写14. 从计算机的开始菜单所有程序附件通讯超级终端,打开超级终端设置,进行如下设置:选择 com1,波特率设为9600,数据流控制选择无。15. 将网关板的串口通过我们提供的串口线与计算机的串口连接起来,按网关板上的复位键,将在超级终端输出如下信息:创建i/o口控制工程文件:1. 启动cygwin,输入命令cd /opt/atos/apps进入应用程序目录2. 在/opt/atos/apps目录下建立一个serialio目录3. 用cd命令切换到在serialio目录下4. 用vi命令在该目录下建立serialio.nc工
30、程文件5. 并在该文件中输入如下内容,按esc键,输入 :wq保存并退出编辑状态configuration serialioimplementationcomponents serialiom; /* serialio模块程序,用于实现具体代码 */components mainc; /* tinyos2主模块,这里用于关联系统启动 */* serialio模块程序的boot接口与系统boot接口关联 这样系统启动时会调用serialiom的boot接口*/serialiom.boot - mainc.boot;/* platformserialc*/components platformse
31、rialc;serialiom.uartstdcontrol - platformserialc.uartstdcontrol;serialiom.uartstream - platformserialc.uartstream;6. 用vi命令在该目录下建立serialiom.nc模块文件7. 并在该文件中输入如下内容,按esc键,输入 :wq保存并退出编辑状态#include /* 定义此宏,将演示uartstream.receive函数,允许一次指定数量的数据 */#define serialio_receive#define dbg_lev 9module serialiomuses i
32、nterface boot;uses interface stdcontrol as uartstdcontrol;uses interface uartstream;implementationuint8_t m_receive_len;uint8_t m_echo_buf;uint8_t m_receive_buf10;uint8_t m_send_buf100;/* 显示一个菜单提示用户 */ void showmenu() strcpy(m_send_buf, rnrndemo of serio i/orn1 toggle blue ledrn2 toggle yellow ledrn
33、); /* 通过 uartstream.send可以发送字节数据 */ call uartstream.send(m_send_buf, strlen(m_send_buf); /* 启动事件处理函数,在serialio.nc已经关联到mainc.boot接口系统启动后会调用此函数*/event void boot.booted() call uartstdcontrol.start(); #ifdef serialio_receive /* 演示缓冲接收功能,接收完指定长度的数据才会调用 receivedone */ strcpy(m_send_buf, demo of serial i/o
34、, input ); call uartstream.send(m_send_buf, strlen(m_send_buf); call uartstream.receive(m_receive_buf, sizeof(m_receive_buf); #else /* 回显串口输入数据的功能 */ showmenu(); #endif async event void uartstream.senddone(uint8_t *buf, uint16_t len, error_t error)task void showmenutask() showmenu(); task void light
35、led() if(m_echo_buf=1) led_blue_toggle; /* 切换蓝色led灯 */ adbg(dbg_lev, you choose to toggle blue ledrn); else if (m_echo_buf = 2) led_yellow_toggle; /* 切换黄色led 灯 */ adbg(dbg_lev, you choose to toggle yellow ledrn); else adbg(dbg_lev, error key %crn, m_echo_buf); post showmenutask(); /* 如果没有调用 receive接
36、收,则每接收到一个数据就会触发此事件 */ async event void uartstream.receivedbyte(uint8_t byte) m_echo_buf = byte; post lightled(); /* 在接收完 receive命令欲接收的长度后会调用此事件 */ async event void uartstream.receivedone(uint8_t *buf, uint16_t len, error_t error) /* 回显接收到的10个字符 */ call uartstream.send(m_receive_buf, sizeof(m_receive
37、_buf); /* 重新接收10个字符 */ call uartstream.receive(m_receive_buf, sizeof(m_receive_buf); /* 如果没有调用 receive接收,则每接收到一个数据就会触发此事件 */ async event void uartstream.receivedbyte(uint8_t byte) m_echo_buf = byte; post lightled(); /* 在接收完 receive命令欲接收的长度后会调用此事件 */ async event void uartstream.receivedone(uint8_t *b
38、uf, uint16_t len, error_t error) /* 回显接收到的10个字符 */ call uartstream.send(m_receive_buf, sizeof(m_receive_buf); /* 重新接收10个字符 */ call uartstream.receive(m_receive_buf, sizeof(m_receive_buf); 8. 用vi命令在该目录下建立makefile文件9. 并在该文件中输入如下内容,按esc键,输入 :wq保存并退出编辑状态component=serialio # #使用led模块 pflags += -duse_modu
39、le_led #使用串口调试模块 pflags += -duart_debug #调试级别 pflags += -dadbg_level=9# include $(makerules)10. 编译并对传感节点进行烧写11. 设置环境变量, 在cygwin环境下进入/opt/atos目录12. 执行如下命令脚本setupenv进行环境变量设置13. 利用cd命令切换回serialio目录,执行make antc3 install编译工程文件并将其自动烧写到cc2430中。(执行该步骤必须保证网关板的usb与计算机连接上,并且通电)14. 当出现如下界面说明成功编译并烧写15. 从计算机的开始菜单
40、所有程序附件通讯超级终端,打开超级终端设置,进行如下设置:选择 com1,波特率设为9600,数据流控制选择无。16. 将网关板的串口通过我们提供的串口线与计算机的串口连接起来,按网关板上的复位键,将在超级终端输出如下信息:17. 通过串口输入 1、2 切换控制灯亮、灯灭,如下所示:实验六 点对点射频实验通过这个实验可以实现两个不同节点之间的无线通信先决条件: 安装好cygwin和tinyos实验环境。 了解cc2430的射频控制原理和tinyos下射频收送的编程。 掌握对无线节点进行程序烧写的方法。创建工程文件rfdemo.nc:1. 启动cygwin,输入命令cd /进入tinyos主目录
41、,用命令ls可以查看目录下的所有文件。2. 输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命令,使环境变量生效。3. 输入命令cd apps,进入应用程序目录后,再用ls查看目录下包含的文件和目录,然后使用命令mkdir myproject来创建一个名为myproject的目录。4. 输入命令cd myproject,进入新创建的myproject目录,然后在myproject目录下使用命令vi rfdemo.nc来创建工程文件rfdemo。下图为工程文件rfdemo的程序代码,完成代码编写后使
42、用命令 :wq保存文件并退出。建立模块文件rfdemom.nc:5. 在myproject目录下使用命令vi rfdemom.nc来建立模块文件rfdemom.nc。下图为模块文件rfdemom程序代码,完成代码编写后使用命令 :wq保存文件并退出。编写makefile文件:6. 用命令ls可以查看在myproject目录下包含了新建的rfdemo.nc和rfdemom.nc两个文件,然后在myproject目录下用vi makefile命令来编写makefile文件。下图为makefile文件的程序代码,完成代码编写后使用命令 :wq保存文件并退出。7. 使用命令ls查看myproject目
43、录下包括新建的makefile文件。烧录程序:8. 实验时需要两个网关板和两个节点,编程时需要对两个节点分别赋于不同的id号。9. 步骤1: 将cc2430核心板插到网关板上,连接上usb_slave线缆,打开网关板电源步骤2: 进入工程myproject目录,运行烧录命令烧录第一个节点的程序命令:烧录第二个节点的程序命令:实验结果:10. 两个网关板都接到pc上,使用串口终端软件(波特率设置为9600bps)查看。发送数据:在第一个网关板上的串口终端上将出现如下内容:此处显示了本节点的id号和组号,提示用户输入目标节点id键盘输入目标地址后回车此处提示用户输入欲发送的数据信息输入信息回车后发
44、送接收数据:第二个网关板上节点将出现如下内容:说明成功接收数据.实验七 传感器添加实验atosenet系统的高扩展性允许用户自行添加新的传感器的软硬件,通过以下的步骤可以完成该目的。先决条件: 熟悉常用的a/d传感器,开关式传感器,数字式传感器。 已经完成实验二的内容预备知识:11. 用户添加新传感器的过程,主要分为三个阶段:a) 设计并实现与本系统兼容的传感器硬件。b) 配置节点系统c) 配置上位机系统12. 兼容的传感器类型,本系统主要兼容三种类型的传感器:d) a/d传感器e) 开关式传感器f) 数字式传感器13. 设计实现传感器对于a/d传感器,需要做几个工作:将传感器的输出放大到系统
45、所支持的电压范围(通常放大到03v之间)。确定对应的所对应的cc2430的a/d通道(通常可以接到p0.4口)。如果用户选用模拟型传感器,则需要用到cc2430的内部ad转换器。因此首先需要将传感器的输出信号转化为电压信号,然后将该电压信号通过信号调理电路使其输出电压范围在0-3.3v之间。然后将该输出电压与cc2430的某一ad引脚(p0.0-p0.7)相连(可以通过程序设置)即可,节点板插槽的gpio口分布情况如下:对于开关式传感器,需要做几个工作:将开关量输出调节到高电平3v左右,低电平0v左右。确定使用通用i/o读写或者使用中断来采样开关量,并接到对应的io口。对于中断捕捉,必须接到p
46、0.4口。(通过定时器采样两个跳变间的时间,例如流量计)对于数字式传感器,需要做几个工作:由于数字式传感器种类繁多,实现方法也不尽,所以需要用户自行设计相应的硬件电路,并通过cc2430的相应功能来实现传感器的功能。但是最终实现出来的传感器只要能正确的采得所需数据,便可方便的嵌入到系统中,将数据通过rf射频网络传输起来。如果用户选用的传感器为数字式的传感器,则只需要用到cc2430的gpio脚。因此只需要将需要用到的gpio脚与数字式传感器的引脚相连即可。节点板插槽的gpio口分布情况见上图所示。14. 配置节点系统(软件)一旦用户实现了传感器硬件,便可开始在节点的tinyos系统中添加对应的
47、传感器软件支持。在传感器节点程序的编译过程中,使用make工具对代码进行编译。因此,用户需要做一些工作,使得用户的驱动代码能够被有效的整合到系统中。支持相应的传感器需要对 /opt/atos/atosenet/antc3目录中的文件做出相应的修改。原理大致如下:make命令行参数 aso=xxxmake antc3 aso=xxx type=xantc3.h头文件定义开关#ifdef aso_xxx#define use_module_xxx. #endifantc3app.nc组件配置文件#ifdef use_module_xxx#endifmake 工具支持对应传感器的tinyos程序节点
48、硬件传感器硬件install传感器数据rf网络传感器数据antc3m.nc实现文件1、uses interface .2、添加相应的传感器处理函数3、将处理函数置于系统处理队列sensor_function中4、定义传感器数据所占字节于系统配置队列sensor_data_count中5、实现传感器采集程序并将数据存于系统发送缓冲区中。从上图可以看出,添加自己的传感器需要经过几个步骤:在“传感器定义列表”中添加新传感器的宏定义开关在“传感器组件列表”中添加自己的组件在“系统传感器队列”中添加用户的传感器程序声明和数据长度信息实现对应“传感器的处理程序”由于对于不同类型的传感器的处理过程有较多相似
49、,为了方便讲解,所以下面的实验将以光(light)传感器为例子来说明。15. 配置上位机系统为了在界面中能够正确的显示采集到的数据,我们需要在上位机的系统中添加新传感器的识别机制和数据解析体系。上位机的数据识别、解析机制体系通过完善的数据库结构,为用户提供了一系列的接口。用户只需要在相应得数据表中添加相对应的字段,就可以使自己添加的传感器数据在上位机系统中被正确解析、显示。原理大致如下:系统配置数据库system/config.mdb节点类型配置t_node_type数据存储t_storage_type数据字段t_storage_field采集数据t_data_1采集数据t_data_2采集数
50、据t_data_xxxx.。数据存储数据库data/data.mdbtype段传感器数据从基站接收到的rf数据查询出对应得存储结构,字段结构,以及存储的数据库表解析出来的传感器数据存储到对应表所以大致分如下几个步骤:添加节点类型描述添加节点传感器存储类型和字段结构添加节点数据存储对应表实验步骤:修改终端代码1. 首先添加宏定义开关,在文件/opt/atos/atosenet/antc3/antc3.h中添加如下代码:#ifdef aso_light /* 用于接收make命令的参数 */ #define use_module_light /*定义了light传感器的宏开关*/ #define adc_channel_light adc_ain4 /* 使用ad通道4 */#endif2. 添加组件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校本课程国际课程设计
- 2025年山东淄博市市属事业单位综合类岗位招聘工作人员65人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁市属事业单位“优才”选聘历年管理单位笔试遴选500模拟题附带答案详解
- 年会董事长致辞
- 2025年山东济南市槐荫区所属事业单位招聘51人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济南信息工程学校招聘人员17人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东枣庄工程技师学院招聘备案制工作人员30人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东文化厅所属事业单位招考工作人员管理单位笔试遴选500模拟题附带答案详解
- 机械原理课程设计网球
- 微课程设计花钟
- 生活小妙招(修订版)
- 人事入转调离分析报告
- 管道工安全培训课件
- 胃癌的早期预防和筛查
- 汽车安全与法规 (第3版) 课件 第1-3章 汽车安全技术概述、汽车安全技术法规与标准、汽车主动安全性
- 公路工程定额应用-公路工程定额的组成
- 保险行业风控规则与制度培训
- 2022-2023学年佛山市禅城区六年级数学第一学期期末达标测试试题含解析
- 《广联达培训教程》课件
- 扬州育才小学2023-2024六年级数学上册期末复习试卷(一)及答案
- 函数的单调性说课课件-2023-2024学年高一上学期数学人教A版(2019)必修第一册
评论
0/150
提交评论