My mental fire has too many irons on it… things are falling off the tracks left and right! So I figured it would be a good idea to write some stuff down, as a note to myself, and perhaps to interest of anyone reading this!
Project: Water Watcher
Problem: My reverse osmosis filter that delivers drinking water has some sort of problem, in that it continously consumes water, even when the production tank is full. My thinking is the auto-shutoff valve has failed. Well, I could get another asv but whats the fun in that. The filter system has a pressure sensor in it, which disables the booster pump (100psi output) when the tank reads full, but the water supply is not controlled. I’ve been manually turning the water supply on and off to the filter, as well as unplugging the pump when the water is turned off. The second, perhaps larger problem is, my filter drains its brine (waste) water out a tube through the side of my house, rather than going down the drain. In the summer, I collect this water and use it for filling watering cans. In the winter, the water likes to freeze in the drain.
Goals: Design and fabricate a microcontroller operated filter management controller. The first goal will be to monitor the outdoor temperature. When the outdoor temp is safely above freezing, enable filter operation. The second goal is to monitor storage tank pressure. When the tank reads low, enable filter operation. This is so easy, I’m not sure why I haven’t started it yet.
Goal number one; using as DS18B20 digital temperature transducer, monitor the outdoor temperature. A simple interrupt driven routine can sample the temperature every N amount of time. If the temperature is above freezing + 5 degrees (to account for any sensor accuracy problems), enable a register in the microcontroller, saying filter operation is allowed. When the temperature is below the set-point, disable filter operation. This should take five or ten lines of code.
Goal number two; using the pressure switch that is already part of my filter, sense the fluid level in the tank. The switch is normally closed, and opens when the storage tank is ‘full’. An interrupt driven routine will sample the state of this switch. When the switch is closed, an input pin on the microcontroller will read low, indicating the tank needs topping-off. The mcu can then set a register enabling operation of the filter.
The microcontroller in its idle loop, can monitor the state of the registers mentioned above, ANDing them together. When both registers are set to enable, the mcu will enable the booster pump and a solenoid valve (sprinkler valve) controlling the water. When either the temperature or pressure registers read disable, the AND will read a zero and filter operation will be suspended. Additional features could include a remote led status display, indicating filter status (temp high/low, pressure high/low, pump and water on/off). Another feature that would be handy is a change filter indicator, which times out every three months, indicating the need to replace the prefilters. I’m not sure how to do this, without including a real time clock, and that doubles the expense of this project. Of course, there are probably simpler means, like counting the oscillations of a 32khz crystal and just waiting for approximately three months worth of time to go by?
Project: Finishing the MAX1668 temperature sensing data logging clock.
I already have the clock and data logging working, but sort of lost interest when it came time to program some data analysis and reporting features, as well as make a PCB for the circuit, so the clock could be installed in an enclosure. So the clock has been sitting under my monitor shelf. Its kinda handy as it is, I use it as a desk clock and local temperature readout.
Goals; Add some menus to review logged data. Daily average temp readout for each channel. Daily and all-time min and max memory for each channel. Temperature trend indicator (rising / falling). Historical data like lowest recorded temp (what date, time and channel), highest recorded temp (date, time, channel).
Project: High end kitchen counter lights.
Goals; The lighting concept works… scaled up, the lights should provide ample light for task lighting. I need to build (or find) a power supply for the lights (~36v, 1a). I also need to start on the controller. Some features I want to have:
Using a capacitive proximity switch (qprox). Touching the fixture should change the state of the lights with light sensing intelligence. If the room is dark and you request the lights to turn on, they ramp up to perhaps 25% output, as a night-light mode. Another touch of the fixture would bring them to 100%. If the room is light and you request a turn on, they would ramp up to 100%. Additionally, if the room goes from light to dark (like the main lights were turned out at night), ramp down to 25% output and remain on for an hour or so, as a night light. If the main lights are off and the fixture is off, should the main lights come on, sense this and automaticly come up, ramping up to 100%. If the room is light, and the fixture is on, touching the fixture shall turn the fixture off. If the room has gone from light to dark and you touch the fixture with-in N minutes, the lights should turn off, after N mintues, if the fixture is still on and another touch is detected, ramp to 100% output.
All that sounds like a lot, but it should easily be handled by a microcontroller and maybe a few dozen lines of code, all those conditions are simple binary logic comparisons.
Well, that was a good start, got a few ideas down – still too many in the ‘ol brain, so there will be a part two shortly!