selamlar öncelikle teşekkürler işten yeni geldim şimdi gördüm saolun
dediğiniz gibi yaptım başka satırlar hata veriyor beceremedim bi türlü
değişmiş hali le paylaşmanız mümkünmü acaba
Selamlar,
ENC28J60 ethernet modülünüz var değil mi?
Muhtemelen kütüphaneyi eklemediniz
https://github.com/jcw/ethercard/archive/master.zip indirip taslak > library > zip şeklinde bu kütüphaneyi ekleyebilirsiniz.
Kodlarda bir sorun görünmüyor verdiği hatayı burada paylaşırsanız göz atarım.
/*
-----------------------
Подключаємо піни "ENC28J60 Module" до Arduino Uno.
VCC - 3.3V
GND - GND
SCK - Pin 13
SO - Pin 12
SI - Pin 11
CS - Pin 10 Можна вибрати будь-який.
------------------
*/
#include <EtherCard.h> // Подключаєм скачану бібліотеку. https://yadi.sk/d/R57sVoglbhTRN
// MAC Address має бути унікальним у вашій мережі. Можна змінити.
static byte mymac[] = {
0x5A,0x5A,0x5A,0x5A,0x5A,0x5A };
// ip статичний
static byte myip[] = {
192,168,1,222 };
// Буфер, чим більше даних на Web сторінці, тим більше потрібне значення буфера.
byte Ethernet::buffer[900];
BufferFiller bfill;
// Масив задіяних номерів пінів Arduino, для керування 4 реле.
int LedPins[] = {
2,3,4,5};
// Масив для фіксації змін.
boolean PinStatus[] = {
1,2,3,4};
//-------------
const char http_OK[] PROGMEM =
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n\r\n";
const char http_Found[] PROGMEM =
"HTTP/1.0 302 Found\r\n"
"Location: /\r\n\r\n";
const char http_Unauthorized[] PROGMEM =
"HTTP/1.0 401 Unauthorized\r\n"
"Content-Type: text/html\r\n\r\n"
"<h1>401 Unauthorized</h1>";
//------------
// Робимо функцію для оформлення нашої Web сторінки.
void homePage()
{
bfill.emit_p(PSTR("$F"
"<title>ArduinoPIN Webserver</title>"
"Relay 1: <a href=\"?ArduinoPIN1=$F\">$F</a><br />"
"Relay 2: <a href=\"?ArduinoPIN2=$F\">$F</a><br />"
"Relay 3: <a href=\"?ArduinoPIN3=$F\">$F</a><br />"
"Relay 4: <a href=\"?ArduinoPIN4=$F\">$F</a>"),
http_OK,
PinStatus[1]?PSTR("off"):PSTR("on"),
PinStatus[1]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
PinStatus[2]?PSTR("off"):PSTR("on"),
PinStatus[2]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
PinStatus[3]?PSTR("off"):PSTR("on"),
PinStatus[3]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
PinStatus[4]?PSTR("off"):PSTR("on"),
PinStatus[4]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"));
}
//------------------------
void setup()
{
Serial.begin(9600);
// По замовчуванню в бібліотеці "ethercard" (CS-pin) = № 8.
// if (ether.begin(sizeof Ethernet::buffer, mymac) == 0).
// and change it to: Змінюємо (CS-pin) на 10.
// if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0).
if (ether.begin(sizeof Ethernet::buffer, mymac,10) == 0);
if (!ether.dhcpSetup());
// Виводимо в Serial монітор IP адресу, яку нам автоматично присвоїв наш Router.
// Динамічна IP адреса незручна, бо періодично змінюється.
// Нам доведеться часто дізнаватися, яка адреса нашої Web сторінки.
ether.printIp("My Router IP: ", ether.myip); // Виводимо в Serial монітор IP адресу, яку нам присвоїв Router.
//Також ми можемо встановити статичну IP адресу нашої сторінки і звертатися до Arduino по ній
//ether.staticSetup(myip);
ether.printIp("My SET IP: ", ether.myip); // Виводимо в Serial монітор статичну IP адресу.
//-----
for(int ix = 0; ix <= 4; ix++)
{
pinMode(LedPins[ix],OUTPUT);
digitalWrite (LedPins[ix],HIGH);
PinStatus[ix]=false;
}
}
// --------------------------------------
void loop()
{
delay(1); // Смикаєм мікроконтролер.
word len = ether.packetReceive(); // check for ethernet packet / перевірити ethernet пакети.
word pos = ether.packetLoop(len); // check for tcp packet / перевірити TCP пакети.
if (pos) {
bfill = ether.tcpOffset();
char *data = (char *) Ethernet::buffer + pos;
if (strncmp("GET /", data, 5) != 0) {
bfill.emit_p(http_Unauthorized);
}
else {
data += 5;
if (data[0] == ' ') {
homePage(); // Return home page Якщо виявлено зміни на сторінці, запускаємо функцію.
for (int i = 0; i <= 3; i++){
digitalWrite(LedPins[i],!PinStatus[i+1]);
// 5 saniye yansın ve sönsün
if(PinStatus[i+1] == true){
delay(5000); // 5 saniye
PinStatus[i+1] = false; // lambamizi sonduruyoruz
digitalWrite(LedPins[i],!PinStatus[i+1]); // relay a digital pin araciligiyla gonderiyoruz
}
// 5 saniye yansın ve sönsün bitti
}
}
// "16" = кількість символів "?ArduinoPIN1=on ".
else if (strncmp("?ArduinoPIN1=on ", data, 16) == 0) {
PinStatus[1] = true;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN2=on ", data, 16) == 0) {
PinStatus[2] = true;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN3=on ", data, 16) == 0) {
PinStatus[3] = true;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN4=on ", data, 16) == 0) {
PinStatus[4] = true;
bfill.emit_p(http_Found);
}
//------------------------------------------------------
else if (strncmp("?ArduinoPIN1=off ", data, 17) == 0) {
PinStatus[1] = false;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN2=off ", data, 17) == 0) {
PinStatus[2] = false;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN3=off ", data, 17) == 0) {
PinStatus[3] = false;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN4=off ", data, 17) == 0) {
PinStatus[4] = false;
bfill.emit_p(http_Found);
}
//---------------------------
else {
// Page not found
bfill.emit_p(http_Unauthorized);
}
}
ether.httpServerReply(bfill.position()); // send http response
}
}