Como economizar água com a Sparkfun Blynk Board 9

A água é um recurso essencial para a vida de qualquer criatura na terra. Nós humanos, por exemplo, temos uma grande porcentagem do nosso corpo composto de água, podendo assim ser afirmado que a água é o mais importante recurso existente. Sendo assim, por que não utilizar a tecnologia em prol do uso consciente da água? É exatamente o que este post irá ensinar: como utilizar a Sparkfun Blynk Board para usar conscientemente água, ajudar a salvar o planeta e (por que não?) economizar na conta de água.

Sparkfun Blynk Board

Este projeto é baseado neste aqui (de minha autoria), o qual concorreu a um prêmio no Contest “IoT For Everyone” do site Hackster.

Descrição do projeto de economia de água

Este projeto consiste em utilizar a Sparkfun Blynk Board em conjunto com um sensor de fluxo de água e o aplicativo Blynk, com objetivo de:

  • Medir a vazão instantânea de água (l/h).
  • Medir consumo acumulado de água ( l ).
  • Estabelecer uma meta de consumo de água (em l) por período.
  • Avisar o usuário quando a meta de consumo for atingida, fazendo assim com que o usuário tenha real consciência do seu uso de água , por sua vez, tenha base real para se policiar e reduzir o consumo.
  • Ser uma maneira de economizar na conta de água.

Detalhe Sparkfun Blynk Board e sensor de vazão

Material necessário

Além de conexão com a Internet (via WI-FI), são necessários os seguintes recursos:

a) Hardware

b) Software

  • Blynk App (disponível nas lojas de aplicativos oficiais da Apple e Android)
  • Arduino IDE (versão igual ou superior à 1.6.7)

Setup da Sparkfun Blynk Board

Para programar a Blynk Board, é necessário utilizar a Arduino IDE. Esta é uma boa notícia, já que você possivelmente está familiarizado com a IDE (e se não estiver, verá que é muito simples se acostumar com ela). Desta forma, você poderá dedicar mais tempo e esforço pensando em projetos legais (e não ficando preocupado com IDE, compiladores e demais dores de cabeça que a preparação de um ambiente pode acarretar).

Há um ótimo tutorial em como configurar a Arduino IDE para programar a Sparkfun Blynk Board aqui. Além disso, neste mesmo site, há exemplos de códigos para a Blynk Board (o que pode ser muito útil nos seus futuros projetos com essa placa).

Diagrama do projeto

O diagrama do projeto e um vídeo explicando como o projeto funciona estão a seguir:

Circuito Blynk Board

Vídeo (em inglês):

Código fonte projeto Economia de Água

Uma vez configurada a IDE do Arduino, conhecido como ligar os componentes de hardware/esquema elétrico e sabendo como o projeto funciona, é chegada a hora do código! Observe o código-fonte abaixo (apesar de estar em inglês, leia atentamente os comentários do mesmo):

Mostrando o consume de água no aplicativo Blynk

Este projeto funciona em conjunto com uma aplicação desenvolvida no Blynk App. O Blynk App permite o compartilhamento de aplicações nele desenvolvidas, ou seja, para reproduzir um projeto não é preciso refazer toda a aplicação novamente (o que poupa um bom tempo).

Para ter acesso a esta aplicação, basta baixar o Blynk App, fazer seu cadastro, clicar em “Scan QR Code” e apontar a câmera do dispositivo para o QR Code abaixo (talvez você tenha que adquirir Energy Points no Blynk para carregar a aplicação):

QRCode

 

Abaixo, temos a imagem do aplicativo em funcionamento e conectado à Sparkfun Blynk Board:

Blynk App

Projeto em ação!

Veja abaixo um vídeo do projeto em ação!

Gostou do projeto de economia de água com a Sparkfun Blynk Board ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP!

Posts Relacionados

9 Comentários

  1. Teria como postar o código para uso deste sensor com arduino ?

    1. Mateus, boa tarde.

      O código atual já está num formato funcional para o Arduino. Basta adaptar um pouco o codigo removendo o seguinte:

      – Include ao header do ESP8266 e do blynk (#include e #include )
      – Chamadas das funções do Blynk (qualquer coisa do tipo Blynk.xxxxx)

      Atenciosamente,
      Pedro Bertoleti

  2. No site, a valvola solenoide que é vendida tem esse blog como exemplo de projeto, mas aqui vocês não usaram a válvula. Porem vocês sabem me dizer a polegada da válvula solenóide que é vendida. Estou procurando uma de 1/2 polegadas e que trabalhe com 110V ou 220V

  3. Lindo projeto! Parabéns!!

    Tô tentando reproduzir ele com uma NodeMCU aqui, pra um projeto em nosso makerspace de impacto social ( comuREDE ), onde queremos informar aos moradores da região através de nossa rede mesh comunitária, quando tá caindo água ou não.

    Poderia me tirar uma dúvida por favor??

    VOU QUEIMAR o NodeMCU se eu ligar esse sensor de fluxo direto (a pulse signal) sem resistor de 1k2 1/4W, conforme recomendado no esquema elétrico do projeto com a SparkFun?

    Muito obrigado!!

    1. Filipe, boa tarde.

      Muito obrigado pela leitura e pelo elogio! É muito gratificante saber que o projeto está sendo de alguma utilidade para o público.
      Respondendo sua dúvida: sim, você pode queimar o NodeMCU se não usar os resistores / ligar o sensor de fluxo direto ao NodeMCU. Motivo: o NodeMCU trabalha somente com 3,3V de nível de tensão máximo em seus I/Os, enquanto o sensor de fluxo opera com 5V.

      Atenciosamente,
      Pedro Bertoleti

  4. Bom dia pedro,
    Para ligar o sensor de vazão na placa Arduíno uno quais resistores são necessários? E deve deve ser ligado no analogico?

    1. Gean, bom dia.

      Para utilizar este sensor no Arduino Uno, você pode ligar direto a saída do sensor a entrada do Arduino. Os resistores foram necessários da SparkFun Blynk Board pois ela opera somente com 3,3V (e o sensor opera com 5V).
      Quanto a entrada que deve ser ligada, deve ser utilizada uma entrada digital, não uma analógica.

      Atenciosamente,
      Pedro Bertoleti

  5. Pedro estou iniciando a criação do do projeto feito por você, achei muito interessante eu e meus colegas e resolvemos por em pratica este projeto só que tenho algumas dúvidas a respeito do mesmo e gostaria de sua ajuda.
    irei precisar utilizar uma placa Arduíno ?
    como será a ligação dos resistores, vai ser tipo irei juntar os dois resistores de 1k2 e passar os conectores do tipo jacaré por eles para poder ser levados ao sensor? no caso o conector do sinal de pulso e o GND?

    Agradeço desde já!

  6. //Código abaixo funcioando para arduino

    #include //Carrega a biblioteca LiquidCrystal

    LiquidCrystal lcd(12, 11, 6, 5, 4, 3);//Define os pinos que serão utilizados para ligação ao display

    volatile int pulsos; // Cantidad de pulsos del sensor. Como se usa dentro de una interrupcion debe ser volatile
    unsigned int litrosPorHora; // Calculated litres/hour
    unsigned char sensorDeFlujo = 2; // Pin al que esta conectado el sensor
    unsigned long tiempoAnterior; // Para calcular el tiempo
    unsigned long pulsosAcumulados; // Pulsos acumulados
    float litros; // Litros acumulados

    void flujo () {
    pulsos++; // Simplemente sumar el numero de pulsos
    }

    void setup() {

    lcd.begin(16, 2);//Define o número de colunas e linhas do LCD
    pinMode(sensorDeFlujo, INPUT);
    Serial.begin(9600);
    attachInterrupt(0, flujo, RISING); // Setup Interrupt
    interrupts(); // Habilitar interrupciones
    tiempoAnterior = millis();

    }

    void loop () {

    if( millis() – tiempoAnterior > 1000) {

    tiempoAnterior = millis(); // Updates cloopTime
    // Pulse frequency (Hz) = 6.67 Q, Q is flow rate in L/min. (Results in +/- 3% range)
    // Q = frecuencia / 6.67 (L/min)
    // Q = (frecuencia * 60) / 6.67 (L/hora)
    pulsosAcumulados += pulsos;
    litrosPorHora = (pulsos * 60 / 6.67); // (Pulse frequency x 60 min) / 7.5Q = flow rate in L/hour
    pulsos = 0; // Reset Counter
    Serial.print(litrosPorHora, DEC); // Print litres/hour
    Serial.print(” L/hour”);
    Serial.print(” Pulsos totales: “);
    Serial.print(pulsosAcumulados);

    litros = pulsosAcumulados*1.0/400; //Cada 400 pulsos = 1 litro
    Serial.print(” Litros: “);
    Serial.println(litros);
    lcd.clear(); //Limpa a tela
    lcd.setCursor(0, 0);//Posiciona o cursor na coluna 3, linha 0;
    lcd.print(“CONSUMO DE AGUA”);//Envia o texto entre aspas para o LCD
    lcd.setCursor(0, 1);
    lcd.print(“LITROS:”);
    lcd.setCursor(7, 1);
    lcd.print(litros);
    delay(100);
    }

    }

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *