Nu is het eindelijk tijd. Onze serie op het hoofdkantoor van Smarthome kan worden voortgezet. Na de eerste versie had een zeer eenvoudige GUI, heb ik besloten om het hele display deel te herprogrammeren en uit te besteden aan mijn eigen bibliotheek (AT_Display.h) voor gemakkelijker gebruik. Hierdoor blijft de code van de toepassing duidelijk.
De nieuwe gebruikersinterface maakt nu een volledige configureerbaarheid van de gemeten waardeweergave mogelijk. Er zijn invoerformulieren om de naam, kleur en grootte van de widgets in te stellen. Aangezien is aangetoond dat de dubbele klik op het touchscreen niet altijd werkt en aangezien elke dubbelklikgebeurtenis ook een eenvoudige klik teweegbrengt, gebruikte ik de lange klik (>3s) in plaats daarvan voor speciale functies. Het ontwerp van de formulieren en de weergavestijlen kunnen duidelijk worden aangepast via een kopbestand AT_Layout.h. Twee andere header bestanden AT_LanguageGE.h en AT_LanguageEN.h bevatten de definitie van alle berichtteksten en dus een taalaanpassing mogelijk te maken. De bijbehorende #include verklaring is te vinden aan het begin van het kopbestand AT_Display.h .
De voorbeeldschets voor de nieuwe versie is nu SmartHomeV2 of asl verdere innovatie voor zij die ESP8266 de voorbeeldschets SmartHomeV2_8266 willen gebruiken. Ik zou echter nog steeds liever de ESP32 gebruiken, omdat de ESP8266 geen geheugen meer heeft voor lokale variabelen. Tests hebben aangetoond dat de toepassing crasht onder bepaalde omstandigheden als gevolg van stack problemen, wat resulteert in een herstart door de waakhond.
De bibliotheken en de voorbeeldschetsen zijn terug te vinden op mijn GitHub Repository. U hebt de bibliotheken nodig TouchEvent, ATMessageBuffer En ATSmartHome ATSmartHome.
Handmatig:
Na het inschakelen wordt pagina 1 van het gemeten waardescherm met widgets weergegeven, afhankelijk van de configuratie. Als u op de widgetschakelaar klikt (groen in de afbeelding) wordt de waarde ervan gewijzigd en wordt de wijziging doorgegeven aan het externe apparaat. Als u langer dan 3 seconden op een widget klikt, wordt de configuratiepagina voor die widget geopend.
In dit formulier kunnen we het label, het uiterlijk en de positie van de widget instellen. Het label is de tekst boven of links van de statistiek. Wanneer u op het invoergebied klikt, verschijnt er een schermtoetsenbord en u de tekst wijzigen. De invoersleutel rechtsonder beëindigt de invoer en erft de tekst.
De grootte van de widget kan vier verschillende waarden hebben.
- klein: enkele lijn met aanduiding links van de waarde
- links: twee-lijn en halve breedte met bovenstaande aanduiding
- rechts: zoals links maar op de rechterhelft
- groot: twee-lijn met benoeming hierboven en groter doopvont.
Als u op het invoergebied klikt, verschijnt er een lijst met de vier opties. Klik gewoon op een van de opties om het te selecteren.
De achtergrondkleur kan ook worden ingesteld. Als u op het kleurstaal aan de rechterkant klikt, wordt een dialoogvenster voor kleurselectie weergegeven. U selecteert de gewenste kleur door op de invoer te klikken en te voltooien met de knop Voltooid.
Op dezelfde manier u de achtergrondkleur van een actieve schakelaar en de lettertypekleur instellen. De decimalen geven het aantal getallen na de komma aan. Als u op het invoergebied klikt, wordt het nummeritem geopend.
Dit werkt hetzelfde als het teksttoetsenbord.
Met het nummer item, u ook de pagina waarop de widget moet worden weergegeven. Bij gebruik van de ESP32 zijn er slechts 32 pagina's beschikbaar op de ESP8266 om opslagredenen. Tussen de pagina's wordt geschakeld door te vegen.
Het laatste invoerveld is voor de positie van de widget op de pagina. Voor kleine eenlijns widgets begint het net het lijnnummer op 0. Voor de widgets met een halve breedte die twee lijnen bezetten, is het onderste regelnummer van toepassing op de linkerwidget en het onderste regelnummer naar rechts. De grote widgets bezetten twee lijnen, dus in dit geval kan de tweede rij niet worden gebruikt. Het maximale regelnummer is 7.
Met de knoppen aan de onderkant u de wijzigingen opslaan of annuleren zonder op te slaan. De widget kan ook worden verwijderd. De Button Extra heeft nog geen functie. Het zal later worden gebruikt om lettertypekleuren aan te passen, afhankelijk van de gemeten waarde.
Als u op de onderste blauwe balk op de hoofdpagina klikt, wordt de lijst met alle apparaten weergegeven.
Voor de ESP32 zijn er 32 voor de ESP8266 16. De andere pagina's zijn te bereiken door te vegen. Als u op een apparaat klikt, u de naam wijzigen.
Nogmaals, de wijziging kan worden opgeslagen via de knop Opslaan. Als u op de knop Details klikt, wordt een lijst met alle kanalen van dit apparaat weergegeven. Met de ESP32 zijn er maximaal 8 voor de ESP8266 maximaal 4. Actieve kanalen worden in geel opgeslagen.
Als u op een kanaal klikt, wordt het configuratievenster voor de bijbehorende widget geopend.
De registratie van een nieuw apparaat is hetzelfde als bij de oude versie. Als een nieuw apparaat wordt gedetecteerd, wordt de id- of MAC-adres weergegeven in de onderste blauwe balk. Als u lang op de blauwe onderste balk klikt, wordt het apparaat geregistreerd en wordt het naamdialoogvenster voor het nieuwe apparaat weergegeven, zodat u er een naam aan toewijzen
Veel plezier met de nieuwe versie. Externe apparaten blijven natuurlijk functioneren zonder dat er noodzakelijke wijzigingen nodig zijn.
8 Reacties
Christian Hennig
Hallo in die Runde, trotz intensiver Suche kann ich die Kalibrierung des Touchscreens nicht nachverfolgen. Bei der Eingabemöglichkeit von Daten, die ich nur sporadisch finden kann, ist unten rechts mit oben links vertauscht. So kann ich z.B. das “a” (oben links) nur über das “@” auswählen. Hat jemand eine Idee oder eine Lösung?
Danke
Christian Hennig
Gerald Lechner
Hallo Herr Patzal,
Die Einrichtung eines neuen Gerätes sollte eigentlich ganz einfach sein. Wenn im unteren Balken die MAC-Adresse des Gerätes erscheint, einmal lange klicken. Es sollte das Formular für den Namen erscheinen. Hier einen Namen eingeben und speichern. Nun sollte das zugehörige Widget automatisch auf dem nächsten freien Platz eingebaut werden. Wenn auf der ersten Seite nicht ausreichend Platz ist, wird es auf der zweite platziert u.s.w. Mit einem langen Klick auf das Widget kann man dann sein Aussehen und die Position verändern.
Das zweite Include von TouchEvent.h ist unnötig. Es war versehentlich in den Code gerutscht.
Das Pairing beim ESP-Now sagt nur, dass beide MAC-Adressen Sender und Empfänger bekannt sind. Da das Protokoll einfach nur Daten an den Empfänger sendet, merkt der Sender erst beim Warten auf eine Antwort, dass der Empfänger nicht erreichbar ist.
Zum Schluss möchte ich Sie noch darauf hinweisen, dass es mittlerweile eine komplett neu entwickelte AZ-Touch Smarthome Zentrale gibt, die jetzt MQTT unterstützt und damit auch die Kommunikation mit Fremdgeräten wie Steckdosen, Lampen und Smart-Switches unter Tasmota ermöglicht. Ich möchte Sie gerne auf ein Buch von mir zum Thema Smarthome verweisen, das bei AZ-Delivery erschienen ist. In diesem Buch wird die neue Smarthome-Zentrale, aber auch vieles Andere Wissenswerte zum Thema Smarthome erläutert.
Franz Patzal
Hallo Herr Lechner, wäre es möglich eine Anleitung zu erstellen, in welcher Reihenfolge man was in der GUI erstellen muß. Ich bekomme nur mit viel Probieren das Gerät (in dem Fall den Sensor) in die GUI zur Anzeige. Wenn sie einmal drin ist, funktioniert auch die Datenübernahme.
Seltsam kommt mir nur vor, daß der Sensor/Gerät im SerialMonitor meldet, daß gepaart wurde, auch wenn der ArduiTouch ausgeschaltet ist. ???
###########################
My MAC address = 3C:71:BF:3A:17:8C
Sensor 1
0 Sensoren gefunden.
No temperature sensor exists!
Sensor 2
1 Sensoren gefunden.
Adresse: 28FF1165301704D5
RTC Done
WifiMode
Channel = 250
Erfolgreich gepaart
send_cb, status = 0, to mac: 30:AE:A4:36:8A:41
Sleep
########################
mfg Franz Patzal
Franz Patzal
Hallo Herr Schneider, Herr Lechner
Ich war auch schon am Verzweifeln, was die Bedienung des TouchScreens angeht. Als ich gelesen habe, daß die TouchEvent-Lib ein Ableger der ExtendedTouchEvent-Lib ist – oder umgekehrt, na ja egal, habe ich im Sourcecode "SmartHomeV2 einfach "#include “TouchEvent.h” gegen #include “ExtendedTouchEvent.h” ausgetauscht. Und siehe da, der TouchScreen funktioniert. Warum im Source zwei mal "#include “TouchEvent.h” aufgerufen wird ist mir nicht klar, ich habe das zweite auskommentiert.
Vielleicht hift das weiter
Reinhard Schneider
Hallo Herr Lechner,
die Umschaltung über Touch funktioniert nicht richtig.
Die Untermenues sind gut schaltbar, aber die Seite 1 (Hauptmenue) ist grauenhaft!
Das Umschalten über den blauen Balken oder das “Wischen” auf Seite 2 klappt nur sporadisch nach vielen Fehlversuchen.
So ist das GUI meines Erachtens nicht brauchbar!
Gerald Lechner
Hallo Herr Thewes
Je nach dem welche Version der ArduiTouch Platine Sie haben, wird das Display mit 0 oder 1 eingeschaltet. Am besten erkennen Sie, welche Version Sie haben, daran ob der Jumper für die Programmierung und PNP Transistor für das Display schon integriert ist oder nicht. Mit Jumper haben Sie die neue Version sonst die alte
//used pins
#define TFT_CS 5 //diplay chip select
#define TFT_DC 4 //display d/c
#define TFT_RST 22 //display reset
#define TFT_LED 15 //display background LED
#define ARDUITOUCH_VERSION 0 //0 for older 1 for new with PNP Transistor
#define TOUCH_CS 14 //touch screen chip select
#define TOUCH_IRQ 2 //touch screen interrupt
Setzen Sie in der Definition der Konstanten ARDUITOUCH_VERSION den richtigen Wert, dann sollte das Display wieder etwas anzeigen.
R.Thewes
Guten Tag,
seit der Version 2 für ESP32 bekomme ich keine Anzeige mehr auf dem Display.
Habe mehrere Tage versucht den Fehler zu finden, ohne Erfolg!
Benutze Hardware von Az-Delivery in doppelter Ausführung, also schließe ich Hardware aus. Den Accesspoint kann ich im Wlan sehen.
Für Lösungsvorschläge wäre ich sehr dankbar.
MfG R.Thewes
Wolfgang Schmidt
Die neue GUI ist klar eine Bereicherung für das Projekt. Wünschenswert wäre
- die Anzeige der aktuellen Seite (Nr. in Titel- oder Statuszeile)
- den Farbwechsel auch für die neuen Bereiche (links, rechts, groß)
- der Stil wie “klein” auch für die neuen Bereiche (runde Ecken, Zwischenraum)
- Auswahl der Action über die gesamte Fläche eines Bereiches
- keine Funktion in ungenutzten Bereichen des BS
- evtl. auch wechselnde BMP z.B. für Ein/Aus, Links/Rechts o.ä. (Kindgerechte Bedienung)