Hack a humidifier with an AtTiny


 

This is a refreshingly simple hack on which I spent only a few hours, most of which were actually for installing Atmel Studio to program the AtTiny 🙂

A friend who’s into cheese making needs to control the humidity of a fridge which he’s transformed into a cheese cave (I think the fridge itself is a wine cellar and has integrated temperature control).

He bought this controller and then tried several off the shelf humidifiers to work with it. The controller has a mains plug through which it’s supposed to simply turn the humidifier on/off.

However, he was having a “silly” problem: all of the humidifiers did not start automatically when plugged in (which is what the controller was effectively doing) but had at least 1 button to be pressed first.

The one he brought me for example, needed to have a button pressed 4 times, to start and cycle through “30 minutes”, “60 minutes”, “90 minutes” and “full ON”.

So I opened it up:

Initial

Internals

 

and was surprised at how nice and clean it was on the inside, and also easily hackable.

After a few measurements I decided that the easiest option would be to hook a small micro-controller and literally simulate the 4 presses of the switch, by taking that line to GND 4 times with a short interval in between.

PrototypeBreadboard

Testing the prototype

 

Once that proved to be working nicely, I simply soldered the AtTiny45 in place, getting 5V from a regulator already on-board, and configuring its fuses to run at 1MHz on its internal oscillator.

Final

Final set up

 

You can also find below the (excessively simple) C code:

#define F_CPU 1000000UL      /* 1 MHz CPU clock */

#include <avr/io.h>
#include <util/delay.h>

#define LED_PIN PB0
#define PORT PORTB	// Data Register
#define DDR	DDRB	// Data Direction Register

void toggle(){
	// take the pin low <=> press the switch
	PORT &= ~_BV(LED_PIN);
	_delay_ms(200);
	// back high
	PORT |= _BV(LED_PIN);
	_delay_ms(200);
}

int main(void){
	// mark the pin as an OUTPUT
	DDR |= _BV(LED_PIN);
	// pin starts HIGH <=> switch NOT pressed
	PORT |= _BV(LED_PIN);	

	_delay_ms(2000);
	toggle();
	toggle();
	toggle();
	toggle();

    return 1;
}

 

Advertisements

One Response to Hack a humidifier with an AtTiny

  1. Pingback: Humidifier Hacked with ATtiny to Auto-Press Buttons @Atmel « Adafruit Industries – Makers, hackers, artists, designers and engineers!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: