Blog_

Binance cryptocoin data to Thingsboard

Tiền điện tử cryptocurrency và công nghệ blockchain đã trở thành xu hướng cực kỳ trong vài năm qua. Nhiều công ty công nghệ lớn đã đầu tư vào nó. Một số trong số họ, như BitTorrent, đã tạo tiền điện tử của riêng họ để cho phép người dùng trao đổi và thưởng nhanh hơn.

Hôm nay chúng ta sẽ học cách ghi dữ liệu Binance vào Thingsboard. Điều này có thể hữu ích để tạo trang tổng quan tùy chỉnh và thiết lập cảnh báo qua email.

Binance

Binance là một nền tảng khai thác tiền điện tử rất nổi tiếng. Chúng tôi sẽ chỉ sử dụng API thử nghiệm của nó, vì vậy không cần tạo tài khoản cho tập lệnh này.

Thingsboard

Thingsboard là một nền tảng IOT hàng đầu, được viết bằng Java và Angular, nó được thiết kế để xử lý lượng lớn yêu cầu từ hàng nghìn thiết bị. Thingsboard tương thích với hầu hết các giao thức truyền thông, hôm nay chúng ta sẽ sử dụng giao thức MQTT protocol trọng lượng nhẹ. Để thiết lập Thingsboard, vui lòng tham khảo thêm tài liệu.

Python 3

Python là ngôn ngữ lập trình mà chúng tôi sẽ sử dụng trong hướng dẫn này. Cả Thingsboard và Binance đều cung cấp một thư viện trình kết nối python hoàn chỉnh. Bạn không cần phải là một chuyên gia Python để có thể thực hiện vì đoạn mã sau sẽ khá dễ hiểu.

Thiết lập

Trước hết, bạn nên cài đặt trình kết nối Python Binance và Thingsboard:

pip3 install tb-mqtt-client binance-connector

Bạn có thể tìm thêm thông tin chi tiết và tài liệu về Github:

Bây giờ chúng ta hãy thử viết một số mã nào!

Import necessary libraries:
#!/usr/bin/python3
from binance.spot import Spot as BinanceClient #Binance Client
from tb_device_mqtt import TBDeviceMqttClient, TBPublishInfo #Thingsboard Client
import time
Get latest price from Bitcoin/USDT

#Initialize Binance client
binance_client = BinanceClient(base_url="https://testnet.binance.vision")

#Get latest price
def getPrice(trade):

    try:
        response = binance_client.ticker_price(trade)
        price = response.get('price')
        print(price)
        return price

    except Exception as e:
        print(e)
        return None
Gửi dữ liệu đến Thingsboard

#thingsboard mqtt host.
#Ensure port 1883 is not blocked by your firewall.
TB_MQTT_HOST = "iot.example.com"

#thingsboard device access token
TB_DEVICE_KEY = "YOUR-DEVICE-ACCESS-KEY"
device = TBDeviceMqttClient(TB_MQTT_HOST, TB_DEVICE_KEY)

def sendTb(timeseries):

    device.connect()
    result = device.send_telemetry(timeseries)
    success = result.get() == TBPublishInfo.TB_ERR_SUCCESS #wait to receive result
    device.disconnect()
Chức năng chính
while True:

    try:

        #trade to follow Bitcoin / USDT
        trade = "BTCUSDT"

        #get price from Binance
        price = getPrice(trade)

        #prepare timeseries
        timeseries = {
            trade: price
        }

        #send to Thingsboard
        sendTb(timeseries)

    except Exception as e:
        print(e)

    time.sleep(15) #wait 15seconds

Timeseries và Dashboards

Chạy tập lệnh và bây giờ bạn sẽ thấy dữ liệu đến thiết bị Thingsboard. Sau đó, bạn có thể tạo một bảng điều khiển.

Screenshot 2021-06-25 at 15.46.03.png

Screenshot 2021-06-25 at 15.45.26.png

Chuỗi quy tắc

Để nhận được thông báo khi BTCUSDT đạt đến một cấp độ nhất định, chúng tôi sẽ tạo Chuỗi quy tắc trong Thingsboard. Bạn có thể tải cấu hình từ liên kết github ở cuối bài viết.

Screenshot 2021-06-25 at 15.52.02.png

Kết luận

Trong một thời gian rất ngắn và số lượng mã ít, chúng tôi đã tích hợp dữ liệu Binance vào Thingsboard. Bạn có thể sao chép hoặc sửa đổi mã để thêm nhiều tiền điện tử hơn và tạo trang tổng quan và cảnh báo được tùy chỉnh hoàn toàn của mình.

Xem mã hoàn chỉnh ở đây: https://github.com/acte-technology/binance-tb-tutorial