Advertisement
Guest User

Supervisório_Thingspeak

a guest
Apr 6th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.63 KB | None | 0 0
  1. #include <HCSR04.h>
  2. #include <OneWire.h>
  3. #include <DallasTemperature.h>
  4. #include <ESP8266WiFi.h>
  5.  
  6. /* === SETUP SENSORES DE NÍVEL ===*/
  7. int sensor_1 = 16;
  8. int sensor_2 = 5;
  9. int sensor_3 = 4;
  10.  
  11. int estado_sensor_1 = digitalRead(sensor_1);
  12. int estado_sensor_2 = digitalRead(sensor_2);
  13. int estado_sensor_3 = digitalRead(sensor_3);
  14.  
  15. int aux = 0;
  16. int inicial = 0;
  17.  
  18. /* === SETUP SENSOR DE TEMPERATURA ===*/
  19. const byte pinData = 2;
  20. OneWire oneWire(pinData);
  21. DallasTemperature sensorDS18B20(&oneWire);
  22. float temperatura;
  23.  
  24. /* === SETUP RELAY ===*/
  25. int bomba_agua =  14;
  26. int valvula_solenoide = 12;
  27. int resistencia = 13;
  28.  
  29. /* === SETUP LED'S ===*/
  30. int led_encher = 15;
  31. int led_esvaziar = 3;
  32. int led_bomba = 1;
  33.  
  34. /* === SETUP BOTÃO SEGURANÇA ===*/
  35. int btn_1 = 0 ;
  36.  
  37. /* === SETUP CONEXÃO ThingSpeak ===*/
  38. String apiWritekey = "2LR2R768M183GPHH";
  39. const char* ssid = "NETO 2.4";
  40. const char* password = "netoanto";
  41. const char* server = "api.thingspeak.com";
  42. WiFiClient client;
  43.  
  44. void setup() {
  45.   Serial.begin(9600);
  46.  
  47.   WiFi.begin(ssid, password);//Inicia WiFi baseado no nome da rede e senha
  48.   Serial.println();
  49.   Serial.println();
  50.   Serial.print("Connecting to ");
  51.   Serial.print(ssid);
  52.  
  53.   while (WiFi.status() != WL_CONNECTED) {
  54.     delay(500);
  55.     Serial.print(".");
  56.   }
  57.   Serial.println("");
  58.   Serial.print("Nodemcu Conectado na WiFi...");
  59.   Serial.println(ssid);
  60.   Serial.println();
  61.  
  62.   pinMode(sensor_1, INPUT); //leitura sensor digital 1
  63.   pinMode(sensor_2, INPUT); //leitura sensor digital 2
  64.   pinMode(sensor_3, INPUT); //leitura sensor digital 3
  65.  
  66.   pinMode(bomba_agua, OUTPUT);//Saida Bomba de água
  67.   pinMode(valvula_solenoide, OUTPUT);//Saida valvula solenoide
  68.   pinMode(resistencia, OUTPUT);//Saida resistencia
  69.  
  70.   pinMode(led_esvaziar, OUTPUT);//Saida led azul
  71.   pinMode(led_encher, OUTPUT);//Saida led amarelo
  72.   pinMode(led_bomba, OUTPUT);//Saida led verde
  73.  
  74.   pinMode(btn_1, OUTPUT);//Saida botão de segurança
  75.  
  76.   sensorDS18B20.begin();//Inicializa a leitura do sensor de temperatura
  77. }
  78.  
  79. void loop() {
  80.  
  81.   estado_sensor_1 = digitalRead(sensor_1);
  82.   estado_sensor_2 = digitalRead(sensor_2);
  83.   estado_sensor_3 = digitalRead(sensor_3);
  84.  
  85.   sensorDS18B20.requestTemperatures();
  86.   temperatura = sensorDS18B20.getTempCByIndex(0);
  87.  
  88.   if (inicial = 0) {
  89.     inicializa();
  90.   }
  91.   else
  92.     inicial  = 1;
  93.  
  94.   /* ==================================================================
  95.      =============== CONFIGURAÇÃO CONTROLE ON-OFF =====================
  96.      ================================================================== */
  97.  
  98.   if (temperatura <= 50) {
  99.     digitalWrite(led_encher, LOW);//Desliga led encher
  100.     digitalWrite(led_esvaziar, LOW);//Liga led esvaziar
  101.     digitalWrite(led_bomba, LOW);//Desliga led bomba
  102.     digitalWrite(bomba_agua, HIGH);//Desliga bomba
  103.     digitalWrite(valvula_solenoide, HIGH); //Liga solenoide
  104.     digitalWrite(resistencia, LOW); //Liga solenoide
  105.  
  106.     estado_sensor_1 = digitalRead(sensor_1);
  107.     estado_sensor_2 = digitalRead(sensor_2);
  108.     estado_sensor_3 = digitalRead(sensor_3);
  109.  
  110.     sensorDS18B20.requestTemperatures();
  111.     temperatura = sensorDS18B20.getTempCByIndex(0);
  112.  
  113.   } else
  114.     while (estado_sensor_1 == 0) {
  115.       digitalWrite(led_encher, HIGH);//Liga led encher
  116.       digitalWrite(led_esvaziar, LOW);//Desliga led esvaziar
  117.       digitalWrite(led_bomba, HIGH);//Liga led bomba
  118.       digitalWrite(bomba_agua, LOW);//Liga bomba de água
  119.       digitalWrite(valvula_solenoide, HIGH); //Desliga válvula solenoide
  120.       digitalWrite(resistencia, LOW); //Liga resistência
  121.  
  122.       estado_sensor_1 = digitalRead(sensor_1);
  123.       estado_sensor_2 = digitalRead(sensor_2);
  124.       estado_sensor_3 = digitalRead(sensor_3);
  125.  
  126.       sensorDS18B20.requestTemperatures();
  127.       temperatura = sensorDS18B20.getTempCByIndex(0);
  128.     }
  129.   while (estado_sensor_3 == 0) {
  130.     digitalWrite(led_encher, LOW);//Desliga led encher
  131.     digitalWrite(led_esvaziar, HIGH);//Liga led esvaziar
  132.     digitalWrite(led_bomba, LOW);//Desliga led bomba
  133.     digitalWrite(bomba_agua, HIGH);//Desliga bomba de água
  134.     digitalWrite(valvula_solenoide, LOW); //Liga válvula solenoide
  135.     digitalWrite(resistencia, HIGH); //Liga resistência
  136.  
  137.     estado_sensor_1 = digitalRead(sensor_1);
  138.     estado_sensor_2 = digitalRead(sensor_2);
  139.     estado_sensor_3 = digitalRead(sensor_3);
  140.  
  141.     sensorDS18B20.requestTemperatures();
  142.     temperatura = sensorDS18B20.getTempCByIndex(0);
  143.   }
  144.  
  145.   /* ==================================================================
  146.     =============== CONFIGURAÇÃO BOTÃO DE SEGURANÇA btn_1 ============
  147.     ================================================================== */
  148.   if (digitalRead(btn_1) == 1) {
  149.     digitalWrite(led_encher, LOW);//Desliga led encher
  150.     digitalWrite(led_esvaziar, HIGH);//Liga led esvaziar
  151.     digitalWrite(led_bomba, LOW);//Desliga led bomba
  152.     digitalWrite(bomba_agua, HIGH);//Desliga bomba de água
  153.     digitalWrite(valvula_solenoide, LOW); //Liga válvula solenoide
  154.     digitalWrite(resistencia, HIGH); //Desliga resistência
  155.   }
  156.  
  157.   /* ==================================================================
  158.      ======= CONFIGURAÇÃO  LEITURAS DAS VARIAVEIS NO ThingSpeak =======
  159.      ================================================================== */
  160.   if (client.connect(server, 80)) {
  161.     String tsData = apiWritekey;
  162.     tsData += "&amp;field1=";
  163.     tsData += String(estado_sensor_1);
  164.     tsData += "&amp;field2=";
  165.     tsData += String(estado_sensor_2);
  166.     tsData += "&amp;field3=";
  167.     tsData += String(temperatura);
  168.     tsData += "\r\n\r\n";
  169.  
  170.     client.print("POST /update HTTP/1.1\n");
  171.     client.print("Host: api.thingspeak.com\n");
  172.     client.print("Connection: close\n");
  173.     client.print("X-THINGSPEAKAPIKEY: " + apiWritekey + "\n");
  174.     client.print("Content-Type: application/x-www-form-urlencoded\n");
  175.     client.print("Content-Length: ");
  176.     client.print(tsData.length());
  177.     client.print("\n\n");  // the 2 carriage returns indicate closing of Header fields & starting of data
  178.     client.print(tsData);
  179.  
  180.     Serial.print("Valor Sensor_1: ");
  181.     Serial.print(estado_sensor_1);
  182.     Serial.print("Valor Sensor_2: ");
  183.     Serial.print(estado_sensor_2);
  184.     Serial.print("Valor Temperatura: ");
  185.     Serial.print(temperatura);
  186.   }
  187.   client.stop();
  188.   //delay(15000);
  189. }
  190.  
  191. void inicializa() {
  192.   if (estado_sensor_3 != 1) {
  193.     while (estado_sensor_2 == 1) {
  194.       digitalWrite(bomba_agua, HIGH);
  195.       digitalWrite(valvula_solenoide, LOW);
  196.       digitalWrite(resistencia, HIGH);
  197.  
  198.       estado_sensor_2 = digitalRead(sensor_2);
  199.       sensorDS18B20.requestTemperatures();
  200.       temperatura = sensorDS18B20.getTempCByIndex(0);
  201.     }
  202.   }
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement