基于物联网的智能奶瓶课程设计.docx

上传人:b****6 文档编号:5577498 上传时间:2022-12-28 格式:DOCX 页数:17 大小:89.29KB
下载 相关 举报
基于物联网的智能奶瓶课程设计.docx_第1页
第1页 / 共17页
基于物联网的智能奶瓶课程设计.docx_第2页
第2页 / 共17页
基于物联网的智能奶瓶课程设计.docx_第3页
第3页 / 共17页
基于物联网的智能奶瓶课程设计.docx_第4页
第4页 / 共17页
基于物联网的智能奶瓶课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于物联网的智能奶瓶课程设计.docx

《基于物联网的智能奶瓶课程设计.docx》由会员分享,可在线阅读,更多相关《基于物联网的智能奶瓶课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

基于物联网的智能奶瓶课程设计.docx

基于物联网的智能奶瓶课程设计

 

感知层课程设计论文

论文题目:

基于物联网的智能奶瓶

学院:

年级:

专业:

姓名:

学号:

指导教师:

 

摘要

婴儿时期是人一生中最至关重要的时期之一,但同时也是最脆弱的时期,为了照顾自己的宝贝,父母都操碎了心。

奶粉,是婴儿最主要的食物,但是精准控制好温度,光靠双手去衡量显然是不够的。

随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。

本文以Atmega16为核心控制芯片,人体电阻传感器,DS18B20为温度传感器,语音合成模块,通过人体电阻传感器实时监测有没有人触摸奶瓶,如果有触摸通过语音合成模块告诉主人,奶的温度。

 

关键词

物联网;超级奶瓶;温度;DS18B20;语音合成模块;人体电阻传感器

 

Abstract

Theinfantperiodisoneofthemostimportantperiodinlife,butalsothemostvulnerableperiod,inordertotakecareoftheirbaby,parentsarebrokenheart.Thebabymilkpowder,isthemainfood,buttheprecisecontrolofthetemperature,lightonhishandstomeasureisclearlynotenough.

WiththerapiddevelopmentofSCMtechnology,underitsimpetus,themodernelectronicproducts,almostpenetratedintoallareasofsociety,astrongimpetustothedevelopmentofsocialproductivityandtheimprovementofsocialinformation-baseddegree,simultaneouslyalsomakesthemodernelectronicproductstofurtherimprovetheperformance.

ThispapertakesAtmega16asthecorecontrolchip,resistanceofhumanbodysensor,DS18B20asatemperaturesensor,aspeechsynthesismodule,theresistanceofhumanbodysensorforreal-timemonitoringofanyonetouchthebottle,ifthereisatouchtotelltheownerthroughthespeechsynthesismodule,thetemperatureofthemilk.

 

Keywords

TheInternetofthings;superbottles;temperature;DS18B20;speechsynthesismodule;thehumanbodyresistancesensor

 

3.2.1温度采集7

前言

婴儿时期是人一生中最至关重要的时期之一,但同时也是最脆弱的时期,为了照顾自己的宝贝,父母都操碎了心。

婴儿足月出生时已具有较好的吸吮吞咽功能,颊部有坚厚的脂肪垫,有助于吸吮活动,早产儿则较差。

吸吮动作是复杂的天性反射,严重疾病可影响这一反射,使吸吮变得弱而无力。

新生儿及婴幼儿口腔黏膜薄嫩,血管丰富,唾液腺发育不够完善,唾液分泌少,口腔黏膜干燥,易受损伤和细菌感染;3个月时唾液分泌开始增加;5个月时明显增多。

3个月以下小儿唾液中淀粉酶含量较少,不宜喂淀粉类食物。

婴儿口底浅,不会及时吞咽所分泌的全部唾液,常发生生理性流涎。

食管:

食管是两个主要功能:

一是推进食物和液体由口入胃;二是防止吞咽期间胃内容物反流。

新生儿和婴儿的食管呈漏斗状,黏膜纤弱,腺体缺乏,弹力组织及肌层尚不发达,食管下段贲门括约肌发育不成熟,控制能力差,常发生胃食管反应,绝大多数在8~10个月时症状消失。

婴儿吸奶时常吞咽过多空气,易发生溢奶。

胃:

新生儿胃容量约为30~60毫升,后随年龄而增大,1~3个月时90~150毫升,1岁时250~300毫升,由于新生儿胃容量小,所以新生儿喂食应当少量多次,喂食的次数应较年长儿多。

婴儿胃呈水平位,当开始行走时其位置变为垂直。

胃平滑肌发育尚未完善,在充满液体食物后易使胃扩张。

由于贲门肌张力低,幽门括约肌发育较好,且自主神经调节差,故易引起幽门痉挛出现呕吐。

胃黏膜有丰富的血管,但腺体和杯状细胞较少,盐酸和各种酶的分泌均较成人少且酶活力低,消化功能差。

胃排空时间随食物种类不同而异,稠厚且含凝乳块的乳汁排空慢。

其中水的排空时间为1.5~2小时;母乳为2~3小时;牛乳为3~4小时。

早产儿胃排空更慢,易发生胃潴留。

奶粉,是婴儿最主要的食物,但是精准控制好温度,光靠双手去衡量显然是不够的。

 

第一章作品的整体介绍

1.1作品实物展示

1.2功能和组成原件介绍

1.2.1功能简述

语音报温,简单明了

1.2.2人体电阻传感器

人体皮肤是有电阻的,能够应用此设计电路,进行人体接触检测

1.2.3温度传感器

DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢,封装式,型号多种多样,有LTM8877,LTM8874等等。

主要根据应用场合的不同而改变其外观。

封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。

耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

1.2.4语音合成模块产品功能描述○文本合成功能芯片支持任意中文文本的合成,可以采用GB2312、GBK、BIG5和Unicode四种编码方式。

芯片支持英文字母的合成,遇到英文单词时按字母方式发音。

每次合成的文本量可达200个字节。

○文本智能分析处理芯片具有文本智能分析处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本,芯片能够根据内置的文本匹配规则进行正确的识别和处理。

例如:

“2008-12-21”读作“二零零八年十二月二十一日”,“10:

36:

28”读作“十点三十六分二十八秒”,“28℃”读作“二十八摄氏度”,等等。

○多音字处理和中文姓氏处理能力对存在多音字的文本,例如:

“当前工作的重中之重是要在重重困难中保证重庆市的重点工程的顺利进行,坚决拒绝重复建设”,芯片可以自动对文本进行分析,判别文本中多音字的读法并合成正确的读音。

○数字音量16级控制和6级词语语速控制芯片可实现16级数字音量控制,音量更大,更广。

播放文本的前景音量和播放背景音乐的背景音量可分开控制,更加自由。

○文本播音时可选择背景音乐芯片内集成了15首背景音乐,在任何播音时均可以选择背景音乐。

○提示音芯片内集成了19首声音提示音,可用于不同场合的信息提醒、报警等功能。

芯片内集成了23首和弦音乐,可用作和弦短信提示音或者和弦铃声。

○支持多种控制命令控制命令包括:

合成文本、停止合成、暂停合成、恢复合成、状态查询、进入PowerDown模式、改通讯波特率等控制命令。

控制器通过通讯接口发送控制命令实现对芯片的控制。

○支持多种文本控制标记芯片支持多种文本控制标记。

可通过发送“合成命令”发送文本控制标记,调节音量、设置数字读法、设置词语语速、设置标点是否读出等。

○查询芯片的工作状态支持多种方式查询芯片的工作状态,包括:

查询状态管脚电平、通过读芯片自动返回的回传、发送查询命令获得芯片工作状态的回传。

○支持低功耗模式芯片支持PowerDown模式。

使用控制命令可以使芯片进入PowerDown模式。

复位芯片可以使芯片从PowerDown模式恢复到正常工作模式。

○支持三种通讯波特率芯片支持的通讯波特率:

9600bps,19200bps、38400bps

1.2.5控制器

ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。

所有的寄存器都直接与运算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。

这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。

ATmega16有如下特点:

16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。

工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。

本芯片是以Atmel高密度非易失性存储器技术生产的。

片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。

引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。

在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。

通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。

1.3语音自动播报水温

第二章硬件设计方案及分析

2.1系统的硬件组成及框图

2.1.1硬件组成

DS18B20;语音合成模块;人体电阻传感器;Atmega16单片机

2.1.2硬件系统框图

2.2各模块介绍

2.2.1控制模块

杯子周围设置有的人体电阻传感器,当人手进行触碰时,单片机控制语音合成模块合成温度提示语音。

2.2.2温度采集模块

采用高精度温度传感器DS18B20准确采集温度信息

2.2.3人体电阻传感器

精准的检测人体的触摸

2.2.4语音合成模块

合成相应的语音

 

第三章统的软件设计及编程

3.1软件框图设计

检测是否有人体触摸,是的话就有控制器控制语音合成模块合成温度提示语音,负责休眠等待

3.2编程设计

3.2.1温度采集

voidGetTemperture(void)

{

SREG=0x00;

Init_DS18B20();

if(yes0==0)

{

WriteOneByte(0xCC);

WriteOneByte(0x44);

Delay_ms(100);

Init_DS18B20();

WriteOneByte(0xCC);

WriteOneByte(0xBE);

temp_data[0]=ReadOneByte();

temp_data[1]=ReadOneByte();

//temp_TH=ReadOneByte();

//temp_TL=ReadOneByte();

temp_flag=1;

}

elsetemp_flag=0;

SREG=0x80;

}

voidTempConv()

{

ucharsign=0;

uchartemp;//定义温度数据暂存

if(temp_data[1]>127)

{

temp_data[0]=(~temp_data[0])+1;//取反加1,将补码变成原码

if((~temp_data[0])>=0xff)//若大于或等于0xff

temp_data[1]=(~temp_data[1])+1;

elsetemp_data[1]=~temp_data[1];

sign=1;

}

temp=temp_data[0]&0x0f;

disp_buf[0]=(temp*10/16)+0x30;

temp_comp=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);

disp_buf[3]=temp_comp/100+0x30;//百位部分变换为ascii码

temp=temp_comp%100;//十位和个位部分

disp_buf[2]=temp/10+0x30;//分离出十位并变换为ascii码

disp_buf[1]=temp%10+0x30;//分离出个位并变换为ascii码

if(disp_buf[3]==0x30)//百位ascii码为0x30(即数字0),不显示

{

disp_buf[3]=0x20;

if(disp_buf[2]==0x30)

disp_buf[2]=0x20;

}

if(sign)disp_buf[3]=0x2d;

}

3.2.2单片机串口初始化

/********以下是串口初始化函数********/

voiduart0_init(void)

{

UCSRA=0x00;//|(1<

UCSRB=0x00;

UCSRC|=(1<

UBRRL=(fosc/16/(baud+1))%256;

UBRRH=(fosc/16/(baud+1))/256;

UCSRB|=(1<

}

 

结论

该产品能非常好的解决生活中婴幼儿被烫伤,冻着的问题,本产品无需专业训练,适用于任何人群;冷热自发电,确保了产品可以多次使用;.造价低廉,普通家庭能够接受;语音报温,简单明了。

因此本产品非常适合投入市场。

 

参考文献

[1]阎石.数字电子技术基础[M].5版.北京:

高等教育出版社,2006.

[2]康华光.电子技术基础(数字部分)[M].5版北京:

高等教育出版社,2006.

[3]中国集成电路大全编委会.高速CMOS集成电路[M].北京:

国防工业出版社,1995.

[4]孙俊人.新编电子电路大全.第3卷.通用数字电路[M].北京:

中国计量出版社,2001.

[5]XX百科A/D转换

附录一

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#definefosc8000000//晶振8MHZ

#definebaud9600//波特率定义

#include"1602LCD_drive.h"

#include"DS18B20_drive.h"

#definebeep_0(PORTD=PORTD&0x7f)

#definebeep_1(PORTD=PORTD|0x80)

voidport_init(void);

voidTempDisp(void);

voidbeep(void);

voidMenuError(void);

voidMenuOk(void);

voidGetTemperture(void);

voidTempConv(void);

uchartemp_flag;

uchartemp_comp;//用来存放测量温度的整数部分

uchardisp_buf[8]={0};//显示缓冲

uchartemp_data[2]={0x00,0x00};//用来存放温度数据的高位和低位

ucharline1_data[]="DS18B20OK";//DS18B20正常时第1行显示的信息

ucharline2_data[]="TEMP:

";//DS18B20正常时第2行显示的信息

ucharmenu1_error[]="DS18B20ERR";//DS18B20出错时第1行显示的信息

ucharmenu2_error[]="TEMP:

----";//DS18B20出错时第2行显示的信息/********端口设置函数********/

voidport_init()

{

PORTA=0xFF;

DDRA=0X00;

PORTC=0xff;//输出高电平

DDRC=0xFF;//设为输出

DDRB=(0<

DDRB=(0<

PORTB=0xff;

PORTD=0X00;

DDRD|=(1<

 

}

 

voidMenuError()

{

lcd_clr();

LCD_write_str(0,0,menu1_error);

LCD_write_str(0,1,menu2_error);

LocateXY(11,1);

lcd_wdat(0xdf);

lcd_wdat('C');

}

voidGetTemperture(void)

{

SREG=0x00;

Init_DS18B20();

if(yes0==0)

{

WriteOneByte(0xCC);

WriteOneByte(0x44);

Delay_ms(100);

Init_DS18B20();

WriteOneByte(0xCC);

WriteOneByte(0xBE);

temp_data[0]=ReadOneByte();

temp_data[1]=ReadOneByte();

//temp_TH=ReadOneByte();

//temp_TL=ReadOneByte();

temp_flag=1;

}

elsetemp_flag=0;

SREG=0x80;

}

voidTempConv()

{

ucharsign=0;

uchartemp;//定义温度数据暂存

if(temp_data[1]>127)

{

temp_data[0]=(~temp_data[0])+1;//取反加1,将补码变成原码

if((~temp_data[0])>=0xff)//若大于或等于0xff

temp_data[1]=(~temp_data[1])+1;

elsetemp_data[1]=~temp_data[1];

sign=1;

}

temp=temp_data[0]&0x0f;

disp_buf[0]=(temp*10/16)+0x30;

temp_comp=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);

disp_buf[3]=temp_comp/100+0x30;//百位部分变换为ascii码

temp=temp_comp%100;//十位和个位部分

disp_buf[2]=temp/10+0x30;//分离出十位并变换为ascii码

disp_buf[1]=temp%10+0x30;//分离出个位并变换为ascii码

if(disp_buf[3]==0x30)//百位ascii码为0x30(即数字0),不显示

{

disp_buf[3]=0x20;

if(disp_buf[2]==0x30)

disp_buf[2]=0x20;

}

if(sign)disp_buf[3]=0x2d;

}

/********以下是串口初始化函数********/

voiduart0_init(void)

{

UCSRA=0x00;//|(1<

UCSRB=0x00;

UCSRC|=(1<

UBRRL=(fosc/16/(baud+1))%256;

UBRRH=(fosc/16/(baud+1))/256;

UCSRB|=(1<

}

 

voiduart0_send(unsignedinti)

{

while(!

(UCSRA&(1<

UDR=i;

}

unsignedintuart0_receive(void)

{

while(!

(UCSRA&(1<

returnUDR;

}

voidaudio()

{

/****************需要发送的文本**********************************/

chartext[]="当前水温为摄氏度";

text[10]=disp_buf[2];

text[11]=disp_buf[1];

//text[2]='2';

//text[2]=disp_buf[2];

//text[3]=disp_buf[3];

//text[4]=disp_buf[2];

//text[5]=disp_buf[3];

unsignedcharheadOfFrame[5];

unsignedcharlength;

unsignedcharecc=0;//定义校验字节

unsignedinti=0;

length=sizeof(

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

当前位置:首页 > 总结汇报 > 其它

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

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