Wemos® TTGO ESP8266

Hallo,

Ich habe das Wemos® TTGO ESP8266 0.91 Inch OLED Module For Arduino Nodemcu. Hier habe ich einen sketch drauf, der sich mit meinem Handy über Hotspot verbindet. Es werden meine Abonnenten und Views angerufen und grafisch dargestellt.

Das hat alles super funktioniert bisher. Jetzt wollte ich etwas an dem sketch ändern (Nur eine kleine Positionsänderung einer Zahl).
Nach dem Hochladen springt die Anzeige nicht mehr von “loading…” auf die angerufenen Zahlen (Abonnenten / Views).
Mein Handy zeigt jedoch an, dass das Board mit dem Hotspot den Handys verbunden ist.
Ein Ersatzboard mit dem alten sketch funktioniert weiterhin.

Ich habe das Gefühl, irgendein Update funkt mir dazwischen. Kann mir eventuell jemand sagen, ob meine “Werkzeugeinstellung” oben im Tab richtig sind?

Ich weiß nicht so recht weiter und ich hoffe hier hat jemand eine Idee. Der zweite Teil kommt gleich, konnte nicht alles auf posten…

LG

#include <YoutubeApi.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define OLED_SDA  2
#define OLED_SCL 14
#define OLED_RST  4


#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
 
//------- Replace the following! ------
char ssid[] = "";       // your network SSID (name)
char password[] = "";  // your network key
#define API_KEY ""  // your google apps API Token
#define CHANNEL_ID "" // YouTube-Kanal-ID 
//#define CHANNEL_ID "" // YouTube-Kanal-ID
String chanelName = "";

int nextStatDelay = 1000;
 
WiFiClientSecure client;
YoutubeApi api(API_KEY, client);
 
int api_mtbs = 60000;
long api_lasttime;
long subs = 0;

#if (SSD1306_LCDHEIGHT != 32) //LSD Display Auflösung 128x32
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif


//int p3 = (150);


// alter Wert
unsigned long subcountmeOld = 0;  // <-----
const byte buzzerPin = D8;  // Pin (D8)
const unsigned long buzzerTime = 1000;  // 1000 ms = 1 Sekunde




void setup()   {   


Wire.begin( OLED_SDA, OLED_SCL);

 

  digitalWrite(buzzerPin,LOW);
  pinMode(buzzerPin, OUTPUT);
  
  Serial.begin(9600);



  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);

  display.drawRoundRect(0, 0, 128, 21, 3, WHITE); // Rechteck mit Verrundung
  display.setCursor(25,6);
  display.println("SUB");
  display.setCursor(50,6);
  display.println("- counter");
  display.setCursor(35,24);
  display.println("Philipp's");
  //display.drawLine(1, 1, 128, 1, WHITE);  // Draw line (x0,y0,x1,y1,color)
  //display.drawLine(1, 32, 128, 32, WHITE);  // Draw line (x0,y0,x1,y1,color)
  display.display();
 
  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
 
  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);
}
 
void loop() {

  
  if (millis() > api_lasttime + api_mtbs)  {
    if (api.getChannelStatistics(CHANNEL_ID)) {
      Serial.println("---------Stats---------");
      Serial.print("Subscriber Count: ");
      Serial.println(api.channelStats.subscriberCount);
      Serial.print("View Count: ");
      Serial.println(api.channelStats.viewCount);
      Serial.print("Video Count: ");
      Serial.println(api.channelStats.videoCount);
      Serial.println("------------------------");
    }
    api_lasttime = millis();
  }

  //SUBSCIBER COUNT
  unsigned long subcountme = api.channelStats.subscriberCount; // <--- der wird nicht negativ

  


  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(30, 4);
  display.println("S");
  display.drawRoundRect(0, 0, 128, 21, 3, WHITE); // Rechteck mit Verrundung
  display.drawCircle(15, 10, 8, WHITE); // Kreis
  display.drawLine(7, 10, 23, 10, WHITE); //Linie im Kreis
  display.setTextSize(1);
  display.setCursor(35,24);
  //display.println("Philipp's");
  //display.drawLine(1, 21, 128, 21, WHITE);  // Draw line (x0,y0,x1,y1,color)
 
  if (subcountme == 0) {
    display.setTextSize(1);
    display.setCursor(45, 10);
    display.println("loading ...");
  } else {
    display.setTextSize(2);
    if (subcountme < 10) {
      display.setCursor(1, 1);
    }
    if (subcountme > 9 && subcountme < 100) {
      display.setCursor(92, 4);
    }
    if (subcountme > 99 && subcountme < 1000) {
      display.setCursor(86, 4);
    }
    if (subcountme > 999 && subcountme < 10000) {
      display.setCursor(80, 4);
    }
    if (subcountme > 9999 && subcountme < 100000) {
      display.setCursor(74, 4);
    }
    if (subcountme > 99999 && subcountme < 1000000) {
      display.setCursor(68, 7);
    }
    if (subcountme > 999999 && subcountme < 10000000) {
      display.setCursor(62, 7);
    }
    if (subcountme > 9999999 && subcountme < 100000000) {
      display.setCursor(56, 7);
    }
    if (subcountme > 99999999 && subcountme < 1000000000) {
      display.setCursor(50, 7);
    }
    display.println(String(subcountme));
  }

  //display.setTextSize(1);
  //display.setCursor(30, 10);
  // display.println("Updating");






  //GRAPHIK

drawPercentbar( 0, 24, 100, 8,subcountme);

display.display();

}

void drawPercentbar(int x,int y, int width,int height, int progress)
{

   progress = progress > 100 ? 100 : progress;
   progress = progress < 0 ? 0 :progress;
unsigned long subcountme = api.channelStats.subscriberCount; // <--- der wird nicht negativ
   float bar = ((float)(width-4) / 100) * (subcountme / 10); 
  
   display.drawRect(x, y, width, height, WHITE);
   display.fillRect(x+2, y+2, bar , height-4, WHITE);

 
  // Display progress text
  //if( height >= 15)
  {
    //SUBSCIBER COUNT
  unsigned long subcountme = api.channelStats.subscriberCount; // <--- der wird nicht negativ
    display.setCursor((width+2), y );
    display.setTextSize(1);
    display.setTextColor(WHITE);
   //if( progress >=50)
     //display.setTextColor(BLACK, WHITE); // 'inverted' text

     display.print(subcountme / 10);
     display.print("%");
  }

  //GRAPHIK ENDE





  


  display.display();


  //SUBSCIBER COUNT
  //unsigned long subcountme = api.channelStats.subscriberCount; // <--- der wird nicht negativ


  // Buzzer                                                            <----
  if (subcountme != subcountmeOld && millis() > (30*1000UL)) { // 30 Sekunden
    subcountmeOld = subcountme;
    digitalWrite(buzzerPin,HIGH);
    delay(50);
    digitalWrite(buzzerPin,LOW);
  }

  delay(nextStatDelay);

  //VIEW COUNT
  long viewcountme = api.channelStats.viewCount;


  
 
  display.clearDisplay();

//}
 // void drawPercentbar(int x,int y, int width,int height, int progress)

//{
  
   display.drawRect(x, y, width, height, WHITE);
   display.fillRect(x+2, y+2, bar , height-4, WHITE);

 
  // Display progress text
  //if( height >= 15)
 // {
    display.setCursor((width+2), y );
    display.setTextSize(1);
    display.setTextColor(WHITE);
   //if( progress >=50)
     //display.setTextColor(BLACK, WHITE); // 'inverted' text

     display.print(subcountme / 10);
     display.print("%");
 // }

  display.setTextSize(2);
  display.setCursor(30, 4);
  display.println("V");
  display.drawRoundRect(0, 0, 128, 21, 3, WHITE); // Rechteck mit Verrundung
  display.drawCircle(15, 10, 8, WHITE); // Kreis
  display.drawLine(15, 2, 15, 18, WHITE); //Linie im Kreis
  display.setTextSize(1);
  display.setCursor(55,24);
  //display.println("YT");
  //display.drawLine(1, 21, 128, 21, WHITE);  // Draw line (x0,y0,x1,y1,color)
 
  if (viewcountme == 0) {
    display.setTextSize(1);
    display.setCursor(45, 10);
    display.println("loading ...");
  } else {
    display.setTextSize(1);
    if (viewcountme < 10) {
      display.setCursor(15, 1);
    }
    if (viewcountme > 9 && subcountme < 100) {
      display.setCursor(92, 7);
    }
    if (viewcountme > 99 && subcountme < 1000) {
      display.setCursor(86, 7);
    }
    if (viewcountme > 999 && subcountme < 10000) {
      display.setCursor(80, 7);
    }
    if (viewcountme > 9999 && subcountme < 100000) {
      display.setCursor(74, 7);
    }
    if (viewcountme > 99999 && subcountme < 1000000) {
      display.setCursor(68, 7);
    }
    if (viewcountme > 999999 && subcountme < 10000000) {
      display.setCursor(62, 7);
    }
    if (viewcountme > 9999999 && subcountme < 100000000) {
      display.setCursor(56, 7);
    }
    if (viewcountme > 99999999 && subcountme < 1000000000) {
      display.setCursor(50, 7);
    }
    display.println(String(viewcountme));
  }

  //display.setCursor(60, 10);
  //display.println("Updating");



  display.display();

  delay(nextStatDelay);

}

[/code]

Hallo,

vom Gefühl her sollte die Werkzeugeinstellung stimmen. Problem bei den ESPs ist, es gibt viel zu viele Varianten. Hast du schon den alten Sketch ohne die Änderung nochmal probiert?