SurtrTech
Published © GPL3+

DIY Humidifier - Grove Water Atomization

Make your own humidifier or scent dispenser using Seeeduino Nano + Grove Water Atomization, keep track of the current humidity with DHT11

BeginnerProtip1 hour253

Things used in this project

Hardware components

Seeeduino Nano
Seeeduino Nano
×1
Seeed Grove - Water Atomization v1.0
×1
Seeed Grove - Temperature & Humidity Sensor (DHT11)
×1
Adafruit OLED 128x32
×1

Story

Read more

Schematics

Wiring_1

Direct Test

Wiring_2

Humidifier wiring

Code

Grove_Atomizer_direct_test.ino

Arduino
/* This code works with Grove Water Atomization module
 * It activate the atomizer for 3 seconds and turn it off with a message shown of the statut
 * Refer to http://Surtrtech.com for more details
 */

#define Atomizer A5          //Atomizer EN pin

void setup() {
  
  Serial.begin(9600);
  pinMode(Atomizer, OUTPUT); 
  
}

void loop() {
  
Serial.println("Atomization !!!!");
digitalWrite(Atomizer,HIGH);
delay(3000);

Serial.println("Atomization OFF");
digitalWrite(Atomizer,LOW);
delay(3000);

}

Humidifier_Grove_Atomizer_DHT11_OLED.ino

Arduino
/* This code works with Grove Atomizer, DHT11 and OLED ic display
 * It shows the current temperature and humidity alongside the humidifier statut
 * It constantly read the ambient humidity and try to keep it at a defined humidity level (here is 70%)
 * and it activate the humidifer/atomizer everytime it's necessary to do so
 * Please refer to http://SurtrTech.com for more details
 */

#include "DHT.h"                  //Required libraries for DHT and OLED
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define Atomizer 3       //Atomizer EN pin
#define DHTpin 2         //DHT signal pin
#define DHTTYPE DHT11    //you can use DHT 22...
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
#define OLED_RESET    -1 // Reset pin # (or -1 if sharing Arduino reset pin)

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Declaring the display name (display)

DHT dht(DHTpin, DHTTYPE);

void setup() {
  
    Serial.begin(9600);
    dht.begin();
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Start the OLED display
    display.clearDisplay();
    display.display();
    pinMode(Atomizer, OUTPUT);
      
}

void loop() {
 
  float h = dht.readHumidity();         //Reading the humidity/Temperature values, you can calibrate them if you want
  float t = dht.readTemperature();      //You can add true between those brackets to make it Fahrenheit instead of Celsius

  if(h>=70){                           //if the humidity % is equal or above the setpoint (70) the atomizer stops
    digitalWrite(Atomizer,LOW);
    
    }
  
  display.clearDisplay();
  display.setTextSize(2);                    
  display.setTextColor(WHITE);             
  display.setCursor(0,0);                
  display.print("H "); 
  display.print(h,1);
  display.print(" %");
    
    if(h<70){                      //Otherwise it will be on and it will show "On" on the display alongside the current temperature and humidity
    digitalWrite(Atomizer,HIGH);
    display.print("On");
    }
    
  display.setCursor(0,19);                
  display.print("T "); 
  display.print(t,1);
  display.print(" C");
  display.display();
  delay(1000);

}

Github

https://github.com/adafruit/Adafruit_SSD1306

Github

https://github.com/adafruit/Adafruit-GFX-Library

Github

https://github.com/adafruit/DHT-sensor-library

Credits

SurtrTech

SurtrTech

5 projects • 89 followers
YT Channel, run by Automation and Electrical Engineer, Electronics amateur.

Comments

Add projectSign up / Login