watch your bitcoin balance real time

github codes : https://github.com/mustafa05deniz/real-time-bitcoin-balance-in-binance-

 

Requirements

Would you like to watch your bitcoin , etherium or other coins balances , this article is for you . If you do not know coding, do not worry. This post has been prepared to help everyone. what you need to do first

  • 1x raspberry pi zero or other raspberry pi models
  • 1x LCD ı2c display
  • some wire

 

Api configuration

click API Setting and create new api

Codes

copy app key and app secret and paste this codes

install

There are libraries you need to load to use the Binance API.

pip install python-binance
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/lcd_i2c.py
from binance.client import Client
client = Client("appkey", "appsecret")
import time

hepsi = client.get_account()
first_dict = {}
second_dict = {}

for i in hepsi["balances"]:
if(float(i["locked"]) != 0):
first_dict[i["asset"]] = float(i["locked"])

print first_dict

for x in first_dict:

print x,first_dict[x]

import urllib2
import datetime
import smbus
import time

# Define some device parameters
I2C_ADDR = 0x27 # I2C device address
LCD_WIDTH = 16 # Maximum characters per line

# Define some device constants
LCD_CHR = 1 # Mode - Sending data
LCD_CMD = 0 # Mode - Sending command

LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
LCD_LINE_3 = 0x94 # LCD RAM address for the 3rd line
LCD_LINE_4 = 0xD4 # LCD RAM address for the 4th line

LCD_BACKLIGHT = 0x08 # On
#LCD_BACKLIGHT = 0x00 # Off

ENABLE = 0b00000100 # Enable bit

# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005

#Open I2C interface
#bus = smbus.SMBus(0) # Rev 1 Pi uses 0
bus = smbus.SMBus(1) # Rev 2 Pi uses 1

def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD) # 110011 Initialise
lcd_byte(0x32,LCD_CMD) # 110010 Initialise
lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction
lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off
lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size
lcd_byte(0x01,LCD_CMD) # 000001 Clear display
time.sleep(E_DELAY)

def lcd_byte(bits, mode):
# Send byte to data pins
# bits = the data
# mode = 1 for data
# 0 for command

bits_high = mode | (bits & 0xF0) | LCD_BACKLIGHT
bits_low = mode | ((bits<<4) & 0xF0) | LCD_BACKLIGHT

# High bits
bus.write_byte(I2C_ADDR, bits_high)
lcd_toggle_enable(bits_high)

# Low bits
bus.write_byte(I2C_ADDR, bits_low)
lcd_toggle_enable(bits_low)

def lcd_toggle_enable(bits):
# Toggle enable
time.sleep(E_DELAY)
bus.write_byte(I2C_ADDR, (bits | ENABLE))
time.sleep(E_PULSE)
bus.write_byte(I2C_ADDR,(bits & ~ENABLE))
time.sleep(E_DELAY)

def lcd_string(message,line):
# Send string to display

message = message.ljust(LCD_WIDTH," ")

lcd_byte(line, LCD_CMD)

for i in range(LCD_WIDTH):
lcd_byte(ord(message[i]),LCD_CHR)

def main():
# Main program block

# Initialise display
lcd_init()

while True:
print "in while loop"

balance=0
for assest in first_dict:
tradess = client.get_recent_trades(symbol= assest+'BTC')
balance = balance + (float(first_dict[assest]) * float(tradess[0]["price"]))

usd_btc_last_trades = client.get_recent_trades(symbol='BTCUSDT')
usd_btc = float(usd_btc_last_trades[0]["price"])
estimated_value ="%.2f" % float(balance * usd_btc)
print "estimated value : " +str(estimated_value) + "$"
# Send some test
lcd_string("estimated value :",LCD_LINE_1)
lcd_string(str(estimated_value)+"$",LCD_LINE_2)
time.sleep(1)
lcd_string("REFRESH",LCD_LINE_1)
lcd_string("BiNANCE",LCD_LINE_2)
time.sleep(2)

for assest in first_dict:
lcd_string("your coins : "+assest,LCD_LINE_1)
lcd_string("value : " + str(first_dict[assest]),LCD_LINE_2)
time.sleep(2)

if __name__ == '__main__':
try:
main()
print "hello"
except KeyboardInterrupt:
pass
finally:
lcd_byte(0x01, LCD_CMD)
 python v1.py

 

Facebook Comments
News Reporter

Leave a Reply

Your email address will not be published. Required fields are marked *