Adruino Project - Humidifier Revolution

  • This project is from Adruino class, the topic is hack something.
    - Choose a consumer electronic product to dissect and improve upon via adding/modifying functionality
    - For safety, product must not be AC powered (plug directly into wall). It MUST use an AC-DC adapter or be battery powered
    - Acquire the product as cheaply as possible (thrift stores are great for this.)  Older is better.  Simpler is better.
  • Humidifier Revolution
  • I choose the usb humidifilier to hack.
  • Explosive View
  • Advantage
    1. It is so small, easy to bring it with your personal.
    2. The voltage is 5V,  it’s safe to people.
    3. You can use the power from your laptop’s USB or your Portable Power Bank Charger or whatever who have USB port.
    4. It is cheap. (Only $10.00)
    Disadvantage
    1. When it is working,it will come out noisy sound.
    2. You have to connect USB port.
    3. The length of straw from humidifier is not enough long.
    4. Mist only go to top of humidifier, you can’t change direction.
    5. You can’t control the mist power, the only way is turn on or turn off.
    6. There is no light to show you if you turn on the power button or not.
  •  
     
     
     
     
     
  • Design Proposal
     
    Add some parts to the Humidifier: buzzer, IR sensor, remote control, switch, one blue led light, one green led light.
    You don’t need to touch the humidifier button to turn on the power. You can use remote to control the humidifier: turn on it, turn off it,  turn up the power, turn down the power. With press the button, there will have led light and sound to remain you it work or not. If you press "7" "8" "9" button, It will have different power.The details will show in the video.
  •  
     
     
     
     
     
  • Block Diagram
  •  
     
     
     
     
  • Arduino Connection View
  • The Circuit:
  •  
     
     
     
     
    Video Showing:
  •  
     
    Code:

    #include <IRremote.h>
    //define pin 11 to receive single
    int RECV_PIN = 11;
    //define pin5 is led output
    int Humidifier = 5;
    int Led_up = 6;
    int Led_down = 3;
    int Buzzer = 9;
    IRrecv irrecv(RECV_PIN);
    decode_results results;
    int val = 0;
    void setup() {
     Serial.begin(9600);

     irrecv.enableIRIn();

     pinMode(Humidifier, OUTPUT);
     pinMode(Led_up, OUTPUT);
     pinMode(Led_down, OUTPUT);
     pinMode(Buzzer, OUTPUT);
    }
    void loop() {
     if (irrecv.decode(&results)) {
       //press"+" button
       if (results.value == 0x00ff02fd && val < 255) {
         val = val + 5;
       }//press "-" button
       else if (results.value == 0x00ff9867 && val > 0
      ) {
         val = val - 5;
       }
       //reveive next
       irrecv.resume();
     }
     //delay(500);
     Serial.println(val);
     analogWrite(Humidifier, val);
       if (results.value == 0x00ffa25d) {//0
         val = 180; //turn on
       }
         if (results.value == 0x00ffb04f) {//0
         val = 0; // turn off
       }
       if (results.value == 0x00ff30cf) {//0
         val = 180; // button 1 minimum  power
       }
       if (results.value == 0x00ff52ad) {//0
         val = 255; //button 9 max power
       }
     if (results.value == 0x00ff02fd) //+ button blue light
       {
         digitalWrite(Led_up, HIGH);
         delay(100);
         digitalWrite(Led_up, LOW);
         delay(100);
       }
      if (results.value == 0x00ff9867) //- button 
       {
         digitalWrite(Led_down, HIGH);
         delay(100);
         digitalWrite(Led_down, LOW);
         delay(100);
       }
      if (results.value == 0x00ff02fd) //+ buzzer
          {
         digitalWrite(Buzzer, HIGH);
         delay(100);
         digitalWrite(Buzzer, LOW);
         delay(100);
       }
      if (results.value == 0x00ff9867)// - buzzer
          {
         digitalWrite(Buzzer, HIGH);
         delay(300);
         digitalWrite(Buzzer, LOW);
         delay(100);
       }
          if (results.value == 0x00ffa25d) // Turn on buzzer
          {
         digitalWrite(Buzzer, HIGH);
         delay(1000);
         digitalWrite(Buzzer, LOW);
         delay(100);
       }   if (results.value == 0x00ffb04f) // Turn off buzzer
          {
         digitalWrite(Buzzer, HIGH);
         delay(1000);
         digitalWrite(Buzzer, LOW);
         delay(100);
       }
    }