Fórum témák

» Több friss téma
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Lapozás: OK   40 / 50
(#) Bakman válasza H_Zoo hozzászólására (») Jan 27, 2019 /
 
Milyen eszköztől érkezik az adat?
(#) H_Zoo válasza Bakman hozzászólására (») Jan 27, 2019 /
 
PIC.
Nyilván meg lehet oldani a PIC oldalon is, de kiváncsi vagyok, hogy lehet-e orvosolni a HMI-ben?
(#) Lamprologus válasza H_Zoo hozzászólására (») Jan 27, 2019 /
 
Én mondjuk létrehoznék egy timer, és egy változót, a változóba átküldeném az értéket, utána indítanám a timert ( amit a lehető legkisebbre állítanák). a Timer meg kiértékeli a változó értéket és megjeleníti egy szövegmezőben.
(#) H_Zoo válasza Lamprologus hozzászólására (») Jan 27, 2019 /
 
Azt, hogy lehet megcsinálni, hogy akkor induljon a timer, amikor megérkezik az érték a változóba?
(#) Bakman válasza H_Zoo hozzászólására (») Jan 27, 2019 /
 
tm0.en=1

Miután átküldted az értéket. Csak halkan jegyzem meg, már rég túllehetnél a problémán ha eleve a szövegmező tartlamát módosítod arra, amit látni szeretnél. Pl.:

t0.txt="365"
t0.txt="4700"
t0.txt="----"

Nem kell se timer, se változó, se bűvészkedés.
(#) H_Zoo válasza Bakman hozzászólására (») Jan 27, 2019 /
 
Így oldottam meg végül, de assembly-ben meg akartam úszni annak leprogramozását, hogy a vezető nullák ne jelenjenek meg. Nem nagy ügy, megírtam azt is.
Köszi mindenkinek!
(#) D Wye válasza H_Zoo hozzászólására (») Jan 28, 2019 / 1
 
Az adatokat nem abba a változóba küldeném át, amit látni szeretnék, hanem egy másodlagosba, amit a timer lejártakor tudok kezelni, felülírni, áttölteni.
(#) usane válasza D Wye hozzászólására (») Jan 28, 2019 /
 
Minek az a timer. Bakman leírta a megoldást. Egy BCD átalakítás nem nagy ügy.
(#) H_Zoo válasza D Wye hozzászólására (») Jan 28, 2019 /
 
Igazad van! Ha nem akarok vesződni BCD átalakítással, vezető nullák kiiktatásával a PIC oldalán, akkor teljesen jó megoldás amit írtál. Átírom, nem árt ha egyszerűsödik a program... Köszi!
(#) usane válasza H_Zoo hozzászólására (») Jan 28, 2019 /
 
A 10-es számrendszerben való osztás és 0x30 hozzáadása annyira bonyolult?
Persze ha a PIC-nek korlátozott erőforrásai vannak akkor nem szóltam
A hozzászólás módosítva: Jan 28, 2019
(#) H_Zoo válasza usane hozzászólására (») Jan 28, 2019 /
 
Nem bonyolult, mint írtam jelenleg így van megoldva. Igazából jó hosszú már a kód, ami feladatot tudok inkább átadok a HMI-nek, jobban átlátható marad a program. Illetve jobban meg akarom ismerni a HMI-t...
(#) D Wye válasza H_Zoo hozzászólására (») Jan 28, 2019 / 1
 
Örülök, ha jó ötletet adhattam
(#) D Wye hozzászólása Feb 1, 2019 /
 
Sziasztok!

Van a Nextion HMI-ben WatchDog Timer?
Elvileg kéne lennie, mivel microprocesszor alapú, de nem találok róla információt, hogyan lehete aktiválni vagy kezelni.
(#) usane válasza D Wye hozzászólására (») Feb 1, 2019 /
 
Hát a cortexben biztos van, de ahhoz nincs hozzáférésed, úgyhogy felejtsd el. Minek az neked? A sima timer nem elég?
(#) D Wye válasza usane hozzászólására (») Feb 1, 2019 /
 
Ha lenne a cortexben, akkor nem fagyna le, hanem Reset-elné önmagát.
Azért lenne szükségem rá, mert hajlamos a hálózati zararoktól lefagyni. Ilyenkor csak áramtalanítását és újbóli tápellátását követően képes újra felébredni.
(#) usane válasza D Wye hozzászólására (») Feb 1, 2019 /
 
Azt nem mondtam, hogy be van kapcsolva.
Nálam még nem fagyott le. Milyen környezetben használod?
(#) D Wye válasza usane hozzászólására (») Feb 1, 2019 /
 
Melóhelyen van állandó aktív állapotban, csak aludni megy el, ha éppen nem használjuk. Viszont egy körön van a mikróval és valószínűleg az zavarja nagy interferenciával a hálózatot, amiért ez történik.
És valahogy be lehet kapcsolni?
(#) Bakman válasza D Wye hozzászólására (») Feb 1, 2019 /
 
Milyen tápegységről megy? Onnan egyszerűbb lesz megfogni a zavart. A Nextion Editor leírásában semmilyen infó nincs WatchDog-ról.
(#) D Wye válasza Bakman hozzászólására (») Feb 1, 2019 /
 
3 darab működik belőle, amiből csak az egyik vagy le 3-4 naponta. Ugyan az a táp, program, minden. Egy egyszerű reset ezt megoldaná, azért volna jó a WDT.
(#) Bakman válasza D Wye hozzászólására (») Feb 1, 2019 /
 
Nem számít, hogy látszólag egyformák, különbségek biztos hogy vannak, ha másban nem, akkor a környezetükben. Továbbra is fenntartom, hogy egy másik/jobb tápegységgel orvosolni lehetne a problémát, lévén azt írtan, a mikróval egy körön lévő rendetlenkedik.
(#) Firefighter1 válasza Bakman hozzászólására (») Feb 1, 2019 /
 
Sziasztok!

Szépen körvonalazódik nálam is az időjárásállomás és lakásautomatizáció.
PC-n és Web-en kész szoftvert használok egy kis Node-Red-el megbolondítva, de most elkezdtem tervezni a "Beltéri központot"

Egy Nextiont tervezek NodeMCU-ról meghajtva, de ezen a téren még nagyon el vagyok veszve.
vegyünk egy olyan esetet hogy van két képernyőoldal mind a kettőn hőmérsékleti adatokkal.
Hogy célszerűbb csinálni, hogy egyszerre ( egymás után) elküldi a Node a Nextionnak és amikor betölt a képernyő ( egyik vagy másik oldal) akkor saját memóriából tölti be a változók értékeit, vagy amikor egyik oldalról a másikra betölt akkor az uj oldalon lévő változókat kérdezi le és úgymond a Node-bol írja ki a képernyőre?
(#) Bakman válasza Firefighter1 hozzászólására (») Feb 2, 2019 /
 
Az irányító egység, perpillanat a NodeMCU végzi el az oldalváltást. Ha azzal megvagy, küldöd a hőmérsékletadatokat.

Kb. így a legegyszerűbb.
(#) helektro válasza Firefighter1 hozzászólására (») Feb 2, 2019 / 1
 
Szerintem meg ha szépen akarod megoldani, akkor van erre sokkal elegánsabb megoldás is, amivel érdemes kihasználni azt, hogy a Nextion-on egy csomó feladatot meg lehet oldani nem terhelve a uControllert:
1. ha nem kell/nem akarsz a Nextion-on konvertálgatni, akkor a kijelzőn a hőmérsékletet megjelenítő text vagy number objektumot mind a két oldalon globálissá teszed. Legyen a két oldal neve: 'o1' és 'o2'. A hőmérsékletet megjelenítő objektum meg mondjuk text típusú és a neve 'temp' mind a két oldalon (egy oldalon belül nem, de különböző oldalakon használhatsz ugyanolyan objektum neveket). Így amikor van új hőmérsékleti adatod, akkor egyszerűen frissítheted a Nextionon, mindegy hogy melyik lap aktív. A NodeRed köv. módon frissítheti az adatokat az 1. oldalon: 'o1.temp.txt="23C" ', a 2. oldalon: 'o2.temp.txt="12C" '. Az oldalak váltását pedig a Nextion-on belül bármikor elintézheted, nem fog függeni a lapváltás a NodeRed-tól. Nem is kell elküldeni, hogy épp melyik oldal az aktív.
2.Ha pl. konvertálgatni kell a forrás adaton (pl. tizedest megjeleníteni, vagy a 'C°' stringet a Nextion-on akarod hozzáfűzni, akkor hozz létre annyi globális változót, amennyi hőmérséklet meg kell jeleníteni az összes lapon. Ehhez a globális változókhoz én azt ajánlom hozz létre egy külön lapot pl. 'v' névvel. A hőm. megjelenítéshez ugyanúgy létrehozod a két lapodat 'o1' és 'o2' névvel. A globális változók neve a 'v' lapon legyen mondjuk 'temp1' és 'temp2'. Itt is igaz, hogy amikor van új hőmérsékleti adatod, akkor egyszerűen frissítheted a Nextion-on, mindegy hogy éppen melyik lap aktív. Ebben az esetben NodeRed köv. módon frissítheti az adatokat: 'v.temp1.txt="23" ', ill. 'v.temp2.txt="12" '. A két oldalon a fenti példánál maradva a hőmérsékletet megjelenítő objektum legyen text típusú és a neve 'temp'. Amikor a Nextion-on lapot váltasz, akkor az adott lapon (o1 és o2) a Preinitialize Event-nél beírod a következőket: o1 lap esetén (pl. hozzáfűzöd az átküldött hőm. adatokhoz a 'C°'-ot): temp.txt=v.temp1.txt+"C°", o2 lap esetén pedig temp.txt=v.temp2.txt+"C°".

Így nem kell figyelned és számon tartanod a NodeMCU-n, hogy melyik lap akítv a Nextion-on, ott bármikor válthatsz lapot, akár egy harmadikra is, amin meg más infót jelenítesz meg, közben pedig ha van új hőm. adatod, akkor azt a háttérbe frissíted a globális változókba, így amikor valamely hőm. oldalra váltasz, mindig a legfrissebb adatokat látod.
Így a két egység teljesen állapotfüggetlen lesz egymástól. Mondjuk a függőség két lap esetében és hőm. adat megjelenítésnél még nem gond, de ha már van 40+ lapod és laponként 30-50 megjelenítendő adatod, akkor a uControlleren a program feleslegesen bonyolult és átláthatatlan lesz. Márpedig, ha egy komolyabb beltéri központot szeretnél, akkor könnyen el fogod érni ezeket a számokat.

Amúgy a Nextion-ra a fentinél (string hozzáfűzés egy változóhoz) sokkal bonyolultabb dolgokat is rá lehet bízni, tehermentesítve a uControllert.
A hozzászólás módosítva: Feb 2, 2019
(#) usane válasza helektro hozzászólására (») Feb 2, 2019 /
 
Ez mind szép, de akkor még tedd hozzá, hogy ez csak akkor működik, ha időnként frissíti az adatokat egy timerrel, különben a változóba írt adat nem kerül át a megjelenítendő adatba csak lapváltáskor.
(#) helektro válasza usane hozzászólására (») Feb 2, 2019 /
 
Az 1. esetben nem, a 2.-ban valóban.
(#) usane válasza helektro hozzászólására (») Feb 2, 2019 /
 
Igen arra céloztam, az első evidens.
(#) usane hozzászólása Feb 3, 2019 /
 
Üdv!

Kérdés: Ha lebegőpontos számokat szeretnék növelni csökkenteni, és kiíratni, azt hogy a legegyszerűbb megcsinálni. Vizsgálatokkal meg tudom oldani, de hátha valaki másképp gondolkodik mint én, és egy rakat "if" helyett egyszerűbb megoldása is van. Van egy kijelzendő mennyiségem. Mondjuk 0.1-esével akarom csökkenteni növelni egy-egy gombbal, és ezt kiíratni. A kérdés konkrétan az egész szám elérésekor van. +-0,9-ből kellene -+1,0-et kiíratni.
(#) usane válasza usane hozzászólására (») Feb 3, 2019 /
 
Na ezt megoldottam 14 sorban kapcsos zárójeleket nem tekintve.
Új kérdés. A negatív számokat hogy szoktátok elküldeni kijelzőről?
A probléma az, hogy az UART puffert ellenőrző rutinom jelenleg keresi 3db xFF lezáró karaktert.
Negatív számok esetén pedig a nextion elküld még 1-3db másik ilyen karaktert.
A hozzászólás módosítva: Feb 3, 2019
(#) usane válasza usane hozzászólására (») Feb 3, 2019 /
 
Másik dolog, ha azonosítót akarok hozzáadni a 32 bites számhoz, akkor negatív szám esetén szintén eltolja a végeredményt. Bitenkénti negálás meg nincs benne.
(#) Lamprologus válasza usane hozzászólására (») Feb 4, 2019 /
 
A számok fix hosszúságúak (4 karakter), ha tudom hogy szám jött, akkor beolvasok annyi karaktert, majd utána ellenőrzöm a lezáró karaktereket.
Következő: »»   40 / 50
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem