Nextion Scherm temperatuur tonen
43 berichten
• Pagina 3 van 5 • 1, 2, 3, 4, 5
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nextion Scherm temperatuur tonen
Op de Mega gebruikt ie Serial2 voor de Nextion. Zelf bouw ik gelijk Software Serial in als volgt:
Vervang de NexConfig.h in de Nextion library voor deze inhoud
cpp code
En de sketch verander ik iets boven in
cpp code
Zodat ik het gewoon op een UNO kan draaien.
En behoudens het probleem van het plaatje, werkt ie als een tierelier. Overigens de fout van dat plaatje zit er al veel langer in. In versie 0.35 heb ik hetzelfde probleem.
Vervang de NexConfig.h in de Nextion library voor deze inhoud
cpp code
/**
* @file NexConfig.h
*
* Options for user can be found here.
*
* @author Wu Pengfei (email:<pengfei.wu@itead.cc>)
* @date 2015/8/13
* @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.
*/
#ifndef __NEXCONFIG_H__
#define __NEXCONFIG_H__
#include "SoftwareSerial.h"
extern SoftwareSerial HMISerial;
/**
* @addtogroup Configuration
* @{
*/
/**
* Define DEBUG_SERIAL_ENABLE to enable debug serial.
* Comment it to disable debug serial.
*/
#define DEBUG_SERIAL_ENABLE
/**
* Define dbSerial for the output of debug messages.
*/
#define dbSerial Serial
/**
* Define nexSerial for communicate with Nextion touch panel.
*/
#define nexSerial HMISerial
#ifdef DEBUG_SERIAL_ENABLE
#define dbSerialPrint(a) dbSerial.print(a)
#define dbSerialPrintln(a) dbSerial.println(a)
#define dbSerialBegin(a) dbSerial.begin(a)
#else
#define dbSerialPrint(a) do{}while(0)
#define dbSerialPrintln(a) do{}while(0)
#define dbSerialBegin(a) do{}while(0)
#endif
/**
* @}
*/
#endif /* #ifndef __NEXCONFIG_H__ */
En de sketch verander ik iets boven in
cpp code
/**
* voeg dit toe voor Software Serial
*/
#include "SoftwareSerial.h"
SoftwareSerial HMISerial (10, 11); // RX, TX
#include "Nextion.h"
Zodat ik het gewoon op een UNO kan draaien.
En behoudens het probleem van het plaatje, werkt ie als een tierelier. Overigens de fout van dat plaatje zit er al veel langer in. In versie 0.35 heb ik hetzelfde probleem.
Advertisement
Re: Nextion Scherm temperatuur tonen
ok weeral bedankt Nico, hier ben ik weer wat mee. ik hou je op de hoogte
Re: Nextion Scherm temperatuur tonen
Nu ben ik met de UNO begonnen en heb de bibliotheek aangepast, het bizarre is dat het voorbeeld CompGauge nu wel werkt, ik begrijp er niets meer van maar goed. Nu nog een temperatuursensor aansluiten en deze waarden op een plaatje krijgen dan ben ik vertrokken . kan je me daar nog in begeleiden?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nextion Scherm temperatuur tonen
Eerst zelf proberen...... In het gauge voorbeeld staat hoe je een gauge kan bijwerken.... En de waarde krijgen voor een temperatuur sensor daar zijn voorbeelden te over.
Re: Nextion Scherm temperatuur tonen
tot zover gekomen ondertussen:
#include "SoftwareSerial.h"
SoftwareSerial HMISerial (10, 11); // RX, TX
#include <Nextion.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <string.h>
#include "Arduino.h"
#define ONE_WIRE_BUS 4
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
NexText temperature = NexText(0, 4, "t1");
NexGauge pointer = NexGauge(0, 3, "z0");
uint32_t number = 0;
uint16_t sensor_pin = 0;
uint16_t sensor_value = 0;
unsigned long update = 1;
char buffer_temp[10] = {0};
char buffer_temperature[10] = {0};
char buffer[10] = {0};
void setup() {
nexInit();
dbSerialPrintln("setup done");
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
Serial.begin(9600);
sensors.begin();
}
void loop() {
// put your main code here, to run repeatedly:
if (millis() > update+ 500)
{
temperatureDisplay();
update = millis();
}
}
void temperatureDisplay(void)
{
sensors.requestTemperatures(); // Send the command to get temperatures
float celsius = sensors.getTempCByIndex(0);
number = ((float)celsius / 60) * 180 + 30;
pointer.setValue(celsius);
memset(buffer, 0, sizeof(buffer));
itoa(celsius, buffer, 10);
temperature.setText(buffer);
Serial.println(celsius);
}
de temperatuur verschijnt in het "t1" venstertje en ik zie de naald een heel klein beetje verschuiven,te veel te klein om een schaal te kunnen maken van bv 20°C tot 30°C. als dit nog opgelost geraakt dan ben ik er
#include "SoftwareSerial.h"
SoftwareSerial HMISerial (10, 11); // RX, TX
#include <Nextion.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <string.h>
#include "Arduino.h"
#define ONE_WIRE_BUS 4
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
NexText temperature = NexText(0, 4, "t1");
NexGauge pointer = NexGauge(0, 3, "z0");
uint32_t number = 0;
uint16_t sensor_pin = 0;
uint16_t sensor_value = 0;
unsigned long update = 1;
char buffer_temp[10] = {0};
char buffer_temperature[10] = {0};
char buffer[10] = {0};
void setup() {
nexInit();
dbSerialPrintln("setup done");
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
Serial.begin(9600);
sensors.begin();
}
void loop() {
// put your main code here, to run repeatedly:
if (millis() > update+ 500)
{
temperatureDisplay();
update = millis();
}
}
void temperatureDisplay(void)
{
sensors.requestTemperatures(); // Send the command to get temperatures
float celsius = sensors.getTempCByIndex(0);
number = ((float)celsius / 60) * 180 + 30;
pointer.setValue(celsius);
memset(buffer, 0, sizeof(buffer));
itoa(celsius, buffer, 10);
temperature.setText(buffer);
Serial.println(celsius);
}
de temperatuur verschijnt in het "t1" venstertje en ik zie de naald een heel klein beetje verschuiven,te veel te klein om een schaal te kunnen maken van bv 20°C tot 30°C. als dit nog opgelost geraakt dan ben ik er
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nextion Scherm temperatuur tonen
De waarde die je naar de naald stuurt met een factor x vermenigvuldigen
Re: Nextion Scherm temperatuur tonen
ik heb de float waarde vermenigvuldigd met 10 en nu werkt het wel (eventjes logisch nadenken want het totale bereik is natuurlijk 360°).
Kan je mij uitleggen wat er in de functie void temperatureDisplay(void) allemaal staat, eerlijk gezegd heb ik deze code van het internet geplukt in de hoop dat het zou werken maar ik heb totaal geen benul wat er eigenlijk staat .
Ook heb ik nu in het tekstvakje "t1" bv 205 staan, kan ik dit veranderen naar 20.5?
ik begin er stilletjes grip op te krijgen maar ik heb nog een héél lange weg af te leggen, maar zoals je zelf zei, dit wereldje blijft niet stil staan
Kan je mij uitleggen wat er in de functie void temperatureDisplay(void) allemaal staat, eerlijk gezegd heb ik deze code van het internet geplukt in de hoop dat het zou werken maar ik heb totaal geen benul wat er eigenlijk staat .
Ook heb ik nu in het tekstvakje "t1" bv 205 staan, kan ik dit veranderen naar 20.5?
ik begin er stilletjes grip op te krijgen maar ik heb nog een héél lange weg af te leggen, maar zoals je zelf zei, dit wereldje blijft niet stil staan
- johnny_boy_1984
- Berichten: 4
- Geregistreerd: 12 Jan 2017, 17:26
Re: Nextion Scherm temperatuur tonen
Hallo Dries,
Voor mijn campercomputer heb ik ook bovenstaande code gebruikt en werkend gekregen (mega en nextion 3.5).
Ik krijg nu bijv 20 te zien, ben je er al achter hoe je bijv. 20.4 te zien krijgt?
Voor mijn campercomputer heb ik ook bovenstaande code gebruikt en werkend gekregen (mega en nextion 3.5).
Ik krijg nu bijv 20 te zien, ben je er al achter hoe je bijv. 20.4 te zien krijgt?
Re: Nextion Scherm temperatuur tonen
Dag Johny,
ik dacht aan een waarde te mappen tussen 20 en 30, dus van 0 tot 100% en dan met deze waarde iets gaan doen, terug delen door 100 en dan optellen bijvoorbeeld.
ik dacht aan een waarde te mappen tussen 20 en 30, dus van 0 tot 100% en dan met deze waarde iets gaan doen, terug delen door 100 en dan optellen bijvoorbeeld.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nextion Scherm temperatuur tonen
Ik zou eens naar de dtostrf() functie kijken.....
43 berichten
• Pagina 3 van 5 • 1, 2, 3, 4, 5
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 32 gasten