基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx

上传人:b****6 文档编号:16624177 上传时间:2022-11-24 格式:DOCX 页数:28 大小:180.64KB
下载 相关 举报
基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx_第1页
第1页 / 共28页
基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx_第2页
第2页 / 共28页
基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx_第3页
第3页 / 共28页
基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx_第4页
第4页 / 共28页
基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx

《基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。

基于yeelink的温度远程采集系统实训报告学位论文Word文件下载.docx

使得硬件和制造业者能够在不关心服务器实现细节和运维的情况下,拥有交付物联网化的电子产品的能力。

Yeelink平台的最大特点,在于不仅仅能够提供数据的上行功能,还能够实现对家庭电器的控制功能,快要到家前想洗个热水澡,还是要提前把空调打开?

很简单,用手机的智能App,这些就是举手之劳。

简单地说,就是可以把你采集到的数据提交到Yeelink,同时Yeelink会以一定的形式展现出来。

比如我们采集温度数据,然后提交上去,这样,无论你人在何方,只要能接入互联网,你就可以实时地在线监测温度值。

本次实训内容便是通过数字温度传感器将实时采集的温度显示在数码管上,并通过串口将其发送到PC机,PC机通过yeelink串口转发工具发布到互联网。

关键词:

温度、传感器、yeelink、物联网、远程采集

Abstract

WiththerapiddevelopmentoftheInternet, 

manynewindustries 

emergedand 

flourished, 

itisinthis 

waveofInternetofthingsplatform 

emergeasthetimesrequireYeelink.Yeelinkistheuniversal 

substance 

anopennetwork 

platform, 

mainlytoprovide 

sensordata 

access,storage 

anddisplayservices, 

opensource 

softwareandhardware 

enthusiasts, 

allmanufacturingenterprises,toprovidea 

IOT 

project 

platform. 

The 

hardwareand 

themanufacturer 

cannot 

careaboutserverimplementationdetailsand 

operation,capabilityofelectronic 

productshavea 

of 

delivery. 

Thebiggestcharacteristic 

ofYeelinkplatform, 

is 

notonlytoprovide 

uplink 

data, 

alsocanrealizethecontrolfunction 

ofhouseholdelectricalappliances, 

wanttowash 

ahotbath 

comes 

before, 

ortoturnontheairconditioner 

inadvance?

Verysimple,intelligent 

mobilephoneApp, 

these 

areto 

liftafinger.Saysimply, 

isthatwecanputyour 

collecteddatasubmittedtotheYeelink, 

andtheYeelinkwillbedisplayedin 

acertainform. 

Forexample, 

we 

collecttemperaturedata, 

andthen 

submittedtogoup, 

so,whetheryou 

are 

inwhere, 

aslongasyoucan 

accesstheInternet, 

youcanmonitorreal-timetemperaturevalue. 

Thistrainingcontents 

isthrough 

digitaltemperaturesensor 

willbereal-timecollectionoftemperature 

inthedigitaltubedisplay, 

andsenditto 

PCthroughthe 

serialport, 

PC 

postedtotheInternetthroughYeelink 

serialportforwarding 

tool.

Keys:

TemperatureSensorYeelinkFetishismRemotemonitoring

目录

实训任务书I

摘要II

AbstractIII

1.1硬件电路2

1.1.1背景知识2

1.1.2课题介绍2

1.1.3主要原理2

1.1.3.1主控制器2

1.1.3.2显示电路2

1.1.3.3温度传感器2

1.1.3.4DS18B20温度传感器与单片机的接口电路7

1.1.3.5ZLG7290芯片7

1.1.3.5.1ZLG7290作用及其功能介绍7

1.1.3.5.2ZLG7290使用说明7

1.1.3.6ZLG7290工作原理8

1.1.4系统构成框图8

1.1.5系统原理介绍8

1.1.6软件流程图9

1.2软件程序10

1.2.1程序清单及注释10

1.3实验小结23

1.4主要参考文献23

一.1硬件电路

一.1.1背景知识

在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一般都是电压,再转换成相对应的温度,需要比较多的外部硬件支持。

其缺点如下:

1.硬件电路复杂;

2.软件调试复杂;

3.制作成本高。

本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。

DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本易使用的特点。

按照系统功能设计的要求,确定系统有三个模块组成:

主控制器,测温电路和显示电路。

一.1.2课题介绍

温度传感器实验主要应用到了ZLG-7290芯片和

总线,同时主要应用到了18B20芯片。

温度传感器要求让它们能够实现外用键盘能够调试,更改和控制的功能。

一.1.3主要原理

系统整体硬件电路包括,传感器采集电路,温度显示电路,单片机主板电路等。

一.1.1.1主控制器

一.1.1.2显示电路

显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。

一.1.1.3温度传感器

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20的性能特点如下:

●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

●无须外部器件;

●可通过数据线供电,电压范围为3.0~5.5V;

●零待机功耗;

●温度以9或12位数字;

●用户可定义报警设置;

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。

图2DS18B20内部结构

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图3所示。

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。

该字节各位的定义如图3所示。

低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

温度LSB

温度MSB

TH用户字节1

TL用户字节2

配置寄存器

保留

CRC

图3 DS18B20字节定义

由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。

因此,在实际应用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。

第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;

当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。

表2是一部分温度值对应的二进制温度数据。

表1DS18B20温度转换时间表

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。

若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。

因此,可用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。

主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;

高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

表2 一部分温度对应值表

温度/℃

二进制表示

十六进制表示

+125

0000011111010000

07D0H

+85

0000010101010000

0550H

+25.0625

0000000110010000

0191H

+10.125

0000000010100001

00A2H

+0.5

0000000000000010

0008H

0000000000001000

0000H

-0.5

1111111111110000

FFF8H

-10.125

1111111101011110

FF5EH

-25.0625

1111111001101111

FE6FH

-55

1111110010010000

FC90H

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。

系统对DS18B20的各种操作按协议进行。

操作协议为:

初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

图4DS18B20与单片机的接口电路

一.1.1.4DS18B20温度传感器与单片机的接口电路

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。

采用寄生电源供电方式时VDD端接地。

由于单线制只有一根线,因此发送接口必须是三态的。

一.1.1.5

ZLG7290芯片

一.1.1.5.1ZLG7290作用及其功能介绍

ZLG7290能够直接驱动8位共阴式数码管(或64只独立的LED),同时还可以扫描管理多达64只按键。

其中有8只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt键一样。

另外ZLG7290B内部还设置有连击计数器,能够使某键按下后不松手而连续有效。

采用I2C总线方式,与微控制器的接口仅需两根信号线。

可控扫描位数,可控任一数码管闪烁。

引脚说明如下图:

一.1.1.5.2ZLG7290使用说明

ZLG7290B是基于I2C总线接口的芯片。

主控单片机ADUC831作为主器件时,内部没有I2C总线功能,因此需用SPI总线的引脚来模拟I2C总线。

具体连接如下:

  ZLG7290BADUC831

  GNDDGND

  SDAMOSI

  SCLSCLOCK

  /INTINT0

  VCCDVDD

  但是,这种连接不是唯一的,只是在所写的软件里需要这样连接。

其实中断可以根据自己所选的中断而定。

地(GND)和电源(VCC)也可以另外从电源上接过来。

所用电源为5V。

  编译软件使用的是WSD,这个软件主要是用于AD系列芯片的。

只要下载扩展名为HEX的文件即可。

一.1.1.6ZLG7290工作原理

  ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。

除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。

此外,ZLG7290B的电路简单,使用也很方便。

用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会自动撤销。

正常情况下,微控制器只需要判断INT引脚就可以得到键盘输入的信息。

微控制器可通过两种方式得到用户的键盘输入信息。

其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制器的一个外部中断源。

其二是查询方式,即通过不断查询INT引脚来判断是否有键按下,该方式可以节省微控制器的一根I/O口线,但是代价是I2C总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。

一.1.4系统构成框图

一.1.5系统原理介绍

数字温度计系统构成框图中DS18B20温度传感器主要用于采集温度;

ZLG-7290按键电路用于控制和调节时间,数码管用于时间显示便于读数,蜂鸣器用于报警闹铃。

一.1.6软件流程图

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。

这样可以在一秒之内测量一次被测温度,其程序流程见图

主程序流程图读温度流程图

一.2软件程序

一.2.1程序清单及注释

#include<

reg52.h>

intrins.h>

#definezlg72900x70/*ZLG7290的IIC地址*/

#defineucharunsignedchar/*宏定义*/

#defineuintunsignedint

#define_Nop()_nop_()/*定义空指令*/

uchardisp_buf[8]={0,0,0,0,0,0,0,0};

/*显示缓冲区*/

uchartemper[2];

/*存放温度的数组*/

ucharcodesampling[]={0,20,29,38,47,56};

/*端口位定义*/

sbitSDA=P1^7;

/*模拟I2C数据传送位*/

sbitSCL=P1^6;

/*模拟I2C时钟控制位*/

sbitDQ=P3^3;

/*18B20数据线引脚*/

sbitKEY_INT=P3^2;

sbitBEEP=P3^5;

bitack;

/*应答标志位*/

ucharg;

uchart1;

uchart2;

ucharcn1=1;

ucharKEY;

ucharchange_disp=0;

/*---------------------------IIC开始-----------------------------*/

/*******************************************************************

起动IIC总线函数

********************************************************************/

voidStart_I2c()

{

SDA=1;

/*发送起始条件的数据信号*/

_Nop();

SCL=1;

/*起始条件建立时间大于4.7us,延时*/

SDA=0;

/*发送起始信号*/

/*起始条件锁定时间大于4μs*/

SCL=0;

/*钳住I2C总线,准备发送或接收数据*/

}

结束IIC总线函数

voidStop_I2c()

/*发送结束条件的数据信号*/

/*发送结束条件的时钟信号*/

/*结束条件建立时间大于4μs*/

/*发送I2C总线结束信号*/

字节数据传送函数

voidSendByte(ucharc)

ucharBitCnt;

for(BitCnt=0;

BitCnt<

8;

BitCnt++)/*要传送的数据长度为8位*/

{

if((c<

<

BitCnt)&

0x80)SDA=1;

/*判断发送位*/

elseSDA=0;

/*置时钟线为高,通知被控器开始接收数据位*/

/*保证时钟高电平周期大于4μs*/

}

/*8位发送完后释放数据线,准备接收应答位*/

if(SDA==1)ack=0;

elseack=1;

/*判断是否接收到应答信号*/

********************************************************************/

ucharRcvByte()

uch

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1