单片机智能加湿器设计与实现详解

前言

本文将从实现功能、整体设计方案、硬件电路设计、云平台使用、代码修改、元件清单以及致谢这七部分详细讲述制作过程中的细节。


一、实现功能

(1)加湿器设置了两种工作模式,自动模式和手动模式。在加湿器水量充足情况下,若设置为自动模式,则在加湿器加湿前判断当前环境湿度是否低于设置的湿度阈值,若低于则开启加湿,反之则关闭;若设置为手动模式,则不进行判断,按下就开启加湿,再次按下就关闭加湿。

(2)增加了加湿器的交互性,将加湿器的数据通过MQTT协议上传到OneNET云平台,手机APP订阅云平台将加湿器相关信息进行显示。同时可在APP上设置加湿器湿度阈值、工作模式以及加湿开关,通过云平台传回到单片机,实现远程控制。加湿器的相关信息也可通过OLED显示屏直接显示,便于用户查看。

(3)增加报警提示功能,当加湿器中水位过低时,不响应加湿请求并通过蜂鸣器鸣叫和APP端跳出提示框来提醒用户。

(4)增加按键控制功能,设有3个按键,实现界面切换、湿度阈值设置、模式选择以及加湿开关控制功能,设置的湿度阈值数据存储在FLASH内存中,实现掉电不丢失。
整体效果图

二、整体设计方案

整体设计方案
基于单片机的智能加湿器设计采用STM32系列单片机作为主控芯片,系统所需模块包括温湿度检测模块、Wi-Fi通信模块、OLED显示模块、水位检测模块、雾化模块。STM32主控制器通过Wi-Fi通信模块完成单片机、云平台和手机APP之间的数据交互。
数据传输
单片机将采集到的温湿度数据、水量数据、设置的湿度阈值数据、选择的加湿器模式、加湿开关状态上传到云平台。云平台作为中介,将信息转发给手机APP进行显示。从手机APP上下发湿度阈值调整、模式选择以及加湿开关指令也需借助云平台转发给单片机执行。通过云平台实现了手机APP控制单片机的效果。

三、硬件电路设计

3.1 电压转换电路

电压转换
因为水位传感器模块和雾化模块需要5V供电,其他设备需要3.3V供电,因此本设计采用输入5V电压,并用AMS1117-3.3芯片将5V电压转换为3.3V电压,满足供电要求。采用Type-C实现外部供电,CC1、CC2接5.1K电阻接地,充电器关闭快充变为普通供电。按键按下时,充电器的5V电压进入转换芯片进行电压转换。

3.2 蜂鸣器报警电路

蜂鸣器报警电路
报警电路采用有源蜂鸣器,内部含有振荡源,上电即可鸣叫。但由于单片机I/O口输出电流较小,几乎驱动不了蜂鸣器,因此添加一个NPN型三极管构成电流放大电路驱动蜂鸣器。当水位过低时,单片机输出高电平,三极管导通,蜂鸣器鸣叫;正常情况下,单片机输出低电平,三极管处于截止状态。
此处使用的是5V有源蜂鸣器,但电路图中给它接的是3.3V,实测蜂鸣器可以鸣叫无影响。

3.3 按键电路

按键电路
本设计使用到3个按键,实现界面切换、湿度阈值设置、加湿器模式切换、手动模式下控制加湿开关功能。在不同情况下,按键按下的作用不同。上电后默认是主界面,显示环境温湿度、水量、加湿器模式信息。按下按键K1则进入到湿度阈值设置界面,显示设置的湿度阈值,此时再按下K2或者K3可以实现湿度阈值加减操作。再按下K1则回到主界面,在主界面按下K2则加湿器切换到手动模式,加湿模块打开,再按下K2加湿模块关闭。通过程序编写,在不同界面赋予按键不同的含义,提高了按键的利用率。
主界面
阈值设置界面

3.4 继电器控制电路

继电器控制电路
本设计采用继电器来控制加湿模块,当单片机接收到加湿请求时,单片机引脚输出高电平,继电器闭合,加湿模块上电工作。未接收到加湿请求时,单片机输出低电平,继电器断开,加湿模块不通电。线圈两端(1、4两端)的电压不宜过大,根据数据手册可以得知最大电压需小于等于3.75V,此处选用3.3V。
继电器详细接线图如下
继电器接线图

3.5 其他成品模块电路连接

3.5.1 OLED显示模块

OLED显示模块
使用的是IIC通信的0.96英寸的OLED模块

3.5.2 Wi-Fi模块

Wi-Fi模块
==使用的是ESP8266-01SWi-Fi模块进行通信

3.5.3 温湿度传感器模块

温湿度传感器模块
使用的是DHT11温湿度传感器进行温度和湿度测量,输出为数字量

3.5.4 水位传感器模块

水位传感器模块
使用的是WaterSensor水位传感器模块进行水位测量,输出为模拟量。此处使用此模块只是作为大致的水位测量,并不显示精确的水位数值。见3.按键电路效果图可知

3.6 完整电路

完整电路设计
原理图和嘉立创打板文件在文章后面以网盘链接给出

四、云平台使用

本设计使用的是OneNet云平台

4.1 云平台注册和登录

云平台注册和登录

4.2 创建产品

内部界面
点击开发者中心
创建产品
选择产品类别
此处随便选取都可
详细步骤1
详细步骤2
详细步骤3
可以看到此处已有创建的产品

4.3 添加设备

详细步骤1点击设备管理添加设备
详细步骤2
详细步骤3
设置设备名称,注意此处设备名称要与代码中对应
详细步骤4
可以看到此处已有创建的设备

4.4 设置物模型

详细步骤1
点击左侧产品开发
详细步骤2
点击右侧产品开发
详细步骤3
点击设置物模型
详细步骤4

点击添加自定义功能点
详细步骤5
按上图填写需要的功能点,注意:标识符要与代码中对应
详细步骤6
可以看到此处已有添加的功能点
详细步骤7
本设计所需功能点如上
详细步骤8
查看产品的相关信息,记住产品ID
详细步骤9
可以看到设备名称/ID为Humidifier,点击设备管理->详情
详细步骤10
可以看到设备密钥,将其复制下来

致此,云平台创建结束

4.5 云平台测试

详细步骤1
由上图可以看到当前创建的设备还未激活,若当前还未把板子制作完成,我们可以利用软件将其激活。

激活软件

详细步骤1
点击设置按钮
详细步骤2红色框内前两行不变,第三行填入创建的设备名称。
详细步骤3
token生成软件
token生成软件如上
详细步骤4
将产品ID、设备名称和设备密钥替换为自己的,其余无需改变
详细步骤5
点击Generate生成token,复制生成的token到MQTT软件中的password
详细步骤6
详细步骤7
点击connect发现右侧绿灯点亮说明连接成功
详细步骤8
在云平台界面也可以看到设备被激活,处于在线状态
上述激活过程参考的是B站up主壹知半解的教程,后续APP设计也是参考此up主
致此软件激活设备到此结束

五、代码修改

代码最后放在一个网盘链接中给出,此处只介绍将代码移植到自己的工程中需要修改的地方

5.1 单片机代码修改

单片机代码编写软件
使用的是Keil uVision5软件进行单片机代码编写
详细步骤1
在esp8266.c文件中修改wifi名称和密码,注意手机开的热点要为2.4GHZ
详细步骤2
在onenet.c文件中修改产品ID、设备密钥、设备名称
详细步骤3
在onenet.c文件中增加或删除要上传的变量
详细步骤4
在onenet.c文件中,处理从云平台下发的数据,如继电器开关、湿度阈值和工作模式,可根据自己的项目进行修改。

5.2 小程序代码修改

小程序开发软件

使用的是HBuilder X软件进行小程序代码编写
详细步骤1
在此处查看用户ID和用户Accesskey,记录下来
详细步骤2

详细步骤3
修改小程序代码中的author_key、user_id以及产品ID
详细步骤4
详细步骤5
点击发行可以看到,程序既可以打包成APP也可以制作成小程序和快应用。这里选择原生APP云打包,之后如可对打包进行自定义配置也可直接打包。这里选择直接打包,等待几分钟即可得到APK文件,将其发送到手机上进行安装即可。
详细步骤6

详细步骤7
最终效果如上图所示,此界面为本设计APP的UI,能将加湿器相关的参数信息进行显示。显示信息包括环境温湿度数据、加湿器水量、湿度阈值、工作模式、加湿开关以及设备是否在线。
当从手机上下发控制指令时,如在手机上设置湿度阈值时,可能会回弹到原先值,过四、五秒钟后回弹到设置值,这属于正常现象,也可在小程序代码中进行修改,当从手机APP上设置相关参数时,显示一个转圈的图标,等从云平台重新接收到修改的数据再在手机APP上进行显示。
代码修改部分致此结束,也可参考B站up主壹知半解的项目视频

六、元件清单

本部分介绍该设计所用的元器件及型号
详细步骤1
使用的主控是stm32f103c8t6的最小系统板,如果使用的是stmf103c6t6就没有串口3,需要修改一下代码,选择串口2
详细步骤2
温湿度检测模块使用的是DHT11模块
详细步骤3
Wi-Fi通信模块使用的是esp8266-01s模块

详细步骤4
显示屏使用的是0.96英寸的OLED屏幕(IIC通信)
详细步骤5
水位传感器使用的是WaterSensor水位传感器模块
详细步骤6
雾化模块通过高频振动将水雾化,最好搭配一个吸水棉棒
详细步骤7
部分元件清单如上,有些模块是用母座连接,方便插拔
详细步骤8
详细步骤9
详细步骤10
详细步骤11
详细步骤12
详细步骤13
详细步骤14
详细步骤15
详细步骤16
详细步骤17

七、致谢

本设计参考了B站壹知半解、江协科技、彼岸有光我们有船、Libyee等up主的教程,在此感谢。

总结

由于本人水平有限,没有设计外壳,看起来十分简陋。在此给出一些修改意见:从板子中间挖个孔,让加湿器的棉棒可以穿过板子,外部再加装外壳,外壳可以镂个矩形框便于OLED屏显示,DHT11温湿度传感器应该是不能全部覆盖,如果覆盖的话湿度值就不易改变。欢迎各位复刻,如有疑问可到评论区发表。
通过百度网盘分享的文件:智能加湿器教程.rar
链接:https://pan.baidu.com/s/1fQPravoWX3w35gPp_3F_Dw?pwd=1234
提取码:1234

作者:m0_56059533

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机智能加湿器设计与实现详解

发表回复