Introduction: E-NABLE Phone Home System
e-NABLE prosthetics - you know, those plastic hands for differently abled people - are wonderful gifts. Stories of children having their lives transformed are almost commonplace now, each one a joyfully tearful story. But what happens after the magic moment? We have heard stories of kids leaving their gifted hands in a closet or in their room because it is too heavy or some of the fingers broke or it's uncomfortable.
Well in any case, worn or not, it would be helpful to track usage of these prosthetics. That's where communications and data logging chips come into the story. With electronics on-board we can get a little "phone home" signal once a day with the day's usage info to get an idea what is going on with the hands. Once a hand is equipped with this technology, there is a whole lot more than just usage tracking that can be accomplished.
So that's what this Instructable is all about - putting smart electronics on hands for usage tracking and other purposes. Oh, and in typical e-NABLE style it turns out to be empowering because the kids who choose to be makers can modify their hand's electronics to do whatever they want. It's powerful for everyone involved to add this capability to e-NABLE hands, so let's get to the next step of our process which is ordering the parts.
Step 1: Ordering the Parts
The star of this show is a special little WiFi chip called the ESP8266. This chip is physically small and is very inexpensive as well. In volume you can get them for one US dollar each or so I am told, and in quantity one they go for five dollars or less. We're going all out for convenience, durability, and ease of use by selecting the Adafruit line of parts in which our board is a ten dollar item: the HUZZAH board. There are plenty of other choices which you can experiment with if you like.
So we have selected the board, what else is needed? Well, we need a battery and a battery charger plus a USB cable for the charger. We also need a programming interface board called an FTDI friend and a separate USB cable for it. Why two usb cables? well, the charger has a USB micro-B connector and the FTDI friend has a USB mini-B connector - whatcha gonna do sometimes eh? OK, so here's the parts list!
- HUZZAH ESP8266 circuit board, $9.95, https://www.adafruit.com/products/2471
- FTDI Friend, $14.95, https://www.adafruit.com/products/284
- mini-B USB cable 6", $2.95, https://www.adafruit.com/products/899
- LiPo Battery 1250mAH, $9.95, https://www.adafruit.com/products/258
- LiPo charger, $6.95, https://www.adafruit.com/products/1904
- micro-B USB cable 6", $2.95, https://www.adafruit.com/products/898
That's a subtotal of around $50 USD for the whole project. You can save some $ on the batteries and cables by scrounging if you like, just be sure to stay within the battery requirements of the HUZZAH board (which are quite generous as I recall).
OK, with parts on order we can now discuss the software, so read on my friend!
Step 2: Software
You can get the foundation of this project in motion with the following tutorial from Adafruit:
There you will learn how to set up your programming environment, add libraries, and get rolling along HUZZAH avenue. Go the full way thru the tutorial to make your HUZZAH board arduino compatible. Note that this is a one-way ticked for Mac users like myself and Linux users as well because the FLASH tool for the ESP8266 only runs on PC AFAIK, though there are some who have FLASHed it from those platforms as well. Either way, the arduino compatible way is what our software is written in so go that route.
OK so load that program up in your Arduino programming environment and have a gaze upon it. Note that I basically smooshed three example programs inelegantly together to form a working program. That's the state of it at this time (Thursday January 7th 2016). It needs work but it does work in a minimalist sort of way. Here's how you use it!
Step 3: Using the Installed Software
When the ESP8266 processor wakes up it shows up on your web services as another SSID, so the way to communicate with it is to go to your device's network chooser and choose the one called "e-NABLE". The password is in the source code near the top after the comments. Select the e-NABLE SSID and enter the password.
Having done that, the ESP8266 now switches into a web server mode where you can now tell it the SSID of your network and also your network's password. Then the software rather unceremoniously tells you on your web page that it is Phoning Home and the LED goes fro solid to blinking.
In Phone Home mode a sample of the battery voltage is made every 10 minutes, which is then reported to the e-NABLE cloud service. You can view this activity at the following two web sites.
You can try those links now to see what the cloud service does at this time. More will be added later. For now, we need to add some features to the software like storing multiple SSIDs, going back to learn mode when an SSID/password combo fails, and better indication of what is going on during report mode. In fact, we want to add sample storage as a data logging capacity.
Also we would like to offer as a first reward for testing, the feature that an IoT device with a motion detector can be left behind say in the wearer's room and when the motion triggers, the hand or armband chirps. These ideas are yet to take form, just mentioning them for now.
Some e-NABLE regulars are ready and poised to take the leap and help out now that I am being called to work at my job full time for the next six weeks. Hopefully some will, such as some have offered to give it a look see. After six weeks if I'm not too exhausted I can pick the baton back up and carry it for a while.