ESP8266 mit oled 128x64 als Wetteranzeige

Begonnen von machnetz, 19 April 2016, 10:06:55

Vorheriges Thema - Nächstes Thema

juergs

#90
Habe die Funktion ,,i2c_scan" eingebaut.
Damit ist es möglich, beliebige Sensoren anzuschließen
und flexibel bzw. automatisch die spezifischen Adressen zu erkennen und
darauf zu reagieren. Damit entfällt der Konfigurationsaufwand.
Damit können BME280, BMP280, BME680 usw. angeschlossen werden.
Aber auch CSS811 oder AMS iAQ Sensoren wären denkbar.

/edit: Bin davon ausgegangen, daß der der BME280 nicht auf einer BME680-Adresse liegt.
Leider hat der BME280 die 0x76 ( ... und die 0x77 ebenfalls) mit dem BME680 gemeinsam ....
Da muss man mehr Unterscheidungs-Aufwand betreiben.

juergs

#91
3D-Gehäuse mit den gleichen Grund-Überlegungen ...

The esp-8266 weather station by Thingpulse, which was demoed by Adafruit, will run on this hardware with the following modifications from the default feather/Wemos D1 mini code.
In settings.h file:


    /* Feather Huzzah + 2.4" TFT wing */
    // Pins for the ILI9341
    #define TFT_DC    D8
    #define TFT_CS    D0
    #define TFT_LED  -1
    //#define HAVE_TOUCHPAD
    #define TOUCH_CS    D3
    #define TOUCH_IRQ   -1


esp8266-weather-station-color.cpp file, in the setup() routine, after the gfx.commit() and before the connectWifi():


    gfx.setRotation(2);    // Rotates the TFT 180 degrees for the 3dprinted case


juergs

#92
Hat jemand eine Idee, wie die Limitierung der Palette der momentan vier Farben schwarz, weiss, hellblau + gelb
mit grün und rot zu erweitern wäre?

Erklärung gefunden:
ZitatThe MiniGrafx is very flexible when it comes to hardware support. When initializing the graphics library you define how many bits should be internally be used to represent each pixel.

    1bit: 2 colors (2^1 = 2)
    2bit: 4 colors (2^2 = 4)
    4bit: 16 colors (2^4 = 16)
    8bit 256 colors (2^8 = 256)

Please bear in mind that with more bits per pixel also the memory (RAM/heap) consumption grows rapidly. Assuming your display has 240x320 pixels:

    1bit: 9600 bytes
    2bit: 19200 bytes
    4bit: 32400 bytes
    8bit: 64800 bytes

Mit (Rest-)Heap von etwa 13 KB etwas zu wenig für 4 Bit, sprich für 16 Farben.   :(
Versuche mal mehr Strings in Flash auszulagern....
/Edit: + 1 KB gewonnen ...

juergs

#93
Temperatur + Genauigkeit  (=> 2. Nachkommastelle ?)  ...  ;)
Man kann damit leben ...  ;D
Luftdruck + Luftfeuchte benötigen noch Anpassung/Kalibrierung ....

Anmerkung: Der BME680 braucht ca. 4 Tage Burn-In-Phase bei Fabrik-neuen  Sensoren ... (2tes Gerät)

pc1246

Moin
Wie muss ich denn auf der KonfigSeite die Daten eingeben? Ich habe einfach die APP-id und die location-id als Zahlenwert eingegeben. Passiert ist aber nichts?
Danke und Gruss
Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

pc1246

Moin
Wenn man zu ungeduldig ist! Jetzt sind alle Daten da!
Super Sache, Danke
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

mumpitzstuff

Hat jemand schon eine Lösung dafür gefunden, dass der Bildschirm oft 2 Seiten weiter springt und nicht nur eine? Ich habe da versucht eine Art Entprellung einzubauen, so ganz toll ist die aber noch nicht.

Wie nutzt man diese eingebaute Routine, um die Station schlafen zu legen oder genauer gesagt: Wie weckt man das Ding wieder auf? Ich habe mir jetzt so beholfen, dass ich den deep sleep ausgebaut habe und stattdessen die Hintergrundbeleuchtung abschalte bzw. bei einem Druck auf dem Bildschirm wieder anschalte.

JoWiemann

Zitat von: mumpitzstuff am 13 Mai 2019, 10:50:28
Wie nutzt man diese eingebaute Routine, um die Station schlafen zu legen oder genauer gesagt: Wie weckt man das Ding wieder auf? Ich habe mir jetzt so beholfen, dass ich den deep sleep ausgebaut habe und stattdessen die Hintergrundbeleuchtung abschalte bzw. bei einem Druck auf dem Bildschirm wieder anschalte.


Zum Aufwecken gibt es zwei Methoden: Ein Hardware reset über Button, oder es wird der interne Time Chip auf eine definierte Weckzeit, z.B. von alle 5 Minuten, gesetzt. Mit erreichen der Weckzeit wird ein Hardware restet über GPIO 16 (D0) ausgelöst, der natürlich mit RST verbunden sein muss.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

mumpitzstuff

Ah okay. Dann muss ich mir das erst mal genauer ansehen. Habe hier im Forum eine zusammengebaute Version gekauft und keine Ahnung was da womit verbunden ist. Aber das kriege ich dann schon raus. Danke!

juergs

ZitatHat jemand schon eine Lösung dafür gefunden, dass der Bildschirm oft 2 Seiten weiter springt und nicht nur eine? Ich habe da versucht eine Art Entprellung einzubauen, so ganz toll ist die aber noch nicht.
Nein, ist mir aber auch schon aufgefallen ...  Die Orientierung des Touchs war bei mir (Wemos D1) um 180 ° gedreht. Habe es bei mir korrigiert. Dennoch eine Entprellung wäre sinnvoll, weil der Touch doch sehr sensibel reagiert.
Nach unten streichen ist etwas kontrollierbarer ;-)

mumpitzstuff

Hier mal die Version die ich aktuell verwende. Den zusätzlichen Sensor habe ich allerdings nicht dran und deshalb auch im Code nicht drin.

Bei den Details wird zusätzlich der Text (Beschreibung) des Wetters noch einmal angezeigt. Die Übersetzung z.B. der Mondphasen habe ich überarbeitet. Nach 2min wird die Hintergrundbeleuchtung des Bildschirms abgeschaltet. Drückt man auf den Bildschirm, dann wird dieser wieder für 2 Minuten aktiviert. Das Drücken auf den Bildschirm ist mit 1s entprellt, so das man nicht so einfach mehrere Seiten weiter schaltet.

Alles andere basiert auf dem Original Code bzw. den auch hier schon geposteten Erweiterungen.

Markus.

#101
Zitat von: juergs am 13 Mai 2019, 13:40:38
Nein, ist mir aber auch schon aufgefallen ...  Die Orientierung des Touchs war bei mir (Wemos D1) um 180 ° gedreht. Habe es bei mir korrigiert. Dennoch eine Entprellung wäre sinnvoll, weil der Touch doch sehr sensibel reagiert.
Nach unten streichen ist etwas kontrollierbarer ;-)

Hallo Zusammen,

wo oder wie stellt man denn die Rotation um 180° ein ?



Viele Grüße

Markus

juergs

Hallo Markus,
Es gibt zwei ,,Rotationen":
1. Display
2. Touch

Welche meinst Du?
Jürgen

Markus.

Hallo Jürgen,

Müssten doch dann beide um 180 Grad gedreht werden oder nicht? Also ich meine wenn ich das Display drehe sollte doch auch Touch gedreht werden?!?

Gruß

Markus

juergs

#104
Zitat von: Markus. am 25 Mai 2019, 17:31:40
Hallo Jürgen,

Müssten doch dann beide um 180 Grad gedreht werden oder nicht? Also ich meine wenn ich das Display drehe sollte doch auch Touch gedreht werden?

Die Orientierung hängt ja vom verwendeten Display- und Touchtyp ab.
Meine Variante bezieht sich auf das Wemos TFT Display.

Ich würde einfach mal ein Beispiel des Touchcontrollers kompilieren und schauen, wie
die Reaktion ist und dann, so wie es mit dem Display passt, im Source einbinden.
Die Touch–Änderungen habe ich bei mir im Source kommentiert.

Jürgen