Ein Relais aus wenn andere an sind
hallo zusammen,
ich habe für unsere serverraumklimatisierung neue angaben erhalten.
es soll nun so, sein, dass wenn sich die klimas (relais 2-5) zuschalten, egal aus welchem grund (temperatur oder luftfeuchtigkeit) die lüfter ausgehen sollen (relais 1).
anbei mal der sketch, der bis jetzt super läuft:
ich sitze nun schon den ganten tag einer lösung wie ich das ganze programmieren kann :-(
leider ohne einen erfolg.
wie gesagt: wenn 6,7,8 oder 9 auf low gehen, soll 5 auf high gehen, egal wie die temperatur ist. gehen 6,7,8 oder 9 wieder auf high, soll 5 wieder auf low gehen.
ich hoffe ihr versteht ich meine ;-)
gruß und dank!
tom
ich habe für unsere serverraumklimatisierung neue angaben erhalten.
es soll nun so, sein, dass wenn sich die klimas (relais 2-5) zuschalten, egal aus welchem grund (temperatur oder luftfeuchtigkeit) die lüfter ausgehen sollen (relais 1).
anbei mal der sketch, der bis jetzt super läuft:
code: [select]
#include <dhcp.h>
#include <dns.h>
#include <ethernet.h>
#include <ethernetclient.h>
#include <ethernetserver.h>
#include <ethernetudp.h>
#include <spi.h>
#include <liquidcrystal_i2c.h>
#include <wire.h>
#include <dht.h>
#include <dht_u.h>
#define dhtpin1 2
#define dhtpin2 3
#define dhttype dht11
dht dht1(dhtpin1, dhttype);
dht dht2(dhtpin2, dhttype);
liquidcrystal_i2c lcd(0x3f, 16, 2);
byte mac[] = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed };
byte ip[] = { 192, 168, 1, 199 };
byte subnet[] = { 255, 255, 255, 0 };
ethernetserver server(80);
float humidity, temperature;
//status der digitalen pins
bool state5, state6, state7, state8, state9;
void setup() {
dht1.begin();
dht2.begin();
lcd.begin();
pinmode(5, output);
pinmode(6, output);
pinmode(7, output);
pinmode(8, output);
pinmode(9, output);
ethernet.begin(mac, ip, subnet);
server.begin();
}
void loop() {
humidity = dht1.readhumidity();
temperature = dht2.readtemperature();
state5 = digitalread(5);
state6 = digitalread(6);
state7 = digitalread(7);
state8 = digitalread(8);
state9 = digitalread(9);
ethernetclient client = server.available();
if (client)
{
server.println("http/1.1 200 ok");
server.println("content-type: text/html");
server.println();
server.print("<html><head><title>");
server.print("serverraumtemperatur");
server.print("</title>");
server.print("<meta http-equiv='pragma' content='no-cache'>");
server.print("<meta http-equiv='cache-control' content='no-cache'>");
server.print("<meta http-equiv='refresh' content='5'>");
server.print("<style>p{max-width:15%; padding:5px;color:white;font-weight:bold;}</style>");
server.print("</head><body style=font-family:arial;>");
server.print("<h1>temperatur und luftfeuchtigkeit im serverraum</h1>");
server.print("<h2>temperatur:</h2> ");
server.print(temperature);
server.print(" °c");
server.println("<br />");
server.println("<hr />");
server.print("<h2>luftfeuchtigkeit:</h2> ");
server.print(humidity);
server.print(" %");
server.println("<br />");
server.println("<hr />");
server.print("<h2>lüfter:</h2>");
if (state5 == 1)
server.print("<p style=background-color:#ff4d4d;>- u s -</p><hr/>");
else (server.print("<p style=background-color:#4caf50;>- e n - </p><hr/>"));
server.print("<h2>klima 1 temperatur:</h2>");
if (state6 == 1)
server.print("<p style=background-color:#ff4d4d;>- u s -</p><hr/>");
else (server.print("<p style=background-color:#4caf50;>- e n - </p><hr/>"));
server.print("<h2>klima 2 temperatur:</h2>");
if (state7 == 1)
server.print("<p style=background-color:#ff4d4d;>- u s -</p><hr/>");
else (server.print("<p style=background-color:#4caf50;>- e n - </p><hr/>"));
server.print("<h2>klima 1 luftfeuchtigkeit:</h2>");
if (state8 == 1)
server.print("<p style=background-color:#ff4d4d;>- u s -</p><hr/>");
else (server.print("<p style=background-color:#4caf50;>- e n - </p><hr/>"));
server.print("<h2>klima 2 luftfeuchtigkeit:</h2>");
if (state9 == 1)
server.print("<p style=background-color:#ff4d4d;>- u s -</p><hr/>");
else (server.print("<p style=background-color:#4caf50;>- e n - </p><hr/>"));
server.print("</body></html>");
delay(10);
client.stop();
}
lcd.setcursor(0, 0);
lcd.print("temperatur:");
lcd.setcursor(0, 1);
lcd.print("luftfeuchte:");
lcd.setcursor(14, 0);
lcd.print(temperature);
lcd.setcursor(14, 1);
lcd.print(humidity);
if (temperature > 19)
digitalwrite(5, low);
if (temperature <= 17)
digitalwrite(5, high);
if (temperature > 22)
digitalwrite(6, low);
if (temperature <= 21)
digitalwrite(6, high);
if (temperature > 25)
digitalwrite(7, low);
if (temperature <= 23)
digitalwrite(7, high);
if (humidity > 60)
digitalwrite(8, low);
if (humidity <= 60)
digitalwrite(8, high);
if (humidity > 75)
digitalwrite(9, low);
if (humidity <= 70)
digitalwrite(9, high);
}
ich sitze nun schon den ganten tag einer lösung wie ich das ganze programmieren kann :-(
leider ohne einen erfolg.
wie gesagt: wenn 6,7,8 oder 9 auf low gehen, soll 5 auf high gehen, egal wie die temperatur ist. gehen 6,7,8 oder 9 wieder auf high, soll 5 wieder auf low gehen.
ich hoffe ihr versteht ich meine ;-)
gruß und dank!
tom
anbei mal der sketch, der bis jetzt super läuft: ...was jetzt?! läuft der sketch super oder nicht so?
ich sitze nun schon den ganten tag einer lösung wie ich das ganze programmieren kann :-(
leider ohne einen erfolg. ...
wenn du genau sagen kannst, unter welchen bedingungen passieren soll, dann programmier's doch so.
mein tipp: formatiere den code so, dass er besser zu lesen ist. dazu gehört meiner meinung nach auch, dass das, auf ein if() folgt, in geschweiften klammern stehen sollte - dann kann man irgendwelche „wenn nur eine codezeile folgt"-regeln vergessen. anstatt für jede bedingung drei zeilen zu verplempern, könnte vieles in einer einzigen zeile stehen. wenn du den code durch andere formatierung stark verkürzt, dass er auf maximal zwei din a4-blätter passt, ist schon sehr viel gewonnen. bessere Übersicht ist bei code-Änderungen/-erweiterungen gold wert.
gruß
gregor
Arduino Forum > International > Deutsch (Moderator: uwefed) > Ein Relais aus wenn andere an sind
arduino
Comments
Post a Comment