maandag 7 december 2015

Chauffeino: we have contact!


It's been a while since anything happened on the Chauffeino front. Time for a little update. I announced this project back in April 2013, and until a couple of weeks ago, my latest GitHub commit dated back to March 2014. So clearly, not a lot of work was done on this front. The reasons are the same as everyone else's: it's my project, I work on it when I feel like it, and the same goes for the other three gazillion projects I'm currently neglecting. That and well, I tend to see things big. Which means I was getting too bogged down in the list of features I wanted to support, without actually ever getting around to implementing any of them because this one "crucial" feature was blocking progress.

So it was clearly time to change my approach: start small, and build gradually. The new plan is to just start by replacing the current wired thermostat with a wireless one, and have the host computer trigger the appropriate relays. The rest of the features will get added as we go.

With a smaller scope, I started toying around with it again, and I'm proud to say that we have contact:




What you see here is a test with one node spewing out the current temperature in the guest room, furthest away from the boiler room, and the other node connected over FTDI to a laptop in the boiler room, displaying the temperature onto the serial monitor. Seems the signal penetrates the walls well enough.

The code is rather straightforward. The thermostat runs roughly the same code as a couple of years ago, except for the display code which has been temporarily disabled pending a rewrite, and of course the addition of one-way radio communication. The receiver runs a slightly hollowed out version of Felix Rusu's Struct_receive sketch. The code for both nodes during this test is in commit 5200151 on the GitHub repo.

The sender is breadboarded as such:


The receiver doesn't need a breadboard, just a FTDI connection back to the laptop running the serial monitor.



There have been some changes on the hardware front since I started this project. The original Moteino R2's have been replaced by the newer R4, which uses a different and more performant RFM69 radio chip as opposed to the original RFM12B. This means a new library, but luckily not a lot needs to change as Felix Rusu has made the APIs near identical. The benefit of going R4 with RFM69 is increased range opposed to the previous generation. Also, they're red and sexy. ;)

Another change is replacing the old Hitachi HD44780 2x16 character display with a nice, and not to mention daylight readable PCD8544 (aka Nokia 3310/5110) graphic LCD. Better power consumption and readability in daylight without having to hunt down specific editions were the main factors in this decision. And they're commonly available and cheap to boot, so that was a no brainer.

Some preliminary tests were carried out with the BeagleBone Black to see if I could trigger the relays on the SainSmart 16-channel relay board, and that worked fine too. So the next step is creating a serial protocol between the Moteino and the BBB, and a simple scheduling program, so that the relay can be triggered depending on the current vs. requested temperature.

Later down the line I plan to experiment with improvements; my head is already overflowing with possible additions to this core functionality. But for now, let's just focus on the basics. If winter finally decides to make an appearance, I'd like to test this thing, and that won't happen as long as it's one circuit on a breadboard, a small computer in a cardboard box, and a bunch of crazy ideas in my head.

Geen opmerkingen:

Een reactie posten