Instructables
Picture of Plotly + Arduino Data Visualization
Plot.ly + Arduino Data Visualization

I've been a fan of Arduino for years now, and have used it for building everything from MIDI controllers to simple LED flashers. One thing that has always intrigued me has been visualizing some of the data that I read off of the Arduino Pins.

Plot.ly makes this simple. Really simple.

The purpose of this instructable is to demonstrate how to hook up an Arduino + Ethernet Shield and send data to Plot.ly's Servers and create beautiful graphs. We will be using a dual temperature+humidity sensor (DHT22), and sending the results directly to Plotly.
 
Remove these adsRemove these ads by Signing Up

Step 1: What you will need:

Picture of What you will need:
6.jpg
5.jpg
7.jpg
Hardware:

Software:
(We will explain how to install the libraries in a later step)

Enclosure:
  • Two pieces of (2 1/2" x 3 1/2" ) wood (1/4" thick)
  • Four (10-32x2in) Machine Screws
  • 12 Hex Nuts (10-32 Diameter)


Step 2: Hardware Setup

Picture of Hardware Setup
8.jpg
Step 1:
Connect your Arduino to your Ethernet shield

Step 2:
Connect the DHT sensor:
  • DHTpin1 -> 5v
  • DHTpin2 -> digitalpin2
  • DHTpin3 -> not used
  • DHTpin4 -> gnd



vintesh made it!1 month ago

Hi Five.

IMG_20141102_155237.jpg
MichaelJ23 months ago

Hi - this is amazing ... the ability to stream to Plotly is fantastic ... but I can't get it to work - is there anybody that can assist and maybe look over my code. I just can;t see where I'm going wrong! It's so frustrating,

Hi Michael,

Have you solved? If not, describe your problem and I will try to help.

Regards,

Alejandro

Hi Alejandro, thank you for the response.

No it does still not work. My graph gets created but no data is logged at all. I can see data flowing to Plot.ly and I have triple checked my username, code and token details. I connect to Plotly, data streams but nothing is ever graphed.

I can email you the code and the screenshots etc. if it will help.

I've not heard back form the Plot.ly team recently - it's been a month that I've been trying to get some support from them so any help you can provide I'll be very grateful for.

Hi Michael,

I sent you my email address, please send your code and I will have a look.

Regards,

Alejandro

Hi Alejandro

Thanks you so much for your offer to help - very much appreciated!

I managed to get in contact with the Plotly team and they were able to assist me - it's working now :)

Thanks again!

Hi Michael

Great to know that it is working now.

Best regards

Alejandro

mba73 months ago

I made an equivalent tool in python that print real time data from ADXL345 accelerometer.

https://github.com/mba7/SerialPort-RealTime-Data-P...

may be it will be helpful for someone

joeybab33 months ago

is there a way to store this in a flat file (.txt or somethingrather) and than upload it to plotly? this would be useful on a quadracopter.

AlejandroB14 months ago

Thank you very much for this Instructable. I followed every step and now I am streaming PM2.5 and WBGT data from an Arduino.

I can visualize the values that are sent from the remotely unit, without being at that place.

Regards,

Alex

plotlygraphs (author)  AlejandroB14 months ago
Fantastic!
zuljin5 months ago

Could somebody upload the sketch modification for ENC28j60 please? I can't find it anywhere :S

Shirk278 months ago

Been having a problem with the programming side of this, getting an error that seems to be from the IDE not including the libraries correctly.

plotlyethernettemphumid:13: error: no matching function for call to 'plotly::plotly()'

Shirk27 Shirk278 months ago

Here is the console

Arduino.JPG
Nook1 Shirk278 months ago

I'm having the same problem.

As mentioned in the site the libraries should be placed like:


  • Arduino/

    • hardware/
    • libraries/

      • plotly_ethernet/

        • plotly_ethernet.cpp
        • plotly_ethernet.h
      • DHT/

        • DHT.cpp
        • DHT.h

But after downloading the libraries , I'm getting:
plotly_streaming_ethernet.cpp
plotly_streaming_ethernet.h
I think that's the problem.

focamonca Nook18 months ago

did u solved?

plotlygraphs (author)  focamonca8 months ago

Hi all! So sorry for the broken pieces. We updated the Arduino library (https://https://github.com/plotly/arduino-api) but forgot to update the instructable examples. I just updated the example code with the new library, so give a try now!

focamonca Nook18 months ago

WOW plotly great support to who has problems!

Nook1 focamonca8 months ago

Yeah, this problem was solved by me. All you have to do is update the libraries with the files plotly_ethernet.cpp and plotly_ethernet.h you will get them here:

https://gist.github.com/dwblair/9235676
https://gist.github.com/dwblair/9235706

The link given at this site are updated libraries as they are for streaming purposes so when you download you will get "plotly_streaming_ethernet.cpp" and "plotly_streaming_ethernet.h" but in given code we have used "plotly_ethernet.cpp and plotly_ethernet.h", so use the libraries from gist.github.

If you want to use the updated libraries and use streaming tokens and get the graph, use this sample sketch:

https://github.com/plotly/arduino-api/tree/master/...

use these libraries for the sketch:
https://github.com/plotly/arduino-api/tree/master/...


(before all this make sure that your network has DHCP enabled, otherwise plotly's servers won't be to communicate with the shield).

plotlygraphs (author)  Shirk278 months ago

Thanks for reporting! We updated the Arduino library (https://github.com/plotly/arduino-api) so that the graphs update in real-time (here is an example: plot.ly/~streaming-demos/6/) but forgot to point this instructable to the new code. I just updated the example code, so give it another try now! So sorry for the inconvienence.

focamonca8 months ago

PLEASE HELP US

Cattura.PNG
plotlygraphs (author)  focamonca8 months ago

hey dude! Check out the post up above, and e-mail me at alexandre@plot.ly if you're having problems with the new library. I'll update this 'ible ASAP.

Thank you for your patience

plotlygraphs (author) 8 months ago

Hey guys!

Sorry about the issues you've been having. We recently updated our Libraries to include streaming!

I'll make sure to fix this 'ible ASAP, but for now if you want to check out:

http://plot.ly/workshop/arduino-dht22/
There is a new script and library there, you can read all about it!

Let me know if you have any issues, feel free to email me:
alexandre@plot.ly

Cheers!

focamonca8 months ago

PLEASE plotly help us with problems

drmpf8 months ago

If you want to do something similar but plot and save the data on your Android phone via bluetooth or wifi check out

"Simple Remote Data Plotting using Android / Arduino / pfodApp" http://www.instructables.com/id/Simple-Remote-Data...

and "Arduino for Beginners, now with data plotting, controlled by Android" http://www.instructables.com/id/Arduino-for-Beginn...

TSJWang11 months ago

Hey nice project!

What about using Processing to sketch out data sent to the serial port? Would that decrease the delay?

Armandur TSJWang11 months ago

http://pulsesensor.com/ does this with very little delay, imperceptible from realtime plotting.

plotlygraphs (author)  Armandur9 months ago

Woah, that's awesome! We just made a "real-time" version of our plotting available, and plotted data with that hear-rate sensor. Here is the video: https://vine.co/v/Mq2LQexrbl7

TSJWang TSJWang11 months ago

I guess it is a LOT cooler to have data online.

It depends on the purpose: quick testing that does not need to be recorded [processing]

data collection to be shared and displayed [plotlygraphs]

long term data collection, portable [analogRead values stored in SD card, then excel]

plotlygraphs (author)  TSJWang11 months ago

Hey! Thanks for checking out our Instructable. Our goal for the Plotly project is to let you send data right into the browser. Then, you can edit, share, and analyze your data and graph all in one place. So, here is our humidity and temperature graph you could share and edit with others: http://plot.ly/~demos/999/.

Arduino.png
kerimil9 months ago

can't get the library to work... I follow the instructions and I can't even install it properly

amcdawes11 months ago
Great example for plot.ly. One tip for making cases like this is to hold the top and bottom together when you drill... that way you only drill four holes and they automatically align.
plotlygraphs (author)  amcdawes11 months ago

Great tip. Thanks!

eagleapex11 months ago

That's a quality enclosure. Kudos

plotlygraphs (author)  eagleapex11 months ago

thank you! super easy to make + low cost too!

procastino11 months ago

I've just put it to work, nice and clean! thanks for the instructable! :)

ICStation11 months ago

Nice project. It brought us a lot of inspirations in design products/projects.