Raspberry Pi Pico W: Aktuellen Bitcoin-Preis in Euro anzeigen
Bitcoin ist die populärste Kryptowährung weltweit. Wer Bitcoins hat oder in irgendeiner Form investiert ist, der ist vielleicht daran interessiert, den aktuellen Kurs bzw. Wert in Euro für einen Bitcoin anzuzeigen.
Den aktuellen Bitcoin-Kurs kann man natürlich von diversen Webseiten beziehen. Schöner ist es, wenn man den Kurs auf einem gut sichtbar platzierten Display anzeigen kann.
Der folgende Programmcode ist nicht komplett oder vollständig. Er zeigt im wesentliche nur, wie eine API einmalig abgefragt wird und die Daten dargestellt werden.
Denkbar wäre, den Aufbau mit einem Display und einer regelmäßigen Aktualisierung zu ergänzen.
Coindesk-API
Coindesk ist eine Plattform, die Informationen rund um Kryptowährungen und Dienstleistungen anbietet. Unter anderem eine API, von der man den aktuellen Bitcoin Price Index (BPI) abrufen kann.
Die API-URL lautet:
Die Daten liegen im JSON-Datenformat vor.
Alternative API:
Programmcode
Im folgenden Programmcode müssen die Zugangsdaten für das WLAN eingetragen werden. Die URL für die API ist schon korrekt gewählt.
Nach dem Programmstart und WLAN-Verbindungsaufbau werden die Daten per HTTP-Request abgefragt. Die Daten liegen dann als JSON-Datensatz vor. Aus diesem werden verschiedene Daten auslesen. Der Programmcode beschränkt sich auf die Währung und den Bitcoin-Wert in Euro.
# Bibliotheken laden import machine import network import urequests as requests import time # WLAN-Konfiguration wlanSSID = 'WLANNAME' wlanPW = 'WLANPASSWORT' network.country('DE') # Coindesk-API apiURL = 'https://api.coindesk.com/v1/bpi/currentprice.json' apiData = '' # WLAN-Status-LED led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0) # WLAN-Verbindung herstellen wlan = network.WLAN(network.STA_IF) if not wlan.isconnected(): print('WLAN-Verbindung herstellen') wlan.active(True) wlan.connect(wlanSSID, wlanPW) for i in range(10): if wlan.status() < 0 or wlan.status() >= 3: break led_onboard.toggle() print('.') time.sleep(1) # WLAN-Verbindung prüfen if wlan.isconnected(): print('WLAN-Verbindung hergestellt / WLAN-Status:', wlan.status()) led_onboard.on() ipconfig = wlan.ifconfig() print('IPv4-Adresse:', ipconfig[0]) else: led_onboard.off() print('WLAN-Status:', wlan.status()) raise RuntimeError('Keine WLAN-Verbindung') # API-Daten abrufen print() print('HTTP-Request an', apiURL) response = requests.get(apiURL) print('Status-Code:', response.status_code) if response.status_code == 200: # JSON-Datensatz umwandeln apiData = response.json() # Verbindung schließen response.close() # Daten verarbeiten und ausgeben if (len(apiData) > 0): chartName = apiData['chartName'] chartCurr = apiData['bpi']['EUR']['code'] chartPrice = apiData['bpi']['EUR']['rate_float'] # Daten-Ausgabe print() print("%s: %s %s" % (chartName, chartPrice, chartCurr)) else: print() print('Keine Daten vorhanden!')
Der Programmcode sendet einmal einen HTTP-Request an die Coindesk-API und gibt dann die Daten in der Kommandozeile/Shell aus. Der Programmcode wird danach automatisch beendet. Die Verbindung zum WLAN bleibt bestehen.
Hinweis: Die URL des HTTP-Requests (Kommandozeile/Shell) liefert einen JSON-Datensatz. Diese URL kann man auch in einem Browser aufruft. Im Datensatz sind zusätzliche Informationen enthalten, die man anzeigen oder verarbeiten kann.
Erweiterung
Mit diesem Programmcode haben wir nur die Grundlagen für den Datenabruf geschaffen. Wie und wo diese Daten weiterverarbeitet oder angezeigt werden, bleibt Deiner Fantasie überlassen.
Die Ausgabe auf der Kommandozeile ist natürlich nicht besonders attraktiv. Wenn jemand ein Display hat, kann man das zur Ausgabe der Daten verwenden und die Abfrage einmal oder auch mehrmals am Tag durchführen lassen.
Ergänzen lässt sich der Programmcode noch um die Ermittlung des aktuellen Datums und der Uhrzeit per NTP, um die interne RTC beim Start des Programmcodes einzustellen. So kann man die Abfrage zu einer bestimmten Uhrzeit steuern.
Weitere verwandte Themen:
- Raspberry Pi Pico W als WLAN-Client
- Raspberry Pi Pico W: Online-Wetterstation mit Vorhersage (DWD-API)
- Raspberry Pi Pico W: Gasspeicher-Füllstand in Deutschland auslesen und anzeigen (GIE-AGSI-API)
Frag Elektronik-Kompendium.de
Elektronik-Set Pico WLAN Edition
Hardware-nahes Programmieren mit dem Mikrocontroller Raspberry Pi Pico W und MicroPython.
- Raspberry Pi Pico W mit gelöteten Stiftleisten
- Spezielles Steckbrett mit GPIO-Beschriftung
- Einführung ins Hardware-nahe Programmieren
- Schwerpunkte: WLAN, MQTT und Internet
- Deutschsprachige Anleitung als PDF-Datei zum Download
In unseren Online-Workshops bieten wir intensiven Erfahrungsaustausch in kleinen Gruppen und Unterstützung bei individuellen Problemen.
Online-Workshop: Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)