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á
Tags:
As respostas para este tópico estão encerradas.
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
}
#include <Limits.h>
#include <OneWire.h>
#include <DallasTemperature.h>
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por