/arduino-personality-insights-badge-demo

IoT Demo: Use the IBM Watson Personality Insights Service on an Arduino Yún to analyize your recent tweets and cycle through the results on a (potentially) wearable badge

Primary LanguageC++MIT LicenseMIT

IBM Watson Personality Insights Badge

Arduino Yún-based demo that displays your Twitter handle and "Big 5" personality traits.

Uses IBM Watson Personality Insights service to calculate your personality traits based on your recent tweets.

Picture of badge in action

Set Up

Parts and Wiring:

Breadboard layout

Part Price Vendor
Arduino Yún $55.01 Arduino Store
MicroSd Card $8.36 Arduino Store
1.8" EDS TFT LCD $6.80 Electrodragon
Male-to-Female Wires $2.30 Electrodragon
Female-to-Female Wires $1.80 Electrodragon

If you'd prefer a single, US-based vendor, Adafruit sells an equivalent display and the other necessary parts.

Note: while the EDS TFT display is avaliable in larger sizes, only the 1.8" is 5v tolerant. Adafruit offers several options for larger 5v-tollerant displays.

Also note that even on the 1.8" EDS TFT, the LED pin only accepts 3.3v.

Credentials:

Create a Personality Insights service instance at http://bluemix.net/ and bind it to a server instance. Then view the server's dashboard and click View Credentials on the service. Copy the credentials to linux/twitter-personality-insights/credentials.json.

Instructions on how to get credentials for a Watson service can be found here.

Create a twitter app at https://apps.twitter.com/ and also copy it's credentials to credentials.json.

Linux Setup:

Copy the arduino/pibadge/ folder into your Arduino Projects folder.

Copy the linux/twitter-personality-insights/ folder onto a MicroSD card and insert it into the Yun.

SSH into the linux side of the Yun and run the following commands to install dependencies:

opkg update #updates the available packages list
opkg install distribute #it contains the easy_install command line tool
opkg install python-openssl #adds ssl support to python
easy_install pip #installs pip
mkdir /mnt/sda1/python-packages
pip install --target /mnt/sda1/python-packages twitter # current release of twitter
pip install --target /mnt/sda1/python-packages requests==2.5.3 # outdated release of requests that works on Yun's outdated python version

Bringing it all together:

Upload the sketch and wait a minute or two for it to process things, then enjoy your new Personality Insights Badge!

The sketch defaults @nfriedly, but you can change it to any twitter username you like. A potential enhancement could be to add a web interface for setting the username at runtime.