hc-sr04 litros agua subir a cayenne

#define CAYENNE_DEBUG       
#define CAYENNE_PRINT Serial
#include <CayenneMQTTEthernet.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
#include<Wire.h>

LiquidCrystal_I2C lcd(0x27,20,4);

#include <Relay.h>

#define Relay = 11;
#define Relay = 12;

double distancia;
long tiem;
float pi=3.1416;
double radio=267;
int altura=245;
double resultado;
double alturaReal;
int variable1=364;

char username[] = "fffffffffffffffffffffffffffffffffffffffffffff";
char password[] = "ffffffffffffffffffffffffffffffffffffffffff";
char clientID[] = "fffffffffffffffffffffffffffffffffffffffffff";


#define CAYENNE_PRINT Serial_CHANNEL 1
#define trigger_pin  2
#define echo_pin 3
#define read.resultado
void setup() {

   Wire.begin();
 lcd.begin(20, 4);
 lcd.init();
 lcd.backlight();
 lcd.clear();
 lcd.setCursor(0, 0);
 Serial.begin(9600);
  pinMode(2, OUTPUT); 
  pinMode(3, INPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  Cayenne.begin(username, password, clientID); 
}
void loop(){

  
digitalWrite(2,LOW);
  delayMicroseconds(5);
  digitalWrite(2, HIGH);
  delayMicroseconds(10);
  tiem=pulseIn(3, HIGH);
  distancia= double(0.017*tiem); 
  alturaReal=altura-distancia;
  resultado= pi*(radio*radio)*alturaReal/1000;
  delay(2000);

  
  lcd.setCursor(0, 0);
   lcd.print(F("D Marmo servicio"));
   
  lcd.setCursor(0, 1);
  lcd.print(F("datos cisterna")); 
    
    
  lcd.setCursor(0, 2);
  lcd.print(F("litros ")); 
  lcd.print(resultado);

  lcd.setCursor(0, 3);
  lcd.print(F("alarmas low high"));
  
    Serial.print("litros");
    Serial.println();
    Serial.print(resultado);
    Serial.println();
     
    if (resultado < 3000) {
   digitalWrite (11, LOW);
    } else {

     digitalWrite (11, HIGH);
    }
      if (resultado > 49500) {

     digitalWrite (12, LOW);
    } else {
      
     digitalWrite (12, HIGH);
    }
     Cayenne.loop();
}
     CAYENNE_OUT_DEFAULT ()
     {
      Cayenne.virtualWrite(0, millis());
      

    //  Cayenne.virtualWrite(1 (read.Serial_echo_CHANNEL());
     }
     CAYENNE_IN_DEFAULT()
     {
      CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());

ninguna funciona el codigo funciona bien en el LCD aparecen los litros que tiene el deposito y si falta o sobra agua activa el rele correspondiente de alarma se requiere que envie los datos via ethernet
saludos

Moderador
Por favor edita los comentarios que has puesto usando etiquetas de código del mismo modo que lo hiciste antes

En la librería que a continuación indico (ver link de ejemplos Cayenne) tienes este ejemplo

//#define CAYENNE_DEBUG       // Uncomment to show debug messages
#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include <CayenneMQTTEthernet.h>

// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "MQTT_USERNAME";
char password[] = "MQTT_PASSWORD";
char clientID[] = "CLIENT_ID";

void setup() {
	Serial.begin(9600);
	Cayenne.begin(username, password, clientID);
}

void loop() {
	Cayenne.loop();
}

// Default function for sending sensor data at intervals to Cayenne.
// You can also use functions for specific channels, e.g CAYENNE_OUT(1) for sending channel 1 data.
CAYENNE_OUT_DEFAULT()
{
	// Write data to Cayenne here. This example just sends the current uptime in milliseconds on virtual channel 0.
	Cayenne.virtualWrite(0, millis());
	// Some examples of other functions you can use to send data.
	//Cayenne.celsiusWrite(1, 22.0);
	//Cayenne.luxWrite(2, 700);
	//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}

// Default function for processing actuator commands from the Cayenne Dashboard.
// You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
	CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());
	//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
}
/*
  Cayenne HC-SR04 Example
  This sketch shows how to send HC-SR04 Sensor data to the Cayenne Dashboard.
  The CayenneMQTT Library is required to run this sketch. If you have not already done so you can install it from the Arduino IDE Library Manager.
  Steps:
  1. Attach a HC-SR04 to your Arduino:
   Schematic:
   HC-SR04    Arduino
   [VCC] --- [5V]
   [GND] --- [GND]
   [TRIGGER_PIN] --- [Digital Pin 2]
   [ECHO_PIN] --- [Digital Pin 3]
  2. Set the DISTANCE_VIRTUAL_CHANNEL value below to a free virtual channel.
  3. Set the Cayenne authentication info to match the authentication info from the Dashboard.
  4. Compile and upload this sketch.
  5. Once the Arduino connects to the Dashboard it should automatically create temporary display widget with data.
   To make a temporary widget permanent click the plus sign on the widget.
*/

#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial // Comment this out to disable prints and save space
#include <CayenneMQTTEthernet.h>

// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "MQTT_USERNAME";
char password[] = "MQTT_PASSWORD";
char clientID[] = "CLIENT_ID";

#define DISTANCE_VIRTUAL_CHANNEL 1

// Defines pins numbers for the HC-SR04 connections.
#define TRIGGER_PIN  2
#define ECHO_PIN 3

// Defines variables for storing the calculated values.
long duration;
int distance;

void setup() {
  pinMode(TRIGGER_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  Serial.begin(9600);
  Cayenne.begin(username, password, clientID);
}

void loop() {
  Cayenne.loop();
}

// This function is called at intervals to send HC-SR04 sensor data to Cayenne.
CAYENNE_OUT(DISTANCE_VIRTUAL_CHANNEL)
{
  digitalWrite(TRIGGER_PIN, LOW); // Clears the trigger pin
  delayMicroseconds(2);

  digitalWrite(TRIGGER_PIN, HIGH); // Sets the trigger pin on HIGH state for 10 micro seconds
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);

  duration = pulseIn(ECHO_PIN, HIGH); // Reads the echo pin, returns the sound wave travel time in microseconds

  distance = duration * 0.034 / 2; // Calculating the distance.

  // Send the distance value to Cayenne on proximity widget in centimeter.
  Cayenne.virtualWrite(DISTANCE_VIRTUAL_CHANNEL, distance, "prox", "cm");
}

disculpa entre por el foro y no me daba la opción respuesta o quote y accedí por gmail y ahora si me da las opciones esta codigo cayenne da los datos en centímetros y yo deseo que los de en litros ahora estoy intentando modificar este código para que cayenne de los datos en litros y no quiero usar dos arduinos uno para obtener los datos en la planta y otro para que los envié por internet la información en caso de alarma ya sea por falta o exceso de agua
por que con esto del covid la planta esta tecnica mente parada y cuando llega el camion cisterna no tiene acceso al deposito y por la plataforma cayenne recibe la información del volumen que tiene el deposito pero es dificíl que lo interpreten por centímetros hace poco no habia problema eren tres turnos con 6 personas en cada uno y ahora es solo medio turno de forma aleatoria dos veces por semana si se derrama inunda unas oficinas y si se termina se detiene el proceso yo mejor me e puesto a diseñar respiradores creo que tiene mas futuro de momento que esto no terminara pronto
saludos

Bueno, disculpa mi comentario pero es difícil leer y más difícil comprender lo que has escrito, sin puntos, sin comas. No es una clase de lenguaje el foro pero realmente no necesito tener que leer dos veces algo para responder lo que el autor pretende decir. Para eso paso de la pregunta y sigo con la siguiente.
Si alguien lo entiende, me hace el favor de responder, yo no puedo.

Moderador:

Recuerda no hacer preguntas técnicas por privado.