I’ve been hacking away at The DataMaker recently and just finished sourcing parts for the Mk2. In the mean time I’ve been tweaking Squirrel code with @jackchalkey to increase the refresh rate and add some new data feeds (this is a data-maker after all). After making some changes to imp.wakeup the values from the potentiometer now update every 0.5 seconds. Great! In addition, adding the imp.rssi & hardware.voltage functions means I can now remotely monitor WiFi signal strength and battery voltage. As the DataMaker sends all its data to Xively, ‘triggers’ can be set to determine state changes. (Excuse the low quality screen grabs).
In this case the http posts are being sent to the DataMaker to trigger the internal LED on or off depending on the position of the potentiometer. But that’s not particularly interesting. Lets apply the same technique to the WiFi signal strength feed and make it do something interesting. Below is the a graph of the DataMaker being placed 3 meters away from the router and then directly on top (10cm’s).
Now some trigger points.
The Imp will be ‘listening’ in for these http POSTs and switching on a LED depending on the trigger point. Below is a video showing a Geofence.
As soon the the DataMaker leaves the ‘fenced’ area the LED will turn on to let me know that it has left the prescribed zone. Using a web service like Pushover and Zapier pretty much anything can now be triggered including tweets, push notifications and even instagram uploads. Here is a push notification from my iphone that was triggered by the DataMaker leaving the geofence.
Known issues
The Imp doesn’t actually know where in space it is, all is knows is how close or far it is away from the router or access point. Therefore bands or zones can be picked out more easily, rather than distinct points. Consider this approach like the London Transport Zones. Additionally, Wi-Fi is a 2.6GHz radio frequency meaning that it’s susceptible to interference from microwaves, cordless telephones and even space weather. Also, this method is absolutely reliant on good calibration.
This method is going to me used in my IoTea (Internet Connected Samovar) which I’m currently working on, probably to ring an alarm or send me a push notification when the ‘remote control’ has been moved from it’s usually place.
I must admit to being rather surprised that at short ranges (like in the video) this method is accurate to about 10cm’s!