论文相关方法-基于单片机控制的宠物饮食管理系统设计-CNKI知网查重网站

论文相关方法-基于单片机控制的宠物饮食管理系统设计

2021-06-07 16:51:46
作者:杭州千明

  此方案主要是实现一种无人智能宠物喂食器的构想,在方案运行时,不仅实时观察时间温湿度等信息,智能控制提前放入的宠物的饲料投送量,还能通过手机短信来控制系统,实现远程无人智能控制,本设计主要内容有实时时间显示、温度显示、自动开关、远程手机短信控制等。并在检测显示饲料投送量的重量,智能控制下次投送量多少,系统接收到命令后驱动步进电机的过程本设计解决了在宠物主人工作时或者假期度假时宠物的饲养问题,避免了由于各种问题造成的宠物饮食方面的意外情况,此过程会应用到很多方面,涉及到智能控制、传感器数据收集、远程连接等知识。

  当今很多的年轻人都喜欢养宠物,但是由于平时工作比较紧张,很难实时控制宠物的进食。为此,本题目以单片机为控制核心,设计一款宠物喂食器。

  由于人们工作、学习繁忙,无人值守时宠物的食物的供给无法保证,预留食物过多易造成宠物无节制大量进食导致健康问题。针对该现状,依据定时、定量、健康、规律、智能等理念,以ST89C52单片机为核心,以步进电机为主要执行元件,设计智能宠物喂食系统。该系统通过手机远程控制喂食器的电机工作;同时,此设计也具有记录、预约和提醒等功能,且具有安全、稳定、可靠、实用等特点。

  而且,相较于国外,国内智能宠物喂食器还处在发展与摸索阶段,与国外相比,暂时还存在一定差距。他们想在各个领域加入智能化,当然宠物喂食器也不例外,他们希望在各个方面都对宠物体现关怀,这应该与他们把宠物当做是自己的家人有一定关系吧。在我国,家中用智能宠物喂食器的少之又少,大家觉得每天放好固定的食物,固定的水就可以了,下班回家再和宠物玩一会就行了,但很多家庭并没有考虑过宠物的感受,其实宠物也是需要陪伴的,它们不光在陪伴自己的主人,同时它们也需要主人对他它们的陪伴!既然决定要喂养宠物,就一定要对他负责!也许在你的一生当中它只是一个过客,但对宠物来说你就是它的一生!

  所以,我设计了这一套宠物饮食管理系统。我们需要给予宠物无比的关怀,无时无刻都要体现对它的关心,要将它当做自己的家人!此系统就呈现出这种关怀,完全从宠物的角度出发,对其饮食,生活等方面进行无微不至照顾。不光照顾好宠物,还使人与宠物的羁绊更加深厚,长远。

  1绪论

  1.1课题背景

  随着社会的进步和生产的需要,智能化,自动化的发展趋势已经渗透到了社会生活生产的每一个角落,测量的准确度在影响生产效益的同时也在逐步得到社会的重视。无线通信是近几年市场更急关注的方向。并且比较具有实践价值的研究方向,尤其是物联网革命的到来,使得这种无线通信方式越来越广泛的应用在家庭、工作当中。

  现在智能设备处于一个高速发展的时期,在日常生活和工作中都会用到各种各样的智能设备,本设计主要是讨论在宠物喂养过程中,智能设备的必要性和其主要的显著的优点。

  如今,大多数的年轻人为了充实自己的空闲时光,通常会喂养一只宠物,为生活添加一种色彩,宠物对他们来说也是一种陪伴。当然,不光年轻人,老年人现在也是喂养宠物大军中,不可或缺的一部分。多数老年人无法一直有人陪伴,这时通常一些儿女会给自己的父母买上一只宠物,它可以陪伴父母,为他们解闷儿。

  1.2课题意义

  随着城市现代化建设的发展,尤其是在社会生活工作学习的进程不断加快的前提下,人们无法做到面面俱到的生活方式,所以智能设备这一行业会获得更大的发展机遇。

  实用是智能家居产品的核心,所以我们要摒弃那些华而不实的功能,智能家居产品应该以易使用、实用性和人性化为主现阶段可通过短信通知和控制宠物的喂养情况,设置自动控制是否投放食物,可通过参照宠物的身体情况设定供餐间隔时间,这些特点都会有效的保护宠物的身体健康。

  而且,年轻人每天都要上班,喂食与观察不会那么仔细、认真。宠物在陪伴你的同时,他们也是需要被陪伴的。宠物的心情也是会变不好的,总是心情不好,也是会生病的,和人是一样的。所以需要智能喂食器的出现,它会定时定量喂食,还可以实时监测家中状况,也可以隔空和宠物说说话,调节一下宠物的心情。

  对于老年人,他们对宠物的喂食量不太好把控,一天下来宠物可能会吃很多东西,老年人就是想让宠物多吃一些,觉得没有什么,但这恰恰是值得我们注意的。因为宠物其实每天也有自己的摄入量的,多吃他们也是会难受的,可是他们不会说话,所以无法表达,老人就会觉得宠物们很爱吃的,这就是很大的误区。所以智能宠物喂食器就显得尤为重要了,因为规范的喂食习惯会对宠物产生很大的积极的影响,可以使其成长更快、发育的更好的。

  1.3国内外调研

  当今很多的年轻人都喜欢养宠物,但是由于平时工作比较紧张,很难实时控制宠物的进食。为此,本题目以单片机为控制核心,设计一款宠物喂食器。该系统通过手机远程控制喂食器的电机工作;同时,此设计也具有记录、预约和提醒功能。

  在第二届中国北京国际宠物用品展览会上,宠物喂食器成为展示焦点。这也说明,自动化、智能化已成为宠物用品市场发展趋势。德国特瑞仕中国运营中心、青岛特瑞仕国际贸易有限公司此次在特装展台亮相,展示了多款宠物喂食器等宠物用品。展商均认为,人类相关生活用品一定会向便捷化发展,自动化和智能化已成为宠物用品市场发展趋势,而单片微机在这方面的应用即带来了“智能化”,使控制更灵活、设备更精确,并符合“绿色”电子的要求。

  国外对宠物及其相关产业的研究领先于中国,主要侧重在宠物饲养、培训、医疗保健、宠物经济趋势探索、宠物产品研究等方面。新兴的宠物保险行业表现出国外宠物经济发展拟人化的趋势。不难发现,研究问题的提出,问题探索的深度和广度相对于中国的宠物行业都比较提前。从上世纪80年代到本世纪初,设计类相关书籍的出版展示其思维的发展脉络,某些先进观点对中国地区的宠物产品设计具有指导意义。把握宠物与产品间的协调关系,使宠物用品的功能更能满足宠物的实际需求,提升宠物在实用或感受宠物用品时的精神愉悦性。能满足宠物的真实需求是判断宠物用品是否实用、适用的标准。如今进口的宠物用品呈两极化态势,一是欧美国家生产的高级宠物用品品种繁多、个性化且附加价值高;另一种是东南亚各国生产的低价位产品。

  中国是世界宠物用品的出口大国之一,如果美国国内近十年宠物行业的发展可称为迅猛,那么中国近十年的发展速度则堪称惊人。针对目前市场上喂食器功能单一、价格高昂、普及率不高等因素,令中国的大众消费者难以接受。本设计基于单片机以人性化和关爱宠物为理念,设计了这款宠物喂食器,由于单片机具有体积小、速度快、抗干扰能力强,环境要求不高,性能可靠和价格低廉等优点,通常在其外部配置外围电路就可构成一套完整的控制系统,根据此特点赢得了广泛应用,为单片机的发展奠定了基础,成为单片机发展进程中的一个重要阶段。

  例如:派旺APP智能宠物喂食器。此款喂食器就可以实现定时定量喂食;视频监控宠物情况;实时对讲,与宠物互动;远程一键喂食。而且它还可以保持断网断电不断粮,因为其既插电,又有3节1号电池供电,以备不时之需。——深圳市派旺宠物用品有限公司;贝适安美国宠物自动喂食器。此款喂食器可以实现自动喂食,可提前设置5餐;简单操作,设置成功后系统自动记忆;精致外观,适合居家风格;灵活搭配,正餐零食合理搭配。搭配4节1号电池,可维持12个月的运转。——美国贝适安(PetSafe)。

  纵观为宠物所设计和研发的产品,各种类别,不同型号都表现出人对宠物生活、生存状态的密切关注。对宠物喂食器的研究和探索是一个持续发展的过程,在研究的过程中,总会有一些新的疑问慢慢浮出水面,这些新的疑问还需要我们进行更广泛的资料收集,随时跟进最新发展动态,然后再进一步的更新与进步。

  2整体设计方案

  2.1系统需求分析

  现如今,家庭生活中许多人都喜欢养宠物,我们在设计上首先要解决如果主人不在或者不方便喂养照顾宠物的时候,要对宠物进行喂养等操作,对家庭环境进行实时监测、监督管理、进而实现远程控制。整个系统所实现的功能主要有:

  (1)通过称重传感器获取当前喂食的重量。

  (2)显示当前周围环境的温湿度和当前时间。

  (3)为设备使用人员提供简洁明了的操作界面。

  (4)通过短信进行实时控制和监测。

  2.2系统总体设计要求

  本系统需实现的功能是在LCD1602上实时显示当前环境的温度、湿度和当前时间,温湿度信号由温湿度传感器DHT11检测获取,通过DS1302进行实时时间得获取和保存,称重传感器作为获取当前实物投放量的装置,驱动步进电机作为投放实物的开关,同时可以短信通知监测当前实物的投放情况。

  传统喂食系统只有不断的投送食物来进行。本系统增加了实时检测周围环境状态,通过温度传感器实时采集周围环境的温度情况,可以实时在显示屏上显示出来,便于查看,通过重量传感器采集投食情况,当检测食物不足时,立即投送实物同时通过反馈情况加以判断;发送短信通知机主喂食信息。同时准备接受到短信信息进行操作。同时还应保障一下两点:

  (1)高可靠性

  确保系统能够正常实现投送食物功能,尽量减少误报,漏报,迟报等现象,就需要让探测器与控制器之间的通讯可靠。同时需要实时显示当前温度,喂食情况,故需要很高的实时性。

  (2)低成本

  在设计本系统时,应充分考虑成本,在满足系统要求的前提下,尽量降低成本,才能在市场上更有竞争力。

  2.3系统整体方案

  根据系统要求,完整的系统主要由5个部分组成,即投送食物重量检测部分、食物投送控制部分、参数显示部分、短信通知控制部分、按键控制部分。监测部分包括温湿度传感器,重量传感器器,火灾控制部分为单片机控制步进电机模块,监视部分为LCD显示模块,短信通知部分为GSM短信通知模块,图2-1是整个投食系统的结构框图:

  图2-1智能喂食系统结构框图

  如图2-1所示,整个系统以单片机为核心,通过温湿度传感器实现对温湿度的监测,由重量传感器实现对投送食物的监测,将各传感器检测到的数据送入单片机进行处理。单片机将处理后的温度,烟浓度实时显示在LCD上,当投送食物的重量达到系统要求时,通过步进电机系统进行控制,可以通过GSM模块短信通知机主,报告当前情况,同时机主还可通过短信来进行控制投送食物。

  2.3.1系统控制模块选择

  方案一:采用STC89C52作为主控制器。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进,使得芯片具有传统的51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。它的优点:低功耗、高性能CMOS8位微控制器;8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载;它的缺点:抗干扰能力较差。

  方案二:采用通用的51单片机AT89S52作为主控制器。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统内编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。它的优点:支持ISP下载,使用很方便;可靠性不错;它的缺点:性能低,现今市场里有很多比它强的单片机;性价比不高,STC单片机性能比他好,但只需它的一半价钱。

  综上所述,采用方案一的STC89C52型号的单片机。

  2.3.2检测传感器模块选择

  方案一:温湿度传感器选用DHT11,该型号传感器体积小,携带方便,其由三根引脚引出,一引脚接地,一引脚接电源,中间的数字输出引脚通过外接一上拉电阻接到单片机上。DHT11内部各寄存器均封装固定好,操作简单方便,它的接口方式为单总线,测温范围在-55—+125之间,工作电压在3V至5V之间。

  方案二:温湿度传感器选用RS485,采用进口湿敏电容和高精度温度传感器,外形采用标准盒嵌入式或挂壁式。但是价格较贵,且不方便携带。

  综上所述,决定采用方案一DHT11温湿度传感器。

  方案一:采用半导体压力传感器。半导体压力传感器可分为两类,一类是根据半导体PN结(或肖特基结)在应力作用下,I-υ特性发生变化的原理制成的各种压敏二极管或晶体管。这种压力敏感元件的性能很不稳定,未得到很大的发展。它的优点:结构简单可靠,没有相对运动部件,传感器的压力敏感元件和弹性元件合为一体,免除了机械滞后和蠕变,提高传感器的性能;它的缺点:性价比不高。

  方案二:HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片,和同类相比较该芯片集成了稳压部分、时钟部分及其所需要的外围电路,集成度不叫高通过简单的AD转化电路即可转化为数字信号,交由单片机进行处理。因该类型传感器成本低,灵敏度高,适用范围广等优点,故选用其作为本系统对重量采集,其典型应用电路如图2-2所示:

  图2-2重量传感器

  综上所述,决定采用方案二HX711压力传感器。

  2.3.3通信控制模块选择

  根据系统监控场景需求,本系统提短信通知其主要特点如下:本系统可以实现当食物不足时短信通知监测人员。实现该功能的芯片为GSM模块。

  方案一:由德国siemeils公司推出的无线通信工具,其核心为EV16-V模块,它的工作电压为3.3—5.5V,可以工作在900MHz和1800MHz两个频段。本模块需要插上SIM卡,当单片机接收到重量传感器检测的食物重量不足时,就会发出短信命令,通过插上的SIM发送短信,由于GSM模块自身的工作频段较低,须通过EV16-V模块做调频处理,调频到通用网络的频率,将短信发送给接收方。EV16-V模块的工作方式是在串口模式下进行的,单片机通过RXD串口控制EV16-V模块工作。在该模块的底座上有个SIM卡插槽,提供SIM卡的插入,构成信息发送方,发送的信息通过EV16-V模块的调频处理发送到接收方手机上,这样形成了一个完整的GSM终端。

  方案二:SIM800C是一款四频GSM/GPRS模块,为城堡孔封装。其性能稳定,外观小巧,性价比高,能满足客户的多种需求。SIM800C工作频率为GSM/GPRS850/900/1800/1900MHz,可以低功耗实现语音、SMS和数据信息的传输。SIM800C尺寸为17.6*15.7*2.3mm,能适用于各种紧凑型产品设计需求。但其对成本要求严格。

  综上所述,决定采用方案一GSM模块。根据本系统的设计要求,短信通知机主来实现报警功能,在短信通知机主方面,可以通过AT命令,控制GSM模块工作,检测食物量比较少,单片机启动EV16-V模块发送短信通知机主。

  2.3.4投食步进电机及其控制部分选择

  在市场上最常见的也就是直流电机,驱动很方面。应用范围也很广泛主要有普通电动机、和步进电动机。

  方案一:采用普通的直流电机,作为使用最广泛的电机,驱动转速等方面都很方便。但是在精确控制上还是有一些显著的缺点。

  方案二:采用步进电机,步进电机有点就是能够精确控制转角,对系统的稳定性有比较好的控制。能够在大型机器人中获得良好的操控性。如果负荷不超过步进电机所能提供的动态转矩值,就能够立即是步进电机启动或反转。其转换灵敏度比较高。正转、反转控制灵活。考虑到本款机械臂向着轻型化方向发展,因此转动工作台附近采用28B步进电机。

  综上所述,决定采用方案二来作为我们系统采用的驱动方案。

  2.3.5显示模块选择

  液晶显示屏的工作原理是利用其物理特性。

  方案一:本系统通过LED数码管显示。LED数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。可放在PCB电路板上按红绿蓝顺序呈直线排列,以专用驱动芯片控制,构成变化无穷的色彩和图形。它的优点:外壳采用阻燃PC塑料制作,强度高,抗冲击,抗老化,防紫外线,防尘,防潮。LED护栏管具有功耗小,无热量,耐冲击,长寿命等;配合控制器,即可实现流水,渐变,跳变,追逐等效果;它的缺点:显示内容不多,对本系统设计帮助不大,顾不采用。

  方案二:本系统通过LCD1602实时显示当前周围环境的温湿度及其投送食物的重量,LCD1602是一种专门用来显示数字、符号、字母的点阵型液晶屏。它由若干个5*7个字符位组成,每个字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。由于LCD1602在工作时的耗电量比其它显示器要少得多,故本设计选择LCD1602显示部分。

  综上所述,决定采用方案二LCD1602液晶显示屏。

  2.3.6时钟管理模块选择

  方案一:采用DS1302时钟芯片做实时时钟芯片,DS1302是DALLAS公司推出的SPI总线充电涓流时钟芯片,经由串行接口与单片机进行简单连接通信,内部包含31B静态RAM和一个实时时钟/日历。实时时钟/日历提供了日期、日、月、年、秒、分、时的信息,可以自动调整闰年的天数和每月的天数,当进行同步串行通信时,DS1302和单片机之间仅需3个端口线(RST复位、I/O、SCLK)。

  方案二:采用M88时钟芯片,其优势完整时钟子系统,优秀的相位低噪声性能,低功耗;但其价格较贵,不适合本系统设计成本,顾不采用。

  综上所述,决定采用方案一DS1032时钟模块。

  3系统硬件设计

  图3-1智能喂食系统结构框图

  如图3-1所示,本设计以单片机为核心,利用温湿度传感器检测环境温湿度,通过重量传感器检测食物重量,系统运行过程中会把各种传感器的数据送入单片机进行处理。监视显示模块上可以实时显示当前周围环境的温湿度,当前时间,食物重量。当食物重量低于预设值时,驱动步进电机进行投食,还可以发送短信通知机主发生火灾的位置。

  3.1主控制模块硬件设计

  STC89C52(RC)是STC公司生产的一种新型高性能的CMOS8位微控制器,具有8K的可编程Flash存储器并具低功耗的功能。STC89C52中是以MCS-51为内核,在很长时间内辞工书做了很多工作对此单片机进行升级。在8位单片机这个价位下,其性价比表现比较突出。它具有以下标准的性能:8k字节的Flash存储器内存,512字节内部RAM,32个I/O口,具有看门狗的定时器,内部含有4KB的EEPROM具有复位电路,三个16的位计数器/定时器,具有4个外部中断,4级中断额结构(兼容512级中断结构)的特点,全双工串行口。另外STC89C52(RC)可降至0HZ的操作逻辑,支持2种软件编程。可选择节电模式。在空闲的模式下工作情况,主控停止运作时,允许内部存储器等零部件接着运行程序。掉电保护方式下,保存内部存储器的内容,冻结振荡器,等待正常运行。STC89C52(RC)单片机最小系统比较简单,只需要少量的外部元件即可,如图3-2所示,

  图3-2以单片机为核心的最小系统图

  外围电路主要包括复位电路和晶振电路,复位电路主要是为了重置,晶体振荡电路主要是提供时钟信号。本设计的整个系统共用一个晶振,便于各部分保持同步。本系统中的上电复位电路如图3-3所示:

  图3-3上电复位电路

  3.2系统监测模块硬件设计

  本次系统的检测电路主要由DHT11温湿度传感器,HX711重量传感器组成,通过对多路信号的采集,可以更准确的判断周围环境的温湿度情况。单片机接收多路传感器信号流程图如图3-4所示:

  图3-4单片机接收多路传感器信号图

  3.3食物重量传感器

  HX711是一款称重传感器,其具有24位AD转换特性,其中VCC接5V工作电压,GND外接GND,D0为模拟量输出接口。再传入单片机,在系统运行过程中,通过预设投食的重量来作为食物的投送阙值,当在喂食宠物过程中,食物的重量减小,当重量小于阈值时,通过AD转化成数字信号发送给单片机,单片机从而对其数据进行处理,从而进行下一步的操作动作,继续投食或者给主人发送通知短信。食物重量检测电路如图3-5所示:

  图3-5食物重量检测电路图

  3.4温湿度传感器

  本系统所用的温湿度监测器为DHT11,DHT11的内部结构主要由8个部分组成,分别为64位ROM、存储器、控制器、高速缓存存储器、8位CRC生成器、温度灵敏元件、低温触发器TL、高温触发器TH和配置寄存器。DHT11有三个引脚,其中GND接地,VCC外接5V电源电压,DQ为数字信号输入/输出端,该引脚可以直接与单片机的引脚相连,将采集到的温度信号送入单片机进行处理,并转化成温湿度数值显示在显示屏上,如图3-6所示:

  图3-6温湿度传感器电路图

  由于温湿度传感器输出的是数字信号,因此可以将其与单片机直接相连,DHT11共有三引脚,其中一引脚接地,一引脚接电源,中间一引脚通过上拉电阻接到5V电源上,同时将其接到单片机一引脚上,通过该引脚可以实时的将DHT11采集到的温度信号串行送给单片机进行处理,并在LCD1602上实时显示。

  3.5步进电机食物投送电路设计

  如图3-7所示,该步进电机驱动可以精确控制步进电机正反转。也可以通过3位拨码开关选择细分驱动的脉冲个数。具体参数为7档细分控制(1,2/A,2/B,4,8,16,32,),通驱动板控制各个环节的电流(0.5A,1A,1.5A,2A,2.5A,2.8A,3.0A,3.5A)。适合驱动各种各样的步进电机。

  输入端接线说明输入信号共有三路,它们是:①步进脉冲信号PUL+,PUL-;②方向电平信号DIR+,DIR-③脱机信号EN+,EN-。输入信号接口有两种接法,本设计主要采用共阳极接法来驱动步进电机。

  电流大小可以通过驱动板上拨码开关设定:驱动板上拨码开关1、2、3分别对应S1、S2、S3.驱动板上拨码开关4、5、6分别对应S4、S5、S6。

  图3-7步进电机电路图

  3.6显示电路设计

  LCD1602液晶也叫1602字符型液晶,它是一种用来显示数字、字母、符号等的点阵型的液晶模块,LCD1602是指显示的内容为16*2个字符,可以显示两行的数据,每行16个字符可以用来显示,驱动电路那就比较简单,显示效果比较立体,生动。

  下面是关于LCD1602管脚使用编程说明:

  第一脚:VSS地线。

  第二脚:VCC接5V的正极。

  第三脚:V0为对比度调整的端口,接正电源时对比度最弱,依次调节滑动变阻器可以调节光亮度,从而得到需要的亮度。

  第四脚:RS为寄存器选择端口,高位置一时选择数据寄存器、置零时选择指令寄存器。

  第五脚:RW为读写信号线,高位置一时进行读操作,置零时进行写操作。

  第六脚:使能端为(enable)端,高位置一时读取信息,置零时执行指令。

  第七~十四脚:D0~D7为8位的双向数据端。

  第十五、十六脚:背灯电源。十五管脚背光正极。十六管脚背光负极。读时序,写操作时序如图3-8,3-9所示:

  图3-8读时序图

  图3-9写操作时序图

  在本次系统设计中,将单片机的P0口接入LCD1602的D0~D7口,单片机接收到温湿度传感器数据,称重传感器数据,实时时间数据,将其进行处理,通过D0-D7数据传送引脚在LCD上实时显示出当前温度,湿度情况,同时将LCD1602的使能端接到单片机的P1.0端口,用于控制LCD1602使能工作,读写控制端分别接到单片机的P1.1,P1.2端,用于控制是对LCD1602进行读数据还是写数据。LCD1602与单片机连接原理图如图3-10所示:

  图3-10 STC89C52与LCD1602原理图

  3.7短信通知电路设计

  本系统短信通知功能是通过GSM模块实现,EV16-V作为GSM的核心部件,通过调频处理进入通用互联网频段,EV16-V模块主要通过串口与单片机进行连接,实现单片机对EV16-V模块的控制。对EV16-V模块通信的控制可以通过编程来实现,通过编程控制EV16-V模块的工作提高了系统的便利性和实用性。如图3-11为EV16-V模块的接口设计:

  图3-11 EV16-V模块图

  DTR0和RTS0是EV16-V模块的输入管脚,在不用的情况下需要通过10KΩ将这两个管脚拉高。/IGT作为EV16-V模块的使能端,在不工作情况下需要将其拉高,当其为低电平时,可以驱动EV16-V模块正常工作。EV16-V模块的SYNC管脚用来指示GSM模块的工作状态,连接一个指示灯来指示工作状态。在接通电源后,首先系统会进行预热,当观察到指示灯均匀显示时,可以判断GSM模块工作正常。

  EV16-V的SIM管脚有6个管脚,其中编程端我们不用,其它的接口分别对应于EV16-V的5个管脚,当SIM座的管脚7与EV16-V模块的SIMDATA进行连接时,则用来模拟SIM卡插入的情况;当SIM座的管脚7不与EV16-V模块的SIMDATA进行连接时,则用来模拟SIM卡没有插入的情况。

  其接口示意图如图3-12所示:

  图3-12手机卡接口示意图

  本系统中的GSM模块可以实现在有火光产生时短信通知机主,通过单片机对火光传感器是否有光的判断,当有火光时通过AT命令控制GSM模块工作,AT命令比较多,以下只列出关于短消息的部分AT命令:

  AT+CMGF优先信息格式。执行格式有TEXT方式和PDU方式。

  AT+CSCS选择TE特征设定。这个命令报告TE用的是哪个状态设定上的ME。

  AT+CSMP设置文本模式的参数。

  AT+CMGS发送信息。

  4系统软件设计

  4.1系统软件开发语言与开发环境

  本系统的软件编程语言为C语言,C语言既有高级语言的特点,又有汇编语言的简洁性,它以面向过程的思想分析问题,化整为零,从过程出发编程,实现对硬件的控制。同时,它的表达性强,可读性好,可移植性好,具有丰富的库函数,它的寄存器分配可由编译器完成。而该系统的开发平台为Keil C51,Keil C51是美国Keil Software出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。Keil C51可为它们提供单一而灵活的开发环境。

  4.2主程序软件设计

  图4-1主程序软件流程图

  单片机控制整个系统流程图如图4-1所示。STC89C52是整个模块的控制核心,控制着温度,湿度,食物重量;通过单片机的控制,会在LCD1602上实时显示出来温度过高,湿度过低和投送食物不足时,同时控制EV16-V模块短信通知机主。在软件编程方面,需要对单片机进行I/O口初始化,定时器初始化,中断初始化工作之后才能控制其他各个模块的工作。在系统运行过程中,通过DS1302读取实时时间,从而控制喂食时间,在早中晚各设置一个喂食时间进行检测,如果实物量不足的话会投送食物,避免食物过多造成宠物饮食不均匀。

  4.3子程序软件设计

  4.3.1 DHT11温湿度采集程序设计

  本系统采用DHT11进行温度数据采集,由于DHT11是单总线通信协议,采集到的信号串行输送到单片机I/O口,通过单片机的处理将12位的数据转换成摄氏度,并与程序中设置的临界值相比较,若发现温度超过临界值,则进行语音播报。DHT11信号采集的软件流程图如图4-2所示:

  图4-2 DHT11信号采集软件流程图

  DHT11的工作流程是:首先需要对DHT11进行初始化,拉高DO端,等待时钟脉冲的到来,然后进行温度转化,每次写一位,当写数据结束之后,对DHT11进行重置,再从暂存寄存器中读取数据,每次读一字节。其工作时序包括初始化时序,写时序和读时序,主要通过以下函数实现:

  DHT11_write_byte(0xCC);//跳过ROM

  DHT11_write_byte(0x44);//启动温度转换

  DHT11_write_byte(0xBE);//读暂存器

  DHT11_read_byte(void);//读出信号

  4.3.2步进电机程序设计

  本系统采用ULN2003步进电机。此电机是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。该电路的特点如下:ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。ULN2003采用DIP—16或SOP—16塑料封装且正转,反转均可进行,如图4-3所示:

  图4-3步进电机程序流程图

  步进电机运作程序如下:

  #define MotorData P2//步进电机控制接口定义

  uchar phasecw[4]={0x08,0x04,0x02,0x01}//正转电机导通相序D-C-B-A

  uchar phaseccw[4]={0x01,0x02,0x04,0x08}//反转电机导通相序A-B-C-D

  4.3.3 LCD1602显示模块软件设计

  本系统报警形式是通过LCD1602显示,还可以通过GSM短信通知机主,同时还会实时的将当前环境的温湿度显示在LCD1602上,将单片机的P0口接到LCD1602的D0-D7,同时将LCD1602的使能端接上单片机,读写控制端接上单片机,当单片机接收到由温湿度传感器传来的信号时,使能端转化为低电平,单片机开始控制LCD1602进行读命令,写数据处理;在接收由重量传感器传来的信号时,由于重量传感器采集到的是模拟信号,所以必须再加上一个AD转换器,将模拟信号转换成数字信号,送入单片机进行处理,并在LCD1602上实时显示出来。其软件流程图如图4-4所示:

  图4-4 LCD1602实时显示流程图

  在LCD1602上实时显示温度,烟浓度的主要函数代码如下:

  InitLcd();//LCD初始化

  ShowString(0,humi);//显示湿度函数

  ShowString(1,Test);//显示温度函数

  WriteCommand(0x38);//采用8位数据传送

  WriteCommand(0x06);//设置输入模式,显示的字符不动,光标右移

  WriteCommand(0x0c);//设置显示屏,开启显示屏,不显示光标

  WriteCommand(0x01);//显示清屏

  void WriteData(unsigned char c);//写数据函数

  4.3.4通信模块软件设计

  当前投送食物不足时通过GSM短信通知机主,EV16-V模块采用AT指令来发送短信。首先通过AT指令对EV16-V模块进行初始化,再由单片机进行核心控制,通过AT指令让EV16-V模块实现短消息发送。本系统采用的是text模式下的短信发送,在Text模式下的短信通知软件设计流程图如图4-5所示:

  图4-5通信模块软件设计流程图

  具体发送短信的过程主要有初始化GSM模块、发送短信息和接收短信息。单片机对text模式下的短消息发送进行控制可以通过以下AT指令:

  char code str8[]="ATn";//设置短信发送类型

  char code str9[]="AT+CMGF=1n";//设置为TEXT模式,适合发送短信内容为英文

  char code str10[]="AT+CSCS=GSMn";//使用GSM字符集

  char code str11[]="AT+CSMP=17,167,0,0n";//设置TEXT模式参数

  char code str12[]="AT+CMGS=15655019652n";//设置接收端电话号码

  char code str13[]="1 point light appeared!";//编辑短信内容

  char code str14[]="x1a";//结束符,相当于键盘的CTRL+Z

  GSM_Sent_Text_Message(str[]);//实现text模式下的短信发送

  5制作与调试

  5.1硬件电路制作

  电路制作过程中,出现了很多问题。像在焊接中,出现了虚焊,错焊情况。出现此种情况,我会先比对原理图,看是不是哪里没有仔细看清,检查电路连线,检查每个焊接点,解决虚焊,错焊情况。而且也容易出现温度过高,烧坏板子的情况,针对此种情况,焊接时间不可过长,如遇有焊接中断的情况时应采取适当的后热、保温措施,再次焊接,温度可比初始温度略高。整个系统原理图如图5-1所示:

  图5-1系统整体设计原理图

  5.2系统调试

  软件代码通过串口送入单片机中,需要正确设置好延时,确保在探测到温度升高,或湿度降低时,可以及时的进行处理,并将相应的信号送到报警模块,如果设定的延时过长或者过短,接收模块将接收不到检测模块发出的报警信号。经过反复测试,确定检测和接收之间的延时时间为150μs最佳。同时对单片机编程时要注意时序的正确性,否则不能实现无线短信通知。

  5.2.1显示及传感器调试

  LCD显示模块调试时,需要选择一个合适的电阻,用于让LCD背光亮度达到最佳。在反复选用电阻值之后,决定选定一个10k欧电阻,此时LCD的背光亮度最好。在接通电源时,观察LCD显示屏上的温度和湿度数值是否快速变动,若是,则表示在电源接通过后,LCD进行初始化预热。10S后会达到一个稳定值,即当前环境的温度和湿度情况。在LCD上实时显示温度,湿度的系统实物效果图如图5-2所示,也可显示当前食物重量,显示数值与天平称重数值误差不大,如图5-3所示:

  图5-2 LCD1602显示温度,湿度图

  图5-3食物重量图

  5.2.2 GSM电路调试

  GSM模块调试,接通电源,LED灯正常亮灭。表示其正常工作,将其接到电脑上,用电脑串口调试软件进行调试,发送AT命令,检测是否连接成功。插上手机卡,设置波特率、短信息模式、连接的号码及发送短信息,若手机接收到短信息,就表示通信成功。当有火灾发生时,进行语音播报,同时将火灾发生位置通过GSM模块发给手机终端,通知业主发生火灾。但在测试短信接收过程中,发现有时候会将一些AT命令也发送给接收方,初步估计是手机版本问题。本系统的GSM模块在工作时的状态与手机接收短信,如图5-3所示:

  图5-3 GSM模块工作状态与手机接收短信图

  5.3系统总体测试

  系统成品图如图5-4所示:

  图5-4系统成品图

  最左侧的是步进电机,它是来实现宠物食物不足时,补充食物;左侧是HX711重量传感器,它是来实现称重功能的,当重量高于阙值,则不添加食物;反之,则需要添加食物;左上角是时钟管理模块,来实现时间的获取和保存;右侧是LCD1602显示模块,来实现实时显示当前环境的温度、湿度、当前食物重量和时间。

  完成系统实物设计后,需要对系统进行功能测试,确保系统功能模块的完整性和正确性,本次测试采用的是模块化的测试:

  LCD的测试:当接上电源时,可以发现LCD上的温度和湿度不断跳动,这是LCD在进行预热并初始化,表示LCD可以进入正常工作状态。

  GSM的测试:当接通电源后,可以发现在GSM模块上的指示灯均匀跳动,不久可以听到“嗞嗞嗞”的响声,表示GSM处于正常工作状态,同时还需要用AT命令进行短信通知测试,可以用串口调试助手,设置好串口号和波特率,在串口发送“AT”命令,然后回车,若在串口助手的接收区显示“OK”,则表示该GSM模块可以进行正常的打电话,发短信功能。

  温湿度测试:将DHT11放入手心,发现LCD上的temp变化的厉害,当LCD上显示的温湿度有变化,说明读取数据成功。