Nextion HMI kezdő lépések

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
toreki
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2009. október 5. hétfő, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: toreki »

Egyes esetekben arduino sem kell. Találtam megoldást arra, hogy ESP8266 és nextion összekapcsolásával hogyan lehet NTP-s (network time server) időt lekérni és megjeleníteni.

Az arduinot azért javaslom eleve betervezni, mert kapsz egy rakás portot, és egy megbízható, könnyen kezelhető programozási felületet.

A nextionnak vannak apró problémái leginkább a dokumentálás terén. Most épp azzal szívok, hogyan lehet egy timert felhasználni több lapon. Egy órának megterveztem az oldalakat nappali és éjszakai módjához, de eddig nem sikerült átadni a második lapnak a timer által változtatott változók értékét.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: SanyiSay »

Beálltam én is a csapatba.
Nem bírtam ki vettem egyet ITEAD Studio-soktól 3.5" 6 nap alatt ideért. :)
toreki
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2009. október 5. hétfő, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: toreki »

winnerbt írta: ...Mindez uC nélkül.
...A legnagyobb hibája, amit találtam, hogy értékek változtatásánál, legyen az gomb/vizesköcsög, toolbar vagy mi, a megváltoztatott numerikus érték változik (meg a grafika is), de nem visszaolvasható. ...szerintem ilyen áron jó választás és tehermentesíti a fő uC-t eléggé. (és gyorsabb is, mint TFT-t kezelni vacak 8-bites AVR-el)
Mármint saját uC nélkül, mert a kijelző hátulján mindegyik változaton van kisebb-nagyobb uC.
A változókat vissza lehet olvasni a get paranccsal (ekkor a visszaküldött adat 0X70+ASCII code+0xff 0xff 0xff formátumú), vagy ki lehet küldeni soros portra csak az értéket a print paranccsal.
Tényleg jó választás, csak kicsit kiforratlan, kevés a minta, és rengeteget kell próbálkozni, mire sikerül valamit összehozni.

amit én a legnagyobb hibájának látok:
- nincs szöveges (ttx, xml, akármi) mentési lehetősége az elkészült kódnak, így egy elem paraméterezése után nem lehet egyszerűen áttekinteni, hol mit használtunk.
- SD kezelése csak frissítésre
- nincs szabad gpio, emiatt szinte mindig kell mögé valami uC
- bonyolult programozás (a lapok közötti paraméter átadással két napom ment el)
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: winnerbt »

Fórumon panaszkodtak, hogy nem tudják visszaolvasni a "belül" lépkedő értéket, de én már vagy 1 éve rá sem néztem...
Az SDkártyás dolog elég sajnálatos, nagyon jó lenne, ha beleférne nekik a kezelése :(
Az én szenvedéseimre is azt mondta egy cimborám, hogy akkor inkább csináljunk egy saját HMI-t. (amilyen elvetemült,
meg is csinálná)
JAni
Sploc
Újonc
Újonc
Hozzászólások: 6
Csatlakozott: 2016. április 14. csütörtök, 8:43

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: Sploc »

Sziasztok, nekem is van egy Nextionom, most tanulgatom a használatát... Amiket szeretnék, már sikerült kiíratnom rá, csakhogy nem bírom rávenni, hogy vissza tudjak küldeni egy parancsot az érintő felületről. Szeretnék egy plusz és egy minusz gombot, ami egy megadott értéket változtatna százados léptékben. Találtam jó néhány példát de egyik sem hozott vissza eredményt. Egy rövid példán keresztül valaki el tudná magyarázni, hogyan is kell érintőgombról arduinoba visszaolvastatni adatot? Soros monitorra max ennyi jön vissza : recvRetCommandFinished err
Köszi!
toreki
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2009. október 5. hétfő, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: toreki »

Adott egy gombod. A gombra kattintva a Touch Release Event (vagy Touch Press Event) részt kell kitölteni. get att parancs: http://wiki.iteadstudio.com/Nextion_Instruction_Set

Ha bepipálod a Set Component ID pipát, akkor a megnyomáskor először elküldi a gomb azonosítóját (0x65, page ID, gomb ID), csak ezután küld minden mást, amit az Event részben megadtál.

Ha van egy változód, akkor a szöveges változóbál a get t[n].txt, szám típusnál a get j[n].val paranccsal tudsz adatot küldeni. Fix értéket is lehet, pl. get "123". Ilyenkor a HMI elküld egy keretet az adat körül, ez szövegnél 0X70+ASCII code+0xff 0xff 0xff, számnál 0X71+4 byte binary data+0xff 0xff 0xff.

A másik lehetőség a print att, ekkor a sosos portra az adat keret nélkül kerül ki.
Sploc
Újonc
Újonc
Hozzászólások: 6
Csatlakozott: 2016. április 14. csütörtök, 8:43

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: Sploc »

Köszi, igen, eddig eljutottam. Szerintem az arduino kódban van a kutya elásva. Találtam egy (szerintem sokkal egyszerűbb) megoldást a lib-ek között. -ami persze nem működik- :D - mint a nyomógomb figyeléses PopCallback.
Ugye miután be lett lőve a Nextion a main, illetve a setup-ba, egy változó adat kiküldése csak ennyi : myNextion.setComponentText("press", String(barValue)); A nextion editoban csak arra kell figyelni, hogy press.txt legyen a változó neve.

Hasonló módon akarok bekérni egy adatot a képernyőről,
int cel = myNextion.getComponentValue("n0");

majd ezzel a cel változóval számításokat szeretnék végezni.
Azért, hogy lássam, hogy megvan-e ami kell
Serial.print(cel);

A serial monitoron -1 jön vissza, bármit nyomok a kijelzőn...
a nextion-on van egy n0.val nevű változóm két nyomógombom(b1 és b3) Touch Press Event-ben pedig:
b1:
n0.val=n0.val+1
get n0.val

b3:
n0.val=n0.val-1
get n0.val

(próbáltam a számítást is kihagyni csak get n0.val)
Az én elméletemben mikor megnyomom valamelyik gombot, akkor változtatva az n0.val értékét ki kellene küldenie, amit a Serial monitoron látnom kellene.
különböző deklarálási típusok szerint a "beolvasott" változó mindig 65535, vagy -1, vagy char esetén csak - .

Rájöttem arra, hogy valójában nem fogadja az adatot vissza, mert, ha átnevezem a változót akkor is ezeket az értékeket látom viszont. Tehát z adat vagy nem jött meg vagy nem értelmezhető.
ugyanez print-el, és mindegy, hogy ki vagy be kapcsolom a Set component ID-t.

A Nextion.cpp file-ban lévő getComponentValue :

Kód: Egész kijelölése

unsigned int Nextion::getComponentValue(String component){
  String getValue = "get "+ component +".val";//Get componetn value
    unsigned int value = 0;
  sendCommand(getValue.c_str());
  uint8_t temp[8] = {0};
  nextion->setTimeout(20);
  if (sizeof(temp) != nextion->readBytes((char *)temp, sizeof(temp))){
    return -1;
  }//end if
  if((temp[0]==(0x71))&&(temp[5]==0xFF)&&(temp[6]==0xFF)&&(temp[7]==0xFF)){
    value = (temp[4] << 24) | (temp[3] << 16) | (temp[2] << 8) | (temp[1]);//Little-endian convertion
  }//end if
  return value;
}//get_component_value */

boolean Nextion::setComponentText(String component, String txt){
  String componentText = component + ".txt=\"" + txt + "\"";//Set Component text
  sendCommand(componentText.c_str());
  return ack();
}//end set_component_txt
Vagy rosszul gondolom ez a parancs nem erre való?
itt van a leírása is: http://openhardware.gridshield.net/home ... -functions

Köszi!
toreki
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2009. október 5. hétfő, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: toreki »

Ha csak rádugod usb-soros átalakítóra, mit küld vissza a HMI? Debug ablakban gombnyomásra megjelenik a jó adat?
Sploc
Újonc
Újonc
Hozzászólások: 6
Csatlakozott: 2016. április 14. csütörtök, 8:43

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: Sploc »

Sajnos nincs USB-soros átalakítóm, de a debug ablakban jó érték megy ki. : 0x71 0x01 0x00 0x00 0x00 0xff 0xff 0xff jelenleg csak get n0.val a parancs és kezdőértéknek 0001 az értéke. Vagy várjunk csak most látom, hogy az érkező karaktereknél nagy F betűt vár, de a kijelző csak f-et küld. Lehet ez a baja? Mindjárt átírom a programban.


Update: hiába írtam át, nem változott semmi...
kszabi
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2016. április 11. hétfő, 14:22

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: kszabi »

Sziasztok!
Lehet hogy benéztem egy rendelést: http://www.ebay.com/itm/131759625507?_t ... EBIDX%3AIT
Ez vajon a touch-os változat?
Jól értem hogy az editorban megirt programot az sd kártyára kell kiírni?

Köszi Szabolcs
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: winnerbt »

Igen, ez nagyon úgy néz ki, hogy touch-os. A program mehet SD-kártyára vagy feltölthető a soros porton keresztül is.
kszabi
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2016. április 11. hétfő, 14:22

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: kszabi »

Köszi!
A soros portos letöltéshez megfelel egy USB-RS232 konverter is? Esetleg tápfesszel együtt?
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: winnerbt »

Igen. Én úgy használom amikor játszok vele.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: SanyiSay »

https://www.itead.cc/nextion-nx4024k032 ... dd4bea2543

Fejlesztenek a fiúk. Már van rajta IO port is + akció. :)
toreki
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2009. október 5. hétfő, 6:00

Re: Nextion HMI kezdő lépések

Hozzászólás Szerző: toreki »

Hiánypótló fejlesztés. Amivel eddig küzdöttem, hogy egy arduinot rakjak mögé, ami kezeli az RTC-t és van rajta GPIO (I2C hő és páratartalom mérő, soros ESP wifi). Ha a fejlesztő környezet is követi a változást, akkor jó választás lesz, kidobhatok egy MCU-t.
Válasz küldése