At the moment I would really appreciate your experience and insights about going wireless. I’m working on the topic of “remote presence” and have so far built a set of tangible objects that talk to each other via Bluetooth. Here are some pictures, video and other material: http://dasein-tokyo.tumblr.com/
In a nutshell, serial-in (pressure or heartbeat) in one location causes an effect in another (ex. sculpture leds gradually light up). I have used different Arduinos (Uno, Fio and Lilypad), programmed with Arduino IDE and connected to each other with Xbee-modules (of Series 1).
Locally communicating objects – check! But I have almost lost hope with upgrading from Bluetooth to Wi-fi (which would allow actual use in real life…)
The problem seems to be the speed in which the serial input can be sent; most wifi-solutions (that I’ve found) allow only periodic measurements instead of real-time analog serial. (With xbees the baudrate was as high as 115200, which maybe be not necessary…)
Do you know if this kind of object-to-object serial communication is even possible with wi-fi (for a beginner like me)? Could Xbee Wifi with Etherios Cloud service or Electric imp do the trick?
I’m all ears to any ideas and suggestions…
Looking much forward!
Emilia
Update 3.1.2014 Due to confusion and incorrect use of term, I just replaced the word analog with simply “serial”.
With wifi/Bluetooth/Xbee the analog signals need to be digitized anyway. They are not transmitted in analog form, modulated on the carrierwave. It becomes digital. So there is no way around it to sample them at some rate. Either you do that with a microcontroller like the arduinos at whatever high sample rate you need (and send data packets of multiple samples to reduce protocol overhead slow enough not to overload the link), or the wireless module you have (Bluetooth, XBEE) does it autonomous but at less convenient or not so tailormade rates. Reconsider what you need to be analog. Or lookup what analog means, and what happens when thing are converted to/from digital samples. You might have a misconception of it and are using the word incorrectly
Thanks for your prompt reply. Indeed analog might not be the correct term and I just updated the thread by replacing “analog” with simply “serial”. All that matters is that I could somehow send and receive serial data at a high-enough speed (even every milliseconds would do it in order to achieve the gradual / analog effect).
Do you know if that is doable?
How about would you have ideas for which hardware and software to use?
Realtime doesn’t happen with wifi, xbee and probably bluetooth either (not sure if the latter is full-duplex or half-duplex communication). Only one device can talk on the airwaves at a time, and the others have to wait. So you have to accept latency in various amounts. Transmission can be interrupted or distorted by other radio sources and may need to be retransmitted. If that is done automatically depends on the protocol used. Edit: probably not noticable in your project, but can happen, and thus need to take into consideration.
I guess that 1 kHz sample rate is doable, but it depends on how much channels, sample resolution and data representation (binary vs. Ascii) and formating overhead is needed. Collecting samples into a packet improves bandwith through put, but increases sample latency. I will respond later once I had a look at your projects site and see what’s involved.
If the receiving end of the above is a “PC” of some sort (?SoC?) then getting the data on a LAN is simple. While putting data on “the Cloud” (Imp) could also work, I’d be worried that the extra latency would show up. As said above packetizing the data, so it’s all a bit late, and then buffering it at the receive end would help with any stuttering.
In this case my next question would be how - what, to your experience, would be the smoothest way for “upgrading” this same project from Bluetooth to Wifi? It would be of course quite fantastic if the Xbee Series 1 modules could just be replaced with Xbee Wi-fi modules - yet there must be quite a few modifications to do!
In the meanwhile I will get more educated with these topics (I’m very illiterate with anything to do with technology and electronics) and get back with more precise questions.
I tried replacing the regular Xbee Series 1 -modules with Xbee wi-fi:s, and everything worked seamlessly – yet only when the modules were both connected in the same local network.
Now I wonder whether it is possible to make them talk to each other from one Wi-fi module and network to another, for example from Finland to the USA and back?
Do you have an idea whether this can be done directly (from device to device) or would I need to pass the serial data through some cloud service (ex. data.sparkfun.com)?
EmiliaT:
Now I wonder whether it is possible to make them talk to each other from one Wi-fi module and network to another, for example from Finland to the USA and back?
Do you have an idea whether this can be done directly (from device to device) or would I need to pass the serial data through some cloud service (ex. data.sparkfun.com)?
According to the hook-up guide the latter, at least, is possible.
But these modules have another, more unique application: to make Internet-of-Things projects super-easy. Using the Etherios™ Device Cloud service, you can quickly get them connected to the Cloud, where they can publish data and receive commands as well.
More at the above URL. In this regard it seems they are “IMPish” in nature.
Yet I have only found examples about streaming sensor data into the cloud or controlling the hardware from the cloud (ex. light up a led).
In these examples the cloud is either at the sending or receiving end, but I’m quite confused about how to pass the data just through the cloud, from one device to another. For example, if I manage to stream pressure sensor serial to the cloud, how to retrieve that data and make a led gradually light up in another location?
There seems not to be yet any tutorial for this particular case and that’s why I wan’t sure it it’s even possible. Yet I’m willing to try (and share my findings) if it’s doable!
EmiliaT:
Yet I have only found examples about streaming sensor data into the cloud or controlling the hardware from the cloud (ex. light up a led).
I'm afraid I don't know anymore that you re: this. But if the [u]underlined above[/u] is possible (and it is !) then the infrastructure to make happen what you want ... exists. If one part of your hardware/software can post data to the "cloud", and another can poll/request data from the "cloud" then remote control can happen. Then it's a question of the latency involved and whether that meets your needs and/or can be improved upon.
How, exactly, did the underlined above happen ? How was that done ? Was it a “push” from the cloud to the client or a “pull” from the client to the cloud ?
Now I wonder whether it is possible to make them talk to each other from one Wi-fi module and network to another, for example from Finland to the USA and back?
How is the network configured? Are you talking about private home networks? They are usually behind NAT firewalled routers. That may need port-forwarding and fixed IP-adresses on both ends to work consistently. So then the question is if you have access to the configuration of the router/network.