
征集令|智能加湿器-物联网ESP32
简介
ESP32的智能加湿器集成了水位传感器、温湿度传感器、电路板设计、电机驱动电路和APP控制等功能,可以实现室内湿度智能调节。用户可以通过手机APP远程控制加湿器,实时获取室内环境数据。
简介:ESP32的智能加湿器集成了水位传感器、温湿度传感器、电路板设计、电机驱动电路和APP控制等功能,可以实现室内湿度智能调节。用户可以通过手机APP远程控制加湿器,实时获取室内环境数据。开源协议
:GPL 3.0
描述
1.简介
随着物联网技术的发展,智能化家居逐渐成为了人们生活的新趋势。而在这个领域中,加湿器不仅是解决室内干燥问题的关键设备,同时也是展示物联网技术应用的一个非常好的场景。因此,我决定制作一项基于ESP32的智能加湿器,通过集成硬件模块和开发软件,实现更为智能、精准和便捷的室内空气湿度调节方案。
在设计前,我将全面分析市面上的加湿器产品,研究流行的物联网平台,调研最优秀的硬件设备,从而确定设计方案。这个加湿器不仅要实现室内湿度智能调节,还注重用户体验和数据展示,因此,设计包含了从硬件到软件的全链路实现,如水位传感器、温湿度传感器、电路板设计、电机驱动电路、水箱温度管理、点灯平台、APP等。
希望这个项目不仅可以为解决人们日常生活中的实际问题提供便利,也能为更多物联网开发者提供参考和灵感,一起探索物联网技术发展的无限可能性。
加湿器效果
使用ESP32作为物联网核心的,可以根据外接温湿度进行调节的智能物联网加湿器。
附带有水位检测,水位不足时会提示。
附带OLED屏幕,能够显示温湿度和水位信息。
附带电机驱动电路,将水汽更好的扇出。
原理框图如下:
2.电路原理
2.1超声加湿
加湿器一般采用超声波方式将水雾化,通过风机将雾化的水汽吹出壳体,从而达到加湿空气的效果。
超声波加湿器采用超声波高频震荡1.7MHZ的频率,将水雾化为1至5微米的超微粒子,通过风动装置,再将水雾扩散到空气中,使空气湿润并且伴有丰富的负氧离子,能清新空气,促进健康,营造舒适的环境。
核心电路图如下:
将5V通过U8三角电感,其中一个脚又接到MOS管,IO2接到ESP32,通过ESP32发出高频PWM,使得电压输出在60V左右(类似逆变),从而推动超声模块工作,超声模块接线位于U2
2.2充电和电源路径管理
充电使用了单节锂电池充电芯片TP5100,这是一款开关型的电源管理芯片。
电源路径管理如下:
当不插电使用电池时,3.7V锂电池直接给系统供电。
当5V充电时除了给充电芯片给电池充电外,还会给系统供电
由于系统又要接受3.7V锂电池又要使用5V供电,因此需要一个统一的电压,因此还需要增加一个升压电路,将电池电压升到5V
系统中还有一些需要使用3.3V供电的器件,因此还有一路5V-3.3V的DCDC降压
2.3电机驱动电路
使用MOS管驱动电机,将水汽扇出,风扇接口在U6,上正下负,可以使用IO16的PWM控制速度。
3.传感器
3.1DHT11温湿度传感器
DHT11可以检测周围环境的湿度和温度,使用模块的方式插在U7上
3.2水位传感器
水位感器是通过具有一系列的暴露的平行导线线迹测量其水滴水量大小从而判断水位。轻松完成水量到模拟信号的转换,输出为模拟信号
电路中直接连接到ESP32的ADC脚即可
水位传感器直接插入板下即可,注意正负
4.BLINKER物联网平台
物联网平台使用点灯BLINKER,平台使用Arduino(C++)
点灯科技:
Arduino(C++) SDK:
https://github.com/blinker-iot/blinker-library
SDK 指导:
https://diandeng.tech/doc/arduino-support
APP下载:
https://github.com/blinker-iot/blinker-app
4.1blinker方案基本介绍
1.blinker是一套物联网设备开发部署方案,核心是制定了设备和设备间、设备和客户端间通信及交互标准
2.blinker服务器端只负责用户管理、设备管理、数据存储等必要功能
3.WiFi接入的设备,远程通信经由传输中介转发,而不存储数据在服务器端;本地局域网通信,通过webSocket进行
4.ble接入设备,通过与手机直接连接进行通信
5.blinker本身没有限定硬件、硬件外设、云平台、开发方式,开发者可自由扩展任何功能(前提是硬件资源足够)
4.2esp32使用WiFi接入
本项目使用ESP32开发,使用WIFI接入互联网
esp32 Arduino SDK文档:
https://docs.espressif.com/projects/arduino-esp32/en/latest/index.html
5.核心代码
5.1 加湿器PWM
核心代码在humiupdate()函数中
前面提到加湿器原理是:超声波高频震荡1.7MHz的频率,将水雾化为1至5微米的超微粒子
实际上并不需要那么高的频率都可以,一般也会用108kHz的频率进行震荡,因此我们需要ESP32发出108kHz的频率给到超声电路即可
核心代码如下:
先判断:湿度设定高于实际湿度且加湿器开关打开且有水
条件成立才会开启IO2的PWM,PWM设定108kHz,然后就是各种参数了
接到了AO3400的G极
示波器波形如下
另外需要说明的是,需要插上加湿器才打开此108k的PWM,否则会损坏AO3400管
5.2 DHT11
传感器核心代码在dht11state()函数中
在前面设置好IO口和传感器为DHT11类型即可,连接到IO26中
5.3 OLED屏幕
使用屏幕前我们需要对图标和中文用取模软件取模,时间关系我已经做好了
屏幕函数我放在了oled()中
比较简单,我们需要做的就是固定显示不变的东西不管,变化的东西变什么改什么
比如运行时需要播放风扇的动画来指示开启
状态的指示,温湿度的实时显示等
5.4 Blinker联网
这部分是联网的关键,配合好手机APP设置
此处设置密钥,WIFI信息
5.4.1手机部分
手机部分直接将手机端代码复制粘帖到配置界面即可
附件在手机端配置代码.txt
新建设备后点击界面配置
把代码内容粘帖进来后更新即可
完成后就是这样的界面
5.4.2组件部分
看到APP端配置后就可以想到我们使用的组件了
1.实时温度(Number1)
2.实时湿度(Number2)
3.实时水量(Number4)
4.实时电量(Number3)
5.湿度设置上限(Number6)
6.滑动条设置湿度(Slider3)
7.风扇开关(Button1)
8.加湿器开关(Button2)
9.风扇指示(Button3)
10.加湿器指示(Button4)
5.4.3组件回调函数和按钮状态反馈部分
回调函数即是在APP端按下或者动作后,我们这边需要执行什么东西
拿两个回调函数为例:
slider3_callback是滑动条的回调函数,我们目标是APP滑动到什么值,我们湿度上限就是要设置到对应值即可。
APP端滑动条会返回一个value给我们,我们只需要hmax = value; 把滑动的值赋予hmax的上限即可,然后再Number6.print(hmax); 把我们的设置好的hmax返回给Number6-湿度设置上限。这样滑动的时候也会实时反馈给滑动条右边的湿度设置上限
怎么样,是不是很简单。
再看下一个button1_callback
我们做的是风扇开关(Button1)
我们做的事情很简单,首先我们设置这个按键是开关形式的在APP中
这样开关在开的时候APP会返回两个状态“on"和"off"
我们判断开的时候fanstate设置为1,后面系统就会给我们设置风扇状态为开启了(只是设置为开启,实际有无运行需要看情况)
然后在反馈给Button1为“on"说我们系统已经打开了,APP上风扇开关就会变化
从关闭
到打开
5.4.4数据反馈部分
为降低公共服务器资源消耗,APP会限制获取数据上传数据的时间间隔
由于APP限制,我们只需要将实时数据放置在心跳包中即可,系统每9秒会同步一次
函数放置在heartbeat()中
我们同步温湿度,水量,电池电路,设置的湿度,同步滑动条
各个按钮的状态即可
另外有手动同步,按下此按钮会立刻同步一次心跳包内容,不限间隔次数
5.4.5温湿度历史数据曲线绘制部分
APP中可以显示温湿度历史曲线,最大可以存储一周的曲线
核心代码比较简单
此数据上报存储为1分钟1次。
5.5 系统调度
所有核心代码都写完后就需要将他们结合起来,这就需要系统调度。
主要写在了stateupdate()中
更新各种传感器状态
按键扫描
由于Arduino特性,最终归结到loop中即可。
6.外壳
使用SolidWorks绘制
7.核心器件
加湿器:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.72802e8daQun1W&id=667972237137&_u=uqavhl87ea7
电池:14500锂电池即可
三脚电感:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.72802e8daQun1W&id=562674731215&_u=uqavhl8ba6b 电感参数:6*8-22uH/720uH
8.总结
在这个基于ESP32的物联网智能加湿器项目中,Blinker点灯物联网平台为我们的开发提供了极大的便利,帮助我们快速实现了远程控制和监测功能。同时,OLED屏幕的应用和水位、温湿度传感器的集成,使得加湿器的性能得到了全面提升。
TPS61008芯片的升压电路,电源路径管理模块和电机驱动电路的设计与应用,则保证了设备稳定、高效地工作,5V转60V的PWM电路的使用则为电机提供了高效、精准的驱动信号。
最后,在电路板设计方面,我们使用了立创EDA专业版软件进行设计,这个软件拥有丰富的资源库和设计工具,让我们的电路板制作更为精准、快速且专业化。
整个项目的成功,离不开各种设备和技术的融合与协同作用,使得这个项目具有了更为可靠、智能化和高效的使用体验。在今后的物联网领域,我们将持续思考和探索,研发更多的智能化设备,为用户创造更大的实用价值。
设计图

BOM


评论