gente e assim to montando um sistema para aquários integrado ja fiz varias pesquisas e nada de conseguir exito me ajudem 

estou usando um Arduíno mega 2560 + um ds1307 + ds18b20 + 4 reles + 3 tip 122 + enc28j60 + uma boia e bomba solenoide

qual a ideia

a temperatura quanto estiver =>que 27 vai acionar o chiller (rele) quando estiver =<26 ligara o aquecedor (rele)

a uma hora pre programada usando base as leituras do rtc vai acionar as lampadas com sistema fading acionando o azul apos 10 min aciona o verde e apos 10 min o branco no sistema fading sera aumentado gradativamente a potencia 1% a cada min 

quando a agua abaixar a bomba solenoide mandar água

e monitorar e configurar horas por web server tipo dos roteadores 

quais os problemas

ele mede a temperatura mas não aciona os reles.

o sistema fading funciona independente mas não consigo programar a hora dele ligar 

não cheguei na parte do web-server ainda

fico grato pelos amigos que me ajudarem muito obrigado dês de já

Exibições: 642

As respostas para este tópico estão encerradas.

Respostas a este tópico

Oi Jean, bom dia.

voce pode postar o sketch?

Facilita o entendimento e pesquisa de bug.

Rui

Se não postar seu código e toda informação que considere seja útil para analise, somente com a descrição do problema, e o conceito, vai ser difícil alguém te ajudar.

Abs.

blz vou copiar aqui e mandar o codigo vcs presisam tbm da ligaçao eletrica do sistema?

Se postar tudo vai ficar mais fácil ainda.

essa e da parte de temperatura

#include <LiquidCrystal.h>
#include <Limits.h>


#include <OneWire.h>

#include <DallasTemperature.h>

int chiller = 23;
int aquecedor = 24;// Declara o pino digital 3 para acionar o cooler
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Cria um objeto LCD e atribui os pinos

// Conectar o pino central dos sensores ao pino 10 do Arduino
#define ONE_WIRE_BUS 22

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer = { 0x28, 0xFF, 0xBC, 0x19, 0x63, 0x14, 0x03, 0xF9 };


void setup(void)
{
// start serial port
lcd.begin(12,20);
// Start up the library
sensors.begin();
// set the resolution to 10 bit (good enough?)
sensors.setResolution(insideThermometer, 10);
}

void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00)
if(tempC > 27) // Indica condição para acionamento do cooler
{
lcd.setCursor(0,1); // Define a coluna 0 e linha 1 do LCD onde será impresso a string
lcd.write("chiller on"); // Imprime no LCD
digitalWrite(chiller, HIGH); // Quando condição verdadeira, liga o cooler
}
else
{
lcd.setCursor(0,1);
lcd.write("aquecedor on");
digitalWrite(aquecedor, LOW);
}


{
lcd.setCursor(0,0);

lcd.print(tempC);

}
}

void loop(void)
{
delay(1000);

sensors.requestTemperatures();
lcd.print("Temp aqua ");
printTemperature(insideThermometer);
lcd.print(" C: ");

}

essa e a parte do sensor de temp

essa e a parte do fading sem o rtc

# define led 2

void setup()
{
pinMode(led, OUTPUT);
}

void loop()
{
analogWrite(led,0);
delay(100);

analogWrite(led,25);
delay(100);

analogWrite(led,50);
delay(100);

analogWrite(led,75);
delay(500);

analogWrite(led,100);
delay(500);

analogWrite(led,125);
delay(500);

analogWrite(led,150);
delay(500);

analogWrite(led,175);
delay(500);

analogWrite(led,200);
delay(500);

analogWrite(led,225);
delay(500);

analogWrite(led,255);
delay(500);

digitalWrite(led,LOW);
delay(10000);


}

agora preciso integrar o rtc (ds1307) com ele para que a determinada hr do dia ele acione este código e apos 12h ele desligue o código 

#include <DS1307.h>
DS1307 rtc(A4, A5);
int sec=0, min=0, hour=0; // inteiros referente ao relógio
int led = 2; // pino de saida do sinal

int motState = LOW; // motState usado para armazena o estado atual do motor aceso o desligado
long intervalo = 1000; // intervalo de um segundo

void setup()
{
pinMode(led, OUTPUT); // saida do sinal para ativar o motor
Serial.begin(9600);
lcd.begin(16, 2);

pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
}
void loop (){
relogio();// aciona comando relógio
mot (); // aciona o comando motor
}
void relogio()
{
static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
sec++;
}
if(sec>=60)
{
sec = 0;
min++;
}
if(min>=60) {
min = 0;
hour++;
}
if(hour>=24)
{
hour=0;
min=0;
}
Serial.print(hour); // imprime a hora no monitor serial para verificar se o relógio está funcionando
Serial.print(":");
Serial.print(min);
Serial.print(":");
Serial.println(sec);
}
void mot (){

if ((hour == 16) && ((min == 5))){ // define o primeiro horário de ligação do motor
led = HIGH;
//
}

if ((hour == 17) && (min == 00)) { // define o primeiro horário de desligamento do motor
led = LOW;//
}


if (led == HIGH)
Serial.println("ligou"); // imprime ligou no serial monitor para verificar se o código está funcionando
else
Serial.println("desligou");// imprime "desligou" no serial monitor para verificar se o código está funcionando
}

Algumas bibliotecas que vejo aqui (Abaixo) devem ter sido baixadas de algum lugar, acho que seria bom você postar os links de onde baixou, e versão, assim fica mais fácil de simular seu Sketch,na procura de bugs.

#include <Limits.h>

#include <OneWire.h>

#include <DallasTemperature.h>

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço