Had to have a sphinx 1.10-beta rpm for CentOS 5. All good, just download. But the same machine also needed an updated PHP package. Which depended on MySQL 5.1. Downloaded those from www.jasonlitka.com
Sphinx 1.10-beta depends on MySQL 5.0 from CentOS. … Read the rest
Controlling temperature in a room can be a complicated task.
It depends on the room obviously, conditions needed in that room, the amount and types of sensors installed etc.
For keeping this system somewhat general, as there should be no artificial limits, starting from simple solutions and then adding complexity seems the way to go. Also this system should still work if some non essential sensors fail.
The system this device is intended to control, composes of a heating element and a heat carrier which distributes heat around the room.
If, trying to do rpm -e You get
error: "package" specifies multiple packages
and looking for that package Your rpm database lists it twice or more
Starting from hardware side of things, all components were tested separately on breadboard. Putting all this together in a manageable package is just a bit of work.
The compnents used here are:
1x Arduino Duemilanove board
As usual a lot of work is done because there is an itch to scratch. The reason for this heater controller project is simple. My house has a underfloor water heating system, where water is warmed up by direct flow electric heater from www.starlevel.ee. A fireplace is also used for heating.
Connecting Arduino to a network need a bit of hardware - a shield in Arduino terms. http://www.nuelectronics.com/ makes some nice hardware for Arduino, including an ethernet shield. Unfortunately software and libraries that does come with their ethernet shield are weak.
Internet and open source comes to rescue again. Much more useful library can be found at http://blog.thiseldo.co.uk/?cat=14. works much, much better.
Only one big issue - it does not now nothing about MTU. If you want to send data that is longer than MTU (usually 1500 bytes) then you are out of luck.
The next logical step for using sensors, in this case LM35 and DS18B20 temperature sensors, is to shield them somehow from elements. I am not very comfortable installing a bare sensor outside, into the rain for example.
Some kind of small metal pipe should bee good enough. I did find some electric cable connectors for a thick power cable in local hardware store.
I used some plasticine like stuff, which hardens in about an hour and is intended for emergency car repairs, to plug one end of that tube.
Playing with temperature sensors on breadboard is cool, but usually, if one has more than one sensor, one likes to get some distance between them.
These are no scientific tests, but in my real world application, LM35 likes shorter cables. The shorter the better, or it will get large fluctuations in measurements.
A cable about 3 meters is as long as I would go. Cable length of 5 meters got me into trouble. Consecutive readings did vary in more than 5 degrees. Not good.
To move something in the real world, more volts and amperes are needed than Arduino can put out bu itself. Relay to the rescue.
A relay is an electrically operated switch. Very nice description by http://en.wikipedia.org/wiki/Relay
Unfortunately, connecting a relay directly to Arduino is not possible or at least not feasible.
Relays usually need more than 40mA at 5V to operate. And that is the maximum, Arduino can supply. So more electronic components are needed.
At least three good stories, implementing almost the same schematics are http://www.glacialwanderer.com/hobbyrobotics/?p=9,
Finally got this DS18B20 working. Actually three of them. And in two modes. Parasite power mode and main mode.
A 4.7K ohm resistor is the key.
Starting with the main mode, three wires are needed, as this sensor has three pins.
Datasheet is here http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf.
Connection is almost simple.
Pin 1 to Arduino ground
Pin 2 to Arduino digital input
Pin 3 to Arduino 5V
And a 4.7K resistor between pin 2 and pin 3
Works with three wires, as seen on the followind illustration.