Advertisement
RuiViana

Cayenne_4_lamps

Mar 12th, 2017
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.08 KB | None | 0 0
  1. /*
  2.      GPIO 16 D0 ----------> PINO 04
  3.      GPIO 05 D1 ----------> PINO 20
  4.      GPIO 04 D2 ----------> PINO 19
  5.      GPIO 00 D3 ----------> PINO 18
  6.      GPIO 02 D4 --> LED --> PINO 17
  7.      GPIO 14 D5 ----------> PINO 05
  8.      GPIO 12 D6 ----------> PINO 06
  9.      GPIO 13 D7 ----------> PINO 07
  10.      GPIO 15 D8 ----------> PINO 16
  11.      GPIO 03 RX ----------> PINO 21
  12.      GPIO 01 TX ----------> PINO 22
  13. */
  14.  
  15. //#include <SHT1x.h>                                    // https://github.com/practicalarduino/SHT1x
  16. //#define dataPin  0      // GPIO 00  D3                // GPIO 0  D3  Port para o Data do SHT10
  17. //#define clockPin 15     // GPIO 15  D8                // GPIO 15 D8  Port para o Clock do SHT10
  18. //SHT1x sht1x(dataPin, clockPin);                       // Instancia shtx1
  19.  
  20. #define Lamp1 5           // GPIO 05  D1                // Port para ligar Controle do triac (Pino 2 do MOC3023)
  21. #define Lamp2 4           // GPIO 04  D2                // Port para ligar Controle do triac (Pino 2 do MOC3023)
  22. #define Lamp3 0           // GPIO 00  D3                // Port para ligar Controle do triac (Pino 2 do MOC3023)
  23. #define Lamp4 12          // GPIO 12  D6                // Port para ligar Controle do triac (Pino 2 do MOC3023)
  24.  
  25. #define LED 2           // GPIO 02  D4                // Port somente para visualizacao durante teste. Pode ser comentado na versao para instalar
  26. const int Switch1 = 16;   // GPIO 16  D0                // Port para ligar o interruptor
  27. const int Switch2 = 14;   // GPIO 14  D5                // Port para ligar o interruptor
  28. const int Switch3 = 13;   // GPIO 13  D7                // Port para ligar o interruptor
  29. const int Switch4 = 15;   // GPIO 15  D8                // Port para ligar o interruptor
  30.  
  31. byte Switch1_atual = 0;                                 // Variavel para staus de Switch1 (Status do interruptor)
  32. byte Switch2_atual = 0;                                 // Variavel para staus de Switch1 (Status do interruptor)
  33. byte Switch3_atual = 0;                                 // Variavel para staus de Switch1 (Status do interruptor)
  34. byte Switch4_atual = 0;                                 // Variavel para staus de Switch1 (Status do interruptor)
  35.  
  36. //#define CAYENNE_DEBUG                                 // Comente para nao mostrar menssagen de debugs
  37. #define CAYENNE_PRINT Serial                            // Comente para impedir impressoes no serial monitor e salvar espaço
  38. #include <ESP8266WiFi.h>                                // Bibiotecas em https://github.com/myDevicesIoT/Cayenne-Arduino-Library
  39. #include "CayenneDefines.h"                             // =
  40. #include "BlynkSimpleEsp8266.h"                         // =
  41. #include "CayenneWiFiClient.h"                          // =
  42.  
  43. char token[] = "ttttttttttt";                            // Cayenne auth token. Valor encontrado no site ao criar o projeto novo ou no settings
  44. char ssid[] = "sssssssss";                               // Digite seu SSID e sua PW
  45. char password[] = "pppppppp";
  46. //-----------------------------------
  47. void setup()
  48. {
  49.   Serial.begin(9600);                                   // Inicia a serial
  50.   pinMode(Switch1, INPUT_PULLUP);                       // Define Switch1 como entrada e liga o resistor de pullup
  51.   pinMode(Switch2, INPUT_PULLUP);                       // Define Switch2 como entrada e liga o resistor de pullup
  52.   pinMode(Switch3, INPUT_PULLUP);                       // Define Switch3 como entrada e liga o resistor de pullup
  53.   pinMode(Switch4, INPUT_PULLUP);                       // Define Switch4 como entrada e liga o resistor de pullup
  54.   Switch1_atual = digitalRead(Switch1);                 // Atualisa status de Switch1
  55.   Switch2_atual = digitalRead(Switch2);                 // Atualisa status de Switch2
  56.   Switch3_atual = digitalRead(Switch3);                 // Atualisa status de Switch3
  57.   Switch4_atual = digitalRead(Switch4);                 // Atualisa status de Switch4
  58.  
  59.   pinMode(LED, OUTPUT);                             // Define Lamp2 como saida (So pra diagnostico)
  60.   pinMode(Lamp1, OUTPUT);                               // Define Lamp1 como saida
  61.   pinMode(Lamp2, OUTPUT);                               // Define Lamp2 como saida
  62.   pinMode(Lamp3, OUTPUT);                               // Define Lamp3 como saida
  63.   pinMode(Lamp4, OUTPUT);                               // Define Lamp4 como saida
  64.   //  digitalWrite(LED, HIGH);                          // Liga Lamp2  (So pra diagnostico)
  65.   digitalWrite(Lamp1, HIGH);                            // Liga Lamp1 Acende a Luz
  66.   digitalWrite(Lamp2, HIGH);                            // Liga Lamp2 Acende a Luz
  67.   digitalWrite(Lamp3, HIGH);                            // Liga Lamp3 Acende a Luz
  68.   digitalWrite(Lamp4, HIGH);                            // Liga Lamp4 Acende a Luz
  69.   Cayenne.begin(token, ssid, password);                 // Estabelece comunicacao com o site Cayenne
  70. }
  71. //-----------------------------------
  72. void loop()
  73. {
  74.   digitalWrite(LED, digitalRead(Lamp4));                // LED = Lamp1     Diagnostico
  75.   Cayenne.run();                                        // Roda o projeto no site
  76.   delay(100);                                           // Delay
  77.   //---------------------
  78.   if (digitalRead(Switch1) !=  Switch1_atual)               // Se o valor do SW alterou
  79.   {
  80.     delay(40);                                          // Delay
  81.     if (digitalRead(Switch1) !=  Switch1_atual)         // Se o valor do SW alterou
  82.     {
  83.       digitalWrite(Lamp1, !digitalRead(Lamp1));         // Inverte a saida
  84.       Switch1_atual = digitalRead(Switch1);             // Atualisa o Switch1 atual
  85.     }
  86.   }
  87.   //---------------------
  88.   if (digitalRead(Switch2) !=  Switch2_atual)           // Se o valor do SW alterou
  89.   {
  90.     delay(40);                                          // Delay
  91.     if (digitalRead(Switch2) !=  Switch2_atual)         // Se o valor do SW alterou
  92.     {
  93.       digitalWrite(Lamp2, !digitalRead(Lamp2));         // Inverte a saida
  94.       Switch2_atual = digitalRead(Switch2);             // Atualisa o Switch2 atual
  95.     }
  96.   }
  97.   //---------------------
  98.   if (digitalRead(Switch3) !=  Switch3_atual)           // Se o valor do SW alterou
  99.   {
  100.     delay(40);                                          // Delay
  101.     if (digitalRead(Switch3) !=  Switch3_atual)         // Se o valor do SW alterou
  102.     {
  103.       digitalWrite(Lamp3, !digitalRead(Lamp3));         // Inverte a saida
  104.       Switch3_atual = digitalRead(Switch3);             // Atualisa o Switch3 atual
  105.     }
  106.   }
  107.   //---------------------
  108.   if (digitalRead(Switch4) !=  Switch4_atual)           // Se o valor do SW alterou
  109.   {
  110.     delay(40);                                          // Delay
  111.     if (digitalRead(Switch4) !=  Switch4_atual)         // Se o valor do SW alterou
  112.     {
  113.       digitalWrite(Lamp4, !digitalRead(Lamp4));         // Inverte a saida
  114.       Switch4_atual = digitalRead(Switch4);             // Atualisa o Switch4 atual
  115.     }
  116.   }
  117. }
  118. /*
  119.   //-----------------------------------
  120.   CAYENNE_OUT(V0)                                       // Estas funcoes e chamada quando um widget requer dados do pin virtual
  121.   {
  122.   Cayenne.virtualWrite(V0, sht1x.readTemperatureC());   // Le valor da temperatura no SHT10 e envia para o Cayenne
  123.   }
  124.   //-----------------------------------
  125.   CAYENNE_OUT(V1)
  126.   {
  127.   Cayenne.virtualWrite(V1, sht1x.readHumidity());       // Le valor da umidade no SHT10 e envia para o Cayenne
  128.   }
  129. */
  130. //-----------------------------------
  131. CAYENNE_OUT(V2)
  132. {
  133.   Cayenne.virtualWrite(V2, !(digitalRead(Lamp1)));         // Le valor da Status da lampada e envia para o Cayenne
  134. }
  135. //-----------------------------------
  136. CAYENNE_OUT(V3)
  137. {
  138.   Cayenne.virtualWrite(V3, !(digitalRead(Lamp2)));         // Le valor da Status da lampada e envia para o Cayenne
  139. }
  140. //-----------------------------------
  141. CAYENNE_OUT(V4)
  142. {
  143.   Cayenne.virtualWrite(V4, !(digitalRead(Lamp3)));         // Le valor da Status da lampada e envia para o Cayenne
  144. }
  145. //-----------------------------------
  146. CAYENNE_OUT(V5)
  147. {
  148.   Cayenne.virtualWrite(V5, !(digitalRead(Lamp4)));         // Le valor da Status da lampada e envia para o Cayenne
  149. }
  150. //-----------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement