发作品签到
专业版

征集令|智能加湿器-物联网ESP32

工程标签

1.1w
0
0
23

简介

ESP32的智能加湿器集成了水位传感器、温湿度传感器、电路板设计、电机驱动电路和APP控制等功能,可以实现室内湿度智能调节。用户可以通过手机APP远程控制加湿器,实时获取室内环境数据。

简介:ESP32的智能加湿器集成了水位传感器、温湿度传感器、电路板设计、电机驱动电路和APP控制等功能,可以实现室内湿度智能调节。用户可以通过手机APP远程控制加湿器,实时获取室内环境数据。

开源协议

GPL 3.0

创建时间:2023-03-16 20:04:09更新时间:2023-04-30 14:05:12

描述

1.简介

随着物联网技术的发展,智能化家居逐渐成为了人们生活的新趋势。而在这个领域中,加湿器不仅是解决室内干燥问题的关键设备,同时也是展示物联网技术应用的一个非常好的场景。因此,我决定制作一项基于ESP32的智能加湿器,通过集成硬件模块和开发软件,实现更为智能、精准和便捷的室内空气湿度调节方案。
在设计前,我将全面分析市面上的加湿器产品,研究流行的物联网平台,调研最优秀的硬件设备,从而确定设计方案。这个加湿器不仅要实现室内湿度智能调节,还注重用户体验和数据展示,因此,设计包含了从硬件到软件的全链路实现,如水位传感器、温湿度传感器、电路板设计、电机驱动电路、水箱温度管理、点灯平台、APP等。
希望这个项目不仅可以为解决人们日常生活中的实际问题提供便利,也能为更多物联网开发者提供参考和灵感,一起探索物联网技术发展的无限可能性。

3S4TLTEVbGRFb6BzDdDRBiZjVZI4ZVeLbb9PqMYT.jpeg

加湿器效果

KJeUTES6tR8Yt08568eQlGxIssTvajWKrElrnrPP.jpeg

使用ESP32作为物联网核心的,可以根据外接温湿度进行调节的智能物联网加湿器。

附带有水位检测,水位不足时会提示。

附带OLED屏幕,能够显示温湿度和水位信息。

附带电机驱动电路,将水汽更好的扇出。

原理框图如下:

a03Ut5Ru6krmTAJzL5xNFtGrvxKiqX4E8Z2iCVdY.png

 

2.电路原理

2.1超声加湿

加湿器一般采用超声波方式将水雾化,通过风机将雾化的水汽吹出壳体,从而达到加湿空气的效果。

超声波加湿器采用超声波高频震荡1.7MHZ的频率,将水雾化为1至5微米的超微粒子,通过风动装置,再将水雾扩散到空气中,使空气湿润并且伴有丰富的负氧离子,能清新空气,促进健康,营造舒适的环境。

核心电路图如下:

将5V通过U8三角电感,其中一个脚又接到MOS管,IO2接到ESP32,通过ESP32发出高频PWM,使得电压输出在60V左右(类似逆变),从而推动超声模块工作,超声模块接线位于U2

5q4owyaM3xJ06ohTR6mfVoGc6LEt17B1jcDQrS0O.png

2.2充电和电源路径管理

充电使用了单节锂电池充电芯片TP5100,这是一款开关型的电源管理芯片。

电源路径管理如下:

94pUNDzyhY3xEgGWq2FYuzFerXbcdC4ljwMmQs4O.png

当不插电使用电池时,3.7V锂电池直接给系统供电。

MDIdpoQWuSotRazUQW9hlMQ2JHdW4qYbXaZv3afv.png

当5V充电时除了给充电芯片给电池充电外,还会给系统供电

YOQJIV95Fd2fsyo7g3b35Yzdz2kr5xf6GdiNnJHW.png

由于系统又要接受3.7V锂电池又要使用5V供电,因此需要一个统一的电压,因此还需要增加一个升压电路,将电池电压升到5V

TPwHc3zR9gw5jfD2W6rb3TRFNEg0wsCGix6zCaZQ.png

系统中还有一些需要使用3.3V供电的器件,因此还有一路5V-3.3V的DCDC降压

IPTcIHS9NWp9X7CBLzpRyqChrQBYCTGx3KvHrfvy.png

2.3电机驱动电路

使用MOS管驱动电机,将水汽扇出,风扇接口在U6,上正下负,可以使用IO16的PWM控制速度。

Ipo5l0p2WUggrFvBMzC5ZnW8fEdcPqERUTTRHeSK.png

 

3.传感器

3.1DHT11温湿度传感器

x071HjpQpzOvwTpCeaRR2id5RClTgy7Pf7F93mj4.png

DHT11可以检测周围环境的湿度和温度,使用模块的方式插在U7上

63rmgYs6AwH579iugxhZgJnwTa8hC6EOqlLu557V.png

 

3.2水位传感器

水位感器是通过具有一系列的暴露的平行导线线迹测量其水滴水量大小从而判断水位。轻松完成水量到模拟信号的转换,输出为模拟信号

DbTrGpiIQoWPOW30ldEvltuSxK5QZK4rg210S1Bh.png

电路中直接连接到ESP32的ADC脚即可

LnqHIw9qWvFqdIZBMHLeVL8A4zrYgvPDXQzRhWYz.png

水位传感器直接插入板下即可,注意正负

yMpkghv4PvwpQpYVVraGus2LDKHFF7daZHkQqFKd.jpeg

4.BLINKER物联网平台

物联网平台使用点灯BLINKER,平台使用Arduino(C++)

点灯科技:

https://diandeng.tech/home

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方案基本介绍

Bop8CFmse2xVI4WERTQik3vxWcFjsTWQuHfN5Znm.png

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,然后就是各种参数了

NTMQBYg8W7KG7SU3TdS0WB716hfDlUvWXCCWc5Lj.png

接到了AO3400的G极

XQgPA8VM33MPVtutWqaKImOcCT9JDOCATNIJOs8m.png

示波器波形如下

Ze3x0Q40eb04ElaKMeP053vQ3dzzQMI54zb5NNbq.bmp

另外需要说明的是,需要插上加湿器才打开此108k的PWM,否则会损坏AO3400管

5.2 DHT11

传感器核心代码在dht11state()函数中

U7zgOLxdHOSpw7oJg5HgI5gRLbJRmUyWWFhmJOd9.png

在前面设置好IO口和传感器为DHT11类型即可,连接到IO26中

xoRqJveLZgtxvx9kD8hyh2ACbUY4XFiHoefkLMrN.png

Faabn89iLH8MoI6SeyRD8gPVunpzrJFqBPhQP0Fj.png

5.3 OLED屏幕

使用屏幕前我们需要对图标和中文用取模软件取模,时间关系我已经做好了

NZI3jz75eaak7cgqxYiU4yLLw9O4oCZTSjNcunfh.png

屏幕函数我放在了oled()中

HVcXOpSrMOp40GrUJ75bd7dK7V55YKqEcDZFuJWd.png

比较简单,我们需要做的就是固定显示不变的东西不管,变化的东西变什么改什么

比如运行时需要播放风扇的动画来指示开启

gRlh3VsFo0NspEajNnGDIGYXGNY6XTqdsWRwozdh.png

状态的指示,温湿度的实时显示等

rrB9TuM4w9NW132WFgubyEwJ0egMeIn711NE19hb.png

5.4 Blinker联网

这部分是联网的关键,配合好手机APP设置

此处设置密钥,WIFI信息

pbKIVlCusKiVBFa54pU4mxaLAfspLQHdJF7lInU2.png

5.4.1手机部分

手机部分直接将手机端代码复制粘帖到配置界面即可

附件在手机端配置代码.txt

TEXM9KexyqMKi2swy84s6adRKeZF5H1RtYGdJxJp.png

新建设备后点击界面配置

tRQ57KxzhlZuk1MUf86A0eNpByK9HxQ7XvFRUl0F.jpeg

把代码内容粘帖进来后更新即可

PMnM0ert5ik49Lren5UUq4cSeijFELNn2wDXn3xR.jpeg

完成后就是这样的界面

heZQ1gxTWnEsmVAYrOlnM5UzKEmv8dLZHDM7iZEx.jpeg

5.4.2组件部分

看到APP端配置后就可以想到我们使用的组件了

1.实时温度(Number1)

2.实时湿度(Number2)

3.实时水量(Number4)

4.实时电量(Number3)

5.湿度设置上限(Number6)

6.滑动条设置湿度(Slider3)

7.风扇开关(Button1)

8.加湿器开关(Button2)

9.风扇指示(Button3)

10.加湿器指示(Button4)

4C53jPQZu1PtHjzFc8t8Qk8PwTQbbIYCosoaYITK.png

5.4.3组件回调函数和按钮状态反馈部分

回调函数即是在APP端按下或者动作后,我们这边需要执行什么东西

拿两个回调函数为例:

EnlNuuLo5uAXEUsbYa3OYgi2YSfflweTbTFlV80i.png

slider3_callback是滑动条的回调函数,我们目标是APP滑动到什么值,我们湿度上限就是要设置到对应值即可。

APP端滑动条会返回一个value给我们,我们只需要hmax = value; 把滑动的值赋予hmax的上限即可,然后再Number6.print(hmax); 把我们的设置好的hmax返回给Number6-湿度设置上限。这样滑动的时候也会实时反馈给滑动条右边的湿度设置上限

Qm55wKtP6nW8tx6trD1TdBuNZqhIXCM96sDkYd4L.png

怎么样,是不是很简单。

 

再看下一个button1_callback

我们做的是风扇开关(Button1)

我们做的事情很简单,首先我们设置这个按键是开关形式的在APP中

8WX3aO81LyizaYnMraxZMP6dRknZrqo7JtvpvYi0.png

这样开关在开的时候APP会返回两个状态“on"和"off"

我们判断开的时候fanstate设置为1,后面系统就会给我们设置风扇状态为开启了(只是设置为开启,实际有无运行需要看情况)

然后在反馈给Button1为“on"说我们系统已经打开了,APP上风扇开关就会变化

从关闭

OUYp2fb9J5u3aBeRKoCBku8dhkcG3ybvGCaIF8QP.png

到打开

ctnWCj9sWcfbPQZdoW17Uar5DxblbWfw3NuLyTmk.png

5.4.4数据反馈部分

为降低公共服务器资源消耗,APP会限制获取数据上传数据的时间间隔

由于APP限制,我们只需要将实时数据放置在心跳包中即可,系统每9秒会同步一次

函数放置在heartbeat()中

Ven1W6NJbOb40LceefvxASDjodgvdp8xpUIudERW.png

我们同步温湿度,水量,电池电路,设置的湿度,同步滑动条

eBXZqsbIwRS9SDUyPIKJERDm6wLZ3GmY8ZwVTbvK.png

各个按钮的状态即可

另外有手动同步,按下此按钮会立刻同步一次心跳包内容,不限间隔次数

9HKgNmKBL3vj3TnJFXhrciqDiAfmy5iEl9YjEhYq.png

5.4.5温湿度历史数据曲线绘制部分

APP中可以显示温湿度历史曲线,最大可以存储一周的曲线

PHoCVaufpn9NhU5KdnupOfdgXDBJGJBW3PY05hUy.png

核心代码比较简单

EvbDrNOStQmr2Yhr98miw0YDyJGg4vrxW3BXiUOs.png

此数据上报存储为1分钟1次。

5.5 系统调度

所有核心代码都写完后就需要将他们结合起来,这就需要系统调度。

主要写在了stateupdate()中

更新各种传感器状态

20cqoN1kpicANHfg2IwDAD2ScAEsgGw35WMx5hp2.png

按键扫描

6zDwVl45odivAKR09m08ZQj847RFTKwlmjSuk0C6.png

由于Arduino特性,最终归结到loop中即可。

LnAhLfPURuFLtud1EjKl2xi84l8IaxizHNcGFP8H.png

6.外壳

使用SolidWorks绘制

sbpzRyovcFNr4v6KrzPjskKBlE1TmLlxZg1vPhBW.png

 

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

暂无BOM

附件

序号文件名称下载次数
1
联网同步演示.mp4
71
2
加湿器本地演示(无外壳).mp4
101
3
手机端配置代码.txt
101
4
加湿器源码 V0.2 23.04.30.zip
215
5
加湿器外壳.7z
325
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航