danke. musste etwas anpassen mit hilfe von perplexity…
hab ja einen esp8266 nodemcu v3
und keinen esp32
nach einigen Versuchen klappte das Kompilieren, aber es erscheint nichts auf dem Display :-(
hier mein Code:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h> // Fügen Sie diese Bibliothek hinzu
#include <TM1637TinyDisplay6.h> // Fügen Sie die TM1637TinyDisplay6-Bibliothek hinzu
// Define Digital Pins
#define CLK D2
#define DIO D1
TM1637TinyDisplay6 display(CLK, DIO); // 6-Digit Display Class
// WLAN-Zugangsdaten
const char* ssid = "xxxx";
const char* password = "xxxxxxxx";
// API-URL für den Bitcoin-Kurs in Euro
const char* apiURL = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=eur";
void setup() {
Serial.begin(115200); // Initialisiere die serielle Kommunikation
// Initialisiere das Display
display.begin();
display.setBrightness(7); // Setze die Helligkeit auf den maximalen Wert (7)
// Stelle eine Verbindung zum WLAN her
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
WiFiClient wifiClient; // WiFiClient-Objekt erstellen
HTTPClient http; // HTTPClient-Objekt erstellen
// Begin mit WiFiClient und URL
http.begin(wifiClient, apiURL);
int httpCode = http.GET(); // Sende die GET-Anfrage
if (httpCode == 200) { // Wenn die Anfrage erfolgreich war
String payload = http.getString(); // Hole die Antwort als String
Serial.println("Received payload: " + payload); // Debug-Ausgabe
int BitcoinRate = parseBitcoinRate(payload); // Parste den Bitcoin-Kurs
if (BitcoinRate >= 0) { // Überprüfe, ob der Kurs gültig ist
display.showNumberDec(BitcoinRate, 0b00100000, false); // Zeige die ganzzahlige Zahl an
} else {
Serial.println("Invalid Bitcoin rate");
}
} else {
Serial.println("Error on HTTP request, code: " + String(httpCode));
}
http.end(); // Schließe die Verbindung
} else {
Serial.println("WiFi Disconnected");
}
delay(10000); // Warte 10 Sekunden, bevor der nächste Kurs abgerufen wird
}
// Funktion zum Parsen des Bitcoin-Kurses aus dem API-Antwort-String
int parseBitcoinRate(const String& payload) {
int startIndex = payload.indexOf("\"eur\":") + 6;
int endIndex = payload.indexOf("}", startIndex);
if (startIndex > 0 && endIndex > startIndex) {
String rateString = payload.substring(startIndex, endIndex);
return rateString.toInt();
}
return -1; // Rückgabewert im Fehlerfall
}