Hey guys - I just stumbled on this project and it looks really cool. I've gotten interested to maybe buy an emonTx and try to use one of my retired Android phones as a combination base station and display. Anybody done that before or considered doing it? Any problems you expect I would run into?
The first challenge seems like it would be modifying the emonTx to communicate over wifi. It looks like maybe an RN XV could be used for that.
After that, the rest looks as though it might be pretty easy. The LinuxOnAndroid project looks like it would make it relatively easy to get a Linux platform going on the Android phone to allow running emoncms.
Judging from lots of discussion about burning up SD cards with too many writes, I'm not sure if a spinning hard disk might need to be attached to the phone to handle the write traffic. If so, it seems it could be added with USB-on-the-go.
Anyway, just curious to get some thoughts on this idea?
Re: Retired Android phone as Base Station and Display
Anythings possible!
But the emonTx is designed around radio use not wifi, so you would be looking at redesigning the hardware, adding to the arduino software code and the EmonCMS code as well.
The cost of adding wifi to the EmonTx is probably about the same as buying a Pi.
Why not use EmonTx and run EmonCMS on a Pi, and use the android phone as a display?
That should be enough to keep a software engineer busy ;-) You'll get to understand what the software does/doesn't do prior to re-engineering of the platform
Re: Retired Android phone as Base Station and Display
It looks to me like the component cost for adding the wifi would be a bit cheaper, but certainly not dramatically. If I value my time at anything then definitely the pi is the cheaper route :)
I have a degree in Computer Engineering so I have a little hardware background but I've been out of school for awhile and I've been doing pure software work for 11 years now. I thought it might be a fun little diversion to tinker with the hardware and do the wifi route. I don't have a ton of spare time though so just doing the standard deployment with a pi as a base is probably the smarter route.
Re: Retired Android phone as Base Station and Display
Hi
I've got a (slightly) similar setup that might be useful. I used an existing Arduino Uno I had, and added an Ethernet shield and the EmonTX shield to that. This is able to monitor four CT inputs and voltage, and send these directly over to emoncms.org. So no wireless chips are needed. It plugs directly into a router.
The Android phone then displays the emoncms dashboard on full screen on the Android's native browser. Though it would certainly be possible to create a simple Android app that does this. Potentially, though, if you have the Arduino plugged into your router and the Android connected wirelessly to the router, you could run emoncms on the Android and have the Arduino sending the data to that.
I also think it would be really cool to use a rooted Nook (eg. running Android) as a low-energy e-Ink display, using the same method.
You can also get cheap Ethernet dongles for Android phones (at least for fairly modern Androids) --- I have had great success with this one on Amazon: http://goo.gl/5pdlwl --- that would mean you could plug the phone directly into the Arduino via Ethernet, no router or Internet required.
I suppose another option (avoiding need for Ethernet shield) might be to simply plug the Arduino's USB interface directly into the phone (if phone supports OTG) - and read the current values from the serial output of the Arduino. You'd need a fairly recent phone that supports USB OTG though.
Tom
Re: Retired Android phone as Base Station and Display
I think a potential problem with anything that requires USB OTG is that it doesn't look like you can charge the phone with something attached via OTG.
Re: Retired Android phone as Base Station and Display
I got an emoncms server running on the phone witthout much trouble. Now the question is whether I actually bother try to follow through with the idea of getting an emonTx set up to send data directly to it or instead I just go the standard pi base route...