自制简易加湿器

news/2024/11/29 8:08:52/

(后面制作pcb)

一:说明

1.该加湿器自定义湿度阈值为60%RH,可手动按键更改阈值

2.加湿器可USB供电或自带使用锂电源电池

3.加湿器为自动控制,无需人工干预

二:加湿器控制策略

湿度小于阈值时,开通继电器使物化片工作。

湿度小于阈值时,关闭继电器,物化片停止工作

三:加湿器控制芯片

加湿器的控制芯片为Arduino Nano(Atmega328P)

参考下图:

四:湿度传感器

加湿器采用的湿度传感器为DHT11,具体可度娘一下~

带有上拉电阻的DHT11模块

五:其他介绍

  1. 两个按键
  2. 一个继电器
  3. 备用电源电池开关
  4. 单独供电图:
  5. USB供电图:单独供电图
  6. ACT:雾化片这里就不展示了,tb上有的是>_<

  7. 六:软件编程

    软件IDE:Arduino IDE(没错,就是有手就行的ArduinoIDE!)

    ACT:ArduinoIDE下载网址:

    官网下载https://arduino.en.softonic.com/

    百度网盘资源地址:https://pan.baidu.com/s/1pL9CnI7

    网盘资源提取密码:无需提取码

    全部代码如下:

    #include <Arduino.h>#include <SimpleDHT.h>#include "U8glib.h"//#include <U2g2lib.h>#define DHTpin 5 //自己按需求修改#define Red_led 2#define key_1 7#define key_2 9#define relay 13U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);// 初始化i2c接口SimpleDHT11 dht11(DHTpin);//初始化DHT11对象String tmp;   String hmp;String KHS = "60";//显示阈值int KH=60;        //实际阈值void draw_hello(void) {u8g.setFont(u8g_font_unifont);u8g.drawStr( 0, 22, "Hello Baby!");}void draw_data(void) {//具体显示屏显示内容u8g.setFont(u8g_font_unifont);//设置字体u8g.drawStr( 0, 16, tmp.c_str());//写入字符串u8g.drawStr( 0, 32, hmp.c_str());u8g.drawStr( 15, 48, KHS.c_str());}void setup() {// put your setup code here, to run once:/*GPIO初始化*///pinMode(Red_led,OUTPUT);pinMode(8, OUTPUT);//不知道干啥的pinMode(key_1,INPUT);pinMode(key_2,INPUT);pinMode(relay,OUTPUT);/*串口初始化*/Serial.begin(9600);draw_hello();delay(1500);/*Here is nothing!!*//*这是一个空行*/// flip screen, if required// u8g.setRot180();// set SPI backup if required//u8g.setHardwareBackup(u8g_backup_avr_spi);// assign default color valueif ( u8g.getMode() == U8G_MODE_R3G3B2 ) {u8g.setColorIndex(255);     // white}else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {u8g.setColorIndex(3);         // max intensity}else if ( u8g.getMode() == U8G_MODE_BW ) {u8g.setColorIndex(1);         // pixel on}else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {u8g.setHiColorByRGB(255,255,255);}}void loop() {/*led指示灯闪烁*/while(digitalRead(key_1)==LOW){delay(10);if(digitalRead(key_1)==LOW){KH++;KHS=String(KH);}}while(digitalRead(key_2)==LOW){delay(10);if(digitalRead(key_2)==LOW){KH++;KHS=String(KH);}}digitalWrite(Red_led,HIGH);delay(500);digitalWrite(Red_led,LOW);delay(500);//draw_hello();delay(1200);/*DHT11读取并串口打印显示*/byte temperature = 0;byte humidity = 0;byte humidity_last = 0;int err = SimpleDHTErrSuccess;if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);return;}humidity_last = humidity;         //字符串拼接tmp += String("Temperature:");tmp += String(temperature);tmp += String("*C");hmp += String("Humidity:  ");hmp += String(humidity);hmp += String("RH%");Serial.print((int)temperature); Serial.print(" *C, ");Serial.print((int)humidity); Serial.println(" H");if(humidity<KH){digitalWrite(relay,LOW);digitalWrite(A0,LOW);Serial.println("Warnning!");}if(humidity>=KH){digitalWrite(A0,HIGH);digitalWrite(relay,HIGH);}/*oled显示屏显示程序*/u8g.firstPage();  do {if(humidity != humidity_last){u8g.drawStr( 0, 16, tmp.c_str());u8g.drawStr( 0, 32, "                ");delay(1000);}draw_data();} while( u8g.nextPage() );}


http://www.ppmy.cn/news/252110.html

相关文章

javaScript蓝桥杯----外卖给好评

目录 一、介绍二、准备三、⽬标四、代码五、完成 一、介绍 外卖是现代⽣活中必备的⼀环。收到外卖后&#xff0c;各⼤平台软件常常会邀请⽤户在⼝味&#xff0c;配送速度等多个⽅⾯给与评分。在 element-ui 组件中&#xff0c;已经有相应的 Rate 组件&#xff0c;但是已有组件…

直播问答功能(互动功能接收端JS-SDK)

功能概述 本模块主要用于展示问答模块。 初始化及销毁 在实例化该模块并进行使用之前&#xff0c;需要对SDK进行初始化配置&#xff0c;详细见参考文档。 在线文件引入方式 // script 标签引入&#xff0c;根据版本号引入JS版本。 <script src"https://websdk.vi…

寻访 | 北京量子信息研究院

前言&#xff1a;为了普及科学技术知识、传播科学思想&#xff0c;光子盒特开启「寻访」专栏&#xff0c;带领各位读者探访全球的量子工厂和实验室。 2023年5月30日下午&#xff0c;为期6天的“2023中关村论坛主会期”落下帷幕。 量子计算、区块链、脑机接口、新能源材料——围…

mac无线连接打印机进行打印和扫描

1 连接打印机的WiFi 2 打印 打开需要打印的文件&#xff0c;一般用PDF格式打印。 点击文件>打印。 然后选择对应的打印机&#xff0c;设置好参数&#xff08;份数、黑白彩印、双面打印等&#xff09;后直接打印即可。 3 扫描 打开预览.app。选择文件>从"xxx打印…

打印机上扫描出现连接计算机,佳能打印机上面有扫描打印机是干什么的 屏幕上面显示连接计算机 打印没反应是怎么回事...

满意答案 gwjhtw 2017.06.08 采纳率&#xff1a;55% 等级&#xff1a;12 已帮助&#xff1a;7262人 打印机无线连接操作步骤大同小异&#xff0c;具体如下&#xff1a; 一、计算机和无线局域网(WLAN)的设置。这是首要的&#xff0c;如果没有设置&#xff0c;或设置不成功&am…

无法确认设备和计算机之间的连接打印机,我无法从计算机上通过USB 进行打印...

相关型号 DCP-110C, DCP-115C, DCP-120C, DCP-130C, DCP-145C, DCP-1518, DCP-1519, DCP-155C, DCP-1608, DCP-1618W, DCP-1619, DCP-165C, DCP-185C, DCP-330C, DCP-350C, DCP-385C, DCP-540CN, DCP-560CN, DCP-585CW, DCP-6690CW, DCP-7010, DCP-7025, DCP-7030, DCP-7040, D…

i217lm网卡驱动linux,英特尔I217-LM网卡驱动Windows10

这是英特尔I217-LM网卡驱动Windows10,适用于i217v、i217lm、i218v、i218lm等intel系列的网卡,可以兼容Win7 32位、Win7 64位、Win8 32位、Win8 64位、Win8.1 32位、Win8.1 64位等操作系统,下载后直接安装即可,非常的方便,有需要的不要错过。 软件功能 支持型号: Intel Et…

一些有趣的Shodan搜索

随着不断对信息安全的学习&#xff0c;我收集了各种有趣的、奇怪的安全搜索语句&#xff0c;并将它们成功应用到互联网搜索引擎Shodan中。而且某些查询结果会让我发现一些严重或者古老的漏洞。 当你搜索到某些可疑的“实例”时&#xff0c;为了保护自己&#xff0c;切勿尝试登…