Подскажите по enc28j60

VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

Здравствуйте, взял библиотеку EtherCard, вытащил стандартный пример web client:

// Demo using DHCP and DNS to perform a web client request.
// 2011-06-08 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[700];
static uint32_t timer;

const char website[] PROGMEM = "www.google.com";

// called when the client request is complete
static void my_callback (byte status, word off, word len) {
  Serial.println(">>>");
  Ethernet::buffer[off+300] = 0;
  Serial.print((const char*) Ethernet::buffer + off);
  Serial.println("...");
}

void setup () {
  Serial.begin(57600);
  Serial.println(F("\n[webClient]"));

  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) 
    Serial.println(F("Failed to access Ethernet controller"));
  if (!ether.dhcpSetup())
    Serial.println(F("DHCP failed"));

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip);  
  ether.printIp("DNS: ", ether.dnsip);  

#if 1
  // use DNS to resolve the website's IP address
  if (!ether.dnsLookup(website))
    Serial.println("DNS failed");
#elif 2
  // if website is a string containing an IP address instead of a domain name,
  // then use it directly. Note: the string can not be in PROGMEM.
  char websiteIP[] = "192.168.1.1";
  ether.parseIp(ether.hisip, websiteIP);
#else
  // or provide a numeric IP address instead of a string
  byte hisip[] = { 192,168,1,1 };
  ether.copyIp(ether.hisip, hisip);
#endif
    
  ether.printIp("SRV: ", ether.hisip);
}

void loop () {
  ether.packetLoop(ether.packetReceive());
  
  if (millis() > timer) {
    timer = millis() + 5000;
    Serial.println();
    Serial.print("<<< REQ ");
    ether.browseUrl(PSTR("/foo/"), "bar", website, my_callback);
  }
}

Очень много времени убил на отправку значения к себе на сервер, ничего не получилось.

Собирал по этой схеме:

Теперь вопрос, как отправить запрос вида: file.php?action=12345, на свой сервер с интервалом в 5 секунд?

Спасибо.

sadman41
Offline
Зарегистрирован: 19.10.2016

Узбогойтесь. Если вы с W5100 не справились, то ENC28J60 - явно не по зубам.

VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

sadman41 пишет:

Узбогойтесь. Если вы с W5100 не справились, то ENC28J60 - явно не по зубам.

Причём тут W5100, и с чего вы сделали такой вывод? Программно с W5100 я справился, но то что железо висит, я не виноват.

sadman41
Offline
Зарегистрирован: 19.10.2016

Да читал я ваши опусы программные. С того вывод и сделал.

Девайс на W5100 у меня с февраля без выключений керогазит и ни разу еще не взвис. Так что не надо гнать на Wiznet, он на порядок стабильней, чем ENC.

VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

sadman41 пишет:

Да читал я ваши опусы программные. С того вывод и сделал.

Девайс на W5100 у меня с февраля без выключений керогазит и ни разу еще не взвис. Так что не надо гнать на Wiznet, он на порядок стабильней, чем ENC.

Да-да-да. Расскажите мне об этом. Возьмите откройте гугл и вбейте туда "W5100 зависает", а потом уже делайте выводы.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вбейте в гугл "ENC28J60 зависает".

Впрочем, что мне вам доказывать. Лично мне финал понятен.

VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

sadman41 пишет:

Вбейте в гугл "ENC28J60 зависает".

Впрочем, что мне вам доказывать. Лично мне финал понятен.

А есть что по теме сказать? Ну если нет, конечно можно и не писать сюда. Да?