Beginnen met Nextion

Hardware geleverd door Arduino
Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Beginnen met Nextion

Berichtdoor Koepel » 01 Feb 2017, 01:49

Plof ! daar viel mijn eerste Nextion scherm op de mat.
Ik betaalde ongeveer 15 euro voor een NX3224T024_011. Het was een tijdelijke aanbieding.

Hieronder wil ik beschrijven wat ik gedaan heb, en waar ik tegenaan loop.
Het scherm wil ik eerst gaan uitproberen met een Arduino Uno, samen met de AltSoftSerial library.

Verbinden met de Nextion Editor door gebruik te maken van de Arduino usb-serial chip
Maak een lege sketch (lege setup() en lege loop() functie) en upload die.
Verbind daarna het Nextion scherm met de GND, de 5V en de gele draad naar pin 0 (RX) en de blauwe draad naar pin 1 (TX). Vanuit de Nextion Editor kun je dingen uploaden, en daarna debuggen. Als je een baudrate kunt kiezen, kies dan 115200. In het debug venster verbinden, en dan beide kiezen (zowel het schermpje als de emulatie), en dan kun je de berichten zien als je op een knop drukt.

Bedienen vanuit de Arduino Uno
Installeer de Nextion library vanaf hier: https://github.com/itead/ITEADLIB_Arduino_Nextion
Scroll naar beneden voor de stabiele 0.7.0 versie. Download de .zip.
Vanuit de Arduino IDE de bibliotheek als .zip toevoegen.
Dan naar Mijn documenten / Arduino / libraries naar de ITEAD Nextion library gaan, en de instellingen wijzigen in "NexConfig.h" voor altSoftSerial en de debug poort uitzetten.
Code: Alles selecteren
// #define DEBUG_SERIAL_ENABLE

#define nexSerial altSerial

Daarna de Arduino IDE opnieuw opstarten.
De altSoftSerial met 115200 is te snel, dus begin met 9600.
De Nextion gele draad naar pin 9 en de Nextion blauwe draad naar pin 8.
Installeer de altSoftSerial via de Bibliotheek beheerder in de Arduino IDE.

Via SD kaartje
De voorbeelden bestaan uit een sketch en twee bestanden die op een SD kaartje gezet kunnen worden.
Dit gaat helaas niet goed.
Op het scherm krijg ik altijd de mededeling dat de file versie te nieuw is.
Is er ergens firmware die geupdate moet worden ?

Thema's
Ik dacht: "ik ga even een steampunk thema downloaden", maar dat gaat niet. Er zijn helemaal geen thema's om te downloaden. Moet ik alles zelf maken ? maar ik heb de creativiteit van een baksteen :(

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 01 Feb 2017, 07:56

Dan worden het baksteen schermen:)
De firmware wordt geupdate met een nieuwe tft file uit de editor. Dus ff een voorbeeld file lezen met de editor en een nieuwe tft genereren. En die dan uploaden.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 01 Feb 2017, 08:52

Okay, bedankt, dus de firmware gaat altijd gaat gelijk mee bij een upload. Ik zie een melding in de Nextion Editor dat de voorbeelden worden omgezet naar een nieuw formaat.
Dus dan heb ik eigenlijk niets aan de socket voor een SD kaartje, want dan krijg ik de melding: "File Version is too low".

Ik ben gewend om een scherm met capacitieve touch te gebruiken die ik maar net hoef aan te raken. Hier moet ik echt op het scherm drukken. Het lijkt er op dat de touch op het scherm is geplakt, en dat de voorkant nu kunststof is en geen glas. En ja, de beschermfolie heb ik er af gehaald ;)

Welke versie van de Arduino library gebruik jij ? De stabiele v0.7.0, of de nieuwste ?

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 01 Feb 2017, 09:44

Ik had versie 0.41 bij mij erop staan. Ga nu naar 0.43. Moet ff kijken of dat nog meer effecten heeft. Ik ben namelijk een Windows programma aan het schrijven (met CodeBlocks & wxWidgets) om een HMI file te lezen en te decoderen en dan automatisch een include te genereren. Dan kan je gewoon eventdriven programmeren
voorbeeld van de .h
cpp code
#ifndef TEST_H
#define TEST_H
//
// include file generated from HMI file TEST.HMI
// HMI file was created with Nextion IDE version V0.38
// generated on 2017-01-31T11:07:59
//

#include <Arduino.h>
#include <Nextion.h>
/**
* Structure of page: MainScreen
*/
struct {
NexButton ButtonOn = NexButton(0, 1, "ButtonOn");
NexButton ButtonOff = NexButton(0, 2, "ButtonOff");
NexText DisplayText = NexText(0, 3, "DisplayText");
} MainScreen;

void OnReleaseMainScreenButtonOn(void *ptr);
/**
* @name MainScreenButtonOnReleaseCallBack
* @param ptr Pointer to ButtonOnobject that generated this event
* is called when a release event is generated from button ButtonOn
*/
void MainScreenButtonOnReleaseCallBack (void *ptr) {
OnReleaseMainScreenButtonOn(&ptr);
}

void OnReleaseMainScreenButtonOff(void *ptr);
/**
* @name MainScreenButtonOffReleaseCallBack
* @param ptr Pointer to ButtonOffobject that generated this event
* is called when a release event is generated from button ButtonOff
*/
void MainScreenButtonOffReleaseCallBack (void *ptr) {
OnReleaseMainScreenButtonOff(&ptr);
}

/**
* @name attachCallBacks()
* attaches our callback functions to the Nextion system
*/
void attachCallBacks() {
MainScreen.ButtonOn.attachPop(MainScreenButtonOnReleaseCallBack, &(MainScreen.ButtonOn));
MainScreen.ButtonOff.attachPop(MainScreenButtonOffReleaseCallBack, &(MainScreen.ButtonOff));
}
/**
* @name nex_listen_list
* is a list of all objects that need listening to
*/
NexTouch * nex_listen_list[] {
&ButtonOn,
&ButtonOff,
NULL
};

#endif

De pest met die Chinezen is dat ze af en toe weer de indeling veranderen en moet je dus rekening houden elke keer met een andere indeling. De grootste verandering was toen ze van 16 bit pointers overgingen naar 32 bits. En tegelijk ook maar ff de file header hebben aangepast. Verder heb ik op dit moment versie 0.9.0 als library.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 01 Feb 2017, 10:29

En uiteraard is de indeling weer veranderd. Maar het valt mee zo te zien....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 01 Feb 2017, 10:49

Ik het volgende gedaan:
a) Met IDE versie 0.43 (nieuwste versie) compButton geladen vanuit de voorbeeld in de Nextion Arduino library
b) omgezet naar nieuwere format (daar vraagt hij om als je wilt compileren)
c) de .tft file uit de build directory gekopieerd naar een lege SD kaart
d) Nextion scherm van spanning voorzien
e) hij laadt bij mij keurig de tft in
f) ff spanning eraf spanning erop en scherm is keurig geladen.
Dus dat werkt prima.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 01 Feb 2017, 13:50

Via een SD kaartje met de bestanden omgezet door de Nextion Editor krijg ik nu: "No Find File".

Verder heb ik de debug messages weer aangezet en die gaan naar de normale Serial port. Ik gebruik nu overal de nieuwste programma's van. Dus Arduino IDE 1.8.1, en de unstable nieuwste Nextion library.

De nieuwste Nextion library heeft verkeerde namen voor de voorbeelden, die komen daardoor niet in het menu. Ik haal een voorbeeld op en bewaar het dan bij mijn projecten.

De AltSoftSerial bleek geen setTimeout() te hebben, dus dat heb ik weggecommentarieerd in NexHardware.cpp.

Verder bleek er een probleem met de includes, daarom heb ik nog wat regels toegevoegd aan NexConfig.h :
Code: Alles selecteren
#define DEBUG_SERIAL_ENABLE
#define dbSerial Serial

#include <AltSoftSerial.h>
extern AltSoftSerial altSerial;
#define nexSerial altSerial


Tot zover gaat het goed, alleen zit ik onhandig te hinkelen tussen Windows en linux.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 01 Feb 2017, 17:37

De .HMI file is de zgn. project file. die hoeft niet op de SD kaart. Er is ook nog een folder waar de .tft file wordt gezet. Via de IDE kun je daar naar toe. Die moet je op de SD kaart zetten. Die file bouw je op met de compile button in de IDE
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 01 Feb 2017, 21:24

Via een SD kaartje werkt nu ook :D Bedankt !
In het menu zit "open build folder", en daar zitten ze dus.

Hoe ver zou @PhilippeSteelant zijn ? Hij gebruikt ook een Arduino Uno, en dat samen met AltSoftSerial vind ik goed werken.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 01 Feb 2017, 21:29

Persoonlijk vind ik buildfolder k.t maar ik heb nog niet kunnen vinden dat ie gewoon dezelfde folder pakt als de hmi.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Volgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Google [Bot] en 10 gasten