无线传感网络课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《无线传感网络课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 传感 网络 课件
- 资源描述:
-
1、无线传感网络(WSN)无线传感网络关键词英文:Wireless Sensors Networking传感无线网络概念无线传感器网络是一种分布式传感网络,它的末梢是可以感知和检查外部世无线传感器网络是一种分布式传感网络,它的末梢是可以感知和检查外部世界的传感器。界的传感器。WSN中的传感器通过无线方式通信,因此网络设置灵活,设备中的传感器通过无线方式通信,因此网络设置灵活,设备位置可以随时更改,还可以跟互联网进行有线或无线方式的连接。通过无线位置可以随时更改,还可以跟互联网进行有线或无线方式的连接。通过无线通信方式形成的一个多跳自组织网络。通信方式形成的一个多跳自组织网络。课程内容 传感技术应用
2、 无线传感网络通信基础 无线传感网络应用考核办法 平时成绩:20% 期末大作业:80%Zigduino开发平台 Arduino体系 优点:易上手,可实现快速应用 单片机开发实质:配置寄存器硬件平台软件平台 Eclipse,相比Arduino IDE、KEIL、IAR Arduino程序特点Arduino核心库函数和系统库函数 void setup()/初始化配置函数,在初始化配置函数,在main函数中首先函数中首先被执行,只执行一次被执行,只执行一次 void loop()/无限循环函数无限循环函数 delay()/延迟函数延迟函数 Zigduino基础实验 通用数字IO口点亮LED 串口的使
3、用 ADC口光敏传感器控制 外部中断点亮LED 定时器的使用 1602型LCD的应用备料 led 电阻若干:150Ohm、10KOhm、2KOhm 光敏电阻 面包线 按键开关常用传感器驱动开发和应用 DHT11:温湿度传感器 ADXL345:三轴加速度传感器 BH1750FVI :光照传感器 DS18B20:温度传感器单片机IO接口 I/O口是输入/输出的简写,I/O口分数字I/O口和外设I/O口两种。 外设I/O口有ADC接口,TIMER接口(时钟),中断接口,I2C接口,串口等等。 一个芯片的I/O口引脚是用于数字I/O口还是外设I/O口,可以通过寄存器配置进行选择。 IO口实验一 第一步
4、: 连接电路 数字IO口实验一IO口实验一 第二步:写程序,新建名字叫IO1的工程项目; 在setup()函数里面写入: 在loop()函数里面写入:pinMode(3,OUTPUT);digitalWrite(3,HIGH);delay(1000);/延时1000msdigitalWrite(3,LOW);delay(1000);怎么理解delay( )函数?就好像一个要走路的人在原地踏步!MCU一旦上电,根本停不下来Arduino包含的以下数字IO口库函数void pinMode(uint8_t pin, uint8_t mode):设置管脚的方向,:设置管脚的方向,pin表示管脚的序号表
5、示管脚的序号,mode表示方向,只能取表示方向,只能取INPUT,OUTPUT两个值两个值,如下面的代码把管脚如下面的代码把管脚10设成输入:设成输入: pinMode(10,INPUT); void digitalWrite(uint8_t pin, uint8_t val):设置管脚的数字电:设置管脚的数字电平平, pin表示管脚的序号表示管脚的序号,value表示电平,只能取表示电平,只能取HIGH,LOW两两个值,如下面的代码把管脚个值,如下面的代码把管脚5设成高电平:设成高电平: digitalWrite(5,HIGH); int digitalRead(uint8_t pin):返
6、回管脚的数字电平:返回管脚的数字电平, pin表示管表示管脚的序号脚的序号,返回值只能是返回值只能是HIGH或或LOW,如下面的代码将返回管脚,如下面的代码将返回管脚7的数字电平:的数字电平: val = digitalRead(7); IO口实验二 电路连接新建IO2工程项目下载程序后,LED红灯亮了。然后你用黑色导线的另外一端插入到GND即地,此时就可以发现灯灭了,因为3号引脚读取的电平是低电平。(默认情况下管脚输入的读取值是高电平)#include io2.hvoid setup() pinMode(3,OUTPUT); /配置3号数字引脚为输出模式pinMode(1,INPUT); /
7、配置1号数字引脚为输入模式 void loop() if (digitalRead(1) /读取1号引脚的电平判断是否为高电平digitalWrite(3,HIGH); /将3号引脚的电平设置为高电平else /否则digitalWrite(3,LOW); /将3号引脚的电平设置为低电平 总结 数字IO口既可以是输入,也可以是输出。但是无论是输入还是输出,它是都是数字型的,要么是0(零电压LOW),要么是1(电源电压HIGH)。 当它为高电平即电源电压,它相当于电源正极,但是它的输出电流受限于单片机IO口。为低电平时,相当于GND即地。(UART)串口:串行通信接口Zigduino里面串口串口
8、的英文单词用Serial 串口通信有两个方向:发送和接收 串口有一个参数:波特率,(单位是bps)即数据通信的传输速率。常用波特率数值有( 300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200bps)。通信的接收方需要设置与发送方一致的波特率才可以正确接收到数据。 假定我们自己是单片机,单片机读,是输入;写则是输出。串口库函数void begin(unsigned long baud):串口使能,并工作在数值为串口使能,并工作在数值为baud的波特率下,如下面的代码启动了的波特率下,如下面的代码启动了UART,并工作在
9、,并工作在57600的波特率下:的波特率下: Serial.begin(57600); int available(void):返回串口缓冲区中有多少字节没有读取的数据;返回串口缓冲区中有多少字节没有读取的数据; int read(void): 返回串口读取到的当前数据,同时从缓冲区中删除此数据;返回串口读取到的当前数据,同时从缓冲区中删除此数据; size_t write(uint8_t):往串口写入一个字节;:往串口写入一个字节; size_t write(const char *str):往串口写入一个字符串;:往串口写入一个字符串; size_t write(const uint8_t
10、 *buffer, size_t size):往串口写入一个字节数组的前面的大小为:往串口写入一个字节数组的前面的大小为size的部分;的部分; print(data):往串口写入数据,可以是数字型的也可以是字符串;:往串口写入数据,可以是数字型的也可以是字符串; print(data, encoding):往串口写入格式化数值数据,往串口写入格式化数值数据,encoding 可以是十进制可以是十进制(DEC),十六进制(,十六进制(HEX),),八进制(八进制(OCT),二进制(),二进制(BIN),字符(),字符(BYTE),如下面的输出;),如下面的输出; Serial.print(75
11、); / 输出输出75 Serial.print(75, DEC); / 输出输出75 Serial.print(75, HEX); /输出输出4B Serial.print(75, OCT); /输出输出113 Serial.print(75, BIN); /输出输出1001011 Serial.print(75, BYTE); / 输出输出K,75代表的字符代表的字符println(data):和和print(data)基本相同,不过在最后加上了回车换行。基本相同,不过在最后加上了回车换行。串口实验一:Serial.print和Serial.write的区别int i=52;void se
12、tup() Serial.begin(57600);void loop() Serial.print(i); Serial.println();Serial.write(i);Serial.println();delay(1000);Serial.print( )打印的是原来的内容;而Serial.write( )打印出来的是ASCII码值串口实验二:实现单片机与计算机之间的串口通信 台式机也有串口,所以可以与单片机通信 只需要usb线连接台式机和单片机开发板就可以了 用到AcessPort串口软件 这里程序的功能是将计算机发给单片机的数据发回给计算机思考:为什么这里Serial.write没
13、有打印出ASCII码值? void setup() Serial.begin(57600); void loop() while (Serial.available() Serial.write(Serial.read(); delay(1000); ADC ADC,英文解释为Analog-Digit Convert(模拟数字转换),简单意思是单片机可以读取外部的模拟电压值转化成数字值。Zigduino一共有6个AD管脚即模拟输入管脚为了实现Zigduino管脚的模拟输入,我们需要了解最基本的AD采样。所谓AD采样就是把模拟信号转换成数字信号,在转化的过程中需要关注采样精度、采样频率和采样范围
14、,对于Zigduino使用的Atmega128RFA1来说,它内置的是10位的AD采样精度,即采集出来的数值范围是0-1023,采样频率则和应用程序相关,但最快不能超过MCU的限制,采样范围表示的是允许的模拟信号的幅度。对于Atmega128RFA1来说,用户可以选择1.5V,1.6V,1.8V或任意外部输入的在0-1.8V之间的电压作为参考电压,也是采样的最高电压,iDuino默认的采样范围是0-1.8V,用户可以通过下面的函数来改变参考电压: void analogReference(uint8_t mode) 其中mode可选列表如下: INTERNAL1V5:1.5V内部参考电压; I
15、NTERNAL1V6:1.6V内部参考电压; DEFAULT:默认内部1.8V参考电压; EXTERNAL:通过AREF管脚输入的外部参考电压。 int analogRead(uint8_t pin):返回管脚的模拟电平:返回管脚的模拟电平,即即AD采样的结果,只能用采样的结果,只能用在模拟管脚上,在模拟管脚上, pin表示管脚的序号表示管脚的序号,返回值的范围是返回值的范围是0-1023,如下面的代码将,如下面的代码将返回管脚返回管脚A0的采样结果:的采样结果: val = analogRead(A0); 在实际应用中,对于某些温敏、光敏、压敏、热敏传感器来说,为了测出它们的电阻变化,必要的
展开阅读全文