Close

mega2560 web i2cLCD16x4 termostat vyvoj

Úvodní stránka Fórum Vaše projekty Arduino mega2560 web i2cLCD16x4 termostat vyvoj

Označeno štítky: ,

  • Toto téma obsahuje celkem 6 odpovědí. Do diskuze (2 diskutující) se naposledy zapojil uživatel jurda23 a poslední změna proběhla před 7 roky.
Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (celkem z 7)
  • Autor
    Příspěvky
  • #4265
    jurda23
    Účastník

    Zatím ještě s chybami,nefunguji tlačítka na webu pro ovládání rele zastavuje se mi běh programu.

    [code]
    #include <Dhcp.h>
    #include <Dns.h>
    #include <Ethernet.h>
    #include <EthernetClient.h>
    #include <EthernetServer.h>
    #include <EthernetUdp.h>

    #include <SoftwareSerial.h>
    #include <MemoryFree.h>
    #include <LCD.h>
    #include <LiquidCrystal.h>
    #include <LiquidCrystal_I2C.h>
    #include <OneWire.h>
    #include <Wire.h>
    #include <DallasTemperature.h>
    #include <SPI.h>

    float T00;
    float T01;
    float T02;
    //float T03;
    // zde si upravte podle sebe
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0xC4, 0x36 };
    // IP adresa
    IPAddress ip(192, 168, 99, 150);
    // port
    EthernetServer server(80);
    //RGBLED
    int bluePin1 = 10; //Digital Pin für Blaue LED1 in RGB-LED
    int greenPin1 = 11; //Digital Pin für Grüne LED1 in RGB-LED
    int redPin1 = 13; //Digital Pin für Rote LED1 in RGB-LED

    int redIn1 = 0;
    int greenIn1 = 1;
    int blueIn1 = 2;

    int redVal1;
    int greenVal1;
    int blueVal1;

    int bluePin2 = 4; //Digital Pin für Blaue LED2 in RGB-LED
    int greenPin2 = 5; //Digital Pin für Grüne LED2 in RGB-LED
    int redPin2 = 6; //Digital Pin für Rote LED2 in RGB-LED

    int redIn2 = 3;
    int greenIn2 = 4;
    int blueIn2 = 5;

    int redVal2;
    int greenVal2;
    int blueVal2;

    //Relays
    int relPin1 = 2; //Digital Pin für Relay1
    int relPin2 = 3; //Digital Pin für Relay2
    int relPin3 = 8; //Digital Pin für Relay3
    int relPin10 = 22; //Digital Pin für Relay22
    int relPin11 = 24; //Digital Pin für Relay24

    int relPin1In = 3;
    int relPin2In = 4;
    int relPin3In = 5;

    int relPin1Val;
    int relPin2Val;
    int relPin3Val;
    int relPin10Val;
    int relPin11Val;
    //Heizungs Status
    int heiz1Val;
    int heiz2Val;
    #define BACKLIGHT_PIN 13
    #define ONE_WIRE_BUS 12
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);
    //Adresy CIDEL
    DeviceAddress C = { 0x28, 0xC0, 0x97, 0x8A, 0x06, 0x00, 0x00, 0x74 };
    DeviceAddress Cc = { 0x28, 0x3E, 0x11, 0x8A, 0x06, 0x00, 0x00, 0x42 };
    DeviceAddress Ccc = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
    //DeviceAddress C03 = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
    int backLight = 13; // pin 13 will control the backlight
    int LEDbrightness; //

    void setup() {
    // inicalizace sítě
    Ethernet.begin(mac, ip);
    // inicializace serveru
    server.begin();
    sensors.begin();
    Serial.begin(9600);

    sensors.requestTemperatures();
    Serial.print(„server is at „);
    Serial.println(Ethernet.localIP());

    pinMode(22, OUTPUT);
    pinMode(24, OUTPUT);
    digitalWrite(22, HIGH);
    digitalWrite(24, HIGH);
    Serial.print(„Locating devices…“);
    Serial.print(„Found „);
    Serial.print(sensors.getDeviceCount(), DEC);
    Serial.println(“ devices.“);
    Serial.print(„Free Memory = „);
    Serial.println(getFreeMemory());

    sensors.setResolution(C, 10);
    sensors.setResolution(Cc, 10);
    sensors.setResolution(Ccc, 10);
    //sensors.setResolution(C03, 10);
    lcd.begin(16, 4);
    lcd.clear(); // initialize the lcd
    lcd.backlight();

    //T03 = sensors.getTempC(C03); //teplota solaru
    pinMode(relPin1, OUTPUT); //Output Mode for Relay1
    pinMode(relPin2, OUTPUT); //Output Mode for Relay2
    pinMode(relPin3, OUTPUT); //Output Mode for Relay3
    pinMode(relPin10, OUTPUT); //Output Mode for Relay2
    pinMode(relPin11, OUTPUT); //Output Mode for Relay3
    }

    void loop() {
    sensors.requestTemperatures();
    T00 = sensors.getTempC(C); //teplota bazenu
    T01 = sensors.getTempC(Cc); //teplota panelu
    T02 = sensors.getTempC(Ccc); //teplota solaru
    //T03 = sensors.getTempC(C03); //teplota solaru
    lcd.setCursor(0, 0);
    lcd.print(„Bazen: „);
    lcd.print(T00); //teplota venku
    lcd.print(„C“);
    lcd.setCursor(0, 2);
    lcd.print(„Ohrev: „);
    lcd.print(T01); //teplota solaru
    lcd.print(„C“);
    // Serial.println();
    // Serial.print(„T0 „);
    // Serial.print(T00);
    // Serial.println();
    // Serial.print(„T1 „);
    // Serial.print(T01);
    // Serial.println();
    // Serial.print(„T2 „);
    // Serial.print(T02);

    //Je nach Temperatur Farbe der RGB-LED anpassen und Rel 1 schalten
    if(T01 <= 27)
    {
    redVal1 = 0;
    greenVal1 = 0;
    blueVal1 = 150;
    relPin1Val = LOW;
    relPin3Val = LOW;
    lcd.setCursor(0, 1);
    lcd.print(„Topeni: Vyp „);
    }
    else if(T01 > 27 && T01 < 29)
    {
    redVal1 = 0;
    greenVal1 = 150;
    blueVal1 = 0;
    relPin1Val = HIGH;
    relPin3Val = LOW;
    lcd.setCursor(0, 1);
    lcd.print(„Topeni: Zap „);
    }
    else if(T01 > 29)
    {
    redVal1 = 150;
    greenVal1 = 0;
    blueVal1 = 0;
    relPin1Val = HIGH;
    relPin3Val = HIGH;
    lcd.setCursor(0, 1);
    lcd.print(„Lueftung: Vyp „);
    }

    //Je nach Temperatur Farbe der RGB-LED anpassen und Rel 2 schalten
    if(T02 <= 27)
    {
    redVal2 = 0;
    greenVal2 = 0;
    blueVal2 = 255;
    relPin2Val = LOW;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Vyp „);
    }
    else if(T02 > 27 && T02 < 29)
    {
    redVal2 = 0;
    greenVal2 = 255;
    blueVal2 = 0;
    relPin2Val = HIGH;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Zap „);
    }
    else if(T02 > 29)
    {
    redVal2 = 255;
    greenVal2 = 0;
    blueVal2 = 0;
    relPin2Val = HIGH;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Vyp „);
    }
    {
    analogWrite(redPin1, redVal1);
    analogWrite(greenPin1, greenVal1);
    analogWrite(bluePin1, blueVal1);
    analogWrite(redPin2, redVal2);
    analogWrite(greenPin2, greenVal2);
    analogWrite(bluePin2, blueVal2);
    digitalWrite(relPin1, relPin1Val);
    digitalWrite(relPin2, relPin2Val);
    digitalWrite(relPin3, relPin3Val);
    digitalWrite(relPin10, relPin10Val);
    digitalWrite(relPin11, relPin11Val);
    // když je připojen klient, zjistíme, zda jsou odeslána data
    // od klienta směrem k nám
    EthernetClient client = server.available();
    String buffer = „“;

    // dokud je klient připojen
    while (client.connected()) {
    // čti data od něj dokud nenarazíš na znak nového řádku

    if (client.available()) {
    char c = client.read();
    buffer = buffer + c;
    if (c == ‚\n‘) {

    if(buffer.indexOf(„rele1=1“)>=0)
    digitalWrite(2,HIGH);

    else if(buffer.indexOf(„rele1=0“)>=0)
    digitalWrite(2,LOW);

    if (buffer.indexOf(„rele2=1“) >= 0)
    digitalWrite(3, HIGH);

    else if (buffer.indexOf(„rele2=0“) >= 0)
    digitalWrite(3, LOW);

    if (buffer.indexOf(„rele3=1“) >= 0)
    digitalWrite(22, HIGH);

    else if (buffer.indexOf(„rele3=0“) >= 0)
    digitalWrite(22, LOW);

    if (buffer.indexOf(„rele4=1“) >= 0)
    digitalWrite(24, HIGH);

    else if (buffer.indexOf(„rele4=0“) >= 0)
    digitalWrite(24, LOW);
    Serial.println();
    Serial.print(„Free Memory = „);
    Serial.println(getFreeMemory());

    // odešle klasickou hlavičku HTML stránky
    client.println („HTTP/1.1 200 OK“);
    client.println („Content-Type: text/html“);
    client.println („Connection: close“);
    client.println ();
    client.println („<!DOCTYPE HTML>“);

    // zde již klasická html data
    client.println („<html>“);
    client.println („<head>“);
    // Název stránky
    client.println („<title>Arduinio Server – Rele control</title>“);
    client.println („</head>“);
    client.println („<body>“);
    client.print („<h3 align=center>Program pro ovladani rele</h3>“);
    client.println F((„</br>“));

    // vygeneruje formulář
    if (digitalRead(2)) {
    client.print („<button style=’background:red;width:20%;height:30px‘>RELE 1 VYPNUTO</button>“);
    } else {
    client.print („<button style=’background:green;width:20%;height:30px‘>RELE 1</button>“);
    }
    client.println (“        test“);
    client.println („</br>“);

    if (digitalRead(3)) {
    client.print („<button style=’background:red;width:20%;height:30px‘>RELE 2 VYPNUTO</button>“);
    } else {
    client.print („<button style=’background:green;width:20%;height:30px‘>RELE 2</button>“);
    }
    client.println (“        svetlo“);
    client.println F((„</br>“));

    if (digitalRead(4)) {
    client.print („<button style=’background:red;width:20%;height:30px‘>RELE 3 VYPNUTO</button>“);
    } else {
    client.print („<button style=’background:green;width:20%;height:30px‘>RELE 3</button>“);
    }
    client.println (“        filtrace“);
    client.println („</br>“);

    if (digitalRead(5)) {
    client.print („<button style=’background:red;width:20%;height:30px‘>RELE 4 VYPNUTO</button>“);
    } else {
    client.print („<button style=’background:green;width:20%;height:30px‘>RELE 4</button>“);
    }
    client.println (“        tlacitko pro kotel 4″);
    client.println („</br>“);
    client.println („</br>“);
    client.println („</br>“);
    client.println („Teplota0“);

    client.println (T00);
    client.println („</br>“);
    client.println („Teplota1:“);

    client.println (T01);
    client.println („</br>“);
    client.println („Teplota2:“);

    client.println (T02);
    client.println („</br>“);
    client.print („<meta http-equiv=\“refresh\“ content=\“5\“>“); //stránka se načte automaticky jednou za 3 s
    client.println („</body>“);
    client.println („</html>“);

    //ukončí přenos
    client.stop();
    Serial.println(buffer);
    }
    }
    } }

    }

    [/code]

    #4276
    jurda23
    Účastník

    Našel by se někdo hodný kdo mi pomuže?

    #4284
    Zbyšek Voda
    Správce

    Dobrý den,

    můžete prosím popsat, co konkrétně vám nefunguje?

    Taky by se hodil popis projektu – co to má dělat, jak to funguje…

    #4286
    jurda23
    Účastník

    no momentalně vše zkouším metodou pokus-omyl potřebuji aby to fungovalo jako termostat na třech zavislostech,spinalo dvě rele, vše nastavitelné přes web
    1.pokud je čas který nasavím (cca 9:00-17:00hod) bude seple rele1
    2.teplota čidla1 dle nasavení ovlada rele2 za podmínky že teplota čidla2 neni menší než ktera bude nastavena
    3.I2C displejna kterem budou rotovat dokola teploty z cca 6čidel a stavy relatek topení,oběh
    Jedná se mi o to vytvořit automatiku která bude hlídat ohřev bazenu přes tep.vyměník ze zasobníku tepelného čerpadla ve kterem nesmí poklesnout teplota pod cca 40stupnu jinak se spustí příhřev topnou spirálou cca9KW čemuž chci zabránit,muj sen je aby to časem vypadalo stejně jako zde https://www.youtube.com/watch?v=ef9fpolMtxA

    jsem na začátku a potýkám se s tím že se nerozjede webserver ping na adresu jde,když už se rozjede občas tak mi nefunguji stavy rele a ovladaní. a netuším jak udělat podmínku na bod 1a2,modul realneho času je na cestě a nevímjak sinchronizovat čas přes NTP vše chci něák velmi jednoduše. Ještě tvořím jeden system,naplatformě cubieboard ten již funguje na adrese teblomer.juricekpavel.net:81
    na arduinu jsem nováček tak se snažím lepit kod z toho co najdu na netu.

    #4287
    jurda23
    Účastník

    no momentalně vše zkouším metodou pokus-omyl potřebuji aby to fungovalo jako termostat na třech zavislostech,spinalo dvě rele, vše nastavitelné přes web
    1.pokud je čas který nasavím (cca 9:00-17:00hod) bude seple rele1
    2.teplota čidla1 dle nasavení ovlada rele2 za podmínky že teplota čidla2 neni menší než ktera bude nastavena
    3.I2C displejna kterem budou rotovat dokola teploty z cca 6čidel a stavy relatek topení,oběh
    Jedná se mi o to vytvořit automatiku která bude hlídat ohřev bazenu přes tep.vyměník ze zasobníku tepelného čerpadla ve kterem nesmí poklesnout teplota pod cca 40stupnu jinak se spustí příhřev topnou spirálou cca9KW čemuž chci zabránit,muj sen je aby to časem vypadalo stejně jako zde https://www.youtube.com/watch?v=ef9fpolMtxA

    jsem na začátku a potýkám se s tím že se nerozjede webserver ping na adresu jde,když už se rozjede občas tak mi nefunguji stavy rele a ovladaní. a netuším jak udělat podmínku na bod 1a2,modul realneho času je na cestě a nevímjak sinchronizovat čas přes NTP vše chci něák velmi jednoduše. Ještě tvořím jeden system,naplatformě cubieboard ten již funguje na adrese teblomer.juricekpavel.net:81
    na arduinu jsem nováček tak se snažím lepit kod z toho co najdu na netu.

    #4288
    Zbyšek Voda
    Správce

    Pokud jsem kód dobře pochopil, přijde mi, že sice máte zobrazená tlačítka, ale nemáte k nim obslužný kód.
    Předpokládám, že chcete, aby po kliknutí na tlačítko program odeslal požadavek s informacemi o stavu relé.

    Dalo by se to udělat třeba tak, že z tlačítek uděláte odkazy vedoucí na určitou URL s přidanými parametry za url. Jak přidat URL ke tlačítku řeší třeba zde.

    Arduino pak bude zpracovávat HTTP požadavek, ze kterého si vybere požadované informace z parametru.

    Jak na to jsem psal například tady nebo tady.

    #4308
    jurda23
    Účastník

    problem s web byl vyřešen nevšimnul jsem si že používám porty 10, 11, 12, 13 ktere potřebuje ethernet shild

    [code]
    #include <SD.h>
    #include <Ethernet.h>
    #include <SPI.h>
    #include <SoftwareSerial.h>
    #include <MemoryFree.h>
    #include <LCD.h>
    #include <LiquidCrystal.h>
    #include <LiquidCrystal_I2C.h>
    #include <OneWire.h>
    #include <Wire.h>
    #include <DallasTemperature.h>

    float T00;
    float T01;
    float T02;
    //float T03;
    // zde si upravte podle sebe
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0xC4, 0x36 };
    // IP adresa

    byte ip[] = { 192, 168, 99, 150 };
    byte gateway[] = { 192, 168, 99, 1 };
    byte subnet[] = { 255, 255, 255, 0 };
    String readString;
    // port
    EthernetServer server(80);
    //RGBLED
    int bluePin1 = 40; //Digital Pin fĂĽr Blaue LED1 in RGB-LED
    int greenPin1 = 41; //Digital Pin fĂĽr GrĂĽne LED1 in RGB-LED
    int redPin1 = 42; //Digital Pin fĂĽr Rote LED1 in RGB-LED

    int redIn1 = 0;
    int greenIn1 = 1;
    int blueIn1 = 2;

    int redVal1;
    int greenVal1;
    int blueVal1;

    int bluePin2 = 4; //Digital Pin fĂĽr Blaue LED2 in RGB-LED
    int greenPin2 = 5; //Digital Pin fĂĽr GrĂĽne LED2 in RGB-LED
    int redPin2 = 6; //Digital Pin fĂĽr Rote LED2 in RGB-LED

    int redIn2 = 3;
    int greenIn2 = 4;
    int blueIn2 = 5;

    int redVal2;
    int greenVal2;
    int blueVal2;

    //Relays
    int relPin1 = 2; //Digital Pin fĂĽr Relay1
    int relPin2 = 3; //Digital Pin fĂĽr Relay2
    int relPin3 = 8; //Digital Pin fĂĽr Relay3
    int relPin10 = 22; //Digital Pin fĂĽr Relay22
    int relPin11 = 24; //Digital Pin fĂĽr Relay24

    int relPin1In = 22;
    int relPin2In = 1;
    int relPin3In = 5;
    int relPin10In = 23;
    int relPin11In = 25;

    int relPin1Val;
    int relPin2Val;
    int relPin3Val;
    int relPin10Val;
    int relPin11Val;
    //Heater Status
    int heiz1Val;
    int heiz2Val;
    //#define WS5200_CS 10
    //#define SDCARD_CS 4
    #define BACKLIGHT_PIN 13
    #define ONE_WIRE_BUS 32
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);
    //Adresy CIDEL
    DeviceAddress C = { 0x28, 0xC0, 0x97, 0x8A, 0x06, 0x00, 0x00, 0x74 };
    DeviceAddress Cc = { 0x28, 0x3E, 0x11, 0x8A, 0x06, 0x00, 0x00, 0x42 };
    DeviceAddress Ccc = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
    //DeviceAddress C03 = { 0x28, 0x73, 0x9B, 0x89, 0x06, 0x00, 0x00, 0x83 };
    int backLight = 13; // pin 13 will control the backlight
    int LEDbrightness; //

    void setup() {
    sensors.begin();
    Serial.begin(9600);

    Ethernet.begin(mac, ip, gateway, subnet);

    server.begin();

    sensors.requestTemperatures();
    Serial.print(„server is at „);
    Serial.println(Ethernet.localIP());

    // Velikost slova (bit) 9 10 11 12
    //Rozlišení (°C) 0.5 0.25 0.125 0.0625
    //Doba převodu (ms) 93,75 187,5 375 750
    sensors.setResolution(C, 9);
    sensors.setResolution(Cc, 9);
    sensors.setResolution(Ccc, 9);
    //sensors.setResolution(C03, 9);
    lcd.begin(16, 4);
    lcd.clear(); // initialize the lcd
    lcd.backlight();

    //T03 = sensors.getTempC(C03); //teplota solaru
    pinMode(relPin1, OUTPUT); //Output Mode for Relay1
    pinMode(relPin2, OUTPUT); //Output Mode for Relay2
    pinMode(relPin3, OUTPUT); //Output Mode for Relay3
    pinMode(relPin10, OUTPUT); //Output Mode for Relay2
    pinMode(relPin11, OUTPUT); //Output Mode for Relay3
    // digitalWrite(relPin1, HIGH);
    // digitalWrite(relPin2, HIGH);
    // digitalWrite(relPin3, HIGH);
    // digitalWrite(relPin10, HIGH);
    // digitalWrite(relPin11, HIGH);

    }

    void loop() {

    sensors.requestTemperatures();
    T00 = sensors.getTempC(C); //teplota bazenu
    T01 = sensors.getTempC(Cc); //teplota panelu
    T02 = sensors.getTempC(Ccc); //teplota solaru
    //T03 = sensors.getTempC(C03); //teplota solaru

    lcd.setCursor(0, 0);
    lcd.print(„Bazen: „);
    lcd.print(T00); //teplota venku
    lcd.print(„C“);
    lcd.setCursor(0, 2);
    lcd.print(„Ohrev: „);
    lcd.print(T01); //teplota solaru
    lcd.print(„C“);
    // Serial.println();
    // Serial.print(„T0 „);
    // Serial.print(T00);
    // Serial.println();
    // Serial.print(„T1 „);
    // Serial.print(T01);
    // Serial.println();
    // Serial.print(„T2 „);
    // Serial.print(T02);

    //Je nach Temperatur Farbe der RGB-LED anpassen und Rel 1 schalten
    if(T01 <= 27)
    {
    redVal1 = 0;
    greenVal1 = 0;
    blueVal1 = 150;
    relPin1Val = LOW;
    relPin3Val = LOW;
    lcd.setCursor(0, 1);
    lcd.print(„Topeni: Zap „);
    }
    else if(T01 > 27 && T01 < 29)
    {
    redVal1 = 0;
    greenVal1 = 150;
    blueVal1 = 0;
    relPin1Val = HIGH;
    relPin3Val = LOW;
    lcd.setCursor(0, 1);
    lcd.print(„Topeni: Vyp „);
    }
    else if(T01 > 29)
    {
    redVal1 = 150;
    greenVal1 = 0;
    blueVal1 = 0;
    relPin1Val = HIGH;
    relPin3Val = HIGH;
    lcd.setCursor(0, 1);
    lcd.print(„VÄ›tránĂ­: Vyp „);
    }

    //Je nach Temperatur Farbe der RGB-LED anpassen und Rel 2 schalten
    if(T02 <= 27)
    {
    redVal2 = 0;
    greenVal2 = 0;
    blueVal2 = 255;
    relPin2Val = LOW;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Zap „);
    }
    else if(T02 > 27 && T02 < 29)
    {
    redVal2 = 0;
    greenVal2 = 255;
    blueVal2 = 0;
    relPin2Val = HIGH;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Vyp „);
    }
    else if(T02 > 29)
    {
    redVal2 = 255;
    greenVal2 = 0;
    blueVal2 = 0;
    relPin2Val = HIGH;
    lcd.setCursor(0, 3);
    lcd.print(„Topeni: Vyp „);
    }
    {

    analogWrite(redPin1, redVal1);
    analogWrite(greenPin1, greenVal1);
    analogWrite(bluePin1, blueVal1);
    analogWrite(redPin2, redVal2);
    analogWrite(greenPin2, greenVal2);
    analogWrite(bluePin2, blueVal2);
    digitalWrite(relPin1, relPin1Val);
    digitalWrite(relPin2, relPin2Val);
    digitalWrite(relPin3, relPin3Val);
    digitalWrite(relPin10, relPin10Val);
    digitalWrite(relPin11, relPin11Val);

    }

    Serial.println();
    Serial.print(„Locating devices…“);
    Serial.print(„Found „);
    Serial.print(sensors.getDeviceCount(), DEC);
    Serial.println(“ devices.“);
    //Serial.print(„Free Memory = „);
    //Serial.println(getFreeMemory());
    // když je připojen klient, zjistíme, zda jsou odeslána data
    // od klienta směrem k nám
    EthernetClient client = server.available();
    String buffer = „“;

    // dokud je klient připojen
    while (client.connected()) {
    // čti data od něj dokud nenarazíš na znak nového řádku

    if (client.available()) {
    char c = client.read();
    buffer = buffer + c;
    if (c == ‚\n‘) {

    if(buffer.indexOf(„rele1=1“)>=0)
    digitalWrite(2,HIGH);

    else if(buffer.indexOf(„rele1=0“)>=0)
    digitalWrite(2,LOW);

    if (buffer.indexOf(„rele2=1“) >= 0)
    digitalWrite(3, HIGH);
    else if (buffer.indexOf(„rele2=0“) >= 0)
    digitalWrite(3, LOW);

    if (buffer.indexOf(„rele10=1“) >= 0)
    digitalWrite(22, HIGH);

    else if (buffer.indexOf(„rele10=0“) >= 0)
    digitalWrite(22, LOW);

    if (buffer.indexOf(„rele11=1“) >= 0)
    digitalWrite(24, HIGH);

    else if (buffer.indexOf(„rele11=0“) >= 0)
    digitalWrite(24, LOW);

    // delay(1);
    // odešle klasickou hlavičku HTML stránky
    client.println F ((„HTTP/1.1 200 OK“));
    client.println F ((„Content-Type: text/html“));
    client.println F ((„Connection: close“));

    client.println ();
    client.println F ((„<!DOCTYPE HTML>“));

    // zde již klasická html data
    client.println F ((„<html>“));
    client.println F ((„<head>“));
    // Název stránky
    client.println F ((„<title>Arduinio Server – Rele control</title>“));
    client.println F ((„</head>“));
    client.println F ((„<body>“));
    client.print F ((„<h3 align=center>Program pro ovladani rele</h3>“));
    client.println F ((„</br>“));

    // vygeneruje formulář

    if (digitalRead(2)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 1 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 1</button>“));
    }
    client.println F ( (“        test“));
    client.println F ((„</br>“));

    if (digitalRead(3)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 2 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 2</button>“));
    }
    client.println F ((“        svetlo“));
    client.println F ((„</br>“));

    if (digitalRead(22)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 3 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 3</button>“));

    client.println F ((“        filtrace“));
    client.println F ((„</br>“));

    if (digitalRead(24)) {
    client.print F ((„<button style=’background:red;width:20%;height:30px‘>RELE 4 VYPNUTO</button>“));
    } else {
    client.print F ((„<button style=’background:green;width:20%;height:30px‘>RELE 4</button>“));
    }
    client.println F ((“        tlacitko pro kotel 4″));

    client.println F ((„</br>“));
    client.println F ((„</br>“));
    client.println („</br>“);

    client.println („Teplota0“);

    client.println (T00);
    client.println („</br>“);
    client.println („Teplota1:“);

    client.println (T01);
    client.println („</br>“);
    client.println („Teplota2:“);

    client.println (T02);
    client.println („</br>“);

    client.print („<meta http-equiv=\“refresh\“ content=\“5\“>“); //stránka se naÄŤte automaticky jednou za 3 s
    client.println („</body>“);
    client.println („</html>“);

    Serial.println(buffer);

    delay(1); //dáme klientovi čas na zpracování
    //ukončí přenos
    client.stop();
    } }
    }
    } }

    [/code]

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (celkem z 7)
  • Pro reakci na toto téma se musíte přihlásit.