Witajcie.
Mam napisany program do sterowania oświetleniem przy użyciu włączników dzwonkowych.
W przykładzie są 2 pomieszczenia gdzie po wciśnięciu przycisku można zapalić/zgasić światło i na wyświetlaczu LCD pojawi się aktualny stan.
Docelowo zależy mi na możliwości sterowania światłem zarówno przez włącznik dzwonkowy jak i przez stronę WWW.
Możecie podpowiedzieć jak zmodyfikować kod aby można dołożyć sterowanie przez serwer WWW.
Dodam, że teraz działam na ARDUINO UNO + ethernet schield.
Dotychczasowy działający kod.
Mam napisany program do sterowania oświetleniem przy użyciu włączników dzwonkowych.
W przykładzie są 2 pomieszczenia gdzie po wciśnięciu przycisku można zapalić/zgasić światło i na wyświetlaczu LCD pojawi się aktualny stan.
Docelowo zależy mi na możliwości sterowania światłem zarówno przez włącznik dzwonkowy jak i przez stronę WWW.
Możecie podpowiedzieć jak zmodyfikować kod aby można dołożyć sterowanie przez serwer WWW.
Dodam, że teraz działam na ARDUINO UNO + ethernet schield.
Dotychczasowy działający kod.
Kod:
#include <[color=#CC6600]Wire[/color].h>
#include <[color=#CC6600]LiquidCrystal_I2C[/color].h>
#include <[color=#CC6600]SPI[/color].h>
#include <[color=#CC6600]Ethernet[/color].h>
[color=#CC6600]byte[/color] mac[] = {0xEA,0xFE,0xED,0xED,0xAB,0xCD};
[color=#CC6600]byte[/color] ip[] = {192,168,6,26};
[color=#CC6600]EthernetServer[/color] server(80);
#define BACKLIGHT_PIN 3
[color=#CC6600]LiquidCrystal_I2C[/color] lcd(0x27, 2,1,0,4,5,6,7);
[color=#CC6600]int[/color] salon_button = 2;
[color=#CC6600]int[/color] salon_przekaznik=8;
[color=#CC6600]int[/color] kuchnia_button = 3;
[color=#CC6600]int[/color] kuchnia_przekaznik=9;
[color=#CC6600]boolean[/color] salon_last=[color=#006699]LOW[/color];
[color=#CC6600]boolean[/color] salon_now=[color=#006699]LOW[/color];
[color=#CC6600]boolean[/color] SalonON=[color=#CC6600]false[/color];
[color=#CC6600]boolean[/color] salon_stan;
[color=#CC6600]boolean[/color] kuchnia_last=[color=#006699]LOW[/color];
[color=#CC6600]boolean[/color] kuchnia_now=[color=#006699]LOW[/color];
[color=#CC6600]boolean[/color] KuchniaON=[color=#CC6600]false[/color];
[color=#CC6600]boolean[/color] kuchnia_stan;
[color=#CC6600]String[/color] ekran_gora;
[color=#CC6600]String[/color] ekran_dol_salon;
[color=#CC6600]String[/color] ekran_dol_kuchnia;
[color=#CC6600]void[/color] [color=#CC6600][b]setup[/b][/color] () {
[color=#CC6600]Ethernet[/color].[color=#CC6600]begin[/color](mac, ip);[color=#7E7E7E]//ethernet[/color]
server.[color=#CC6600]begin[/color]();[color=#7E7E7E]//ethernet[/color]
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]begin[/color](9600);[color=#7E7E7E]//ethernet[/color]
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]print[/color]([color=#006699]"Serwer wystartowal z IP: "[/color]);[color=#7E7E7E]//ethernet[/color]
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]println[/color]([color=#CC6600]Ethernet[/color].[color=#CC6600]localIP[/color]());[color=#7E7E7E]//ethernet[/color]
[color=#CC6600]pinMode[/color] (salon_button, [color=#006699]INPUT_PULLUP[/color]);
[color=#CC6600]pinMode[/color] (salon_przekaznik, [color=#006699]OUTPUT[/color]);
[color=#CC6600]pinMode[/color] (kuchnia_button, [color=#006699]INPUT_PULLUP[/color]);
[color=#CC6600]pinMode[/color] (kuchnia_przekaznik, [color=#006699]OUTPUT[/color]);
lcd.[color=#CC6600]begin[/color](16,2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight([color=#006699]HIGH[/color]);
}
[color=#CC6600]void[/color] [color=#CC6600][b]loop[/b][/color] () {
salon_now = [color=#CC6600]digitalRead[/color](salon_button);
kuchnia_now = [color=#CC6600]digitalRead[/color](kuchnia_button);
[color=#CC6600]if[/color] (salon_last==[color=#006699]LOW[/color] && salon_now == [color=#006699]HIGH[/color])
{
SalonON = !SalonON;
}
[color=#CC6600]if[/color] (kuchnia_last==[color=#006699]LOW[/color] && kuchnia_now == [color=#006699]HIGH[/color])
{
KuchniaON = !KuchniaON;
}
salon_last=salon_now;
kuchnia_last=kuchnia_now;
[color=#CC6600]if[/color] (SalonON == 1)
{
ekran_gora = [color=#006699]"Salon Kuchnia"[/color];
ekran_dol_salon = [color=#006699]"wl. "[/color];
salon_stan == [color=#006699]HIGH[/color];
}
[color=#CC6600]if[/color] (SalonON == 0)
{
ekran_gora = [color=#006699]"Salon Kuchnia"[/color];
ekran_dol_salon = [color=#006699]"wyl."[/color];
salon_stan == [color=#006699]LOW[/color];
}
[color=#CC6600]if[/color] (KuchniaON == 1)
{
ekran_gora = [color=#006699]"Salon Kuchnia"[/color];
ekran_dol_kuchnia = [color=#006699]"wl. "[/color];
kuchnia_stan == [color=#006699]HIGH[/color];
}
[color=#CC6600]if[/color] (KuchniaON == 0)
{
ekran_gora = [color=#006699]"Salon Kuchnia"[/color];
ekran_dol_kuchnia = [color=#006699]"wyl."[/color];
kuchnia_stan == [color=#006699]LOW[/color];
}
lcd.[color=#CC6600]setCursor[/color] ( 0, 0 );
lcd.[color=#CC6600]print[/color](ekran_gora);
lcd.[color=#CC6600]setCursor[/color] ( 2, 1 );
lcd.[color=#CC6600]print[/color](ekran_dol_salon);
lcd.[color=#CC6600]setCursor[/color] ( 11, 1 );
lcd.[color=#CC6600]print[/color](ekran_dol_kuchnia);
[color=#CC6600]digitalWrite[/color] (salon_przekaznik, SalonON);
[color=#CC6600]digitalWrite[/color] (kuchnia_przekaznik, KuchniaON);
}