Intro: Bitcoin Ticker With Graph
I made this based upon a project for a BTC price ticker, which obtains price information from coinmarketcap.com originally written by Brian Lough. He used the ESP8266, which is an Arduino compatible board that comes with built in WiFi. As he described, the project will run on any ESP8266 device and the code should be easily adaptable to whatever screen you have.
Also see his Instructable here
I used an Adafruit Feather HUZZAH with ESP8266.
I started with his code and then wrote the graphing part myself along with some code to turn a yellow price-rising or a red price-falling LED on or off. You need to follow his instructable very carefully, obtaining all the correct Arduino libraries to make this work.
- I have also made an attempt to add indicators on the screen showing when the trend may be reversing direction in the very short term.
- These inflection point markers take time to stabilise so ignore the first few readings. If the price is quite stable, every little wobble up and down creates an inflection point so this may need more work.
- The vertical axis auto adjusts in height. If there is a sudden pump or dump in price such that the curve is in danger of going off top or bottom of the graph, the graph will restart from left with a re-adjusted vertical axis.
- The reason I have done this is so that even when price is quite stable, small changes in price are always visible as a change in the curve shape.
- The last 2 digits of the previous few prices are shown on the right, most recent at the top.
- The percentage change x10 since the previous reading, taken approximately 2 min earlier is also displayed top right so you can spot sudden large alterations in the rate of change of the price.
I used an Adafruit Feather HUZZAH with ESP8266
An example of a suitable OLED screen is this one (look for I2C 128x64 OLED display)
My wiring is exactly as described in the instructable by Brian Lough with the addition of two LEDs. Each of these needs to be wired in series with a 330 Ohm resistor to limit the current through each to 12mA or less, as this is the maximum the pins of the ESP8266 will deliver.
My enclosure is 3D printed and downloadable from Thingiverse. It is described as an Anemone Display Tentacle (NodeMCU v2 Display Case) by Marc Trems in Montreal. It needed some filing of the screen aperture to suit my display and it is available for download Here.
Step 1: Annotated View of the Screen
Here is a better view of the screen showing these various features in action.
Step 2: How Display Responds in Different Situations
Here are 4 images taken in different situations.
I may change the code to make the inflection point markers only appear if a change in price direction has been sustained for a longer period of time than currently is the case.
Step 3: OLED Screen
These are readily available and advertised as I2C 126x64 OLED display modules.
See the wiring diagram in the instructable by Brian Lough: https://www.instructables.com/id/Simple-10-Crypto...
In my code I used the Adafruit OLED library rather than the one Brian Lough used: https://www.instructables.com/id/Simple-10-Crypto...
Step 4: OLED Screen
The library can be seen, available for download, in the top of the screenshot of the listing in the Arduino search for libraries (open the Manage Libraries option within Arduino).
The two LEDs that show if price is rising or falling are each wired in series with a 330 Ohm resistor to limit the current draw of each one to less than 12 mA.
The red or "falling" LED has the pin next to its curved (+) side wired, via a 330 Ohm resistor, to Pin 12 of the Adafruit Feather HUZZAH with ESP8266 and the wire next to the flat side is connected to one of the GND pins.
For the "price rising" LED, the wiring is the same but pin 14 is used on the Adafruit Feather HUZZAH with ESP8266.
Step 5: Code
The Arduino code is attached to the next page.
Into this code you will need to insert your WiFi network name and your network key in the places shown in this image.
Step 6: Arduino Code
The code is attached here for upload to your device