Until of course, it wasn't.
See, the new thermostat boasted nice features such as 7-day individual programs. But nobody told me what a royal pain it was to set up. Once you have it set up approximately right, you really don't want to go through that process again if you realize your schedule has suffered another change... Or what about "intelligent start so that it will start earlier on cold mornings"? Never noticed a thing; in fact, if I set it to 20°C at 5am, at exactly 5am I'll hear the relay click.
So yeah... Most people would just put up with that, as they do with most failings of technology. But I just got my Raspberry Pi back and was looking to put it to good use. Already have a computer hooked up to the TV, so a better controller for the central heating was the first thing that came to mind. The goal is to do:
- per-room programming so you can heat up different parts of the house at different times
- intelligent predictions: the system should learn how long it takes for a room to warm up, given some parameters such as outside temperature, the temperature of the water for the radiators, and the heat demand for the rest of the house perhaps - this means that when I want 22°C at 5am, I'll program 22°C at 5am, which is a lot more intuitive than the classical room thermostat's "but it takes half an hour to warm up, so set it for 4:30" approach
- if possible, turn off the central heating unit when heat demand is low enough, but turn it on again in time for the water to have warmed up before the first circuit demands heat
- be easy to program
- allow dynamic control, either through a web-interface, or later, through an Android app
Looking around, I discovered the Dallas Semiconductor DS18x20 digital thermometer chips, which could be read directly on the Pi as it doesn't have any analog pins. They use the 1-Wire protocol which means you can hang a bunch of 'em on one input pin, and read each and every one of them individually. So you can guess what my first (dumb) idea was: run wires through the whole house, connecting to DS18B20 sensors in every room, all connected to a small Pi which in turn was hooked up to the central heating through a bunch of relays. Thankfully a colleague had some experience wiring his house up with electronics... He politely informed me that this idea wouldn't fly due to electrical interference from other cabling in the walls, even if I'd use all shielded cables.
So back to the drawing board: I needed a way to read those thermometers directly in the room, but somehow report the measurements to the central Pi. Which is when I stumbled upon the Moteino project by Felix Rusu. A Moteino is in essence an Arduino at 1/4 of the footprint, with a built-in wireless RFM12B transceiver. Can you say wireless room thermostat?
- March 28: order a bunch of components, wait for them to arrive...
- April 11: after some trouble getting the LCD to display "hello world", we are reading temperatures off a DS18B20, displaying something on an LCD and spewing debug output on the Moteino's serial port:
Sensor address: 408723415740048
Temp resolution: 12
Requesting temperature
Temperature: 22.44
Requesting temperature
Temperature: 22.44
Requesting temperature
Temperature: 22.44
Temp 0: 22.44
Temp 1: 22.44
Temp 2: 22.44
Requesting temperature
Temperature: 22.44
Requesting temperature
Temperature: 22.37
Requesting temperature
Temperature: 22.37
Temp 0: 22.44
Temp 1: 22.37
Temp 2: 22.37 - April 12: ChauffeIno is born.
Geen opmerkingen:
Een reactie posten