Project Feasibility and Approach Advice please :)

Hi all,

I’ve been reading the forums for quite a while and skirting around the possibility of doing some Arduino projects for a while, but now I’m ready to ‘pull the trigger’ as it were and just go for it.

So I’m going for a relatively (compared to some I’ve seen) simple home automation system.

Below is an image of the plan I have in mind and so I’m looking for some suggestions to improve/simplify things, or if this is even feasible or if I’m missing anything.

I’m not thinking too much about wiring/coding just yet. Just trying to get a firm idea of what will and won’t work.

I’ve attached an image to illustrate what I have in mind.

The only thing that I’m currently ‘troubled’ about is whether the voice data from the mic’s attached to the arduino’s can be transmitted via LAN to the server pc and picked up by VoxCommando. (VoxCommando seems to be the easiest way to go about things, ie editing commands in one place as opposed to programming each board seperately, however I am open to other ideas :))

So, any suggestions/comments would be most appreciated :slight_smile:

Thanks in advance,
TheMightyspud

I would suggest RasPis for the nodes (and local voice processing) and dc motors for the blinds.

Could I ask your reasoning please? It's not that I question your skill/expertise etc. just a matter of knowing why (if I choose to go that route) I'm doing it that over the way I'd thought of :)

Thanks TheMightySpud

A standard arduino doing ethernet and recording sound is having a hard time, there is just not enough RAM to store anything, and not enough processing power to work on that data.

Raspi needs some extension for the microphone, but it has an embedded LAN, lots of RAM, an embedded camera interface, four much more powerful cpus, HDMI output, ... and its running Linux. You can probably find a voice recognition program that runs on the Raspi.

Servos that are capable of moving blinds are more expensive than a DC motor and a h-bridge. AFAIK Most roller blinds I have seen were driven by simple motors (with endstops), not servos.

Thanks for the clarification. :-). I’m not completely sure of how it all works so I may be completely wrong, but in my head the arduino’s won’t actually be handling anything complicated in terms of the voice stuff, just sending (if it’s possible) the voice data over the lan to the server machine which will then do all the processing and send a simple on/off signal back to the arduino’s.

Forgot to mention that I’m going the powerline route because Wi-Fi in my house is awful and I’m already all ‘powerlined up’ :slight_smile:

Why do you want to use an overloaded microcontroller for the job of a micoprocessor?

Why do you want to create a single point of failure in your system? (the PC)

The RasPi is nearly ready for your setup with a price of around 30€ (+audio), you can attach any cheap monitor (with HDMI), if wished a keyboard, mouse, usbsticks... it is even capable of rendering 1080p movies.

If you absolutly want to use an arduino, it could control the lights and the blinds under direction of the Pi. Thats the area arduinos fit in best, they dont like pushing data through Ethernet.

Here the first hit of my search https://sites.google.com/site/observing/Home/speech-recognition-with-the-raspberry-pi one more http://computers.tutsplus.com/articles/how-to-control-a-lamp-with-voice-commands-and-a-raspberry-pi--mac-60825

Thanks for all the Info Whandall. I'll be honest and say I was avoiding the Pi because I'm going to be pushed time wise in regards to learning Python, but after a bit of poking around I think you might be right and that it's the way to go.

Something else I was trying to avoid was having 4 seperate units that would need updating individually if I ever changed anything, I've not had a look for this as it literally just occurred to me, but is it possible to 'push' updates to the pi's remotely? for example, make changes on my main pc, and then send them via lan to the individual pi's?

Thanks TheMightySpud

Shure, updates should be easy.

The system uses a micro-sd card for storage, so you exchange files, modify config files, you don't have to flash the chip.

You have a full running Linux on the Pis, you can run a browser, download, upload, run demons, run a web/FTP server, use cron, run the arduino ide, use https.

You can use nearly any programming language, if you like.

You can also run a Pi headless, without display, keyboard or mouse. In this configuration you manage it with a textbased shell connected through https (ssh) from anywhere.

Don't be afraid of Python.

It is a very elegant language with a lot of interesting features, so its really worth learning it. ;) The basics are very easy, Python is often used in schools as a beginner language. (And its much less strange than Haskell, LISP, Prolog, FORTH or APL)