无线传感网络幻灯片

上传人:F****n 文档编号:88149568 上传时间:2019-04-20 格式:PPTX 页数:67 大小:13.98MB
返回 下载 相关 举报
无线传感网络幻灯片_第1页
第1页 / 共67页
无线传感网络幻灯片_第2页
第2页 / 共67页
无线传感网络幻灯片_第3页
第3页 / 共67页
无线传感网络幻灯片_第4页
第4页 / 共67页
无线传感网络幻灯片_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《无线传感网络幻灯片》由会员分享,可在线阅读,更多相关《无线传感网络幻灯片(67页珍藏版)》请在金锄头文库上搜索。

1、无线传感网络(WSN),无线传感网络关键词,英文:Wireless Sensors Networking 传感 无线网络,概念,无线传感器网络是一种分布式传感网络,它的末梢是可以感知和检查外部世界的传感器。WSN中的传感器通过无线方式通信,因此网络设置灵活,设备位置可以随时更改,还可以跟互联网进行有线或无线方式的连接。通过无线通信方式形成的一个多跳自组织网络。,课程内容,传感技术应用 无线传感网络通信基础 无线传感网络应用,考核办法,平时成绩:20% 期末大作业:80%,Zigduino开发平台,Arduino体系 优点:易上手,可实现快速应用 单片机开发实质:配置寄存器,硬件平台,软件平台,

2、Eclipse,相比Arduino IDE、KEIL、IAR Arduino程序特点,Arduino核心库函数和系统库函数,void setup()/初始化配置函数,在main函数中首先被执行,只执行一次 void loop()/无限循环函数 delay()/延迟函数 ,Zigduino基础实验,通用数字IO口点亮LED 串口的使用 ADC口光敏传感器控制 外部中断点亮LED 定时器的使用 1602型LCD的应用,备料,led 电阻若干:150Ohm、10KOhm、2KOhm 光敏电阻 面包线 按键开关,常用传感器驱动开发和应用,DHT11:温湿度传感器 ADXL345:三轴加速度传感器 BH

3、1750FVI :光照传感器 DS18B20:温度传感器,单片机IO接口,I/O口是输入/输出的简写,I/O口分数字I/O口和外设I/O口两种。 外设I/O口有ADC接口,TIMER接口(时钟),中断接口,I2C接口,串口等等。 一个芯片的I/O口引脚是用于数字I/O口还是外设I/O口,可以通过寄存器配置进行选择。,IO口实验一,第一步: 连接电路,数字IO口实验一,IO口实验一,第二步:写程序,新建名字叫IO1的工程项目; 在setup()函数里面写入: 在loop()函数里面写入:,pinMode(3,OUTPUT);,digitalWrite(3,HIGH); delay(1000);/

4、延时1000ms digitalWrite(3,LOW); delay(1000);,怎么理解delay( )函数?就好像一个要走路的人在原地踏步!,MCU一旦上电,根本停不下来,Arduino包含的以下数字IO口库函数,void pinMode(uint8_t pin, uint8_t mode):设置管脚的方向,pin表示管脚的序号,mode表示方向,只能取INPUT,OUTPUT两个值,如下面的代码把管脚10设成输入: pinMode(10,INPUT); void digitalWrite(uint8_t pin, uint8_t val):设置管脚的数字电平, pin表示管脚的序号,

5、value表示电平,只能取HIGH,LOW两个值,如下面的代码把管脚5设成高电平: digitalWrite(5,HIGH); int digitalRead(uint8_t pin):返回管脚的数字电平, pin表示管脚的序号,返回值只能是HIGH或LOW,如下面的代码将返回管脚7的数字电平: val = digitalRead(7);,IO口实验二,电路连接,新建IO2工程项目,下载程序后,LED红灯亮了。然后你用黑色导线的另外一端插入到GND即地,此时就可以发现灯灭了,因为3号引脚读取的电平是低电平。(默认情况下管脚输入的读取值是高电平),#include “io2.h“ void se

6、tup() pinMode(3,OUTPUT); /配置3号数字引脚为输出模式 pinMode(1,INPUT); /配置1号数字引脚为输入模式 void loop() if (digitalRead(1) /读取1号引脚的电平判断是否为高电平 digitalWrite(3,HIGH); /将3号引脚的电平设置为高电平 else /否则 digitalWrite(3,LOW); /将3号引脚的电平设置为低电平 ,总结,数字IO口既可以是输入,也可以是输出。但是无论是输入还是输出,它是都是数字型的,要么是0(零电压LOW),要么是1(电源电压HIGH)。 当它为高电平即电源电压,它相当于电源正极

7、,但是它的输出电流受限于单片机IO口。为低电平时,相当于GND即地。,(UART)串口:串行通信接口,Zigduino里面 串口的英文单词用Serial,串口通信有两个方向:发送和接收 串口有一个参数:波特率,(单位是bps)即数据通信的传输速率。常用波特率数值有( 300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200bps)。通信的接收方需要设置与发送方一致的波特率才可以正确接收到数据。 假定我们自己是单片机,单片机读,是输入;写则是输出。,串口库函数,void begin(unsigned long baud):串

8、口使能,并工作在数值为baud的波特率下,如下面的代码启动了UART,并工作在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 *buffer, size_t size):往串口写入一个字节数组的前面的大小为s

9、ize的部分; print(data):往串口写入数据,可以是数字型的也可以是字符串; print(data, encoding):往串口写入格式化数值数据,encoding 可以是十进制(DEC),十六进制(HEX),八进制(OCT),二进制(BIN),字符(BYTE),如下面的输出; Serial.print(75); / 输出“75“ Serial.print(75, DEC); / 输出“75“ Serial.print(75, HEX); /输出“4B“ Serial.print(75, OCT); /输出“113“ Serial.print(75, BIN); /输出“100101

10、1“ Serial.print(75, BYTE); / 输出“K“,75代表的字符 println(data):和print(data)基本相同,不过在最后加上了回车换行。,串口实验一: Serial.print和Serial.write的区别,int i=52; void setup() Serial.begin(57600); void loop() Serial.print(i); Serial.println(); Serial.write(i); Serial.println(); delay(1000); ,Serial.print( )打印的是原来的内容; 而Serial.wr

11、ite( )打印出来的是ASCII码值,串口实验二: 实现单片机与计算机之间的串口通信,台式机也有串口,所以可以与单片机通信 只需要usb线连接台式机和单片机开发板就可以了 用到AcessPort串口软件 这里程序的功能是将计算机发给单片机的数据发回给计算机,思考:为什么这里Serial.write没有打印出ASCII码值?,void setup() Serial.begin(57600); void loop() while (Serial.available() Serial.write(Serial.read(); delay(1000); ,ADC,ADC,英文解释为Analog-Di

12、git Convert(模拟数字转换),简单意思是单片机可以读取外部的模拟电压值转化成数字值。,Zigduino一共有6个AD管脚即模拟输入管脚,为了实现Zigduino管脚的模拟输入,我们需要了解最基本的AD采样。所谓AD采样就是把模拟信号转换成数字信号,在转化的过程中需要关注采样精度、采样频率和采样范围,对于Zigduino使用的Atmega128RFA1来说,它内置的是10位的AD采样精度,即采集出来的数值范围是0-1023,采样频率则和应用程序相关,但最快不能超过MCU的限制,采样范围表示的是允许的模拟信号的幅度。对于Atmega128RFA1来说,用户可以选择1.5V,1.6V,1.

13、8V或任意外部输入的在0-1.8V之间的电压作为参考电压,也是采样的最高电压,iDuino默认的采样范围是0-1.8V,用户可以通过下面的函数来改变参考电压: void analogReference(uint8_t mode) 其中mode可选列表如下: INTERNAL1V5:1.5V内部参考电压; INTERNAL1V6:1.6V内部参考电压; DEFAULT:默认内部1.8V参考电压; EXTERNAL:通过AREF管脚输入的外部参考电压。,int analogRead(uint8_t pin):返回管脚的模拟电平,即AD采样的结果,只能用在模拟管脚上, pin表示管脚的序号,返回值的

14、范围是0-1023,如下面的代码将返回管脚A0的采样结果: val = analogRead(A0);,在实际应用中,对于某些温敏、光敏、压敏、热敏传感器来说,为了测出它们的电阻变化,必要的分压电路也是必须的,下面是一个简单的光敏测量电路:,IO口D1拉高,相当于电源。 为了使信号的输入符合Zigduino的电压采样范围,对信号进行必要的分压是必须的。,ADC实验一:自动光感led灯,用到的元器件: 电阻470欧姆一个, (左)用于限流。 电阻2K欧姆一个, (右)用于分压。 10k光敏电阻一个 Led一个 导线5根,程序,int sensevalue=0; void setup() pinM

15、ode(0,OUTPUT); pinMode(1,OUTPUT); Serial.begin(38400); void loop() digitalWrite(0,HIGH); /供电 sensevalue=analogRead(A1); /读取ADC0口模拟值 if (sensevalue500) digitalWrite(1,HIGH); /当光线暗时,点亮led灯 else digitalWrite(1,LOW); Serial.print(sensevalue); delay(1000); ,串口可以调试你的程序,很方便,中断Interrupt(INT),什么是中断 中断的类型 中断三

16、要素 中断作用,什么是中断,单片机暂停正在运行的程序,保存现场,自动转去执行相应的程序,执行完以后再返回断点继续执行被打断的程序。这个过程就叫中断。,中断的类型,可分为:内部中断和外部中断 内部中断有:内部定时器中断、串口中断、AD中断、SPI中断等。这些设备或者接口都集成在单片机内部。 外部中断有:外部信号引起的中断,中断三要素,中断源:中断产生的来源。 中断方式(外部中断):高电平、低电平、上升沿、下降沿等。 中断服务程序:中断产生以后,单片机去执行的程序。,中断如何使用,三个步骤: 1. 设置需要开启的中断源。 2. 设置中断方式。 3. 编写中断服务程序。,中断的作用,中断使得单片机实现系统调度,实时响应。 使用中断,可以实现定时报警、外部中断报警等功能。,中断库函数,void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号