使用Arduino自制智能自动便携式加湿器

您所在的位置:网站首页 空气加湿器电路图原理 使用Arduino自制智能自动便携式加湿器

使用Arduino自制智能自动便携式加湿器

2024-01-19 13:38| 来源: 网络整理| 查看: 265

加湿器(Humidifier)是一种用来增加封闭区域的相对湿度,以保证该区域有足够的水分的装置。尤其是在冬天,当打开加热器时,会导致空气的相对湿度降低。在本篇文章中,我们要制作一个自动加湿器,它可以利用传感器机制保持大气的相对湿度。我们还使用显示器以空气中水分百分比的形式显示相对湿度 (RH)。除了Arduino和LCD,我们还使用DHT11传感器来读取大气湿度值。如果发现相对湿度低于要求的限值,则打开加湿器,反之亦然。

所需的组件

●    超声波加湿器

●    Arduino Nano开发板

●    5V继电器

●    7805

●    25V/1000uf电解电容

●    DHT11传感器

●    连接线

便携式加湿器的工作原理

Automatic-Portable-Humidifier.jpg (41.55 KB, 下载次数: 117)

下载附件  保存到相册

2021-10-8 17:02 上传

便携式加湿器可以通过使用高频振动的金属膜片产生暖/冷雾。声音振动将湿气推入空气中。加湿器中产生的雾气几乎立即被空气吸收。加湿器需要漂浮在水床上才能产生雾气。我们将要制作的加湿器的工作原理可以通过下面的框图来理解:

Humidifier-Block-Diagram.jpg (49.43 KB, 下载次数: 103)

下载附件  保存到相册

2021-10-8 17:02 上传

如上框图所示,超声波加湿器放置在容器内的水面上。加湿器漂浮在水面上。由于需要感测湿度,因此将DHT11湿度传感器与Arduino Nano连接,然后连接OLED显示屏以显示实时值。此外,根据湿度值,我们需要触发继电器,从而将加湿器切换到ON/OFF。因此,将加湿器值与参考值进行比较,并根据湿度值打开/关闭加湿器。

便携式加湿器电路图

此处给出了使用Arduino自制加湿器的完整原理图:

Humidifier-Circuit-Diagram.jpg (64.97 KB, 下载次数: 100)

下载附件  保存到相册

2021-10-8 17:04 上传

图所示,首先使用7805稳压器和滤波电容将12V直流电源转换为5V直流电源。然后该电源供应给Arduino Nano、OLED、DHT11和继电器。 DHT11的数据引脚连接到Arduino的数字输入引脚。 OLED显示屏通过I2C连接到Arduino的A4、A5引脚。同时,Arduino的数字输出引脚连接到继电器和BJT,用于驱动直流风扇。

为了使设备更加便携以及可可配置,我在万能板焊接了所有组件,如下图所示:

DIY-Portable-Humidifier.jpg (40.63 KB, 下载次数: 107)

下载附件  保存到相册

2021-10-8 17:06 上传

为加湿器编程Arduino Nano

根据电路图成功完成硬件连接后,现在是时候将代码写入Arduino了。在本节中我们逐行解释整个代码。

首先,第一步是在代码中包含整个所需的库,即本项目中的“SoftwareSerial.h”、“wire.h”、“Adafruit_SH1106.h”和“DHT.h”。 “SoftwareSerial.h”和“wire.h”是内置的,“Adafruit_SH1106.h”可以从这个链接下载,“DHT.h”可以从这个链接下载。

#include #include #include #include "DHT.h"复制代码

然后,定义OLED显示屏的I2C地址,可以是0x3C或0x3D,本文使用的是0x3C。通常,1.3英寸OLED的地址是0x3C。此外,必须定义显示器的复位引脚。在本文中,它被定义为 -1,因为显示屏共用Arduino的复位引脚。

#define OLED_ADDRESS   0x3C #define OLED_RESET -1 Adafruit_SH1106 display(OLED_RESET);复制代码

现在,声明一个DHT类型对象,可以在整个代码中使用。

DHT dht; int humidity=0;复制代码

在setup()函数中里面,初始化串口通信和OLED显示屏。软件串口通信的默认波特率定义为9600。这里SH1106_SWITCHCAPVCC用于内部从3.3V产生显示电压,display.begin函数用于初始化显示屏。

void setup() {   Serial.begin(9600);   dht.setup(2);   pinMode(6,OUTPUT);   pinMode(11,OUTPUT);   display.begin(SH1106_SWITCHCAPVCC, OLED_ADDRESS);   display.clearDisplay(); }复制代码

使用getHumidity()函数从传感器读取湿度值,并将其存储在变量中。然后使用相应的函数选择文本大小和光标位置,将其显示在OLED显示屏,如下所示。

  delay(dht.getMinimumSamplingPeriod());   humidity = dht.getHumidity();   display.setTextSize(1);   display.setTextColor(WHITE);   display.setCursor(27, 2);   display.print("CIRCUIT DIGEST");   display.setTextSize(1);   display.setCursor(35, 20);   display.print("HUMIDITY(%)");   display.display();     display.setTextSize(2);   display.setCursor(55, 40);   display.print(humidity);   display.display();   delay(50);   display.clearDisplay();复制代码

最后,为了触发加湿器,将湿度值与参考湿度值进行比较,低于参考湿度水平,继电器被触发,从而打开加湿器和风扇。

  if(humidity


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3