Quantcast
Channel: myDevices Cayenne Community - Latest topics
Viewing all articles
Browse latest Browse all 4745

Arduino due offline mentre lavora

$
0
0

@Massimotruglio83 wrote:

//#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[] = "";
char password[] = "";
char clientID[] = "";

#define RELAY_DIGITAL_PIN 9
#define RELAY_DIGITAL_PIN2 4
#define RELAY_DIGITAL_PIN3 5
#define RELAY_DIGITAL_PIN4 7

#define PUBLISH_DELAY   5000

int luminosita;  //Il valore letto dalla fotoresistenza
int umidita;
int sensorepioggia;

int CICLO=1;
int x=0;
int a=0;
int b=0;
int c=0;

unsigned long lastMillis=0;
unsigned long previousMillis=0;


unsigned long y=0;

void setup() {
  Serial.begin(9600);
  Cayenne.begin(username, password, clientID);
   pinMode(RELAY_DIGITAL_PIN, OUTPUT);
   pinMode(RELAY_DIGITAL_PIN2, OUTPUT); 
   pinMode(RELAY_DIGITAL_PIN3, OUTPUT);
   pinMode(RELAY_DIGITAL_PIN4, OUTPUT); 
   
   digitalWrite(RELAY_DIGITAL_PIN, HIGH);
  digitalWrite(RELAY_DIGITAL_PIN2, HIGH);
  digitalWrite(RELAY_DIGITAL_PIN4, HIGH);
  digitalWrite(RELAY_DIGITAL_PIN3, HIGH);
  
  
  
  CAYENNE_LOG("Sync data");
  Serial.print("valore del ciclo =");
  Serial.println(CICLO);
  

        Cayenne.virtualWrite(4,0);
        Cayenne.virtualWrite(5,0);
        Cayenne.virtualWrite(6,0);
        Cayenne.virtualWrite(21,0);
        Cayenne.virtualWrite(22,0);
        Cayenne.virtualWrite(23,0);
   
   pinMode(A1, INPUT);
   pinMode(8, INPUT);
   pinMode(2,INPUT);
   }

void loop() {
  Cayenne.loop();
  if (millis() - previousMillis > PUBLISH_DELAY) {
    
    previousMillis = millis();
    
    luminosita = !digitalRead(2);  //Lettura della luminosità
 
    umidita = analogRead(A1);
  Serial.print("luminosita = ");
  Serial.println(luminosita);
  Serial.print("umidita = ");
  Serial.println(umidita);
  sensorepioggia=digitalRead(8);
   Serial.print("sensore pioggia =");
  Serial.println(sensorepioggia);
   

  }

  


  if (x == 1)
  {
    if (millis() - lastMillis > y && a == 1) 
    { delay(10000);
      digitalWrite(RELAY_DIGITAL_PIN2, HIGH);
      b = 1;
      lastMillis = millis();
      digitalWrite(RELAY_DIGITAL_PIN3, LOW);
      a = 0;
      Serial.println("iniziato Ciclo If");
      Cayenne.virtualWrite(21,0);
       Cayenne.virtualWrite(22,1);
    }
    if (b == 1)
    {
      if (millis() - lastMillis > y && b == 1)
      { delay(10000);
        digitalWrite(RELAY_DIGITAL_PIN3, HIGH);
        b = 0;
        lastMillis = millis();
        c =1;
        digitalWrite(RELAY_DIGITAL_PIN4, LOW);
        Serial.println("secondo step");
        Cayenne.virtualWrite(22,0);
        Cayenne.virtualWrite(23,1);
      }
    }
    if (c == 1)
    {
      if (millis() - lastMillis > y && c == 1)
      { delay(10000);
        digitalWrite(RELAY_DIGITAL_PIN4, HIGH);
        c = 0;
        lastMillis = millis();
        
       
        Serial.println("terzo step");
     
        Cayenne.virtualWrite(23,0);
         Cayenne.virtualWrite(10,0);
          Cayenne.virtualWrite(11,0);
           Serial.println("fine ciclo irrigazione");
      }
  }
  
  
}

    
  
}

// 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());
  
  //Cayenne.virtualWrite(1, luminosita);
  Cayenne.luxWrite(1, luminosita);
  Cayenne.virtualWrite(2, umidita,TYPE_RELATIVE_HUMIDITY,UNIT_PERCENT);
   Cayenne.virtualWrite(8, sensorepioggia);
   
   
    //Write data to Cayenne here. This example just sends the current uptime in milliseconds.
    
      Serial.println("Finito invio");
  //sensorepioggia=digitalRead(10);
  //Serial.println(sensorepioggia);
  //Cayenne.virtualWrite(10, sensorepioggia);
  
  //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(3)
 {
 CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
  //Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
  // get value sent from dashboard
  int currentValue = getValue.asInt(); // 0 to 1

  // assuming you wire your relay as normally open
  if (currentValue == 0) {
    digitalWrite(RELAY_DIGITAL_PIN, HIGH);
  } else {
    digitalWrite(RELAY_DIGITAL_PIN, LOW);
  }
  }
  

CAYENNE_IN(4)
{
  CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
  //Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
  // get value sent from dashboard
  int currentValue = getValue.asInt(); // 0 to 1

  // assuming you wire your relay as normally open
  if (currentValue == 0) {
    digitalWrite(RELAY_DIGITAL_PIN2, HIGH);
  } else {
    digitalWrite(RELAY_DIGITAL_PIN2,LOW);
  }
  
}
 CAYENNE_IN(5)
{
 CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
  //Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
  // get value sent from dashboard
  int currentValue = getValue.asInt(); // 0 to 1

  // assuming you wire your relay as normally open
  if (currentValue == 0) {
    digitalWrite(RELAY_DIGITAL_PIN3, HIGH);
  } else {
    digitalWrite(RELAY_DIGITAL_PIN3, LOW);
  }
  }
  

CAYENNE_IN(6)
{
  CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
  //Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
  // get value sent from dashboard
  int currentValue = getValue.asInt(); // 0 to 1

  // assuming you wire your relay as normally open
  if (currentValue == 0) {
    digitalWrite(RELAY_DIGITAL_PIN4, HIGH);
  } else {
    digitalWrite(RELAY_DIGITAL_PIN4, LOW);
  }
  
}
CAYENNE_IN(10)
{
  CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
   x = getValue.asInt(); // 0 to 1
  lastMillis = millis();
  digitalWrite(RELAY_DIGITAL_PIN2 , LOW);
 
  a = 1;
  Serial.println(" inizio ciclo da  =");
  Serial.println(y);
  Cayenne.virtualWrite(11,1);
  Cayenne.virtualWrite(21,1);
  }
  
CAYENNE_IN(12)
{
  CAYENNE_LOG("CAYENNE_IN_DEFAULT(%u) - %s, %s", request.channel, getValue.getId(), getValue.asString());
 
  CICLO = getValue.asInt(); // 0 to 1
  y = CICLO * 50000;
  Serial.print(" Valore variabile ciclo =");
  Serial.println(y);
}
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");
}

Posts: 4

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 4745

Trending Articles