Page 42 - Revista_60.pub
P. 42

MAKER







        ÁGUA FRESCA, SCOOBY!

           Por  fim  ligamos  a  válvula  solenoide.  Ligeiramente  diferente
         uma vez que  vamos ter de usar um transístor Darlington TIP   void setup() {

         120, mas de igual forma simples como o diagrama na imagem     Serial.begin(9600); //apenas para debug
         seguinte:                                                scale.set_scale(calibration_factor); //Carrega
                                                                                //a calibração da celula de carga
                                                                  scale.tare(); //Zera após a tara (no caso o
                                                                                                    //recipiente)
                                                                  sensors.begin();
                                                                  pinMode(solenoidPin, OUTPUT); //Define o pino
                                                                                                   //como output
                                                                }

                                                                void loop() {
                                                                //loop principal

                                                                //código da celula
                                                                  Serial.print("Peso: ");
                                                                  Serial.print(scale.get_units(), 1);
                                                                  Serial.print(" kg");
                                                                  Serial.println();
                                                                //end

                                                                //codigo da temperatura
                                                                 Serial.print(" Lendo temperatura...");
                                                                 sensors.requestTemperatures(); //manda executar
                                                                                       //a leitura da temperatura
                                                                 Serial.println("DONE");
                                                                /
                                                                ************************************************/
                                                                 Serial.print("Temperatura é: ");
                                                                 Serial.print(sensors.getTempCByIndex(0));
                                                                //end
         O Código

         Concluídas  as  ligações  todas,  falta  carregar  o  código  para  o   /**PERMISSAS PARA ABRIR E FECHAR A VÁLVULA**/
         arduino, usando o IDE favorito do leitor. Em edições anteriores,   //quente
                                                                if(sensors.getTempCByIndex(0) > 15)
         foi demonstrado como carregar código usando o Arduino IDE e   {
         o  Plaformio,  pelo  que  se  deixa  ao  critério  do  leitor,  escolher     digitalWrite(solenoidPin, HIGH);
         qual utilizar.                                         }
                                                                else{ digitalWrite(solenoidPin, LOW);}

         //Thanks for the idea Bernardo Ferreira                //abaixo do nível minimo de água
         //Thanks for the motivation RP ;) "Descontos é na      if ( (scale.get_units(), 1) =< 3)
         // RP!"                                                {
         #include "HX711.h"                                       digitalWrite(solenoidPin, HIGH);
         #include <OneWire.h>                                   }
         #include <DallasTemperature.h>                         else{ digitalWrite(solenoidPin, LOW);}
                                                                //acima do nível maximo de água
                                                                if ( (scale.get_units(), 1) >= 4)
         #define ONE_WIRE_BUS 4 //pino de dados do DS18B20      {
         fica definido como 4                                     digitalWrite(solenoidPin, HIGH);
         #define calibration_factor -7050.0 //este valor é      }
         //obtido usando o SparkFun_HX711_Calibration sketch    else{ digitalWrite(solenoidPin, LOW);}
         #define DOUT  3                                        /
         #define CLK  2                                         ************************************************/

         HX711 scale(DOUT, CLK);                                delay(5000); //aguarda 5 segundos
                                                                //end
         // Prepara uma instancia oneWire para comuicar com     }
         dispositivos OneWire
         //no caso o DS18B20
         OneWire oneWire(ONE_WIRE_BUS);                               No código após a leitura dos sensores e o envio dos
         /                                                      resultados  para  a  porta  USB  para  poderem  ser  lidos  para
         **************************************************/    depuração e diagnóstico de avarias. Feito isto os dados são
         //Passa a referencia oneWire para o sensor DS18B20     lidos  e comparados com os  valores que definimos manual-
         (DallasTemperature)
         DallasTemperature sensors(&oneWire);                   mente  no  código,  considerando  a  calibração  e  o  peso  do
         /                                                      recipiente da água vazio . Caso as leituras, seja da tempera-
         **************************************************/    tura seja do peso da água, sejam ambas, cumprirem os crité-

         int solenoidPin = 5;    //Este é o pino usado para     rios para abrir a válvula para entrar mais água, é enviado o
         //controlar a solenoide                                sinal  “high”  e  a  válvula  é  aberta.  Caso  contrario  é  sempre
                                                                enviado o sinal “low”, apenas para garantir que a água está
                                                                fechada  e  não  estamos  a  desperdiçar  água!  Afinal  um  dos



                                                           42
   37   38   39   40   41   42   43   44   45   46   47