基于android的智能风扇,新锡德尔对基于Android的静电式智能空气净化器系统设计...

基于Android的静电式智能空气净化器系统设计

随着电子、通信、自动控制等技术的快速发展及人们物质精神生活的提高,家用电器的智能化控制代替传统控制已经成为一种大趋势。伴随智能手机的迅速普及,基于Android平台的智能控制在电器控制中扮演了重要角色。工业化水平提高的同时,也给环境造成很大破坏,环境污染问题日趋严重[1]。尤其是室内空气污染对人体健康有严重影响,改善室内空气环境成为一种迫切需求。人们采取措施净化空气,但效果往往不理想。

国内外利用静电技术除尘的研究较多,但大多都及种在工业方面。本文设计了一种基于Android无线控制的高效家用静电式智能空气净化设备。以STM32F103RCT6为控制核心,通过传感器模块对室内空气数据进行自动检测,并根据监测数据在自动模式下利用过滤网、紫外灯和静电技术对空气进行净化。手动模式下可以对各模块进行设置,结合红外遥控和Android设备实现了对空气净化器的智能控制,还预设有睡眠模式工作在低噪声、低功耗下,高速模式针对空气质量差的情况,快速净化空气,极大提高了用户感受。

1 系统总体设计

空气净化器系统总体架构如图1所示。

图1 系统总体架构图Fig 1 The system architecture diagram 下载原图

净化器工作原理如图2所示。

2 系统硬件设计

本系统主控芯片选用意法半导体的32位基于ARM核心微控制器STM32F103RCT6。硬件总体结构如图3所示。

图2 空气净化器工作原理图Fig 2 Working principle of air purifier 下载原图

图3 系统硬件总体结构图Fig 3 Overall architecture diagram of system hardware 下载原图

2.1 传感器模块电路

该模块主要负责室内环境的检测,包括三个子模块分别为:温湿度传感器模块、灰尘传感器模块及空气质量传感器模块。

数字温湿度传感器DHT11采用单总线式温度传感探头,包括一只电阻式感湿元件和一只NTC测温元件,并与STM32的PA0脚相连接如图4所示。

图4 传感器模块电路Fig 4 Sensor module circuit 下载原图

灰尘传感器SM—PWM—01A可以感知如香烟、粉尘、孢子等。传感器采用粒子计数原理,模块内设置加热器,加热使气流上升,外部空气进入模块内部,如有粉尘等粒子通过时,阻断LED光源,光电检测器检测不到光源,则低电位输出;如无粒子通过,则高电位输出,形成PMW信号经放大输出。传感器的低脉冲率与粉尘粒子数成线性关系。只要计算低脉冲率,参照特性曲线即可得到检测粒子数,进而算出PM2.5的参数[2]。

MQ135传感器主要实现对氨气、硫化物、苯系蒸汽及烟雾和其它有害气体监测,在清洁空气中电导率低,当环境中存在污染气体时,电导率随污染气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度对应的输出信号[3]。其电路连接如图4所示。

本系统采集温湿度、粉尘、气体传感器的信号,采用信息融合算法充分利用不同时间和空间的多传感器数据资源,在一定的算法下进行分析、支配、使用和综合,并对空气质量的评估,根据评估结果制定相应的控制策略(如调节风速、净化装置控制等)。通过信息融合技术,更精确地判断空气质量,提高控制系统的性能[1]。

2.2 紫外灯、静电和风扇调速控制模块

此模块是整个系统净化功能的重要部分,风扇使室内空气流动,流经净化器的空气通过静电装置和紫外灯除尘杀菌。根据需求风速设置4个等级,通过芯片TA8428K控制,IN1脚接STM32的PA6脚,利用其复用功能产生PWM波,通过调节PWM的占空比来调节风速。紫外灯和静电装置电源都为220V交流电,所以控制电路相同如图5所示,采用继电器控制通断。为防止控制部分受干扰,继电器与STM32之间加了光耦。

图5 紫外灯、静电和风扇调速控制电路Fig 5 UV lamp,electrostatic and fan speed control circuit 下载原图

2.3 高压控制模块

高压控制在净化器运行中起至关重要的作用,由于空气击穿电压受湿度影响,为保证正常运行设计了基于湿度变化的高压发生器。

高压发生器输入电压为180~240 V,输入电流最大70 m A,额定功率15W,有两路输出最高值分别5,12 k V。通过MCU对湿度传感器采集的数据进行分析,依据不同湿度对应的电压经过数字电位器X9241反馈调节LM2596的FB端,达到控制输出电压的目的[4]。高压控制电路如图6所示,P1为MCU与高压电路相连的I2C接口,P7为AC180~240V转为恒定DC15V的接口,P2接高压发生部分,由湿度控制其在1.23~15 V范围内变化,高压输出随之可在300 V~12 k V之间变化。

图6 高压控制电路Fig 6 High voltage control circuit 下载原图

2.4 LCD显示模块

设计采用LCD12864带字库的汉字图形型液晶显示器,它与MCU有8位并行和串行两种连接方式,为了节省IO资源,本系统采用串行连接,MCU的PA1,PA2,PA3口分别于CS,SID,SCLK相连接。为了提高LCD显示效果,能将全部信息在一个页面展现,不采用自带字库而是通过取模软件制作较小的中文字库。最终,LCD显示状态如图7所示[5]。

图7 LCD显示界面Fig 7 Interface of LCD display 下载原图

3 软件设计

软件设计主要包括两部分:MCU控制程序和Android客户端。

3.1 MCU控制程序设计

净化器上电后,程序开始执行,首先进行参数的初始化,然后进入主循环,读取传感器信息量,将信息在LCD上显示,并更新状态。主程序接着对按键进行扫描,本系统设计6个独立功能键,实现电源开关、风速调节、模式选择、紫外灯开关、定时以及滤网计时复位功能。在手动模式下如果有按键按下,程序会处理相应的按键子程序,改变净化器工作状态。其中,红外遥控信息是以中断的形式切入到主程序中,同样通过不同的键执行不同的动作。Android客户端控制信号通过串口传送,根据收到的信号来动作。在自动模式下,风速及其它模块的工作状态由传感器采集数据自动控制。

3.2 Android客户端设计

根据空气净化器的需求和软件的特点,客户端的设计如图8所示。

图8 客户端功能结构Fig 8 Client function structure 下载原图

本客户端由登录模块和遥控模块组成,使用了Android系统本身集成的SQLite,提供了一些新的API来使用SQLite数据库,实现数据库操作。登录模块如图9(a)先调Wifi Manager服务,检查手机,确定打开Wi Fi,再通过WebService传入账号和密码进入遥控界面如图9(b),同时需要Android Mainfest.xml文件中设置获取Wi Fi权限和联网权限[6]。如代码所示:。

图9 客户端界面图Fig 9 Client interface diagram 下载原图

移动平台的接收端是服务器端,主要用于开启端口、等待客户端的数据输入,并且将收到的数据显示在界面中。在实现与釆集端通信的过程中,所釆用的UDP通信相对TCP通信简单,无需事先建立连接,只需创立一个接收和发送的套接字就可实现数据的处理和发送。UDP通信流程如图10所示。

图1 0 UDP通信流程Fig 10 UDP communication process 下载原图

4 系统测试

系统测试分为对控制系统的测试和对净化功能的测试。其中对控制系统的测试是通过按键或遥控方式(红外和Wi Fi)对净化系统进行操作,观测其状态变化。净化功能测试是通过检测不同时间段测试仓内空气质量情况,来验证净化器的净化效果。空气净化器实物如图11所示。

图1 1 空气净化器实物图Fig 11 Physical map of air purifier 下载原图

经测试控制系统的各项功能均正常,可以正常操作净化器工作,实体按键信号辨识准确无误,红外和Wi Fi信号识别与距离相关。

净化功能选用两间学生宿舍进行测试,房间体积大约30 m3,房间结构完全相同。一个房间放置净化器,另一个房间不放净化器作为对照环境[7]。使用蚊香烟雾作为颗粒物发生源,油漆作为挥发性有机物发生源。为确保一致性,使用PM2.5检测仪记录两个房间内PM2.5与TVOC的浓度变化,数据如图12所示。

图1 2 室内污染物浓度变化Fig 12 Concentration changes of indoor pollutants 下载原图

5 结论

本文不仅将工业除尘技术运用到室内空气净化,并结合智能家居,利用Android智能手机控制,使空气净化器不仅具有良好的净化效果,还有良好的用户体验。通过对净化器进行测试表明,控制系统相对稳定,净化功能也达到了设计需求,对室内空气的净化效果明显。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据类型转化

1.英特尔,int() 2.纯,str() 3.不啊,bool() 4.里,list() 5.特别,tuple() 6.数据类型叫类(int str bool),创建的活物(数据)叫对象转载于:https://www.cnblogs.c…

模块怎么用_IC设计方法:模块划分与overdesign

今天讲一个非常简单的设计思想,这个东东也是IC设计方法里的基本矛盾之一:模块划分与overdesign。模块划分乃是IC设计最基本也最经典的概念之一。该步骤出现在芯片架构设计之初。多方设计人员一起讨论,决定要做什么功能,各个功能究…

Android常用类库包介绍

为什么80%的码农都做不了架构师?>>> 在Android 类库中,各种包写成android.*的方式,重要包的介绍如下: android.app:提供高层的程序模型、提供基本的运行环境。 android.content:包含各种的对设…

android调用系统相机图片不旋转,Android 处理调用系统相机生成的被旋转图片

主要通过获取EXIF信息进行设置:public static int readPictureDegree(String path) {int degree 0;try {ExifInterface exifInterface new ExifInterface(path);int orientation exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_…

fastdfs 吗 支持windows_主流开源文件存储系统-fastdfs是否支持windows?你可以选择minio...

首先答案是肯定的,fastdfs不支持windows。 其次建议你使用Minio一、引言一般来说文件存储花钱就选择阿里云oss、七牛云等产品,开源的话,目前开源的分布式文件存储系统非常多,上网一搜 "Ceph,GlusterFS,Sheepdog,L…

SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* B. 我觉得海星 bitset

B. 我觉得海星 题意&#xff1a; 一个无向图&#xff0c;判断是否含有五元环。T 组数据&#xff0c;n 个点。 T<100, n<200 。 tags&#xff1a; 一开始想 dfs&#xff0c;发现搞不出来。赛后听大佬们bb&#xff0c;原来可以 bitset 水过去 。 bitset<1000> bit[i]…

Android电视关闭的闪屏动画效果

老式电视机关闭的时候画面一闪消失的那个效果&#xff1a; 首先创建一个TVOffAnimation继承于Animation&#xff1a; 首先创建一个TVOffAnimation继承于Animation 然后在initialize里面设置一些参数import android.graphics.Matrix;import android.view.animation.Accelerat…

python怎么清除代码_Python如何清空列表?清空列表的4种方法(代码示例)

通过Python语言提供的不同构造的方法可以有许多方法来清空列表&#xff0c;下面本篇文章就来给带大家介绍Python中4种清空列表的方法&#xff0c;希望对大家有所帮助。方法1&#xff1a;重新初始化列表可以重初始化列表&#xff0c;初始化该作用域中的列表时&#xff0c;将不带…

SocketServer源码学习(二)

SocketServer 中非常重要的两个基类就是&#xff1a;BaseServer 和 BaseRequestHandler在SocketServer 中也提供了对TCP以及UDP的高级封装&#xff0c;这次我们主要通过分析关于TCP的处理逻辑来对SocketServer模块进行一个很好的理解和学习 TCPServer TCPServer 继承了BaseServ…

Yum命令解析

Yum配置文件位于/etc/yum.conf和/etc/yum.repos.d/CentOS-Base.repo目录下 使用yum时注意&#xff1a;必须使用root身份来执行yum&#xff1b;yum配置文件内的镜像站点必须能与自己进行网络连接&#xff1b;镜像站点越近&#xff0c;带宽越大越好&#xff0c;方便下载。 [rootl…

430f149有几种封装类型_高速光调制器的发展与封装技术研究

共读好书汪冰 黄平 杨磊摘 要&#xff1a;文章分析了100 Gbps(以下简称100 G)以太网光通信光调制器及其封装的技术发展动向&#xff0c;对比分析了10 G/40 G/100 G高速光调制器及其封装的结构特点。通过对高速光调制原理的浅析&#xff0c;论述了40 G/100 G高速光调制器在100 …

异常:没有找到本地方法库,java.lang.UnsatisfiedLinkError: no trsbean in java.library.path

1.问题描述 迁移环境中遇到这个问题 : Fri Apr 20 15:22:31 CST 2018, Exception:500004___-500004,没有找到本地方法库,java.lang.UnsatisfiedLinkError: no trsbean in java.library.path 1 Fri Apr 20 15:22:31 CST 2018, TRSException:500004___-500004,没有找到本地方法库…

js将docx转换为html,js 将word转换Html

WalkingPoisons Word-to-HTML sample Click the "save" button to save the file "C:/test.doc" to "C:/test.htm":

vsftp账号_Linux入门-CentOS7安装vsftp

前言vsftpd是用于类Unix系统(包括Linux)的FTP服务器。那怎么搭建呢&#xff1f;请看下文在CentOS7 64位进行安装。为了调试顺利&#xff0c;关闭selinux&#xff0c;防火墙iptables一.yum安装vsftp# yum -y install vsftpd二.启动服务# systemctl start vsftpd.service三.配置文…

android n模拟器,BlueStacks推出Android N模拟器

原标题&#xff1a;BlueStacks推出Android N模拟器IT之家1月23日消息&#xff0c;相信有不少玩家都有过在电脑上玩手游的经历&#xff0c;打怪升级这类游戏在操作似乎还是交给键盘和鼠标比较高效&#xff0c;电脑端体验安卓游戏自然就要用到模拟器了&#xff0c;但是尴尬的是似…

为UIKeyboardTypeNumberPad增加自定义按键

在 iPhone 上面開發應用程式時, 在使用輸入鍵盤時, 或多或少都會遇到客制化鍵盤的問題, 這邊筆者以簡單的數字鍵盤來示範客制化的動作. 這部份我想網路上已經有不少 sample code , 但大部份基本上都是以 SDK 3.x 的版本去實作, 以"特定寫法"來實作客制化在 iOS4 會有…

Unity 内建数据索引

看到多少补多少 顶点输入类型 UnityCG.cginc Line:58 struct appdata_base {float4 vertex : POSITION;float3 normal : NORMAL;float4 texcoord : TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID };struct appdata_tan {float4 vertex : POSITION;float4 tangent : TANGENT;float…

车载安卓中控改鸿蒙,教你改装车子中控安卓大屏,看一遍你就会了,改完后低配秒变高配...

因为我这个车子年代比较久了&#xff0c;所以没有中控大屏&#xff0c;需要导航的时候我都是把手机放在出风口支架这个地方&#xff0c;这种磁吸的支架有时候过减速杠一震动就掉下来了&#xff0c;我又不想在上面粘什么东西&#xff0c;所以干脆就花几百块钱买了一个能够插手机…

pip 删除安装包_Python中PIP的快速指南

无论您是Python新手还是有经验的Python开发人员&#xff0c;不使用pip安装命令是不可能编写或开发Python应用程序的。在这篇文章中&#xff0c;我将对Pip进行详细介绍。Pip是Python Package Manager的缩写。当您在系统上安装python时&#xff0c;它附带了一组预定义的包&#x…

海量数据前N大

最大堆即大根堆 -- 求前n小最小堆即小根堆 -- 求前n大比如求前n小&#xff0c;对于当前元素&#xff0c;和最大堆的堆顶元素&#xff08;即堆最大值&#xff09;比较&#xff0c;如果小于堆顶元素&#xff0c;则替换堆顶元素&#xff0c;并调整堆。这样扫描一遍就可以得到最小的…