Aviso

El foro está en modo de sólo lectura.

control de temperatura con arduino y nextion

Más
6 años 9 meses antes #501 por Alex_MG
hola tengo este programa en arduino el cual lee el sensor dht 11 mostrando humedad y temperatura, el caso es que yo quiero que el usuario pueda controlar la temperatura mediante la pantalla nextion (actualmente solo lee el valor del sensor y lo muestra en pantalla) simule la salida de un boton que activara unaresistencia pero no puedo hacer que funcione espero me puedas ayudar, asi mismo ver como poner varios leds o salidas para controlar mas parametros de antemano gracias saludos.
Adjuntos:
Más
6 años 9 meses antes #502 por Jose Luis
Ya veo que intentas leer el botón, siento no poder ayudarte ya que yo personalmente aun no comencé a usar la librería oficial, con lo que poco puedo aportar en tu ayuda. Espero alguien pueda decirte si haces algo mal.
Más
6 años 9 meses antes #503 por Jose Luis
Cuando solo quieres mostar un codigo, se ve mejor si lo pones aqui, en vez de un fichero adjunto :

#include "Nextion.h"
#include "DHT.h"
 
// Arduino  -> Nextion
// Pino 5v  -> Vermelho
// Pino GND -> Preto
// Pino 0   -> azul
// Pino 1   -> Amarelo
 
/*
 * Definicao 
 * objeto [page id:0, id componente:1, nome do componente: "bt0"]. 
 */
NexProgressBar j0 = NexProgressBar(0, 6, "j0");
NexText txt_temp  = NexText(0, 3, "t0");
NexText txt_umid  = NexText(0, 5, "t2");
NexDSButton bt0   = NexDSButton(0, 7, "bt0");
 
 
//  Configuracao do modulo DHT11
#define DHTPIN 2 
#define DHTTYPE DHT11  
DHT dht(DHTPIN, DHTTYPE);
 
 
// Variaveis
int temp = 0;
int temp_perc = 0;
char buffer[100] = {0};
char buffer2[100] = {0};
int led = 13;
uint32_t dual_state;
 
 
void setup(void){
    nexInit();
    pinMode(led, OUTPUT);  
}
 
 
void loop(void){
    // Atualiza os valores do Nextion
    j0.setValue(temp_perc);
    txt_temp.setText(buffer);
    txt_umid.setText(buffer2);
 
    // Leitura do sensor DHT
    int temp = dht.readTemperature();
    int umid = dht.readHumidity();
 
    // Conversao dos valores de inteiro para string
    memset(buffer, 0, sizeof(buffer));
    itoa(temp, buffer, 10);
    memset(buffer2, 0, sizeof(buffer2));
    itoa(umid, buffer2, 10);
 
    // Conversao da temperatura para percentual (0 a 50)
    temp_perc=(temp/0.5);
 
    // Faz a leitura do valor do botao
    bt0.getValue(&dual_state);
    if(dual_state>0) {
        digitalWrite(led, HIGH);
    } else {
        digitalWrite(led, LOW);
    }
}
Más
5 años 9 meses antes #1473 por Gustavo_Fabian
Hola Jose Luis/Alex, me engancho a este post, para consultarles a ustedes si me pueden decir como puedo visualizar los valores con los decimales ya que hasta ahora solo he logrado de mostrar valores enteros.
uso la misma expresión del código anterior.

txt_temp.setText(buffer);

y entiendo que me trae la cadena de char buffer[100] = {0};

es por eso que no entiendo como expresar los decimales
desde ya muchas gracias
Más
5 años 9 meses antes #1474 por Jose Luis
Con el ejemplo que indicas, efectivamente enviarias el contenido del buffer, pero no creo que te acepte como lo tienes puesto, ya que si es char no seria 0, sino "0".
Más
5 años 9 meses antes #1475 por Gustavo_Fabian
gracias Jose Luis, claro es lo que entiendo pero ¿como debería hacer para colocar el dato numérico (con digito)?

txt_temp.setText(numero digital);
Tiempo de carga de la página: 0.119 segundos
Gracias a Foro Kunena