Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <HCSR04.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #include <ESP8266WiFi.h>
- /* === SETUP SENSORES DE NÍVEL ===*/
- int sensor_1 = 16;
- int sensor_2 = 5;
- int sensor_3 = 4;
- int estado_sensor_1 = digitalRead(sensor_1);
- int estado_sensor_2 = digitalRead(sensor_2);
- int estado_sensor_3 = digitalRead(sensor_3);
- int aux = 0;
- int inicial = 0;
- /* === SETUP SENSOR DE TEMPERATURA ===*/
- const byte pinData = 2;
- OneWire oneWire(pinData);
- DallasTemperature sensorDS18B20(&oneWire);
- float temperatura;
- /* === SETUP RELAY ===*/
- int bomba_agua = 14;
- int valvula_solenoide = 12;
- int resistencia = 13;
- /* === SETUP LED'S ===*/
- int led_encher = 15;
- int led_esvaziar = 3;
- int led_bomba = 1;
- /* === SETUP BOTÃO SEGURANÇA ===*/
- int btn_1 = 0 ;
- /* === SETUP CONEXÃO ThingSpeak ===*/
- String apiWritekey = "2LR2R768M183GPHH";
- const char* ssid = "NETO 2.4";
- const char* password = "netoanto";
- const char* server = "api.thingspeak.com";
- WiFiClient client;
- void setup() {
- Serial.begin(9600);
- WiFi.begin(ssid, password);//Inicia WiFi baseado no nome da rede e senha
- Serial.println();
- Serial.println();
- Serial.print("Connecting to ");
- Serial.print(ssid);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.print("Nodemcu Conectado na WiFi...");
- Serial.println(ssid);
- Serial.println();
- pinMode(sensor_1, INPUT); //leitura sensor digital 1
- pinMode(sensor_2, INPUT); //leitura sensor digital 2
- pinMode(sensor_3, INPUT); //leitura sensor digital 3
- pinMode(bomba_agua, OUTPUT);//Saida Bomba de água
- pinMode(valvula_solenoide, OUTPUT);//Saida valvula solenoide
- pinMode(resistencia, OUTPUT);//Saida resistencia
- pinMode(led_esvaziar, OUTPUT);//Saida led azul
- pinMode(led_encher, OUTPUT);//Saida led amarelo
- pinMode(led_bomba, OUTPUT);//Saida led verde
- pinMode(btn_1, OUTPUT);//Saida botão de segurança
- sensorDS18B20.begin();//Inicializa a leitura do sensor de temperatura
- }
- void loop() {
- estado_sensor_1 = digitalRead(sensor_1);
- estado_sensor_2 = digitalRead(sensor_2);
- estado_sensor_3 = digitalRead(sensor_3);
- sensorDS18B20.requestTemperatures();
- temperatura = sensorDS18B20.getTempCByIndex(0);
- if (inicial = 0) {
- inicializa();
- }
- else
- inicial = 1;
- /* ==================================================================
- =============== CONFIGURAÇÃO CONTROLE ON-OFF =====================
- ================================================================== */
- if (temperatura <= 50) {
- digitalWrite(led_encher, LOW);//Desliga led encher
- digitalWrite(led_esvaziar, LOW);//Liga led esvaziar
- digitalWrite(led_bomba, LOW);//Desliga led bomba
- digitalWrite(bomba_agua, HIGH);//Desliga bomba
- digitalWrite(valvula_solenoide, HIGH); //Liga solenoide
- digitalWrite(resistencia, LOW); //Liga solenoide
- estado_sensor_1 = digitalRead(sensor_1);
- estado_sensor_2 = digitalRead(sensor_2);
- estado_sensor_3 = digitalRead(sensor_3);
- sensorDS18B20.requestTemperatures();
- temperatura = sensorDS18B20.getTempCByIndex(0);
- } else
- while (estado_sensor_1 == 0) {
- digitalWrite(led_encher, HIGH);//Liga led encher
- digitalWrite(led_esvaziar, LOW);//Desliga led esvaziar
- digitalWrite(led_bomba, HIGH);//Liga led bomba
- digitalWrite(bomba_agua, LOW);//Liga bomba de água
- digitalWrite(valvula_solenoide, HIGH); //Desliga válvula solenoide
- digitalWrite(resistencia, LOW); //Liga resistência
- estado_sensor_1 = digitalRead(sensor_1);
- estado_sensor_2 = digitalRead(sensor_2);
- estado_sensor_3 = digitalRead(sensor_3);
- sensorDS18B20.requestTemperatures();
- temperatura = sensorDS18B20.getTempCByIndex(0);
- }
- while (estado_sensor_3 == 0) {
- digitalWrite(led_encher, LOW);//Desliga led encher
- digitalWrite(led_esvaziar, HIGH);//Liga led esvaziar
- digitalWrite(led_bomba, LOW);//Desliga led bomba
- digitalWrite(bomba_agua, HIGH);//Desliga bomba de água
- digitalWrite(valvula_solenoide, LOW); //Liga válvula solenoide
- digitalWrite(resistencia, HIGH); //Liga resistência
- estado_sensor_1 = digitalRead(sensor_1);
- estado_sensor_2 = digitalRead(sensor_2);
- estado_sensor_3 = digitalRead(sensor_3);
- sensorDS18B20.requestTemperatures();
- temperatura = sensorDS18B20.getTempCByIndex(0);
- }
- /* ==================================================================
- =============== CONFIGURAÇÃO BOTÃO DE SEGURANÇA btn_1 ============
- ================================================================== */
- if (digitalRead(btn_1) == 1) {
- digitalWrite(led_encher, LOW);//Desliga led encher
- digitalWrite(led_esvaziar, HIGH);//Liga led esvaziar
- digitalWrite(led_bomba, LOW);//Desliga led bomba
- digitalWrite(bomba_agua, HIGH);//Desliga bomba de água
- digitalWrite(valvula_solenoide, LOW); //Liga válvula solenoide
- digitalWrite(resistencia, HIGH); //Desliga resistência
- }
- /* ==================================================================
- ======= CONFIGURAÇÃO LEITURAS DAS VARIAVEIS NO ThingSpeak =======
- ================================================================== */
- if (client.connect(server, 80)) {
- String tsData = apiWritekey;
- tsData += "&field1=";
- tsData += String(estado_sensor_1);
- tsData += "&field2=";
- tsData += String(estado_sensor_2);
- tsData += "&field3=";
- tsData += String(temperatura);
- tsData += "\r\n\r\n";
- client.print("POST /update HTTP/1.1\n");
- client.print("Host: api.thingspeak.com\n");
- client.print("Connection: close\n");
- client.print("X-THINGSPEAKAPIKEY: " + apiWritekey + "\n");
- client.print("Content-Type: application/x-www-form-urlencoded\n");
- client.print("Content-Length: ");
- client.print(tsData.length());
- client.print("\n\n"); // the 2 carriage returns indicate closing of Header fields & starting of data
- client.print(tsData);
- Serial.print("Valor Sensor_1: ");
- Serial.print(estado_sensor_1);
- Serial.print("Valor Sensor_2: ");
- Serial.print(estado_sensor_2);
- Serial.print("Valor Temperatura: ");
- Serial.print(temperatura);
- }
- client.stop();
- //delay(15000);
- }
- void inicializa() {
- if (estado_sensor_3 != 1) {
- while (estado_sensor_2 == 1) {
- digitalWrite(bomba_agua, HIGH);
- digitalWrite(valvula_solenoide, LOW);
- digitalWrite(resistencia, HIGH);
- estado_sensor_2 = digitalRead(sensor_2);
- sensorDS18B20.requestTemperatures();
- temperatura = sensorDS18B20.getTempCByIndex(0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement