Blockclock bauen aus ESP8266 und LED Display

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
}

Erscheint etwas in der seriellen Ausgabe? Vielleicht solltest du erstmal die Ansteuerung des Displays testen.

Was passiert mit dem Code?

#include <Arduino.h>
#include <TM1637TinyDisplay6.h> // Include 6-Digit Display Class Header

// Define Digital Pins
#define CLK D2
#define DIO D1

TM1637TinyDisplay6 display(CLK, DIO); // 6-Digit Display Class


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)
}


void loop() {
    display.showNumberDec(123456, 0b00100000, false); 
}

das klappt.
zeigt mir 123456 an.
kann man dich noch irgendwie anders (schneller) kontaktieren? :smiley:

Können gerne über Discord oder Telegram schreiben. Kannst du was teilen?

1 „Gefällt mir“

probieren wir es :smiley: