Moin,
ich habe festgestellt, dass ich früh morgens als allererste Aktion des Tages meinen Smartphone-Wecker abschalte und auf meine FHEM-Seite gehe, um nachzuschauen wie das Wetter draußen ist. Da ich den HomeMatic-Selbstbausensor habe, empfange ich alle relevanten Daten wie Temperatur, Luftdruck usw. vom Balkon.
Hätte jemand Interesse, ein kleines Projekt aufzuziehen, in dem ein ESP8266-01 mit oled-Display (i2c) an fhem angebunden die Wetterdaten vom Aussensensor auf dem Display ausgibt? So etwas wie das hier : https://www.youtube.com/watch?v=Kw6XJw8otIw (https://www.youtube.com/watch?v=Kw6XJw8otIw). Ich kann leider nicht programmieren, aber vielleicht findet sich der ein oder andere der das realisieren könnte und Bock drauf hat. Ich würde mich als Tester zur Verfügung stellen ;-)
Gruß, machnetz
Schau doch mal da:
https://forum.fhem.de/index.php/topic,50697.0.html
Wenn es auch interaktiv sein darf (Touch screen) kann es auch ein Nextion-Display sein:
https://forum.fhem.de/index.php/topic,51267.0.html (https://forum.fhem.de/index.php/topic,51267.0.html)
Auch hier ist kein Programmieren erforderlich und ich verwende es unter anderem auch zur Anzeige des Wetterberichtes / Wetters etc
Uuppps,
das hab ich irgendwie gar nicht so mitbekommen ... :o Ich schau mir das mal an, da ist bestimmt was bei ;-)
Danke & Gruß, machnetz
Ich hab bin gerade dabei so etwas ähnliches, anhand des WheatherStation Examples von squix78, auf die Beine zu stellen.
Gesendet von meinem D5803 mit Tapatalk
Ich habe sowas gebaut: ESP8266-Weather-Station mit externem I2C-Bus-Sensor
Genau,
nach diesem Beitrag https://forum.fhem.de/index.php/topic,49787.msg415517.html#msg415517 bin ich auch drauf gekommen ;D
@locutus
Ist das mit einem ESP8266-12 gebaut? Wenn du da mal was "fertig" oder zum testen hast, wäre ich mal interessiert ;-)
Mfg, machnetz
Hallo zusammen,
hier nun die Eigenbau-Wetterstation.
Kurze Beschreibung:
Hardware:
ESP-WROOM-02 WiFi-Modul
CP2104 USB zu UART Bridge
MIC5219 LDO-Spannungsregler
0.96" OLED-Display (I2C-Bus)
RESET Taster
FLASH Taster
USB Typ B Buchse
I2C-Bus (4-pol. Stiftleiste)
Software:
Arduino core for ESP8266 WiFi chip (https://github.com/esp8266/Arduino)
ESP8266 Weather Station (https://github.com/squix78/esp8266-weather-station)
WiFiManager (https://github.com/tzapu/WiFiManager)
Funktionsweise:
Beim ersten Start des ESP8266 wird ein Access Point mit der SSID ESPxxxxxxx erstellt. Die Zugangsdaten des eigenen WLAN-Netzes werden im Webbrowser unter der Adresse http://192.168.4.1/ eingeben. Nach dem Speichern der Daten, startet der ESP8266 neu und versucht sich zu verbinden. Im Fehlerfall beginnt das Funkmodul wieder als AP.
Sofern alles geklappt hat, startet die Wetterstation mit dem folgenden Programmablauf:
- Datum und Uhrzeit
- Wetter aktuell
- Wettervorhersage
- ThingSpeak Channel (https://thingspeak.com/channels/44925) bzw. HTU21D-Sensor
Zusätzlich wird eine Statuszeile mit folgenden Informationen eingeblendet: Frame, Zeit, Wetter, Temperatur & WiFi Signalstärke
Demovideo:
https://www.youtube.com/watch?v=Gs6OLLIxSLw
HINWEIS: Ich bin nicht der Urheber des Audio- und Videomaterials. Es handelt sich hierbei nicht um meine Eigenbau-Wetterstation.
Ihr könnt (entsprechende Programmierkenntnisse vorausgesetzt) die Hardware für andere Zwecke verwenden, um z. B. Statusinformationen aus FHEM auf dem Display darzustellen.
Vom Aufbau her ist die Schaltung vergleichbar mit dem NodeMCU Devkit. Die Programmierung erfolgt über USB oder Arduino OTA (http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html).
Zitat von: locutus am 08 Mai 2016, 21:00:15
Ich biete Euch die Eigenbau-Wetterstation (ohne HTU21D-Sensor) für 14,- € zzgl. Paketversand zum Kauf an...
...
Aktuell sind 3 Stück verfügbar.
Hallo locutus,
wäre es vermessen, gleich 2 Stück der Eigenbau-Wetterstation incl. dem HTU21D bei Dir zu "ordern"?
LG,
sua
Moin,
ich nehme dir eine gern ab, mein letzter freier ESP8266-12 hat sich gestern mit einer Molekularen Disfunktion verabschiedet :(
Gruß, machnetz
Ich würde auch 2 Stück, mit HTU21D nehmen.
Alternativ wäre es vielleicht auch nicht schlecht, wenn Du ein paar Detailbilder zum Aufbau aus dem Video hättest. Wemosse tät ich noch ein paar rumfliegen haben und mir scheine der Aufbau damit irgendwie "flacher"...
Hi,
Ich hätte auch Interesse an einem Modul (mit Sensor). :-)
Gruß
Chris
Zitat von: locutus am 08 Mai 2016, 21:00:15
HINWEIS: Ich bin nicht der Urheber des Audio- und Videomaterials. Es handelt sich hierbei nicht um meine Eigenbau-Wetterstation.
OK, verstehe. Hat sich aber eh erledigt. Ich hab übersehen, dass das Display auch an 5V betrieben werden kann. Damit passt das Display quasi direkt auf das Pin-Out des Wemos. Dann streiche bitte meine Anfrage. Also hol ich mir so ein Display und löt es auf den vorhandenen Wemos. Danke dennoch vielen Dank für deine Arbeit! Cooles Projekt!
Hallo,
da ich immer wieder gefragt werde, wie man eigene Sensordaten auf dem Display darstellen kann, will ich das hier in groben Zügen einmal zeigen.
Ihr benötigt die ESPEasy (https://forum.fhem.de/index.php/topic,46205.0.html) Firmware.
Mal angenommen ihr habt einen LaCrosse TX Sensor in eurem System eingebunden ...
define LaCrosse_05 LaCrosse 05
attr LaCrosse_05 IODev myJeeLink
... dann steuert ihr die Ausgabe auf dem Display mit einem dummy und einem notify:
define OLED_ESP8266 dummy
define esp_oled notify .* {\
my $temp=(ReadingsVal ("LaCrosse_05","temperature","0"));;\
my $humi=(ReadingsVal ("LaCrosse_05","humidity","0"));;\
my $batt=(ReadingsVal ("LaCrosse_05","battery","0"));;\
Log 3, "set OLED_ESP8266: $temp$humi$batt";;\
{GetHttpFile("192.168.4.100:80","/control?cmd=oled,1,1,$temp+$humi+$batt")};;\
}
attr esp_oled verbose 0
Der Rest bleibt eurer Kreativität überlassen.
Hallo Locutus,
Ich würde auch gern einem mit Sensor nehmen.
Geht das noch ?
Hier noch ein weiteres Anwendungsbeispiel ...
WiFi Text Message Display
- eigenständiger http-Webserver
- Versenden von Textnachrichten vom Browser aus über PC, Tablet oder Smartphone
- OTA Updates (http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html) über Webbrowser
- Integration in FHEM möglich
define testCommand dummy
attr testCommand room ESP8266
attr testCommand webCmd niceday
define testNotify notify testCommand:niceday { GetHttpFile("192.168.178.226:80", "/msg?msg=Have+a+nice+day") }
Ihr müsst im Sketch euer WLAN konfigurieren...
#define SSID "ssid" // insert your SSID
#define PASS "pass" // insert your password
... anschließend kompilieren und hochladen.
;D
Hallo Zusammen,
kann es sein das der ESP nicht startet wenn man den HTU21D nicht angeschlossen hat ?
Wie kann ich das Teil in den AP-Mode zurück setzen ?
Zitat von: kvo1 am 23 Juni 2016, 08:50:12
kann es sein das der ESP nicht startet wenn man den HTU21D nicht angeschlossen hat ?
Solange kein Sensor am I2C-Bus gefunden wird, bleibt die Wetterstation offline.
.ino-Sketch für Wetterstation ohne Sensor (ESP8266_WeatherStation_ThingSpeak.ino) ist an Antwort #7 (https://forum.fhem.de/index.php/topic,52403.msg448712.html#msg448712) angehängt.
Zitat
Wie kann ich das Teil in den AP-Mode zurück setzen ?
1. WLAN-Router/AP aus
2. Wetterstation aus
3. Wetterstation an und der ESP beginnt mit dem WiFi-Konfigurationsassistenten ...
Zitat1. WLAN-Router/AP aus
2. Wetterstation aus
3. Wetterstation an und der ESP beginnt mit dem WiFi-Konfigurationsassistenten ...
danke, hat soweit funktioniert. Das Problem ist nur, dass die Konfiguration des WIFI vermutlich fest auf DHCP ausgelegt ist.
Es gibt keine Möglichkeit hier eine fest IP einzustellen, Sofort nach der Eingabe der SSID und des Netzwerkschlüssels verbindet sich das Teil.
ZitatSolange kein Sensor am I2C-Bus gefunden wird, bleibt die Wetterstation offline.
.ino-Sketch für Wetterstation ohne Sensor (ESP8266_WeatherStation_ThingSpeak.ino) ist an Antwort #7 angehängt.
okay, schade, da wäre ein Prüfung ob ein Sensor vorhanden ist oder nicht ganz hilfreich. Wenn kein Sensor dann halt nur 3 Seiten anzeigen.
Aber das geht, entsprechende Programmierkentnisse vorausgesetzt - sicher !
Die WiFiManager Library (https://github.com/tzapu/WiFiManager#custom-ip-configuration) bietet auch die Möglichkeit eine statische IP zu konfigurieren.
hallo locutus
die Wetterstation bringt auf Seite 2 und 3 keine Daten mehr. Im Netz bin ich aber mit dem Teil !
Hat sich da was am Wetterserver geändert ????
Eventuell ist dein Wunderground API-Key (https://github.com/squix78/esp8266-weather-station#setup-arduino-ide) abgelaufen/ungültig.
Zitat von: locutus am 03 Juli 2016, 19:24:35
Eventuell ist dein Wunderground API-Key (https://github.com/squix78/esp8266-weather-station#setup-arduino-ide) abgelaufen/ungültig.
Tja und schon steh ich in Ermangelung an entsprechendem Wissen (im Moment zumindst) auf dem Schlauch :'(
Moin,
das Sketch benötigt einen API-KEY einer (privaten) Wetterstation. Diese "Station-ID" wird dann im Sketch hinterlegt. Aber du besuchst nun erst einmal die Webseite www.weatherunderground.com. Das ist eine Webseite, die Wetterdaten von privaten Messstationen (PWS: Private Weather Stations) zur Verfügung stellt.
Wetterdaten aus deiner Nähe bekommst du nun, wenn du auf der Webseite registrierst und einen kostenlosen für Entwickler & Nutzer mit geringen Transaktionen Kauf zu 0,- EUR abschliesst. Dafür sind die Häufigkeit der Abfragen pro Tag aber (für den Privatgebrauch ausreichend) begrenzt.
Wenn der Registrierungsvorgang abgeschlossen ist, kannst in den Einstellungen deinen Key finden. Diese ID trägst du nun im Sketch statt der dort vorhandenen ein und solltest wieder Daten bekommen.
Viel Erfolg und Gruß aus Hamburg, machnetz
Hallo zusammen,
hier die Softwareaktualisierung für eure ESP8266-Wetterstationen:
- hinzugefügt WiFi Splash Screen und Credit to Squix78
- ersetzt TimeClient durch built-in lwip sntp client
- hinzugefügt Daylight Saving Time Auto Adjuster with DST rules (https://github.com/neptune2/simpleDSTadjust)
- hinzugefügt Lokale Einstellungen für Berlin, Boston und Sydney
- wählbare NTP-Server für jedes Gebietsschema
- hinzugefügt Zusätzliche AM / PM- oder 24-Stunden-Option für jedes Gebietsschema
- ersetzt Clock Screen durch 7-Segment Font
- hinzugefügt Wetterprognose für 4-6 Tage
- hinzugefügt HTU21D Aktualisierungsintervall alle 60 Sek.
- hinzugefügt HTU21D Sensorfprüfung. Gibt 998 oder 999 zurück.
998 - I2C timed out
999 - CRC falsch
Hallo Locutus,
würde eine nehmen. Rest dann per PN.
Grüße Jörg
Hallo Locutus,
auch ich würde gerne eine komplette ESP8266-Wetterstation nehmen. Weitere Infos bitte über PM.
Viele Grüsse
MillyHarry
Hallo Damian,
auch ich hätte gerne eine kpl. ESP-Wettersation.
Viele Grüße
Thomas
Ohhhh je,
da fällt mir grade ein, das ich meine Wetterstation immer noch (nachdem wohl der Key abgelaufen ist) immer noch rumliegen haben und
eigentlich auch wieder in Betrieb nehmen möchte.
Muss mich aber an dieser Stelle mal outen, habe (immer noch nicht) keine Plan was ich dazu benötige und wie man da vorgeht :'(
Hätte jemand von Euch ggf. so'ne Art todo ....?
Danke und sorry
kvo1
machnetz hat die Vorgehensweise ganz gut erklärt. Hier noch einmal mit Bildern dokumentiert: Get your own Wundergound API key (http://kaleidoscoop-web.com/contact/2-ongecategoriseerd/4-wunderground-api-key)
Im Sketch musst du
- deinen Wunderground-API-Schlüssel eingeben
- deinen Standort gemäß Wunderground API einstellen, z.B. Berlin, DL
// Wunderground Settings
const boolean IS_METRIC = true;
const String WUNDERGRROUND_API_KEY = "<WUNDERGROUND KEY HERE>";
const String WUNDERGRROUND_LANGUAGE = "DL";
const String WUNDERGROUND_COUNTRY = "DL";
const String WUNDERGROUND_CITY = "Berlin";
und hochladen.
Servus locutus,
hast Du derzeit noch Bausätze verfügbar? Ich würde 2 nehmen, wenn es nicht vermessen ist.
LG,
Tom
Hey locutus,
habe heute das Update eingespielt - super! Richtig ausgereift und macht Spass beim anpassen. Ich kann das Modul nur an jeden Interessenten weiterempfehlen, der eine kleine Wetterstation (am Bett??) haben möchte. Ich lese ja meine Wettersensortdaten über fhem aus und sende sie an Thingspeak, von dort lese ich sie für das Modul ein und stelle sie auf dem (angepassten) Skript in den Bildschirmen dar - sieht echt klasse aus. Jetzt ist das was richtig Rundes!
Danke für deine Arbeit und Gruß aus Hamburg von
machnetz
Zitat von: tomster am 17 November 2016, 09:51:21
hast Du derzeit noch Bausätze verfügbar? Ich würde 2 nehmen, wenn es nicht vermessen ist.
Stückliste und Gerberdaten (https://www.itead.cc/open-pcb/pcb-prototyping/2layer-color-pcb-5cm-x-5cm-max.html) im Anhang.
Die meisten Bauteile sind bei Reichelt Elektronik erhältlich, den Rest gibt es in der freien Marktwirtschaft.
Das 0,96" OLED-Display muss auf jedem Fall die hier abgebildete Pinbelegung haben.
Schaltplan siehe Antwort #7 (https://forum.fhem.de/index.php/topic,52403.msg448712.html#msg448712)
Meine Zutaten für eine ESP8266 Wetterstation Color:
- 2.4" ILI9341 SPI TFT LCD 320x240 Modul mit Touch Panel
- Wemos D1 mini
- Buchsen- und Stiftleisten
- Taster (Reset)
- Trägerplatine (Gerberdaten im Anhang)
- esp8266-weather-station-color Firmware (https://github.com/ThingPulse/esp8266-weather-station-color)
Screen Brightness Modifikation:
https://github.com/ThingPulse/esp8266-weather-station-color/issues/24
Ich kann zwei unbestückte Platinen (siehe weather_station_color_pcb.jpg) entbehren.
NEUE VERSION! Wetterstation für 2.8" TFT LCD (https://forum.fhem.de/index.php/topic,52403.msg949533.html#msg949533)
Ich würde eine nehmen. Schick mir bitte eine pm mit deinen Daten.
Viele Grüße
Matze
Hallo locutus,
ich würde dann die zweite Platine nehmen, was benötigst Du für den Versand?
Danke + Gruß
PeMue
Zitat von: locutus am 10 Februar 2018, 11:55:03
Meine Zutaten für eine ESP8266 Wetterstation Color:
Ich kann zwei unbestückte Platinen (siehe weather_station_color_pcb.jpg) entbehren. Stückpreis 3,- € zzgl. Versandkosten
Hätte ebenfalls gerne eine der Platinen.
Gruß
Oli
Bin jetzt endlich dazugekommen und habe mir die Station zusammengebaut und in ein passendes Gehäuse verfrachtet.
Station bootet, findet wlan, holt sich daten. Soweit so gut. :) (Version mit 320x240 px Ili9341)
Allerdings habe ich ein Problem:
Das Display scrollt jede Sekunde auf einen anderen Screen. Kann man das irgendwo einstellen das zb. der scroll nur alle 5 Sek. geschieht oder nur per touch auf das Display? Hat das Problem noch jemand von euch?
Ich gehe mal davon aus das die Standart Pin Belegung mit dem Adapter PCB gleich ist.
Das ist Standart hinterlegt:
// Pins for the ILI9341
#define TFT_DC D2
#define TFT_CS D1
#define TFT_LED D8
#define HAVE_TOUCHPAD
#define TOUCH_CS D3
#define TOUCH_IRQ D4
Ansonsten habe ich leider nicht viel zu dem Thema gefunden :(
Grüße
Matze
So, jetzt habe ich mal die Wetterstation aufgebaut:
- Wunderground API funktioniert noch (mal sehen, wie lange)
- die Zeitanzeige wechselt alle 0,5 s zwischen deutscher und amerikanischer Schreibweise hin- und her, weiß da jemand, wie man das verändert?
Ansonsten sieht das Teil echt gut aus, mal sehen, wie gut die Vorhersagen sind.
Gruß Peter
Edit1:
Mit der OpenWeatherMap Software ist der Wechsel zwischen deutscher und amerikanischer Zeitanzeige noch schneller :o
Edit2:
Problem (https://github.com/ThingPulse/esp8266-weather-station-color/issues/84) scheint bekannt zu sein und am Touch Display zu liegen.
So, jetzt weiß ich was los ist:
"Isch 'abe gar kein Touch" :o :o :o
Siehe auch Bild. Mal sehen, ob es nach Auskommentieren funktioniert.
@locutus:
Zitat von: locutus am 10 Februar 2018, 11:55:03
Screen Brightness Modifikation:
https://github.com/ThingPulse/esp8266-weather-station-color/issues/24
Fehlt da nicht der Transistor in der Schaltung? Oder geht es mit dem PWM auch "invertiert" ohne Transistor?
Gruß Peter
Hallo Peter,
die Transistorstufe hast Du schon auf der Platine des Display.
VG
joschi2009
Hallo zusammen,
hat eigentlich jemand schon mal die Firmware für das Display ohne Touch compiliert?
Ich hatte mal einen Setup der Arduino IDE die eine funktionierende .bin-Datei generiert, bekomme aber die Bibliotheken (oder was auch immer) nicht wieder auf den alten Stand. Und mit allem, was ich jetzt compiliere blinkt das Display ganz schwach und macht dann nichts mehr :o.
Ein Touch Display ist zwar bestellt, ich würde aber gerne trotzdem verstehen, das da nicht funktioniert.
Danke + Gruß
Peter
Hallo Peter,
wenn das Display mit 3.3V betrieben wird muss wohl der Spannungsregler mit J1 gebrückt werden.
VG
joschi2009
Hallo Wolfgang,
danke, das war's leider nicht. Es ändert sich die Anzeige der deutchen/amerikanischen Uhrzeit bei der schon lauffähigen Version, aber die neu compilierten Versionen funktionieren nicht. Dann warte ich halt mal auf das Touch Display, bzw. suche, was ich an der IDE geändert habe :o.
Gruß Peter
Hallo Peter,
ja compiliert schon x-Mal.
Der Touch wird über eine separate Touch-Lib eingebunden.
Welche Lib benutzt Du für das TFT?
Die TFT_eSPI-Lib funktioniert gut, und hat auch viele Beispiele für "TFT_eSPI\examples\320 x 240" - Displays.
Manche Displaytypen liefern nicht die richtige Display-ID in der Setup-Methode zurück, dann muss man sie explizit setzen...
Diese Display passt genau für den WEMOS-D1: wemos-tft-2.4-touch-shield (https://www.exp-tech.de/displays/lcd/9184/wemos-tft-2.4-touch-shield)
und hat noch durch die Doppel-Buchesenleiste Steckmöglichkeiten für I2C-Sensoren.
Grüße,
Jürgen
Hallo Jürgen,
compilieren ist nicht das Problem, aber das Display (ohne Touch) geht nicht an. Ich hatte aber auch eine Einstellung in der Arduino IDE, wo das Display funktioniert hat. Ich weiß nur nicht, welche Libraries ich damals hatte.
Für die Wetterstation werden folgende Libraries verwendet:
Display https://github.com/ThingPulse/minigrafx (https://github.com/ThingPulse/minigrafx)
Touch https://github.com/PaulStoffregen/XPT2046_Touchscreen (https://github.com/PaulStoffregen/XPT2046_Touchscreen)
Gruß Peter
Hallo Peter,
die Lib mit Framebuffer scheint mir sehr gut zu sein.
Probiere sie mit diesem Projekt auch mal am WoE aus.
Grüße,
Jürgen
Ich hatte damals auch das falsche Display ohne Touch. Habe dann beim compilieren alle screens außer den hauptscreen raus genommen. Hat mich zwar auch nerven gekostet, läuft seitdem aber problemlos. Müsste mal schauen ob ich den Code noch im ide Ordner habe.
Viele Grüße
Matze
Hallo Matze,
das wäre klasse, wenn Du das finden würdest. Ich habe auch schon probiert, die Touch Funktionalität auszukommentieren, war aber bis jetzt noch nicht erfolgreich.
Danke + Gruß
Peter
Hallo Peter,
habe mal quick&dirty den Touch rausgenommen.
Die Portpins in settings.h habe ich auf mein Display angepasst.
Evtl. müssen dort auch die Pins des Displays dort angepasst werden, da evtl. wg. fehlendem TouchController abweichend?
Es fehlt mir wohl das SPIFFS Filesystem. Dort hängt es dann bei mir (SD-Karte?) mit wdt-Fehler.
Aber der Sketch lässt sich ohne Touch compilieren.
Also ohne Gewähr ;)
Grüße,
Jürgen
Ich hab das leider nicht mehr da.
Soweit ich mich erinnern kann habe ich an den Touch Einstellungen nichts geändert.
Ich habe lediglich in der Uno Datei im Bereich ,,void loop"
Die ,,else if" für Screen 1-4 raus genommen.
Damit bleibt immer der homescreen und scrollt nur die Vorschau durch.
Mehr Details brauch ich da auch nicht. Ich hoffe das hilft euch.
Viele Grüße
Matze
Hallo zusammen,
habe das neue Display (mit Touch) angeschlossen und die compilierten Binaries eingespielt - OLED bleibt aus. Ich weiß, dass ich die Version, die ich in meine ZIP Datei mit verpackt habe, damals compiliert habe, weiß aber nicht mehr, mit welchen Versionen der Libraries bzw. mit welcher IDE.
Könnte mir bitte jemand posten, welche Umgebung (IDE, WeMos Einstellungen, Libraries) er verwendet hat, die funktioniert?
Danke + Gruß
Peter
Hallo Peter,
also ich verwende die IDE1.8.7 mit den Libs aus der Aufstellung im Anhang und den entsprechenden Wemos-Einstellungen wie im Bild. die Ino hab ich auch mal drangehangen, diese läuft bei mir auf 2,8" Displays mit Touch, natürlich mit den entsprechenden Daten in der Settings.h.
Vielleicht bekommst Du es ja damit hin.
Viele Grüße
Markus
Hallo Markus + Peter,
ich habe das Projekt auch kompiliert und hatte einige "komische" Eigenheiten erfahren...
In Verwendung habe ich das Lolin-TFT-Display mit Touch und Wemos D1-Schnittstelle:
TFT: https://www.exp-tech.de/displays/lcd/9184/wemos-tft-2.4-touch-shield (https://www.exp-tech.de/displays/lcd/9184/wemos-tft-2.4-touch-shield)
Schematic: https://wiki.wemos.cc/_media/products:d1_mini_shields:sch_tft2.4_v1.0.0.pdf (https://wiki.wemos.cc/_media/products:d1_mini_shields:sch_tft2.4_v1.0.0.pdf)
Hierbei ist die Hardware
anders in der
Settings.h zu verdrahten:
// Pins for the ILI9341
#define TFT_DC D8
#define TFT_CS D0
#define TFT_LED D4
#define HAVE_TOUCHPAD
#define TOUCH_CS D3
#define TOUCH_IRQ D3
im Gegensatz zum
Original:
/ Pins for the ILI9341
#define TFT_DC D2
#define TFT_CS D1
#define TFT_LED D8
#define HAVE_TOUCHPAD
#define TOUCH_CS D3
#define TOUCH_IRQ D4
Anmerkung: Der PIN "TOUCH_IRQ ", der scheinbar nicht von der Touch-Lib verwendet wird ...
Oder kann auf "255" gesetzt oder weggelassen werden:
XPT2046_Touchscreen(uint8_t cspin, uint8_t tirq=255);
Setzen von
TOUCH_IRQ auf 255 lässt jetzt den Touchscreen kalibrieren ... :)
/Edit: .. und funktioniert, finde aber das automatische Durchscrollen irgendwie besser . ;)
Leider funktioniert der Code für Get_Pos nicht mit dem Touch obwohl der Touch-Controller der gleiche verwendete Typ ist.
Die initiale Touchkalibierung wird einfach übersprungen ...
Deshalb habe ich diesen Teil (der das Umschalten zw. USA und EUR-Zeitformat handelt) einfach vorläufig auskommentiert.
Jetzt werden die Screens einfach alle paar Sekunden durchgetaktet.
void loop()
{
gfx.fillBuffer(MINI_BLACK);
/*
if (touchController.isTouched(0))
{
TS_Point p = touchController.getPoint();
if (p.y < 80)
{
IS_STYLE_12HR = !IS_STYLE_12HR;
}
else
{
screen = (screen + 1) % screenCount;
}
}
*/
damit, als Workaround hinzufügen, damit die Screens nicht so schnell umschalten:
screen = (screen + 1) % screenCount;
//--- add some delay between screens
delay (4000);
yield();
delay (4000);
Dann funktioniert dann schon mal der große Teil.
Die Ursache, dass der Touch nicht funktioniert muss ich leider auch noch klären. Siehe oben.
http://www.esp8266learning.com/a-quick-look-at-the-wemos-tft-2-4-touch-shield.php (http://www.esp8266learning.com/a-quick-look-at-the-wemos-tft-2-4-touch-shield.php)
Weiterhin den Hinweis auf den Debug-Output, der u.U. das Problem aufzeigt und
das Einschalten des SPIFFS-Dateisystems in der IDE (neueste Version!) um die TouchKonfigurationsdaten sichern zu können.
Hatte das Phänomen, dass initial die Touch-Kalibrierung (zu) kurz angezeigt wird. Nach einem Reset hatte ich auf den Kalibrierpunkt gedrückt.
Dann hatte die FW wohl eine
calibration.txt angelegt. Nach einem Reboot kam dann nur noch ein weißer Screen ... Debug-Output sah aber gut aus ...
......Connected...Initializing touch screen...
Mounting file system...
SPIFFS opened: OK
Calibration not available
Ein erneutes Flashen setzte diesen Zustand zurück, der DEBUG-Output hat sich aber mit existierender configuration.txt im SPIFFS-Dateisystem geändert.
Beim Flashen kann man auswählen, dass das gesamte Flash gelöscht wird.... Mal schauen ...
Zitat
..Connected...Initializing touch screen...
Mounting file system...
SPIFFS opened: OK
OK, Calibration is available
DST Rules Updated:
DST Start: Sun Mar 31 02:00:00 2019
DST End: Sun Oct 27 02:00:00 2019
Time difference for DST: 3600
Getting url: http://api.openweathermap.org/data/2.5/weather?id=xxx&appid=yyyyyyyy&units=metric&lang=en
[HTTP] GET...
[HTTP] GET... code: 200
start document
Getting url: http://api.openweathermap.org/data/2.5/forecast?id=xxxxx&appid=yyyyyyyy&units=metric&lang=en
[HTTP] GET...
[HTTP] GET... code: 200
start document
Der Api-Key ist einfach eingerichet, aber der Hinweis auf die "OPEN_WEATHER_MAP_LOCATION_ID" wäre noch angebracht:
Sie befindet sich in der openweathermap-URL: "... id=1234567890&appid"!
Auf alle Fälle ein interessantes Projekt mit vielen Hinweisen auf eigene Gestaltungsmöglichkeiten... ;)
/edit:
Noch der Hinweis: nur die neusten Lib-Versionen (ESP8266 core (https://github.com/esp8266/Arduino) !) verwenden, ältere haben noch Bugs in Verbindung mit der ADAFRUIT-TFT-Llib!
Quelle hier (2018/09/13): https://wiki.wemos.cc/tutorials:shields:get_started_with_tft_2.4_shield (https://wiki.wemos.cc/tutorials:shields:get_started_with_tft_2.4_shield)
ZitatMake sure you using lastest ESP8266 core for Arduino, otherwise it may not work properly:
The pin D0(GPIO16) will be not work when you use older version ESP8266 core for Arduino , because the older version ESP8266 core for Arduino's digitalPinToBitMask(), portOutputRegister(), portInputRegister() and portModeRegister() fuction have some bugs which Adafruit_ILI9341 Library will use.
This bug was fixed after commit 799193888a553de8876052019842538396f92194
Grüße,
Jürgen
Hallo,
anbei der Sketch mit den Modifikationen:
- Helligkeitssteuerung
- BME280
- flackern auf dem ersten Screen beseitigt. CPU Frequenz auf 160 MHz stellen!
Grüße Jörg
Ok, noch zwei kleine Anpassungen im Sketch:
- LCD Hintergrundbeleuchtung wurde nicht beim Hochfahren eingeschaltet
- prüfen, ob BME vorhanden ist
Noch etwas eingebaut:
- Konfiguration für WiFi
Es wird ein Access Point: AutoConnectAP aufgebaut und auf eine Konfigurationsseite umgeleitet
In der setting.h ist unter // Setup folgendes einzufügen:
#define WM_SSID "AutoConnectAP"
#define WM_PASS "esp8266"
#define WM_HOSTNAME "ThingPulse-weather-station-color"
und es sind die beigefügten Libraries notwendig.
Wird während der Progressbalken mit "WiFiManager: Initializing..." sichtbar ist auf den Bildschirm getippt, dann wird die WiFi
Konfiguration gelöscht und der Zugang muss neu ausgewählt werden.
Grüße Jörg
Hallo Jörg,
Super Sache :-)
Hab das mal auf einen meiner Displays geflasht. Ich habe aber das Problem auf der Übersichtsseite das der Forecast ganz schön nervös blinkt. Habe aber auch keinen BME verbaut. Blinken tut wie gesagt nur der Forecast selber der von rechts nach links läuft.
Hast du da eine Idee?
Gruß
Markus
Zitat von: Markus. am 18 März 2019, 19:00:25
Hallo Jörg,
Super Sache :-)
Hab das mal auf einen meiner Displays geflasht. Ich habe aber das Problem auf der Übersichtsseite das der Forecast ganz schön nervös blinkt. Habe aber auch keinen BME verbaut. Blinken tut wie gesagt nur der Forecast selber der von rechts nach links läuft.
Hast du da eine Idee?
Gruß
Markus
Hast Du die CPU auf 160 MHz umgestellt?
Grüße Jörg
Zitat von: JoWiemann am 17 März 2019, 15:33:47
Hallo,
anbei der Sketch mit den Modifikationen:
- Helligkeitssteuerung
- BME280
- flackern auf dem ersten Screen beseitigt. CPU Frequenz auf 160 MHz stellen!
Grüße Jörg
ups... das habe ich wohl vergessen...ich Trottel...
Funzt genial :-)
Danke Dir !!!
Gruß
Markus
Hallo,
nach ein bisschen suchen habe ich das folgende schicke Gehäuse für Selbstdrucker gefunden: https://www.myminifactory.com/object/3d-print-2-4-tft-desktop-stand-38205
Grüße Jörg
So, jetzt weiß ich auch, warum die Sache bei mir nicht funktioniert:
WeMos D1 R1 <> LOLIN (WeMos) D1 R2 & mini >:( >:( >:(
@Markus: Danke noch mal für die Bibliotheken, bei mit bricht das Compilieren mit der Bibliothek
esp8266_weather_station v1.6.4
mit Fehlermeldung ab, mit der v1.6.5 funktioniert es.
Danke + Gruß
Peter
Hi,
Gibt es eigentlich irgendwo einen Post der die aktuellen Dateien und die einrichtung beinhaltet?
für mich sieht es gerade so aus als ob man es mühevoll selbst zusammensuchen müsste.
Oder bin ich nur zu blödind zum finden?
Danke
/Frank
Hallo Frank,
ich denke, die Reihenfolge ist diese:
- Anleitung (https://docs.thingpulse.com/guides/wifi-color-display-kit/)
- Originalversion (https://github.com/ThingPulse/esp8266-weather-station-color/) der Software
- verbesserte Version (https://forum.fhem.de/index.php/topic,52403.msg920260.html#msg920260) mit Hintergrundbeleuchtung (JoWiemann)
- Version mit Einstellbarkeit der SSID/PW (https://forum.fhem.de/index.php/topic,52403.msg920693.html#msg920693) (JoWiemann)
- mögliches Gehäuse (https://www.myminifactory.com/object/3d-print-2-4-tft-desktop-stand-38205)
Gruß Peter
Zitat von: PeMue am 21 März 2019, 15:17:08
Hallo Frank,
ich denke, die Reihenfolge ist diese:
Danke Peter!
gibt es hier auch eine fertige bin Datei 8)
Fragend
Ralf
Zitat von: Wuppi68 am 22 März 2019, 14:26:51
gibt es hier auch eine fertige bin Datei 8)
wird Dir nichts bringen, da bis zur
Zitat von: PeMue am 21 März 2019, 15:17:08
- verbesserte Version (https://forum.fhem.de/index.php/topic,52403.msg920260.html#msg920260) mit Hintergrundbeleuchtung (JoWiemann)
die SSID und das Password mit einkompiliert wird ;)
Gruß Peter
Der API Key und Wetter-Standort sind auch hardcoded.
Zitat von: Frank_Huber am 22 März 2019, 14:51:43
Der API Key und Wetter-Standort sind auch hardcoded.
Wenn ich Zeit habe baue ich noch einen kleinen Webserver ein. Dann können die Parameter online eingegeben werden.
Gesendet von iPhone mit Tapatalk
Grüße Jörg
Mal ganz was anderes,
auf dem Homescreen, kann ich da das scrollen abschalten?
dauerhaft die nächsten 3 würden mir ausreichen.
klappt :-)
Danke an PeMue für en Wemos Tip :-)
Das Ding war im WLAN und es zeigte nix an :-(
Hallo,
ich habe jetzt noch eine Webserver für das Eingeben der Konfigurationsparameter eingebaut. Über Anzahl Frames kann nun auch festgelegt werden, wie viele Vorhersagen auf dem Startbildschirm durchlaufen sollen.
Grüße Jörg
PS: Im Zip File ist auch eine bin Datei.
Hallo Jörg,
super, danke!
Hast Du die Möglichkeit gesehen, Konfigurationsdateien ins SPIFF-Dateisystem hochzuladen?
Beispiel: https://github.com/jasoncoon/esp8266-fastled-webserver (https://github.com/jasoncoon/esp8266-fastled-webserver)
https://arduino-test.esp8266.com/Arduino/versions/2.3.0/doc/filesystem.html#uploading-files-to-file-system (https://arduino-test.esp8266.com/Arduino/versions/2.3.0/doc/filesystem.html#uploading-files-to-file-system)
Tool für die IDE:
Download the tool: https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.2.0/ESP8266FS-0.2.0.zip.
In your Arduino sketchbook directory, create tools directory if it doesn't exist yet
Unpack the tool into tools directory (the path will look like <home_dir>/Arduino/tools/ESP8266FS/tool/esp8266fs.jar)
Restart Arduino IDE
Dann könnte man einfach eine Konfig-Text-Datei manuell erstellen und zusammen mit der Binary des Sketches hochladen (z.B. als Erweiterung der config.txt-Datei mit den Touch-Einstellungen und den zusätzlichen Parametern).
Grüße,
Jürgen
Zitat von: juergs am 27 März 2019, 12:36:02
Hallo Jörg,
super, danke!
Hast Du die Möglichkeit gesehen, Konfigurationsdateien ins SPIFF-Dateisystem hochzuladen?
Beispiel: https://github.com/jasoncoon/esp8266-fastled-webserver (https://github.com/jasoncoon/esp8266-fastled-webserver)
https://arduino-test.esp8266.com/Arduino/versions/2.3.0/doc/filesystem.html#uploading-files-to-file-system (https://arduino-test.esp8266.com/Arduino/versions/2.3.0/doc/filesystem.html#uploading-files-to-file-system)
Tool für die IDE:
Download the tool: https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.2.0/ESP8266FS-0.2.0.zip.
In your Arduino sketchbook directory, create tools directory if it doesn't exist yet
Unpack the tool into tools directory (the path will look like <home_dir>/Arduino/tools/ESP8266FS/tool/esp8266fs.jar)
Restart Arduino IDE
Dann könnte man einfach eine Konfig-Text-Datei manuell erstellen und zusammen mit der Binary des Sketches hochladen (z.B. als Erweiterung der config.txt-Datei mit den Touch-Einstellungen und den zusätzlichen Parametern).
Grüße,
Jürgen
Hallo Jürgen,
nutze ich bisher nur um SPIFFS zu löschen. Und, ich wollte eigentlich nicht soviel Aufwand in den Sketch stecken.
Grüße Jörg
Zitatnicht soviel Aufwand in den Sketch stecken.
Eine Textdatei erstellen mit Inhalt:
0
0
wllan-ssid
wlan-passwort
openweather-id usw. usw.
Ist nicht viel Aufwand, da die config.txt sowieso schon ausgelesen wird,
wenn eine Touch-Konfiguration vorliegt.
Wenn 0 <LF> 0 enthalten, kann man die Touch-Konfiguration anwerfen....
Wollte das nur erwähnen, dass sowas auch "einfach" gehen würde ... ;)
Bei mir zickte der Wemos immer beim Touch-Konfigurieren mit Exceptions rum.
Habe mir die Touch-Parameter ausgeben lassen, Datei erstellt und dann über diese Methode hochgeladen - geht!
Jörg, Danke für die ganzen Anpassungen! :-) wird immer besser das Teil!
Eines ist mir gerade noch aufgefallen auf der "Suche" nach der Konfig-Seite:
Die Infoseite des Wetterdisplays würde evtl eine kleinere Schriftart benötigen oder die Werte müsste etwas nach links verschoben werden.
Die IP Adresse wird rechts abgeschnitten.
Hab schon gekuckt, aber nichts gefunde wo ich das anpassen könnte.
EDIT:
So, Konfig geändert, gespeichert und neu gestartet. --> Änderungen werden verworfen.
Und bei jedem Neustart möchte das Touch kalibriert werden.
Hm, hast Du selber kompiliert oder das bin File genommen. Bei selber kompilieren bitte an 3MB SPIFFS denken.
Gesendet von iPhone mit Tapatalk
Grüße Jörg
selbst kompiliert.
werde es nochmal checken. :-)
btw:
Bei der Windgeschwindigkeit gibt es einen Typo: "Winsgeschwindigkeit"
Und man könnte es auch abkürzen damit es ganz reinpasst: "Windgeschwind."
EDIT: Hab in der Tat das SPIFFS auf NONE stehen gehabt.
mit 3MB SPIFFS habe ich aber ungewollte reboots. vor allem beim Zugriff auf dei Konfig Seite.
Diese stören aber nicht weiter. Dafür ist das ständige Touch kalibrieren weg. :-)
Das mit dem Typo ist ein schöner Vorschlag. Nur, bisher habe ich mich mit den Tiefen des Source noch nicht beschäftigt. Eher nur Ergänzungen gemacht, die nicht in die bisherigen Funktionen hinein greifen.
Gesendet von iPhone mit Tapatalk
Grüße Jörg
Ich habe es bei mir vor dem Kompilieren angepasst und wollte es hier bekannt geben. :-)
Wie müsste eigentlich ein BME280 angeschlossen werden?
Connecting the BME280 to a Wemos Mini D1
Wemos BME280
GND GND
3.3V VCC
D3 (gpio0) SDA = D2
D4 (gpio2) SCL = D1
Standard für wire.begin
Welche wetterdaten nutzt ihr momentan? Ich hatte eine super Station von weatherunderground in der Nähe. da geht nichts mehr.
Grüße
Matze
Hallo,
die Library: ESP8266 WeatherStation by Daniel Eichhorn ist vor ein paar Tagen aktualisiert worden. Es wurde ein Memory Leak gefixed. Das könnte die immer mal wieder auftretenden Reboots erklären.
Grüße Jörg
Hallo Zusammen,
ich habe diese Version (https://github.com/juergs/ESP_Weather_Station_ESP8266_WemosLolinTFT) für
"TFT 2,4 Touch Shield V1.0.0 für LOLIN (WEMOS) d1 mini 2,4" 320X240 SPI Touchscreen ILI9341 XPT2046"
angepasst bzw. noch bei der Ermittlung der Touch-X Position (vermutlich nur diese Displayversion) fehlerbereinigt
und für den BME680-Sensor vorbereitet.
//--- settings for LOLIN TFT2.4 with Wemos D1 mini-pinout
//---
#define TFT_DC D8 //D2
#define TFT_CS D0 //D1
#define TFT_LED D4 //D8
/* #define HAVE_TOUCHPAD */
#define TOUCH_CS D3
#define TOUCH_IRQ 255
/Edit: D4 kann als LED-PWM-Ausgang and den LED-Anschluss an der Unterseite des TFT-Boars verbunden werden.
Ist per Pullup auf 3V3 gelegt. Über PWN kann mit LDR an A0 gedimmt werden.
Jürgen
Eine erste Beta-Version mit
BME680 Sensor mit I2C-Anbindung habe ich unter
esp8266-weather-station-bme680_v1 (https://github.com/juergs/esp8266-weather-station-bme680_v1)eingestellt. Details folgen ... ;)
ZitatBei selber kompilieren bitte an 3MB SPIFFS denken!
Kein Verwendung von BSEC!
[270.88] Temperature = 23.37 *C Pressure = 1009.42 hPa Humidity = 34.98 % Gas = 5.73 KOhms Approx. Altitude = 31.77 m
[285.78] Temperature = 23.36 *C Pressure = 1009.42 hPa Humidity = 35.00 % Gas = 5.73 KOhms Approx. Altitude = 31.94 m
[300.68] Temperature = 23.36 *C Pressure = 1009.42 hPa Humidity = 35.02 % Gas = 5.73 KOhms Approx. Altitude = 31.77 m
[301.05] Taupunkt: 7.36 tVOC: 127
BME680-Reading done.
[315.63] Temperature = 23.35 *C Pressure = 1009.44 hPa Humidity = 35.00 % Gas = 5.73 KOhms Approx. Altitude = 31.77 m
[316.00] Taupunkt: 7.34 tVOC: 127
BME680-Reading done.
Jürgen
Zitat von: juergs am 29 April 2019, 21:26:47
Eine erste Beta-Version mit BME680 Sensor mit I2C-Anbindung habe ich unter esp8266-weather-station-bme680_v1 (https://github.com/juergs/esp8266-weather-station-bme680_v1)
eingestellt. Details folgen ... ;)
Jürgen
Hallo Jürgen,
der BME680 kann unter zwei Adressen angesprochen werden. Deine Implementation nimmt als Standard die Defaultadresse. Ich würde es gut finden, wenn man über ein Define hier zwischen den beiden Adressen wählen könnte.
Grüße Jörg
Hallo Jörg,
Zitatder BME680 kann unter zwei Adressen angesprochen werden. Deine Implementation nimmt als Standard die Defaultadresse.
Ja, das liegt daran, dass das Breakoutboard so verschalten ist.
Werde Deine Anregung gerne mit aufnehmen.
Info zum Breakout von OSH-Park: https://github.com/kriswiner/BME680 (https://github.com/kriswiner/BME680) oder PeMue:
https://forum.fhem.de/index.php/topic,51329.msg931706.html#msg931706 (https://forum.fhem.de/index.php/topic,51329.msg931706.html#msg931706)
Es könnte aber auch mit einem weiteren Konstruktor der begin-Methode gehen:
/**************************************************************************/
/*!
@brief Initializes the sensor
Hardware ss initialized, verifies it is in the I2C or SPI bus, then reads
calibration data in preparation for sensor reads.
@param addr Optional parameter for the I2C address of BME680. Default is 0x77
@param initSettings Optional parameter for initializing the sensor settings.
Default is true.
@return True on sensor initialization success. False on failure.
*/
/**************************************************************************/
bool Adafruit_BME680::begin(uint8_t addr, bool initSettings) {
_i2caddr = addr;
if (_cs == -1) {
// i2c
Wire.begin();
Hier kannst Du einfach die 0x76 übergeben, falls erforderlich ...
Default ist 0x77.
Hm, wie ich die Adresse ändere ist mir bekannt. Ich möchte eigentlich nur sicherstellen, dass bei Nutzung eines anderen Breakout-Boards keine Rückfragen wg. "Funktioniert nicht" kommen. Hier findest Du einen Vorschlag, wie es automatisiert funktioniert; https://forum.fhem.de/index.php/topic,78619.msg877169.html#msg877169
Grüße Jörg
Hallo Jörg,
ja, gut gemeint.
Bin aber noch am implementieren. Deshalb auch der Hinweis auf Beta-Status.
Den BME280 habe ich erst mal aus meinem Code entfernt.
Könnte man dann auch in den Web-Konfigurations-Dialog mit aufnehmen
und in den SPDIFF-Settings speichern ... oder die serielle Konfig-Variante.... ;)
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.
3D-Gehäuse (https://www.thingiverse.com/thing:3566958) 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
Hat jemand eine Idee, wie die Limitierung der Palette (https://github.com/ThingPulse/minigrafx/blob/master/Introduction.md) 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 ...
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)
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
Moin
Wenn man zu ungeduldig ist! Jetzt sind alle Daten da!
Super Sache, Danke
Gruss Christoph
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.
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
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!
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 ;-)
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.
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
Hallo Markus,
Es gibt zwei ,,Rotationen":
1. Display
2. Touch
Welche meinst Du?
Jürgen
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
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
Ich habe ein Problem mit der Helligkeit.
Die Station sollte heute in ihr Gehäuse umziehen.
Nur wenn ich hinten dann den Deckel draufmache, wird das Display dunkler.
Wo muss ich da was ändern ?
Hast Du die Variante mit LDR?
Dann ist dieser abgedeckt, und meldet "Nacht" ;)
Hallo zusammen,
anbei das Hardwareupgrade mit Helligkeitssteuerung und BME280-Sensor für die Wetterstation (Color).
Siehe auch: https://github.com/ThingPulse/esp8266-weather-station-color/issues/24
Stückliste:
- 2.8" ILI9341 SPI TFT LCD 320x240 Modul mit Touch Panel
- Wemos D1 Mini Pro
- BME280
- SMD Widerstände Bauform 1206 (R2* und R3* optional)
- Fotowiderstand oder TEMT6000
- NPN-Transistor (T1* optional)
- Buchsen- und Stiftleisten
- Taster (Reset)
- Trägerplatine (Gerberdaten im Anhang)
*Diese Bauteile sind optional erforderlich! Nur wenn der Transistor Q1 und die Widerstände R5 und R6 auf der orig. LC-Displayplatine fehlen sollten.
Ich empfehle den Sensor nicht wie hier abgebildet, sondern kabelgebunden und ausreichend entfernt von der Elektronik einzubauen. Die Wärmeentwicklung verfälscht nämlich das Messergebnis.
Die Lötbrücke JP1 muss geschlossen werden.
Ich habe die abgestufte Regelung der Hintergrundbeleuchtung aus dem Sketch entfernt und durch einem simplen Smoothing Algorithmus (https://www.arduino.cc/en/tutorial/smoothing) ersetzt. Damit ist nahezu eine stufenlose Dimmung gegeben.
//ADC_MODE(ADC_VCC);
#define LDR_PIN A0 // analog input for LDR or TEMT6000 illuminance sensor
int LDRReading = 0; // LDR value is stored on LDR reading
int smoothedVal = 0;
int samples = 8;
...
//void ldr(); // ambient illuminance measurement routine
...
void setup() {
ldr();
...
void loop() {
ldr(); // LCD backlight brightness adjustment routine depending on the ambient illuminance
//Serial.println(smoothedVal); // see the measurement result on monitor
...
void ldr() {
LDRReading = analogRead(LDR_PIN);
smoothedVal = smoothedVal + ((LDRReading - smoothedVal)/samples);
//analogWrite(TFT_LED, LDRReading);
analogWrite(TFT_LED, smoothedVal);
}
...
drawLabelValue(12, "LDR value: ", String(smoothedVal));
Im Setup, während der Touchscreen-Kalibrierung leuchtet das Display in der höchsten Helligkeitsstufe:
if (SPIFFS.begin()) {
digitalWrite(TFT_LED, HIGH); // value HIGH or LOW
//analogWrite(TFT_LED, 127); // values from 0 to 255
} else
pinMode(TFT_LED, OUTPUT);
Außerdem Taupunkt (devPoint Funktion) und als Option Pressure-NN für BME280 hinzugefügt:
#define ALTITUDE 94.0 // Altitude of my location
...
pressure = bme.seaLevelForAltitude(ALTITUDE, pressure);
Arduino-Sketch im Anhang oder JoWiemann's mit Modifikationen:
https://forum.fhem.de/index.php/topic,52403.msg920260.html#msg920260
Vorgängerversion mit 2.4" LCD:
https://forum.fhem.de/index.php/topic,52403.msg763978.html#msg763978
ESP8266 FHEM Display:
https://forum.fhem.de/index.php?topic=93795.0
Die Verwendung der Daten für kommerzielle Zwecke, gewerbliche Herstellung oder Vertrieb ist untersagt.
Hallo locutus,
die BME680-Sensoren sind mittlerweile preislich nach unten abgedriftet: Beispiel (https://www.aliexpress.com/item/1pcs-Ultra-small-Pressure-CJMCU-680-BME680-Temperature-Humidity-Pressure-Sensor-for-Drone-Accessories-High-Quality/32847670390.html?spm=2114.search0104.3.24.366e6cfdiWr3ty&ws_ab_test=searchweb0_0,searchweb201602_9_10065_10068_10547_319_317_10548_10696_10084_453_10083_454_10618_10304_10307_10820_10821_537_10302_536_10843_10059_10884_10887_321_322_10103,searchweb201603_52,ppcSwitch_0&algo_expid=8b1f62d6-03ad-4dbe-bf89-1b2728ec1bfe-3&algo_pvid=8b1f62d6-03ad-4dbe-bf89-1b2728ec1bfe&transAbTest=ae803_3)
Zitat von: juergs am 16 Juni 2019, 16:11:09
Hast Du die Variante mit LDR?
Dann ist dieser abgedeckt, und meldet "Nacht" ;)
Ich denke ja...
Jedenfalls ist in der esp8266-weather-station-color.ino eine ldr-Routine.
void ldr() {
LDRReading = analogRead(LDR_PIN);
if (LDRReading < 50) {
analogWrite(TFT_LED, 1000); // the most dark screen
...usw
Alles mit ldr auskommentieren und gut is oder gibt es einen anderne Ansatz ?
Was spricht dagegen, den LDR zu verlängern und in eine Bohrung des Gehäuses kleben,
also nach außen zu verlängern?
... meine zwei linken Hände... ;D
Nee hast recht, ist auch eine Variante...
Hat schon mal jemand versucht die Wetterdaten aus FHEM auszulesen anstatt von OpenWeatherMap? Hätte den Vorteil, das man verschiedene Wettermodule anbinden könnte.
Kannst Du das :
ZitatWetterdaten aus FHEM auszulesen
genauer bzw. konkreter definieren?
Habe ich so ähnlich gemacht, ich lasse mir die Temperatur und Luftfeuchtigkeit von den Lacross Sensoren im Garten anzeigen über mqtt.
Ich habe bereits Wetterdaten in FHEM vorliegen z.B. über das Wetter Modul, Proplanta oder ähnliches. Ich bin also von FHEM her ziemlich frei darin, von wo ich mir die Wetterdaten her hole. Deshalb wäre es naheliegend, diese auch gleich direkt von dort an die Wetteranzeige durchzureichen.
Zitat von: juergs am 17 Juni 2019, 11:34:11
Kannst Du das :genauer bzw. konkreter definieren?
@locutus würde ein Set nehmen, falls noch verfügbar.
https://forum.fhem.de/index.php/topic,96887.15.html (https://forum.fhem.de/index.php/topic,96887.15.html)
Hier wird noch eins angeboten.
Ich habe aktuell das Problem, das wenn ich im Boardverwalter von meiner esp8266 lib v2.50 auf v2.52 update, danach mein Sketch permanent abstürzt, sobald die Wifi Connection aufgebaut wurde. Hat dafür jemand schon eine Lösung gefunden? Muss ich irgendwas anderes auch noch aktualisieren?
Ich habe inzwischen eine weitere Funktion mit eingebunden, die mir oben links im Fenster einen Lüftungsindex darstellt. Für mich ist an der Stelle interessant, ob die Feuchtigkeit in meiner Wohnung nach dem Lüften höher oder niedriger als vor dem Lüften sein wird.
void drawWindow() {
String innen = "0";
String aussen = "0";
float diff = 0.0;
char diffStr[7];
http.begin("http://192.168.178.112:8088/fhem?cmd=list%20DHT22A%20feuchteNachLueften&XHR=1");
if (HTTP_CODE_OK == http.GET())
{
String response = http.getString();
Serial.println(response);
aussen = response.substring(response.lastIndexOf(" "));
Serial.println(aussen);
}
http.end();
http.begin("http://192.168.178.112:8088/fhem?cmd=list%20DHT22A%20corrHumidity&XHR=1");
if (HTTP_CODE_OK == http.GET())
{
String response = http.getString();
Serial.println(response);
innen = response.substring(response.lastIndexOf(" "));
Serial.println(innen);
}
http.end();
diff = innen.toFloat() - aussen.toFloat();
dtostrf(diff, 1, 1, diffStr);
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
gfx.setFont(ArialRoundedMTBold_14);
if (diff <= 0.0)
{
gfx.setColor(MINI_BLUE);
}
else if (diff <= 3.0)
{
gfx.setColor(MINI_WHITE);
}
else
{
gfx.setColor(MINI_YELLOW);
}
gfx.drawString(0, 6, diffStr);
}
Und hier noch ein kleiner Nachtrag, falls jemand die aktuellste ESP8266 Core-Version verwendet und die Kiste ständig neu bootet:
Any ESP8266 with Arduino core 2.5.1 or up; I used a WeMOS D1 mini Pro.
...
It will fail with "ISR not in IRAM!"
https://github.com/PaulStoffregen/XPT2046_Touchscreen/issues/25