Nection/Arduino connectie.

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: Nection/Arduino connectie.

Berichtdoor benvo » 21 Mrt 2017, 17:02

Hallo allemaal,

Na ontzettend lang zoeken en een veelvoudig nieuwe upload van de Nextion Editor Versie 0.43 werkt alles! De laatste keer dat ik uploade gaf hij een werkende Editor! Gelukkig.

@Koepel,
Ik ben je nog wat antwoorden schuldig.
Dit waren je vragen:

Nu het tempo er in houden 8-) en kun je proberen de achtergrond te laten knipperen vanuit de Arduino zoals ik eerder schreef.
Zou je mij een plezier willen doen en zou je eens willen kijken naar mijn eerste reactie op dit onderwerp... stond daar misschien alles al in ?

Ik kan de achtergrond laten knipperen, op dit moment kijk ik ernaar...
In je eerste reactie stonden alle goede dingen al in, ik begreep ze alleen (nog) niet, nu wel! Mijn fout dus... (Have patience with me...)
Ik heb nog een plaatje meegestuurd om te laten zien waar ik mee bezig ben. Het zijn 3 lichtmeters die in percentages moeten aangeven met welke helderheid de desbetreffende led balk brand. De rode naald voor de wit/rode leds, de blauwe naald voor de wit/blauwe leds en de witte naald voor de, uiteraard, witte leds. De onderste meter wordt de temperatuurmeter, hij heeft een groene naald. Goed, een plaatje is een ding, nu moet het nog gaan werken...

Dank allemaal.

Groet,
Ben.

Afbeelding

Advertisement

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: Nection/Arduino connectie.

Berichtdoor benvo » 21 Mrt 2017, 18:54

Hallo allemaal,

Wanneer je de ITEADLIB_Arduino_Nextion-Master library gebruikt is dit kennelijk een verzameling library's. Als zodanig heb ik deze verzameling in mijn Arduino gezet. Bij gebruik staat er dan een hele rits library's bovenin je sketch. Moeten deze allemaal gebruikt worden of is het de bedoeling dat je "een" library kiest?
Het is me opgevallen dat bij #include<Nextion.h> de tekst niet verkleurd bij plaatsing in een sketch?

Groet,
Ben.

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: Nection/Arduino connectie.

Berichtdoor benvo » 21 Mrt 2017, 19:14

Hallo allemaal,

Op de foto even terug zien jullie een temperatuurmeter staan, graag wilde ik eens testen of ik beweging in de wijzer (z3) zou kunnen krijgen. Daarvoor onderstaande sketch die geen fouten aangeeft. Er gebeurd echter niets, maar door het ontbreken van iets weet ik even niet waar te zoeken. Wat er wel gebeurd is dat de RX led op de Arduino Mega blijft knipperen. Kennelijk zit ik in een oneindige loop?


[code2=cpp][/
Code: Alles selecteren
#include <NexGauge.h>
#include <Nextion.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>  // Zit al in de Arduino IDE

// Data aansluiting is aangesloten op pin 7 on the Arduino.
#define ONE_WIRE_BUS 7

// Legt een oneWire aan om te communiceren met elk oneWire apparaat.
OneWire oneWire(ONE_WIRE_BUS);

// Verbind onze oneWire referentie aan Dallas Temperature.
DallasTemperature sensors(&oneWire);



void setup(void)
{
 Serial.begin(115200);
 nexInit();
 
 
 // Start de library
 sensors.begin();
 
}

void loop(void)
{
sensors.requestTemperatures(); // Zend het commando om de temperatuurmeting te halen.

float x=sensors.getTempCByIndex(0);


// Temperature (linear)
// temperature = 0, angle = -45 degrees
// temperature = 50, angle = +225 degrees.
// range of temperature is 50
// range of angle is 270 (225 + 45)
//float temperature;
float angle = ( x / 50.0 * 270.0 ) - 45.0;
int degrees = int( angle);
 




 
 
 
Serial.print("z3.val=");
Serial.print(x);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
   
}
code2]

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

Re: Nection/Arduino connectie.

Berichtdoor nicoverduin » 21 Mrt 2017, 20:44

Aan welke serial hangt de nextion?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: Nection/Arduino connectie.

Berichtdoor nicoverduin » 21 Mrt 2017, 20:46

benvo schreef:Hallo allemaal,

Wanneer je de ITEADLIB_Arduino_Nextion-Master library gebruikt is dit kennelijk een verzameling library's. Als zodanig heb ik deze verzameling in mijn Arduino gezet. Bij gebruik staat er dan een hele rits library's bovenin je sketch. Moeten deze allemaal gebruikt worden of is het de bedoeling dat je "een" library kiest?
Het is me opgevallen dat bij #include<Nextion.h> de tekst niet verkleurd bij plaatsing in een sketch?

Groet,
Ben.

Nextion.h is voldoende. Zie de voorbeelden die bij die library zitten

deze dus:
cpp code
/**
* @example CompGauge.ino
*
* @par How to Use
* This example shows that ,when the "btn_up" component on the Nextion screen is released,
* the value of gauge component will plus 5,when the "btn_down" component released ,the value of
* gauge component will minus 5 every time.
*
* @author Wu Pengfei (email:<pengfei.wu@itead.cc>)
* @date 2015/7/10
* @copyright
* Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*/

#include "Nextion.h"

NexGauge pointer = NexGauge(0, 1, "pointer");
NexButton btn_up = NexButton(0, 2, "btn_up");
NexButton btn_down = NexButton(0, 3, "btn_down");

NexTouch *nex_listen_list[] =
{
&btn_up,
&btn_down,
NULL
};

void buttonUpPopCallback(void *ptr)
{
uint32_t number = 0;
dbSerialPrintln("buttonUpPopCallback");

pointer.getValue(&number);

number += 5;
if (number >= 360)
{
number = 0;
}

pointer.setValue(number);
}
void buttonDownPopCallback(void *ptr)
{
uint32_t number = 0;
dbSerialPrintln("buttonDownPopCallback");

pointer.getValue(&number);

if (number >= 5)
{
number -= 5;
}

pointer.setValue(number);
}



void setup(void)
{
nexInit();
btn_up.attachPop(buttonUpPopCallback);
btn_down.attachPop(buttonDownPopCallback);
dbSerialPrintln("setup done");
}

void loop(void)
{
nexLoop(nex_listen_list);
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: Nection/Arduino connectie.

Berichtdoor Koepel » 21 Mrt 2017, 20:52

Seriele poorten
Weet je nog die #define nexSerial Serial2 ?
De seriele poort naar het scherm is dus Serial2, maar je kunt dat beter consequent nexSerial noemen.
De Serial is de normale seriele poort naar de computer zoals altijd.
In je loop() stuur je echter het commando (die voor het display bedoelt is) naar de computer, je hebt daar dus nexSerial nodig.

Nextion Library EDIT: Dit is intussen misschien overbodig, kijk naar de voorbeelden zoals nico hierboven schrijft.
Heb je er ergens een tekstveld in zitten ?
Bekijk ook de voorbeelden die bij de ITEAD library zitten.

Stel dat je nog geen 'call back' hebt voor het indrukken van knoppen.
Include de library:
#include <Nextion.h>

Definieer de objecten van de componenten:
NextText t0 = NextText(0, 1, "t0");

Doe een nexInit in setup():
nexInit();

En in de loop kun je de tekst zetten:
t0.setText("Hallo");

Als je vervolgens meerdere componenten hebt, met allerlei dingen waar je op kunt drukken, dan raak je al snel kwijt welk onderdeel welke nummer en welke naam heeft. Kijk dan @nicoverduin eens lief aan om dat te doen genereren.

Wijzer
De wijzer lukt me nog niet. Het Nextion display heeft geen transparantie met plaatjes, dus een losse wijzer kan niet, ik moet het voor elk plaatje nog plakken op de achtergrond.
In linux gebruikte ik ImageMagick:
convert input.png -duplicate 360 -distort SRT %[fx:t*360/n] -set delay 5 -loop 0 output.gif
Bron van het plaatje: http://www.loc.gov/pictures/item/ca0723.color.571954c/.
Bijlagen
Nextion_test2.png
Nextion_test2.png (29.35 KiB) 5041 keer bekeken
Nextion_test2.gif
Nextion_test2.gif (142.11 KiB) 5041 keer bekeken

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: Nection/Arduino connectie.

Berichtdoor benvo » 22 Mrt 2017, 13:16

Hallo allemaal,

Ik ga aan het werk! Dank voor jullie reacties. Het Sketchje wat ik mee stuurde is bedoelt als test om te snappen hoe e.e.a. moet gaan werken. Er staan nog geen buttons bijvoorbeeld in die ik later trouwens wel wil gaan gebruiken. Mijn bedoeling is om kleine stapjes te maken om alles ook daadwerkelijk te begrijpen wat ik aan het doen ben. Ik vond ook nog een Nextion instruction set, hier is ook veel uit te halen, bijvoorbeeld hoe je een klok op het scherm zet met een RTC variabele. Al weet ik inderdaad nog niet hoe dit gaat uitwerken op mijn DS 3231 die ik in mijn Arduino sketches gebruik als timer. Nou ja, even bewaren voor later.

@koepel,

De wijzer lukt me nog niet. Het Nextion display heeft geen transparantie met plaatjes, dus een losse wijzer kan niet, ik moet het voor elk plaatje nog plakken op de achtergrond.

Even zien of ik deze zin begrijp. Wanneer je een wijzer zou maken met Inkscape in het PNG formaat, dat transparantie ondersteunt, dan blijkt dat de achtergrond, het witte vierkantje welk normaal altijd achter een afbeelding zit, transparant te zijn. Dit zag ik toen ik mijn schalen in inkscape op een achtergrond plaatste, alleen de afbeelding van de schalen werd geplaatst de rest is dan automatisch transparant. Dus probeer je achtergrond in te laden in Inkscape en plaats dan de wijzer er bovenop, het kan wel. Hopelijk begrijp ik je probleem goed en heb je hier iets aan, het zou ook fijn zijn als ik iets terug kan doen! Ik zag ook inderdaad hoe zo'n wijzer gemaakt zou kunnen worden, zie mijn link hierboven, maar voor een schaal met 100 punten waar ik er bovendien 3 van heb zou je 100 plaatjes moeten maken en die als een film moeten afdraaien. Pfffff! Of zou dit mogelijk zijn?

Dank jullie wel!

Groet,
Ben.

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

Re: Nection/Arduino connectie.

Berichtdoor Koepel » 22 Mrt 2017, 13:41

In een tekenprogramma kan het wel, maar in het Nextion Display niet. Daar kan wel de achtergrond van de tekst gezet worden op het achtergrond plaatje, dus de tekst lijkt wel transparant.
De tekst kan zelfs nog meer. Met 'xstr' kan ik twee verschillende teksten over elkaar heen schrijven (sta = 3-No backcolor), terwijl ze beiden zichtbaar zijn. Dat is dus echte transparantie.
Zover ik weet kan alleen de tekst dat.

Inmiddels heb ik met ImageMagick achter elk van de 360 plaatjes van het gif bestand de achtergrond er achter gezet. Nu is het bestand 16MB. Dat is te veel, en ik zie het niet zitten om 360 aparte plaatjes aan de Nextion Editor toe toe voegen.

Voor jouw wijzer zou je het kunnen tekenen met lijnen via de commando's. Wanneer je een refresh doet van een component dat er onder ligt, dan verdwijnt het getekende en kun je een nieuwe wijzer tekenen.
Helaas wordt het wit van de lijnen niet dekkend als je schuine lijnen naast elkaar tekent. Dan zul je zelf een berekening moeten maken om iedere stand van de wijzer met afzonderlijke horizontale (of verticale) lijnen te tekenen. Dan kun je er meteen een tutorial van maken voor op het ITEAD Nextion forum ;)

Misschien komt er binnenkort een update die PNG en GIF met transparantie ondersteunt.

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

Re: Nection/Arduino connectie.

Berichtdoor nicoverduin » 22 Mrt 2017, 14:35

Koepel schreef:Misschien komt er binnenkort een update die PNG en GIF met transparantie ondersteunt.
Ik had begrepen dat dat niet in de pijplijn zit vanwege de beperkte processor capaciteit.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: Nection/Arduino connectie.

Berichtdoor benvo » 22 Mrt 2017, 20:07

@ koepel:

Als je vervolgens meerdere componenten hebt, met allerlei dingen waar je op kunt drukken, dan raak je al snel kwijt welk onderdeel welke nummer en welke naam heeft. Kijk dan @nicoverduin eens lief aan om dat te doen genereren.


Hahaha, daar heeft Nico mij al mee geholpen!

Maar even stap voor stap; eerst wil ik proberen beweging in de wijzers te krijgen.

VorigeVolgende

Terug naar Overige projecten

Wie is er online?

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