06-11-2016, 16:39
Witam jestem początkujacy Potrafie pisac proste komendy ale gdy juz przychodzi składanie wszystko w kupe zaczynają sie schody... mam kod na dwa przekaźniki i średnio go rozumiem .Moze mi ktoś go w skrócie opisac ?
na tyle abym mogł dodać kolejne dwa przekaźniki ? i prosze o przesłanie jakis linków do nauki programowania
na tyle abym mogł dodać kolejne dwa przekaźniki ? i prosze o przesłanie jakis linków do nauki programowania
Kod:
// przekaznik_siec
// Arduino Uno lub (Leonardo wraz z modułem ethernetowym w wersji R3)
#include <SPI.h>
#include <Ethernet.h>
// Adres MAC musi być niepowtarzalny. Ten powinien zadziałać
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// Adres IP jest zależny od sieci lokalnej:
byte ip[] = { 192, 168, 1, 9 };
EthernetServer server(80);
int relayPin = A0; //pin serowania przekaznika 1
int relayPin2 = A1;//pin serowania przekaznika 2
int relayPin3 = A2;//pin serowania przekaznika 3
int relayPin4 = A3;//pin serowania przekaznika 4
char line1[100];//była dodana 1 linia ale analogicznie spróbowałem dodac na reszte przekazników?
char line2[100];
char line3[100];
char line4[100];
void setup()
{
pinMode(relayPin, OUTPUT);
pinMode(relayPin2,OUTPUT);
pinMode(relayPin3,OUTPUT);
pinMode(relayPin4,OUTPUT);
Ethernet.begin(mac, ip);
server.begin();//inicjalizuje połaczenie z shieldem
}
void loop()
{
EthernetClient client = server.available(); //sprawdzanie czy sa jakies informacje
if (client)
{
while (client.connected()) //jeżeli połączy się klient
{
readHeader(client);
if (! pageNameIs("/")) // do tego momentu juz nie wiem co sie dzieje
{
client.stop();
return;
}
digitalWrite(relayPin, valueOfParam('a'));
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// Wysyła ciało strony
client.println("<html><body>");
client.println("<h1>Zdalny przekaznik1</h1>");
client.println("<h2><a href='?a=1'/>Wlaczony</a></h2>");
client.println("<h2><a href='?a=0'/>Wylaczony</a></h2>");
client.println("<h1>Zdalny przekaznik2</h1>");
client.println("<h2><a href='?a=4'/>Wlaczony</a></h2>");
client.println("<h2><a href='?a=5'/>Wylaczony</a></h2>");
client.println("</body></html>");
client.stop();
}
}
}
void readHeader(EthernetClient client)
{
// Odczytuje pierwszy wiersz nagłówka //
char ch1;
int i = 0;
while (ch1 != '\n')
{
if (client.available())
{
ch1 = client.read();
line1[i] = ch1;
i ++;
}
}
line1[i] = '\0';
Serial.println(line1);
// Odczytuje drugi wiersz nagłówka
{
char ch2;
int i = 4;
while (ch2 != '\n')
{
if (client.available())
{
ch1 = client.read();
line1[i] = ch2;
i ++;
}
}
line2[i] = '\0';
Serial.println(line1);
}
boolean pageNameIs(char* name)
{
// Nazwa strony zaczyna się od czwartego znaku
// Kończy się spacją
int i = 4;
char ch = line1[i];
while (ch != ' ' && ch != '\n' && ch != '?')
{
if (name[i-4] != line1[i])
{
return false;
}
i++;
ch = line1[i];
}
return true;
}
int valueOfParam(char param)
{
for (int i = 0; i < strlen(line1); i++)
{
if (line1[i] == param && line1[i+1] == '=')
{
return (line1[i+2] - '0');
}
}
return 0;
}