计算机科学与应用论文: 基于物联网控制的智能电磁炉设计
计算机科学与应用论文: 基于物联网控制的智能电磁炉设计docx
基于物联网控制的智能电磁炉设计 摘要:如今,人们对生活的品质要求随着科技的发展逐渐变得越来越高,而计算机控制 技术与电子技术的迅猛发展,使得在物联网背景下的智能家居因其巨大的便利性和高效性深受 人们的喜爱。本文设计了一种利用互联网控制电磁炉的方案。通过检测低电平信号全程监测按 键状态,分析按键是否按下;利用电磁炉自带的温度传感器获取温度;通过采集电磁炉主控板 中的锅具检测电路输出,判断锅具的有无;模拟按键按下时的低电平信号,向电磁炉主控板上 的单片机输入一个与按键信号一致的低电平信号,模拟按键按下,达到控制电磁炉开/关、调 节档位的目的,同时使用ArduinoUNO对电磁炉状态进行检测和控制,并使用ESP8266用于 ArduinoUNO和服务器之间的通信。而服务器与客户端平台则使用Qt搭建,最终实现通过电 脑/手机控制电磁炉,电磁炉状态能反馈到电脑/手机,实现信息交互。 关键词:物联网;电磁炉状态;控制电磁炉;服务器;客户端;Internetof Things;InductionCookerState;ControlInductionCooker;TheServer;The Client 1.引言 物联网这一概念最早是在美国的“智慧地球”下提出的一种服务架构。其包括三 个核心:装置的智能化、联机以及通讯技术、设备的云端服务。随着信息科技的发 展,人工智能的开发,便逐渐产生了智能家居,而在物联网技术的发展中,智能家 居再次得到了发展。智能家居是利用计算机技术、控制技术、图像显示技术以及通 讯技术将各种家用设施通过家庭网络连接到一起。能为人们提供更舒适、便捷的网 络化、信息化与智能化的生活环境。最开始的时候,智能家居主要在日本和欧美一 带兴起,其主要用于简单的灯光控制,而随着人们生活水平的提高,对生活品质的 要求也越来越高,对家居设备的控制的便利性、高效性提出了更高的要求,在这种 需求下,智能家居越来越受到人们的关注。智能家居系统包括主控设备、控制终端、 各受控设备,可将所有的控制终端集成到一个系统中,采用电脑端、手机端实施对 家居设备的现场或远程控制,实现更加便捷、灵活的管理家居设备的功能。其以住 宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音 视频技术将家居生活有关的设施集成,Kaiyun官网登录构建高效的住宅设施与家庭日程事务的管理 系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。 同时,基于物联网的智能家居,还有着远程控制、场景控制、定时控制、智慧联动 以及安全防范等好处。人们可以通过基于物联网的智能家居打造一个安全、舒适、 自动化、智能化的生活氛围。 从宏观角度看,目前智能家居在自动化的层面已经基本完成技术的积累,下一 步的方向是与人工智能技术结合,从HomeAutomation向SmartHome的迈进,这 是目前公认的方向,但是这个方向的发展对智能家居的普及更多的是锦上添花而非 雪中送炭,也就是说,目前智能家居已经完全具备普及的条件。 电磁炉按使用场所分为民用电磁炉和商用电磁炉;按用途分为家用电磁炉、专 业火锅电磁炉、自助餐厅保温炉、后厨煲汤炉、后厨炒炉;按功率分为电磁炉小功 率电磁炉(800W以下)、常用功率电磁炉(1000~2500W)、大功率电磁炉(3~35KW); 按使用或安装方式分为嵌入(沉降)式电磁炉、台式电磁炉、落地式电磁炉。1972年, 美国开始生产电磁炉,20世纪80年代初电磁炉在欧美及日本开始热销。本文的电 磁炉采用普通家用电磁炉,使用220V、50Hz交流电供电,整体电路主要分为两 个部分:控制面板以及主控板。主控板主要功能是控制和监视整个电磁炉的状态, 包括锅具温度检测电路、风机驱动电路、电流取样电路、脉宽调整电路等主要电路。 其利用涡流原理进行加热。220V,50Hz正弦交流电经过整流滤波转换成直流电, 再经过振荡电路转换成上万Hz的交流电,高速变化的电流通过线圈盘,产生无数 杂乱无章的小磁场,使得线圈盘上方放置的铁质锅具中的铁分子高速无规则运动, 互相碰撞做功,动能转化为热能,从而实现加热。同时,电磁炉具有加热速度快、 节能环保、安全性高、控温精准等优点。 如今,很多家庭都在使用电磁炉做饭、炒菜,因其无需明火、热转化率高、安 全、节能环保等优点,早已成为了大多数家庭里必不可少的一员。而智能电磁炉便 属于智能家居中的一部分。人们可以通过电脑安装客户端,将电脑接入互联网后, 与服务器进行交互,便可以对电磁炉进行远程控制。通过使用移动终端远程操控电 磁炉提前做饭,可以极大的节约人们的时间。同时,当电磁炉工作在不正常的环境 或电磁炉工作异常时,客户端能发出警报,防止家庭火灾等事故的出现。 2.方法 2.1.系统整体框架设计 本设计使用的开发板使用的是粤嵌科技的GduinoII开发板,该开发板基于 ArduinoUNO,同时带有ESP8266芯片。 Arduino是的一套开源硬件开发平台,ArduinoUNO是其最为基础的开发板, 开发极为简单,配合传感器、控制开关、LED屏等外围器件,任何稍有电子电路 基础的人都可以基于这个平台快速搭建出具有各种有趣功能的实用电子电路。 ArduinoUNO是一款基于微控制器ATmega328P的开发板。ATmega328P是8位微 处理器,片内包含32KBFlash(0.5KB由BootLoader使用),2KBSRAM,1KB EEPROM,运行时钟频率为16MHz。该开发版拥有14个数字输入输出引脚和6 个10位模拟输入引脚,并有6个数字输入输出引脚可以作为PWM输出引脚。 系统以日常生活使用的电磁炉为核心,在其之上添加外围采样电路、控制电路、 通信模块,主要分为六个部分。分别是电磁炉、信号采集电路、控制电路、单片机 及通信模块(ATemega328p与ESP8266)、服务器和客户端。 系统的设计总体框图如图1所示: Figure1.Overallsystemframework 图1.系统整体框架 在该系统中,需要通过信号采集电路,采集电磁炉的各项数据,获取其工作状 态,并通过单片机ATmega328p及通信模块ESP8266发送到服务器,再经服务器 发送到客户端实时显示。在控制电磁炉工作时,可以通过客户端进行操作,客户端 将用户操作发送给服务器,再由服务器将指令发送给单片机及通信模块,单片机再 将控制信号发送给控制电路,控制电路执行控制操作,从而达到控制电磁炉的目的。 ATmega328p程序框图如图2所示: Figure2.Atmega328pprogramblockdiagram 图2.ATmega328p程序框图 ESP8266程序框图如图3所示: Figure3.ESP8266 program block diagram 图3. ESP8266 程序框图 2.2. 电磁炉控制面板分析 本文使用的电磁炉的电路结构,分为主控板与控制面板部分,本文对控制面板 进行分析与控制,达到控制电磁炉的目的,控制面板电路图4 所示: Figure 4. Control panel circuit 图4. 控制面板电路 图 4 所示的电路中的 P1 接口处:1 号线 号线均为复用信号线 号线的电平被拉低,控制电磁炉的 开机与关机;开关S2 按下后,4 号线的电平被拉低,控制电磁炉的档位选择。当 S1 或者S2 被按下后,3、4、5 号线均由主控板上的单片机输出不同频率的PWM 波控制 LED 灯的亮灭与否。电路中的电阻阻值均为非实测,仅仅起到代表作用;1、 2、3、4、5 号线均与主控板上的单片机相连。 2.3. 电磁炉控制方案 保留电磁炉主控板控制芯片,额外增加外围电路使用单片机进行采样、通信和 模拟控制信号。该方案的优点在于,无需分析整个电磁炉的每一个电路功能和信号, 只需要将任务所需的信号找出,并分析信号所代表的状态或功能,即可用单片机进 行采样分析,并通过模仿控制信号,间接控制电磁炉。 该部分主要是模拟按键的控制信号,通过单片机控制电磁继电器,开关机或者 进行档位调节时,单片机控制继电器的常开端与公共端相连,而常开端、公共端分 别于按键两端相连,其闭合时可以产生一个与按键信号一致的低电平信号,进而达 到控制效果。 2.4. 电磁炉状态信号与温度检测 检测电磁炉状态时,直接采样按键信号,按键的控制信号的持续一小段时间的 低电平信号,通过检测低电平信号全程监控按键状态,分析按键信号进而判断电磁 炉所处的工作状态。单片机通过记录检测到的按键信号,通过开机之后的低电平信 号出现次数与电磁炉档位之间的对应关系即可判断电磁炉当前的工作状态。 检测锅底温度,利用电磁炉原有的温度传感器,测量温度传感器两端对地电压 与锅底温度关系,将对应关系线性化,使用函数表示。在单片机中使用AD采样温 度传感器电压,通过关系函数计算当前状态对应的锅底温度。 2.5. 锅具检测方案 通过采集电磁炉主控板中的锅具检测电路输出,判断锅具的有无。电磁炉主控 板中的锅具检测电路,是使用一个匝数较少的次级线圈,感应加热线圈中的电流, 在通过转换电路,转化成电压信号,输送给MCU。该电路基本原理和功能与霍尔 电流传感器类似,而且无锅状态与有锅状态之间电压范围差别较大,可以使用单片 机的模拟采样功能采样锅具检测电路输出,以设定阈值的方式比较判断锅具有无。 2.6. 电磁炉与服务器的通信 电磁炉和服务器的通信程序主要分为两部分:一是Arduino UNO部分,该部 分主要用于电磁炉状态的检测和控制;二是ESP8266 部分,该部分主要用于 Arduino UNO 和服务器之间的通信,即将来自 Arduino UNO 的数据转发给服务器, 将服务器的数据转发给Arduino UNO。Arduino UNO和ESP8266 之间使用串口进 行通信,ESP8266 和服务器之间使用TCP/IP 协议进行通信。两个部分均使用 Arduino 环境进行开发。 Arduino UNO部分的主要工作是电磁炉状态的检测和控制。电磁炉原本有开关 机和火力调节两个功能按键,经过检测发现电磁炉的按键面板完全由不规则波形的 模拟信号控制,但是按键按下的时候对应信号线的会变成低电平,因此用模拟输入 引脚对信号线进行信号检测,若出现超过一定时间的低电平即可判断按键按下,通 过记录按键即可进一步记录电磁炉状态。同时为了控制电磁炉的开关机和档位,需 要使用两个GPIO来控制继电器,来模拟按键的功能。电磁炉有锅无锅可以从主控 电路中获取信号,经过测量,我们获取到一个可用信号,当电磁炉无锅时该信号会 降到一定电平以下,使用模拟输入口测量该信号即可判断电磁炉有锅无锅。电磁炉 的温度需要使用一个模拟输入口来测量温度传感器的电压,通过对应曲线来将电压 转换为温度。计时可以通过Arduino 开发环境自带的计时函数完成。Arduino UNO 将当前状态数据记录后使用串口发送给ESP8266,同时接受ESP8266 的目标状态 数据,若当前状态和目标状态不一样则改变当前状态并对电磁炉进行对应操作,使 用GPIO来控制继电器模拟按键的功能。 ESP8266 部分的主要工作是Arduino UNO和服务器之间数据的转发。该部分 的主要工作大致分为四步:从串口接收电磁炉当前状态数据、通过WiFi 使用 TCP/IP 协议将电磁炉当前状态的数据发给服务器、从服务器接收电磁炉目标状态 的数据、将电磁炉目标状态的数据通过串口发送给Arduino UNO。 2.7. 服务器与客户端设计 使用Qt 搭建服务器与编写客户端程序。Qt 是一个1991 年由Qt Company 开发 的跨平台C++图形用户界面应用程序开发框架,其使用的语言为python 或C++。 它既可以开发GUI 程序,也可用于开发非GUI 程序,比如控制台工具和服务器。 Qt 是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt 很容易扩展,并且允许线]。使用