INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
falsches Display oder einfach nur keine Ahnung?
07.01.2021, 21:41
Beitrag #1
falsches Display oder einfach nur keine Ahnung?
Moin,

Als ich las wie scheinbar einfach sich Displays am Arduino, ESP32... betreiben lassen habe ich mir schnell und ohne weiter zu recherchieren so ein Teil bestellt. https://www.amazon.de/gp/product/B078J78...UTF8&psc=1

Mein Ziel ist es Sensordaten (Temperatur/Luftdruck...), Uhrzeit/Datum (woher auch immer...) evtl. Text von MQTT Topics am OLED Display aus zu geben.
Ich weiß das man dazu Daten in eine Variable (float ?) schreiben und dies dann noch evtl. konvertieren (char ?) muss...

Die Inbetriebnahme am Arduino war mit Handbuch kein Problem, "Hallo World" lief schnell.

Beim anschließen des Display am ESP32 nach einem Tutorial https://randomnerdtutorials.com/esp32-ss...duino-ide/ merkte ich zuerst das die PIN`s nicht, wie in fast jedem Tutorial, VCC/GND/SDA und SCL sondern SCK statt SCL benannt sind und irgendwann später auch das es verschiedene Controller in den OLED Display`s gibt und das "meiner" (SSH 1106) auch relativ selten in Tutorials vorkam, dort wird meistens mit dem SSD1306, demzufolge mit der Adafruit Bibliothek gearbeitet. So mein erster Anfängereindruck zumindest.

Dann habe ich versucht die Temperaturausgabe eine KY-001 mit dem "Hallo World" Beispiel der "u8g2lib.h" auf das Display zu bringen, letzendlich mit der Fehlermeldung
Code:
no matching function for call to 'U8G2_SH1106_128X64_NONAME_F_HW_I2C::drawStr(int, int, float&)'

Kann "u8g2lib.h" vieleicht gar keine Sensorausgabe?


Mir ist klar das es mit meinen Programmierkentnissen noch nicht weit her ist, deshalb meine Frage: wäre ich evtl. mit nem 1306er Controller besser bedient weil die Bibliotheken scheinbar flexibler und damit die Sketch Beispiele breiter gestreut sind, oder ist mein Vorhaben mit 1106er Displays genau so in die Tat um zu setzten und ich stell mich nur zu doof bisher an?

Danke fürs lesen, den Code von meinem Sketchversuch häng ich mit dran...

Code:
//
//ESP32 3.3V / ARDUINO 5V
//
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Arduino.h>
#include <U8g2lib.h>

// Data wire is plugged into pin 2 on the Arduino und ESP32
#define ONE_WIRE_BUS 2

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif


OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup(void)
{
  u8g2.begin();  
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  sensors.begin();
}

void loop(void)
{
   // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");

  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0));
  
  float tempVar = sensors.getTempCByIndex(0);   // Daten IN Variable

  u8g2.clearBuffer();          // clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font
  //u8g2.drawStr(0,10,"Hello World");  // write something to the internal memory
  
  u8g2.drawStr(0,10,tempVar);  // Daten AUS Variable
  
  u8g2.sendBuffer();          // transfer internal memory to the display
  delay(1000);  
  
}

bis dann,
Steinspiel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2021, 22:45 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2021 22:49 von nbk83.)
Beitrag #2
RE: falsches Display oder einfach nur keine Ahnung?
Moin Steinspiel,
ich bin's wieder Wink
Ich glaube, Dein Problem hattest Du schon mal, als es darum ging float-Werte per MQTT zu versenden *Zaunpfahl*
Ok, nicht genau das Problem. Aber Du musst halt die float erstmal umwandeln, guck Dir mal genau die Fehlermeldung an und welche Zeile der Compiler Dir rot markiert hat.
Gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2021, 22:53 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2021 23:03 von Tommy56.)
Beitrag #3
RE: falsches Display oder einfach nur keine Ahnung?
(07.01.2021 21:41)Steinspiel schrieb:  deshalb meine Frage: wäre ich evtl. mit nem 1306er Controller besser bedient weil die Bibliotheken scheinbar flexibler
Was Du verwendest ist egal, Dir stehen Deine fehlenden elementaren Grundkenntnisse im Weg. Solange Du daran nichts änderst, wirst Du immer wieder scheitern.

Versuche mal gedanklich nachzuvollziehen, was drawStr heißen könnte.
draw = zeichne, Str = String = Zeichenkette.
Du musst also vorher Dein Float in eine Zeichenkette umwandeln. Da könntest Du die Suchmaschine Deiner Wahl mal nach "dtostrf" befragen.

Gruß Tommy

Edit: Beim ESP könntest Du anstelle von dtostrf auch sprintf/snprintf benutzen.

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2021, 22:56
Beitrag #4
RE: falsches Display oder einfach nur keine Ahnung?
(07.01.2021 21:41)Steinspiel schrieb:  Als ich las wie scheinbar einfach sich Displays am Arduino, ESP32... betreiben lassen habe ich mir schnell und ohne weiter zu recherchieren so ein Teil bestellt.
Das kommt immer auf den Controller und das Display an.
Zitat:Ich weiß das man dazu Daten in eine Variable (float ?) schreiben und dies dann noch evtl. konvertieren (char ?) muss...
Wenn du es schon weißt, warum machst du es nicht ?
Hier findest du einen Weg dahin.
Zitat:Kann "u8g2lib.h" vieleicht gar keine Sensorausgabe?
Das hat nix mit den Sensoren zu tun, nur etwas mit der Art der Variablen.
Zitat:Mir ist klar das es mit meinen Programmierkentnissen noch nicht weit her ist, deshalb meine Frage: wäre ich evtl. mit nem 1306er Controller besser bedient weil die Bibliotheken scheinbar flexibler und damit die Sketch Beispiele breiter gestreut sind, oder ist mein Vorhaben mit 1106er Displays genau so in die Tat um zu setzten und ich stell mich nur zu doof bisher an?
Auch das ist kein ectes Problem. Jeder Chip braucht seinen eigenen Treiber.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2021, 17:32
Beitrag #5
RE: falsches Display oder einfach nur keine Ahnung?
Moin,

Ich mach mich dran, werde lernen und nachher berichten...

(07.01.2021 22:53)Tommy56 schrieb:  [...]
Dir stehen Deine fehlenden elementaren Grundkenntnisse im Weg. Solange Du daran nichts änderst, wirst Du immer wieder scheitern.

Mir ist, als hätte ich das schon mal gelesen... ;-)

Es gibt ja jede Menge C/C++ Bücher, auch für Einsteiger... Von denen wird sicherlich jedes etwas "bringen", denke ich. Hast Du ne Empfehlung mit was man vielleicht mit Bezug in Richtung "IoT" anfangen sollte?

bis dann,
Steinspiel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2021, 17:53
Beitrag #6
RE: falsches Display oder einfach nur keine Ahnung?
Bücher zu IoT kenne ich nicht. Wenn Du wirklich die Sprache C++ lernen willst, kann ich dieses Buch empfehlen, auch wenn da kein einziges Mal Arduino erwähnt wird.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2021, 19:35
Beitrag #7
RE: falsches Display oder einfach nur keine Ahnung?
(08.01.2021 17:53)Tommy56 schrieb:  Wenn Du wirklich die Sprache C++ lernen willst, kann ich dieses Buch empfehlen, auch wenn da kein einziges Mal Arduino erwähnt wird.

Gruß Tommy

Schönes dickes Buch.

Ich empfehle es erst zu kaufen wenn du 50% von dem hier geschriebenen verstanden hast.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 00:03
Beitrag #8
RE: falsches Display oder einfach nur keine Ahnung?
Moin,
(08.01.2021 19:35)Fips schrieb:  Ich empfehle es erst zu kaufen wenn du 50% von dem hier geschriebenen verstanden hast.

Da lese ich ab und zu drin, allerdings bin ich oftmals leicht ungeduldig und versuche dann die Lösungen aus Beispielen für mich ab zu leiten.
Obwohl das sicherlich nicht der beste Weg ist... :-(

Auf Tommy`s Lesevorschlag werde ich wohl nicht zurück greifen, auch wenn mir dann eine "...motivierende Einführung" entgeht. Shy

Danke für die Hinweise.

bis dann,
Steinspiel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Erfahrungen mit ESP32 und WLAN/MQTT oder was ich beobachtet habe... Arduino4Fun 13 986 10.01.2021 14:18
Letzter Beitrag: nbk83
  Logging nach Serial und/oder Telnet miq19 15 749 31.12.2020 12:35
Letzter Beitrag: Tommy56
  WiFi keine Anmeldung am Netzwerk Nichtraucher 11 1.285 09.10.2020 22:48
Letzter Beitrag: Nichtraucher
  ESP32+SIM808 Gpsdaten auf Display und SMS reinhard-adam 0 426 06.10.2020 16:49
Letzter Beitrag: reinhard-adam
  Esp8266 GPIO default In- oder Out-put? N1d45 0 668 29.08.2020 06:58
Letzter Beitrag: N1d45
  i2c LCD Display am Wemos D1 Mini mit mqtt klappt nach modifikation nicht raspido 5 1.368 15.06.2020 22:19
Letzter Beitrag: stw
Tongue Neu und keine Ahnung S-T-O-N-E 2 944 14.06.2020 15:11
Letzter Beitrag: S-T-O-N-E
  Display am ESP32 - kein Bild Gerdchen03 17 3.770 13.10.2019 16:56
Letzter Beitrag: Gerdchen03
  SSD1322 Display anschließen fuxi 0 885 07.10.2019 16:08
Letzter Beitrag: fuxi
  ESP8266 8 Kanal Relais keine Aktualisierung im WebIF magnum1795 10 3.437 23.08.2019 07:54
Letzter Beitrag: Fips

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste