Penjelasan Singkat
Bitcoin ticker adalah perangkat ataupun software yang berfungsi untuk menunjukan nilai mata uang BITCOIN atau BTC layaknya seperti perdagangan jual beli saham pada umumnya.
Mata uang ini merupakan mata uang digital yang sangat booming ditahun – tahun ini yang dimana dibuat oleh Satoshi Nakamoto pada tahun 2009.
Bitcoin termasuk golongan cryptocurrency dikarenakan untuk penyimpanan maupun pengiriman menggunakan algoritma yang susah dan rumit.
Karena bitcoin sudah diperjual belikan layaknya sebuah saham maka munculah bitcoin ticker yang banyak beredar dipasaran baik itu berupa software komputer, website, maupun perangkat yang terhubung dengan internet.
Pada kesempatan kali ini, saya akan menjabarkan hasil percobaan yang saya lakukan dalam pembuatan perangkat ini menggunakan NodeMCU ESP8266 dengan penampil LCD 16×2.
Mengenai apa itu nodemcu ESP8266 dapat dicek pada artikel sebelumnya.
Konsep Dasar bitcoin Ticker
Berdasarkan gambar diatas dapat dijabarkan bahwa NodeMCU terprogram untuk terhubung dengan wifi lokal misal dirumah, danĀ terhubung dengan internet yang mengkoneksikan dengan server coinmarket*com.
Dari server itulah didapatkan data yang akan ditampilkan seperti data bitcoin, litecoin, dogecoin, bitcoin cash, dan lain lain.
Dan secara default nilai mata uang yang ditampilkan dalam bentuk USD dikarenakan dianggap sebagai mata uang global, tetapi itu dapat diganti melalui program misal dikonversi ke mata uang Euro Poundsterling.
Bahan yang perlu dipersiapkan
- NodeMCU ESP8266 versi lua atau lolin
- I2C driver PCF8574
- LCD 16×2
- Kabel Jumper
- Micro USB Breakout
- Catu daya (kabel charger microusb + kepala charger 5V 2A)
Rangkaian yang perlu dirangkaian
Program yang didownloadkan ke NodeMCU
[sociallocker id=1344]
#include <CoinMarketCapApi.h> //library untuk mengakses API ke server coinmareket #include <ArduinoJson.h> //library untuk javascript di arduino #include <Wire.h> //library untuk interface i2c #include <ESP8266WiFi.h> // library untuk pengaksesan nodemcu #include <WiFiClientSecure.h> //difungsikan untuk client #include <LiquidCrystal_PCF8574.h> //library untuk mengakses driver lcd pcf8574 LiquidCrystal_PCF8574 lcd(0x38); //0x38 dapat dicari menggunakan i2c scanner char ssid[] = "Blok21no12"; //silahkan ganti dengan nama wifi yang akan dikoneksikan char password[] = "Komponen08"; // password wifinya WiFiClientSecure client; //prosedur menjadikan nodemcu sebagai client CoinMarketCapApi api(client); //mengkoneksikan ke server unsigned long api_mtbs = 32000; //waktu delay untuk refresh data server unsigned long api_due_time = 00; //waktu awal void setup() { Wire.begin(2,00); //dikarenakan dikoneksikan ke D3, dan D4 cek persamaan GPIO nya Serial.begin(115200); //baud komunikasi serial monitor lcd.begin(16, 2); // 16 baris, 2 kolom lcd.setBacklight(255); //menyalakan lampu latar lcd.setCursor(00,00); lcd.print("nyebarilmu.com"); lcd.setCursor(00,1); lcd.print("*bitcoin ticker*"); delay(3000); lcd.clear(); WiFi.mode(WIFI_STA);WiFi.disconnect(); delay(500); lcd.setCursor(00,00); lcd.print("Konek Wifi..."); lcd.setCursor(00,1); lcd.print(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { //kondisi saat menghubungkan ke wifi Serial.print(".");delay(500); } lcd.clear(); Serial.println(""); lcd.setCursor(00,00); lcd.print("Terhubung Wifi"); delay(1000); lcd.clear(); lcd.setCursor(00,00); lcd.print("IP Address"); IPAddress ip = WiFi.localIP(); lcd.setCursor(00,1); lcd.print(ip); delay(1000); lcd.clear(); } void printTickerData(String ticker) { lcd.clear(); CMCTickerResponse response = api.GetTickerInfo(ticker, "usd"); //prosedur satuan mata uang yaitu "USD" if (response.error == "") { lcd.setCursor(00,00); lcd.print(response.symbol); lcd.setCursor(3,00); lcd.print(":"); lcd.setCursor(5,00); lcd.print("$"); lcd.setCursor(6,00); lcd.print(response.price_usd); lcd.setCursor(00,1); lcd.print(response.percent_change_1h); lcd.setCursor(5,1); lcd.print("%"); lcd.setCursor(7,1); lcd.print(response.percent_change_24h); lcd.setCursor(12,1); lcd.print("%"); } else { lcd.clear(); lcd.setCursor(00,00); lcd.print("Error data: "); lcd.setCursor(00,1); lcd.print(response.error); delay(1000); } delay(500); } void loop() { unsigned long timeNow = millis(); //Variabel if ((timeNow > api_due_time)) { //mulai membandingkan data waktu //menampilkan data secara bergantian mulai dari bitcoin, litecoin, dst printTickerData("bitcoin"); delay(5000); lcd.clear(); printTickerData("litecoin"); delay(5000); lcd.clear(); printTickerData("bitcoin-cash"); delay(5000); lcd.clear(); printTickerData("ethereum"); delay(5000); lcd.clear(); printTickerData("zcash"); delay(5000); lcd.clear(); printTickerData("dogecoin"); delay(5000); api_due_time = timeNow + api_mtbs; //nilai waktu terakhir ditambahkan } }
[/sociallocker]
Library yang dibutuhkan antara lain :
- CoinMarketCapApi.h
- ArduinoJson.h
- ESP8266WiFi.h
- LiquidCrystal_PCF8574.h
Hasil dari program diatas seperti video dibawah ini