《基于物联网的智能奶瓶课程设计论文(18页).doc》由会员分享,可在线阅读,更多相关《基于物联网的智能奶瓶课程设计论文(18页).doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-基于物联网的智能奶瓶课程设计论文-第 13 页感知层课程设计论文论文题目:基于物联网的智能奶瓶学 院:年 级:专 业:姓 名:学 号:指导教师:摘要婴儿时期是人一生中最至关重要的时期之一,但同时也是最脆弱的时期,为了照顾自己的宝贝,父母都操碎了心。奶粉,是婴儿最主要的食物,但是精准控制好温度,光靠双手去衡量显然是不够的。随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。本文以Atmega16为核心控制芯片,人体电阻传感器,DS18B20为温度传感器,语音合成模块,通过人体电阻
2、传感器实时监测有没有人触摸奶瓶,如果有触摸通过语音合成模块告诉主人,奶的温度。关键词物联网;超级奶瓶;温度;DS18B20;语音合成模块;人体电阻传感器Abstract The infant period is one of the most important period in life, but also the mostvulnerable period, in order to take care of their baby, parents are broken heart.The baby milk powder, is the main food, but the precis
3、e control of the temperature, light on his hands to measure is clearly not enough.With the rapid development of SCM technology, under its impetus, the modernelectronic products, almost penetrated into all areas of society, a strong impetus to the development of social productivity and the improvemen
4、t of social information-based degree, simultaneously also makes the modern electronic products to further improve the performance.This paper takes Atmega16 as the core control chip, resistance of human bodysensor, DS18B20 as a temperature sensor, a speech synthesis module, theresistance of human bod
5、y sensor for real-time monitoring of anyone touch the bottle, if there is a touch to tell the owner through the speech synthesis module,the temperature of the milk.Key wordsThe Internet of things; super bottles; temperature; DS18B20; speech synthesismodule; the human body resistance sensor目录摘要IAbstr
6、actII前言1第一章 作品的整体介绍11.1 作品的实物展示21.2 功能和作品元件介绍31.2.1 功能简述31.2.2 人体电阻传感器31.2.3 温度传感器31.2.4 语音合成模块31.2.5 微控制器41.3 实现的功能5第二章 硬件设计方案及分析52.1 系统的硬件组成及框图52.1.1 硬件组成52.1.2 硬件系统框图52.2 各模块介绍62.2.1 控制模块62.2.2 温度采集模块72.2.3 人体电阻传感器72.2.4 语音合成模块7第三章 系统的软件设计及编程73.1 软件框图设计73.2 编程设计7 3.2.1温度采集7 3.2.2单片机串口初始化10结论11参考文
7、献12附录一13致谢21前言 婴儿时期是人一生中最至关重要的时期之一,但同时也是最脆弱的时期,为了照顾自己的宝贝,父母都操碎了心。婴儿足月出生时已具有较好的吸吮吞咽功能,颊部有坚厚的脂肪垫,有助于吸吮活动,早产儿则较差。吸吮动作是复杂的天性反射,严重疾病可影响这一反射,使吸吮变得弱而无力。新生儿及婴幼儿口腔黏膜薄嫩,血管丰富,唾液腺发育不够完善,唾液分泌少,口腔黏膜干燥,易受损伤和细菌感染;3个月时唾液分泌开始增加;5个月时明显增多。3个月以下小儿唾液中淀粉酶含量较少,不宜喂淀粉类食物。婴儿口底浅,不会及时吞咽所分泌的全部唾液,常发生生理性流涎。食管:食管是两个主要功能:一是推进食物和液体由口
8、入胃;二是防止吞咽期间胃内容物反流。新生儿和婴儿的食管呈漏斗状,黏膜纤弱,腺体缺乏,弹力组织及肌层尚不发达,食管下段贲门括约肌发育不成熟,控制能力差,常发生胃食管反应,绝大多数在810个月时症状消失。婴儿吸奶时常吞咽过多空气,易发生溢奶。胃:新生儿胃容量约为3060毫升,后随年龄而增大,13个月时90150毫升,1岁时250300毫升,由于新生儿胃容量小,所以新生儿喂食应当少量多次,喂食的次数应较年长儿多。婴儿胃呈水平位,当开始行走时其位置变为垂直。胃平滑肌发育尚未完善,在充满液体食物后易使胃扩张。由于贲门肌张力低,幽门括约肌发育较好,且自主神经调节差,故易引起幽门痉挛出现呕吐。胃黏膜有丰富的
9、血管,但腺体和杯状细胞较少,盐酸和各种酶的分泌均较成人少且酶活力低,消化功能差。胃排空时间随食物种类不同而异,稠厚且含凝乳块的乳汁排空慢。其中水的排空时间为1.52小时;母乳为23小时;牛乳为34小时。早产儿胃排空更慢,易发生胃潴留。奶粉,是婴儿最主要的食物,但是精准控制好温度,光靠双手去衡量显然是不够的。第一章 作品的整体介绍1.1 作品实物展示1.2 功能和组成原件介绍1.2.1 功能简述语音报温,简单明了1.2.2人体电阻传感器人体皮肤是有电阻的,能够应用此设计电路,进行人体接触检测1.2.3 温度传感器DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁
10、铁吸附式,不锈钢,封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1.2.4 语音合成模块产品功能描述 文本合成功能 芯片支持任意中文文本的合成,可以采用GB2312、GBK、BIG5 和Unicode 四种编码方式。芯片支持英文 字母的合成,遇到英文单词时按字母方式发音。每次合成的文本量可达200个字节。 文本智能分析处理 芯片具
11、有文本智能分析处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本,芯 片能够根据内置的文本匹配规则进行正确的识别和处理。 例如:“2008-12-21”读作 “二零零八年十二月二十一日”,“10:36:28”读作 “十点三十六分二十 八秒”,“28”读作“二十八摄氏度”,等等。 多音字处理和中文姓氏处理能力 对存在多音字的文本,例如:“当前工作的重中之重是要在重重困难中保证重庆市的重点工程的顺利进 行,坚决拒绝重复建设”,芯片可以自动对文本进行分析,判别文本中多音字的读法并合成正确的读音。 数字音量16级控制和6级词语语速控制 芯片可实现16级数字音量控制,音量更大,更广。播放
12、文本的前景音量和播放背景音乐的背景音量可分 开控制,更加自由。 文本播音时可选择背景音乐 芯片内集成了15 首背景音乐,在任何播音时均可以选择背景音乐。 提示音 芯片内集成了19 首声音提示音,可用于不同场合的信息提醒、报警等功能。 芯片内集成了23 首和弦音乐,可用作和弦短信提示音或者和弦铃声。 支持多种控制命令 控制命令包括:合成文本、停止合成、暂停合成、恢复合成、状态查询、进入Power Down模式、改通讯 波特率等控制命令。控制器通过通讯接口发送控制命令实现对芯片的控制。 支持多种文本控制标记 芯片支持多种文本控制标记。可通过发送“合成命令”发送文本控制标记,调节音量、设置数字读法、
13、 设置词语语速、设置标点是否读出等。 查询芯片的工作状态 支持多种方式查询芯片的工作状态,包括:查询状态管脚电平、通过读芯片自动返回的回传、发送查询 命令获得芯片工作状态的回传。 支持低功耗模式 芯片支持Power Down 模式。使用控制命令可以使芯片进入Power Down 模式。复位芯片可以使芯片从Power Down 模式恢复到正常工作模式。 支持三种通讯波特率 芯片支持的通讯波特率:9600bps,19200bps、38400bps1.2.5 控制器ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与运算逻单元(ALU) 相连接,使得一条指令可
14、以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时
15、器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩
16、展Standby 模式下则允许振荡器和异步定时器继续工作。本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机
17、,为许多嵌入式控制应用提供了灵活而低成本的解决方案。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 软件框图设计检测是否有人体触摸,是的话
18、就有控制器控制语音合成模块合成温度提示语音,负责休眠等待3.2 编程设计3.2.1温度采集void GetTemperture(void)SREG=0x00;Init_DS18B20(); if(yes0=0) WriteOneByte(0xCC); WriteOneByte(0x44);Delay_ms(100); Init_DS18B20(); WriteOneByte(0xCC); WriteOneByte(0xBE); temp_data0 = ReadOneByte(); temp_data1 = ReadOneByte();/temp_TH = ReadOneByte();/tem
19、p_TL = ReadOneByte();temp_flag=1;else temp_flag=0;SREG=0x80;void TempConv()uchar sign=0;uchar temp;/定义温度数据暂存 if(temp_data1127) temp_data0=(temp_data0)+1; /取反加1,将补码变成原码 if(temp_data0)=0xff)/若大于或等于0xff temp_data1=(temp_data1)+1; else temp_data1=temp_data1; sign=1;temp =temp_data0&0x0f; disp_buf0=(temp
20、 *10/16)+0x30; temp_comp =(temp_data0&0xf0)4)|(temp_data1&0x0f)4);disp_buf3= temp_comp /100+0x30;/百位部分变换为ascii码 temp = temp_comp%100;/十位和个位部分 disp_buf2= temp /10+0x30;/分离出十位并变换为ascii码 disp_buf1= temp %10+0x30;/分离出个位并变换为ascii码 if(disp_buf3=0x30) /百位ascii码为0x30(即数字0),不显示 disp_buf3=0x20; if(disp_buf2=0
21、x30) disp_buf2=0x20; if(sign) disp_buf3=0x2d;3.2.2单片机串口初始化/*以下是串口初始化函数*/void uart0_init(void) UCSRA = 0x00; / |(1UDRE) UCSRB = 0x00; UCSRC |= (1URSEL)|(1 UCSZ1)|(1 UCSZ0); UBRRL=(fosc/16/(baud+1)%256; UBRRH=(fosc/16/(baud+1)/256; UCSRB |= (1 TXEN)|(1 RXEN);结论该产品能非常好的解决生活中婴幼儿被烫伤,冻着的问题,本产品无需专业训练,适用于任何
22、人群;冷热自发电,确保了产品可以多次使用;.造价低廉,普通家庭能够接受;语音报温,简单明了。因此本产品非常适合投入市场。参考文献 1 阎石. 数字电子技术基础M. 5版. 北京:高等教育出版社,2006. 2 康华光. 电子技术基础(数字部分)M. 5版 北京:高等教育出版社,2006. 3 中国集成电路大全编委会. 高速CMOS集成电路M. 北京:国防工业出版社,1995. 4 孙俊人. 新编电子电路大全. 第3卷. 通用数字电路M. 北京:中国计量出版社,2001. 5百度百科 A/D转换附录一#include #include#define uchar unsigned char#def
23、ine uint unsigned int#define fosc 8000000 /晶振8MHZ#define baud 9600 /波特率定义#include 1602LCD_drive.h#include DS18B20_drive.h#define beep_0 (PORTD=PORTD&0x7f)#define beep_1 (PORTD=PORTD|0x80)void port_init(void);void TempDisp(void);void beep(void);void MenuError(void);void MenuOk(void);void GetTempertur
24、e(void);void TempConv(void);uchar temp_flag ;uchar temp_comp;/用来存放测量温度的整数部分uchar disp_buf8=0;/显示缓冲uchar temp_data2 = 0x00,0x00;/用来存放温度数据的高位和低位uchar line1_data = DS18B20 OK ; /DS18B20正常时第1行显示的信息uchar line2_data = TEMP: ; /DS18B20正常时第2行显示的信息uchar menu1_error = DS18B20 ERR ; /DS18B20出错时第1行显示的信息uchar me
25、nu2_error = TEMP: - ; /DS18B20出错时第2行显示的信息/*端口设置函数*/void port_init() PORTA = 0xFF; DDRA = 0X00; PORTC = 0xff; /输出高电平 DDRC = 0xFF; /设为输出 DDRB =(0PB3);/PB3设为输入(接温度传感器) DDRB=(0PB0); PORTB=0xff; PORTD = 0X00; DDRD|=(1127) temp_data0=(temp_data0)+1; /取反加1,将补码变成原码 if(temp_data0)=0xff)/若大于或等于0xff temp_data1
26、=(temp_data1)+1; else temp_data1=temp_data1; sign=1;temp =temp_data0&0x0f; disp_buf0=(temp *10/16)+0x30; temp_comp =(temp_data0&0xf0)4)|(temp_data1&0x0f)4);disp_buf3= temp_comp /100+0x30;/百位部分变换为ascii码 temp = temp_comp%100;/十位和个位部分 disp_buf2= temp /10+0x30;/分离出十位并变换为ascii码 disp_buf1= temp %10+0x30;/
27、分离出个位并变换为ascii码 if(disp_buf3=0x30) /百位ascii码为0x30(即数字0),不显示 disp_buf3=0x20; if(disp_buf2=0x30) disp_buf2=0x20; if(sign) disp_buf3=0x2d;/*以下是串口初始化函数*/void uart0_init(void) UCSRA = 0x00; / |(1UDRE) UCSRB = 0x00; UCSRC |= (1URSEL)|(1 UCSZ1)|(1 UCSZ0); UBRRL=(fosc/16/(baud+1)%256; UBRRH=(fosc/16/(baud+1
28、)/256; UCSRB |= (1 TXEN)|(1 RXEN);void uart0_send(unsigned int i)while(!(UCSRA&(1UDRE);/只有数据寄存器为空时才能发送数据 空是UDRE为一UDR=i;unsigned int uart0_receive(void)while(!(UCSRA&(1RXC);return UDR;void audio() /*需要发送的文本*/ char text = 当前水温为 摄氏度; text10=disp_buf2; text11=disp_buf1; /text2=2;/ text2=disp_buf2;/ text
29、3=disp_buf3;/ text4=disp_buf2;/ text5=disp_buf3; unsigned char headOfFrame5; unsigned char length; unsigned char ecc = 0; /定义校验字节 unsigned int i=0; length =sizeof(text); /需要发送文本的长度 /*发送过程*/ headOfFrame0 = 0xFD ; /构造帧头FD headOfFrame1 = 0x00 ; /构造数据区长度的高字节 headOfFrame2 = length + 3; /构造数据区长度的低字节 headO
30、fFrame3 = 0x01 ; /构造命令字:合成播放命令/*带背景音乐*/ headOfFrame4 = 0x21 ; /构造命令参数:编码格式为GBK/*不带背景音乐*/headOfFrame4 = 0x01 ; /构造命令参数:编码格式为GBK for(i = 0; i5; i+) /依次发送构造好的5个帧头字节 ecc=ecc(headOfFramei); / uart0_send(AD();/对发送的字节进行异或校验 uart0_send( headOfFramei); /发送中断标志位清零 for(i = 0; ilength; i+) /依次发送待合成的文本数据 ecc=ecc
31、(texti); /对发送的字节进行异或校验 uart0_send(texti); uart0_send(ecc);/最后发送校验字节void main() / lcd_init(); port_init(); uart0_init(); PortDS18B20_Init();while(1)GetTemperture();/读取温度数据if(temp_flag=0)MenuError();/显示出错信息函数if(temp_flag=1)/若DS18B20正常,则往下执行TempConv();/将温度转换为适合LCD显示的数据_delay_ms(1300);if (PINA = 0XFF)/检查PB6是否被置1_delay_ms(100);if (PINA = 0XFF)/检查PB6是否被置1 audio(); _delay_ms(100); while(PINA = 0XFF);致谢时间过的真的很快,光阴似箭,日月如梭。一学期的时间,在我们漫长的人生旅途中是那么的短暂。但是,在这短短的一学期的时间里,我的知识在这里积累,我的能力在这里得到了提升,感谢甄佳奇老师:是你赋予我有意义的收获,是你带领我走进知识殿堂,使我不断进步。在这次设计中,我在学校学到的知识和技能得以应用,实践水平得到了提高。感谢我的指导老师,感谢您的谆谆教导,让我不但顺利地完成设计,还学会了不少做人的道理。
限制150内