Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 23 Antworten
und wurde 5.787 mal aufgerufen
 Tipps & Tricks zum Modulbau
Seiten 1 | 2
Björn L Offline




Beiträge: 505

19.01.2024 15:19
Tankstellenanzeige mit zwei OLED Displays Antworten

Hallo Zusammen,
zwischen den Feiertagen habe ich meine Rennstrecke um eine kleine Tankstelle erweitert. Die hat natürlich auch wieder eine Tankstellenanzeige mit zwei 0.91 OLED-Displays. Eines für die Vorderseite und eines hinten.
Angesteuert werden die beiden Displays mit einem ESP32 der alle 5 Minuten aktuelle Preise aus dem Internet holt und auf das Display schreibt.
Da der Geschäftsführer einer gewissen Modellbaufirma uns in Leipzig besucht und für lau alle Ideen eingesammelt und mitgenommen hat, dachte ich mir ich veröffentliche mal eine Anleitung zum Nachbauen.
Ich will ja keine Namen verraten, aber bei Viessmann gibt es jetzt meine Werbetafeln und eine Tankstellenanzeige...

Hier könnt ihr eine Bauanleitung sehen. Den Arduino Code und die benötigten .STL Dateien zum Ausdrucken findet ihr darunter.



https://www.thingiverse.com/thing:6441897STL Datei

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
 
/*
Dieser Sketch ermöglicht die Anzeige der aktuellen Spritpreise auf einem OLED SSD1306 32x128 auf
einer Modelleisenbahn. Die Größe der Anzeige ist für den MAßstab H0 sehr gut geeignet.
Der Empfang aktueller Spritpreise erfolgt über einen ESP32 von der Webseite https://creativecommons.tankerkoenig.de/
Hier kann nach Registierung der entsprechende (kostenlose) API-Key angefordert und die ID einer Tankstelle nach
freier Wahl ermittelt werden.
Die Verbindung zwischen ESP 32 und dem SSD1306 Display erfolgt über I2C.
IO21 -> SDA
IO22 -> SCL
 
*/
 
#include <Wire.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <Arduino_JSON.h>
#include <U8g2lib.h>
 
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R3, /* reset=*/ U8X8_PIN_NONE,SCL,SDA); // R1 dreht das Display un 90 Grad zum Hochformat
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R1, /* reset=*/ U8X8_PIN_NONE);
 

#define U8G2_16BIT // setzen der 16bit Verison
 
//const char *text = "Werkstatt Reifendienst Shop CleanCar "; // Lauftext von rechts nach links
const char *text = "Geoeffnet "; // Lauftext von rechts nach links
 
/*
WLAN Zugangsdaten
*/
//#include "zugangsdaten.h"
const char* ssid = "deine_SSID";
const char* password = "dein_W-Lan_Passwort";
 
/*
Dein persönlicher Tankerkoenig ApiKey und die abzufragende TankstellenID
*/
 
String TankerkoenigApiKey = "dein-Tankerkoenig-Api-Key"; // kommt per Mail
String TankstellenID = "ab481fb9-4071-4984-baa1-13643f633332"; // frei wählbare TankstellenID
 
String jsonBuffer;
 
/*
RootCA von Tankerkoenig
*/
 
const char* root_ca = \
"-----BEGIN CERTIFICATE-----\n" \
"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\n" \
"-----END CERTIFICATE-----\n";
 
/*
Abfragetimer, laut Nutzungsbedingungen darf die API alle 5 Minuten abgefragt werden
*/
 
void setup(void) {
 
Serial.begin(115200);
 
WiFi.begin(ssid, password);
Serial.println("Connecting");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
 
Serial.println("Timer auf 5 Minuten gesetzt (timerDelay variable)");
 
delay(2000);
 
u8g2.begin(); // startet das SSD1306 32x128 Display
u8g2.setFontMode(0); // Aktivierung das Transparentmodus
}
 
void loop(void) {
preisanzeige();
lauftext();
}
 
void lauftext() {
uint32_t jetzt = millis();
static uint32_t scrollMillis = jetzt;
const uint32_t scrollIntervall = 60;
static u8g2_uint_t offset; // aktueller Offset für den Lauftext
 
if (jetzt - scrollMillis >= scrollIntervall)
{
scrollMillis = jetzt;
u8g2_uint_t x;
 
x = offset; // draw the scrolling text at current offset
u8g2.setFont(u8g2_font_4x6_mr); // set the target font
const u8g2_uint_t width = u8g2.getUTF8Width(text); // Bechnung der Pixelbreite des Textes
do { // repeated drawing of the scrolling text...
u8g2.drawUTF8(x, 125, text); // draw the scolling text
x += width; // add the pixel width of the scrolling text
} while ( x < u8g2.getDisplayWidth() ); // draw again until the complete display is filled
 
u8g2.sendBuffer(); // transfer internal memory to the display
 
offset -= 1; // scroll by one pixel
if ( (u8g2_uint_t)offset < (u8g2_uint_t) - width )
offset = 0; // start over again
}
}
 
void preisanzeige() {
static unsigned long lastTime = 0; // 5 Minuten (300000)
const unsigned long timerDelay = 300000UL; // Um die ersten 5 Minuten zu überspringen
static bool skiptimer = true;
 
if ((millis() - lastTime) > timerDelay || skiptimer == true) { // sende eine HTTP GET Anforderung
 
if (WiFi.status() == WL_CONNECTED) { // überprüfe die WLAN-Verbindung
 
String serverPath = "https://creativecommons.tankerkoenig.de/json/detail.php?id=" + TankstellenID + "&apikey=" + TankerkoenigApiKey;
 
jsonBuffer = httpGETRequest(serverPath.c_str());
Serial.println(jsonBuffer);
JSONVar myObject = JSON.parse(jsonBuffer);

if (JSON.typeof(myObject) == "undefined") {
Serial.println("Parsing input failed!");
return;
}
 

u8g2.clearBuffer(); // internen Speicher löschen
u8g2.setFont(u8g2_font_5x7_mr); // setzen der Font-Größe
u8g2.setCursor(0, 6 ); // setzen des Cursers
u8g2.print("Diesel"); // Schreiben des Textes an die Curserposition
 
u8g2.setFont(u8g2_font_6x12_mr); // setzen der Font-Größe
u8g2.setCursor(3, 18 ); // setzen des Cursers
u8g2.print(myObject["station"]["diesel"]); // Schreiben des Wertes sus dem augelesenen JSON-String
 
u8g2.setFont(u8g2_font_5x7_mr);
u8g2.setCursor(0, 42 );
u8g2.print("Super");
u8g2.setFont(u8g2_font_u8glib_4_tf);
u8g2.setCursor(21, 36 );
u8g2.print("E5");
 
u8g2.setFont(u8g2_font_6x12_mr);
u8g2.setCursor(3, 54 );
u8g2.print(myObject["station"]["e5"]);
 
u8g2.setFont(u8g2_font_5x7_mr);
u8g2.setCursor(0, 78 );
u8g2.print("Super");
u8g2.setFont(u8g2_font_u8glib_4_tf);
u8g2.setCursor(21, 72 );
u8g2.print("E10");
 
u8g2.setFont(u8g2_font_6x12_mr);
u8g2.setCursor(3, 90 );
u8g2.print(myObject["station"]["e10"]);
 
u8g2.sendBuffer(); // Inhalt des internen Speicher auf das Display übertragen
 
} else {
 
u8g2.setFont(u8g2_font_5x7_mr);
u8g2.setCursor(0, 6 );
u8g2.print("Close");
 
u8g2.sendBuffer();
 
}
skiptimer = false;
lastTime = millis();
}
 
}
 
String httpGETRequest(const char* serverName) {
WiFiClient client;
HTTPClient http;
 
http.begin(serverName, root_ca); // Domainname mit URL-Pfad oder IP-Adresse mit Pfad
 

int httpResponseCode = http.GET(); // HTTP-POST-Anforderung senden
 
String payload = "{}";
 
if (httpResponseCode > 0) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
payload = http.getString();
}
else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
 
}
// Free resources
http.end();
 
return payload;
}
 

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


AKKI64 Offline



Beiträge: 970

19.01.2024 15:46
#2 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Hallo Björn,

was für ein Viessmann-Gesäß. Sowas ist ja sonst eigentlich weiter östlich verbreitet.

Grüße
Axel


Björn L findet das Top
MikroMike85 Offline



Beiträge: 42

19.01.2024 16:24
#3 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Hallo Björn,

das ist ja mal eine super geniale Erklärung !!
Mit Video und allem was wir Modellbastler zum Nachbauen benötigen.
Ob ich jemals dazu komme steht allerdings in den Sternen.
Aber warum erzählst Du dem Viess-Typen so viel?

VG aus dem Speckgürtel Münchens, Mike


Björn L findet das Top
Björn L Offline




Beiträge: 505

19.01.2024 17:54
#4 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Hallo Mike,
man versucht doch immer nett zu sein und allen die vor dem Stand auftauchen weiter zu helfen. Auch wenn Prominenz aufläuft. 🤷‍♂️

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


Folgende Mitglieder finden das Top: Chantal und JR
xenton Offline




Beiträge: 807

19.01.2024 18:54
#5 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Das ist ja echt ne linke Nummer. Da ist wohl der Name Programm: Fies-Mann

Gruß
Martin

>>> Hilfe! Mein Ball ist umgefallen! <<<

http://www.mikro-rc.de -


Folgende Mitglieder finden das Top: Björn L und AKKI64
Sven Löffler Offline

Admin


Beiträge: 3.756

20.01.2024 11:56
#6 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Vielen Dank für das Veröffentlichen Björn !

Die Firma Viessmann ist bei mir sowieso unten durch.... Nehmen einfach unsere Modelle am Stand in die Hand und machen Fotos. Das geht garnicht ! Sie klauen überall Ideen und verkaufen es dann als ihre Ideen. Und die Leute rennen Ihnen hinterher als wären es Götter...

Viele Grüße
Sven

http://www.sl-modellbau.de


Folgende Mitglieder finden das Top: Björn L, Blockhat, Alex Klöpfer, frankeisenbahn und Theoretiker
Björn L Offline




Beiträge: 505

25.01.2024 10:11
#7 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Moin Zusammen,
da ja nicht jeder eine Aral Tankstelle besitzt, habe ich die Anzeigetafel für verschiedene Marken gezeichnet.
Das Logo als Quadrat für z.B. Shell und BP, ein Rechteck für z.B. Jet und eine Ellipse für z.B. ESSO.
Die .STL Daten sollten demnächst bei Thingiverse zum Download bereit stehen.

Tankanzeigen.jpg - Bild entfernt (keine Rechte)

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


Saichino Offline




Beiträge: 95

27.01.2024 11:48
#8 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Wie üblich ein großartiger Beitrag zur Modellbau-Community aus der Manufaktur "BjörnL & Sohn".

Grüße von unten (Süden).
Daniel / saichino

Website: https://www.saichino.de
Youtube: https://www.youtube.com/channel/UCN8nEQsq4AgYPhqL8uOtLwQ


Folgende Mitglieder finden das Top: Björn L, Theoretiker und nachtdieb
Björn L Offline




Beiträge: 505

29.01.2024 12:39
#9 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Danke Daniel,
Manufaktur ist gut ...
Baust du jetzt auch eine Tankstelle auf dein Modul?

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


Saichino Offline




Beiträge: 95

31.01.2024 11:47
#10 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Hm, das ist leider ungewolltes Salz in meine Wunde. Der Fortschritt beim Projekt "Modulbau" ist leider eher im negativen Bereich.
Ich muss also eher schauen, dass ich überhaupt mal vorwärts komme.

Grüße von unten (Süden).
Daniel / saichino

Website: https://www.saichino.de
Youtube: https://www.youtube.com/channel/UCN8nEQsq4AgYPhqL8uOtLwQ


MilchMAN Offline




Beiträge: 15

02.02.2024 19:53
#11 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Hallo Björn.

Also ich finde die Idee klasse.
Das hat mich gereizt,
weil ich noch nie etwas mit einem Arduino gemacht habe.
(man braucht halt ein Projekt..)
Und weil ich einen ferngesteuerten Shell Lkw habe.
Und weil ich noch Platz für eine Tankstelle auf der Moba habe.

Mit dem beiliegenden Bildchen bedanke ich mich,

Rüdiger
der MilchMAN aus Lehrte.

Vielleicht noch ein paar Tipps für andere Totalneulinge auf dem Arduino:
Ich musste nur nach Installation der IDE
(https://docs.sunfounder.com/projects/vin...rduino_ide.html)
noch den Treiber für die CP2102 Usb-to-serial bridge installieren.
Im Netz gesucht, Hm.
Der erste Versuch hatte nicht funktioniert (ungültige Treibersignatur...); mit dem hier:
https://www.pololu.com/docs/0J7/all
bin ich zum Ziel gekommen.
Das benötigte Kabel USB auf Micro-USB hatte ich zum Glück noch rumliegen.
Und die Zeit zum kompilieren fand ich erstaunlich lang. Da darf man nicht die Gedult verlieren.
20240202_182541.jpg - Bild entfernt (keine Rechte)


Folgende Mitglieder finden das Top: Björn L, Maik_29413, Macher, Chantal, Alex Klöpfer, Skippy und nachtdieb
Björn L Offline




Beiträge: 505

02.02.2024 20:02
#12 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Moin Rüdiger,
schön das es bei dir reibungslos geklappt hat 👍

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


Alex Klöpfer findet das Top
Björn L Offline




Beiträge: 505

03.02.2024 15:16
#13 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Moin Zusammen,
in der .STL Datei für den Sockel war noch ein Fehler vorhanden. Ich habe jetzt bei Thingiverse die gespiegelte Variante hochgeladen. Die sollte in der nächsten Zeit zum Download zur Verfügung stehen.

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


Folgende Mitglieder finden das Top: Maik_29413 und besserx
besserx Offline



Beiträge: 3

09.02.2024 20:13
#14 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Hallo Leute,
ich war von dem Projekt so angetan, das ich das auf jeden Fall umsetzen wollte. Da meine Anlage noch im Aufbau ist, habe ich mir gedacht ich baue ein kleines Diorama. Ist noch nicht ganz fertig, denn der Amarok soll noch Licht bekommen und auf dem Gehweg soll auch noch ein bisschen was zu sehen sein.
Aber seht selbst.

Gruß
Björn

Angefügte Bilder:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen der Dateianhänge angezeigt Jetzt anmelden!
 20240208_173540.jpg  20240208_173635.jpg 

Folgende Mitglieder finden das Top: Björn L, CarloS, Maik_29413 und Skippy
Björn L Offline




Beiträge: 505

09.02.2024 20:56
#15 RE: Tankstellenanzeige mit zwei OLED Displays Antworten

Moin Björn,
sehr cool 👍. Klasse das du es ohne Probleme nachbauen konntest.

----------------------------------------------------
Viele Grüße aus dem Norden

Björn

https://www.youtube.com/channel/UCS-QU-plI0K0gqP8ssFMyJA
https://www.shapeways.com/shops/bjoerns-shop


Seiten 1 | 2
 Sprung  

disconnected Mikromodell-Chat Mitglieder Online 1
Xobor Xobor Community Software
Datenschutz