Ethernet Shield

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем webtoucher, 25 янв 2017.

  1. webtoucher

    webtoucher Нерд

    Никак не получается завести интернет... Подскажите, что я делаю не так?

    Код (Javascript):
    SPI2.setup({baud: 3200000, mosi: B15, miso: B14, sck: B13});
    var eth = require('WIZnet').connect(SPI2, P10);
    // Настраиваю подключение вручную. У меня выключен DHCP.
    eth.setIP({
        ip: "192.168.0.20",
        subnet: "255.255.255.0",
        gateway: "192.168.0.1",
        dns: "192.168.0.1",
        mac: "05:08:da:36:b6:aa"
    });

    var http = require('http');
    http.get('http://ya.ru', function(res) {
      res.on('data', function(data) {
        print(data);
      });
    });
    Получаю ошибку...
    [​IMG]

    Если я правильно понимаю, искра не смогла отрезолвить хост. Вместо своего днс пробовал ставить гугловый и различные опенднс - не помогло.

    Окей, клиент не получился, пробую поднять http-сервер:

    Код (Javascript):
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World');
    }).listen(80);
    Иду на http://192.168.0.20/ и получаю:
    [​IMG]

    То есть браузер нашёл сервер, но при попытке открыть страницу соединения сбросилось. Это только я такой счастливый или у всех так?
     
    Konkery нравится это.
  2. sys

    sys Злобный Буратино Модератор

    MAC адрес нужно указывать без разделителей ":", а можно вообще не указывать
    DNS для проверки проще поставить гугловый 8.8.8.8

    UPDATE: я не прав по поводу разделителей и наличия MAC адреса - они нужны!
     
    Последнее редактирование: 9 фев 2017
  3. webtoucher

    webtoucher Нерд

    Да, если мак писать без двоеточий, то ошибки резолва хоста нету. Но и никакого контента в косоль не падает, собственно, как и сервер не перестаёт сбрасывать соединение.
     
  4. webtoucher

    webtoucher Нерд

    А у кого-нибудь вообще работает ethernet на искре? Или пока только на ардуино?
    Люди отзовитесь. Я пытаюсь понять, это у меня руки не от туда выросли или бага в прошивке...
     
    Konkery нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Разные варианты и их комбинации могут быть. :)
    С шилдом не работал, работал с ESP-8266. Может на нем побыстрее будет?
     
  6. Konkery

    Konkery Гик

    Отпишись если заведется, хотел купить данный модуль, но теперь подожду
     
  7. sys

    sys Злобный Буратино Модератор

    Дошли руки до Искры и решил разобраться глубже что к чему.

    Сразу же приношу извинения за то, что ввел Вас в заблуждение по поводу разделителей ":" в MAC адресе - они должны быть!

    Основная проблема в вашем коде, которую я проглядел - это отсутствие кавычек у ключей - "ip", "subnet" и т.д.

    Вторая проблема - http://ya.ru не даст результат, т.к. оно доступно по https... попробуйте лучше http://amperka.ru

    Ваш код в рабочем виде:
    Код (Javascript):
    SPI2.setup({baud: 3200000, mosi: B15, miso: B14, sck: B13});
    var eth = require('WIZnet').connect(SPI2, P10);
    // Настраиваю подключение вручную. У меня выключен DHCP.
    eth.setIP({
        "ip": "192.168.0.20",
        "subnet": "255.255.255.0",
        "gateway": "192.168.0.1",
        "dns": "192.168.0.1",
        "mac": "05:08:da:36:b6:aa"
    });

    var http = require('http');
    http.get('http://amperka.ru', function(res) {
      res.on('data', function(data) {
        print(data);
      });
    });
    Шилд у Амперки качественный, на производительном Wiznet 5500.
     
    Последнее редактирование: 9 фев 2017
    Konkery нравится это.
  8. ИгорьК

    ИгорьК Гуру

    Проверьте.
     
  9. sys

    sys Злобный Буратино Модератор

    проверял - data пуст, хотя res не пуст.
    можете сами попробовать:

    Код (Javascript):
    var http = require('http');
    http.get('http://ya.ru', function(res) {
      res.on('data', function(data) {
        print(data);
      });
      print(res);
    });
     
    Последнее редактирование: 9 фев 2017
  10. ИгорьК

    ИгорьК Гуру

    Просто Вы не умеете готовить котов: http://forum.amperka.ru/threads/Синхронизация-времени.10939/#post-105375
    Проверено. В смысле, ya отвечает на запрос и от него можно даже добиться время.

    Правда отвечает в том смысле, что не приставай, этот протокол я говорить не буду.
     
  11. sys

    sys Злобный Буратино Модератор

    Простите, конечно, это все здорово, но абсолютно не к месту.
    Мои комментарии относились к конкретному коду, а не к сферическому коню в вакууме ;) И в данном коде для проверки работоспособности применять ya.ru бесполезно

    Хотя даже из res можно много чего интересного вытянуть...
     
    Последнее редактирование: 10 фев 2017
  12. ИгорьК

    ИгорьК Гуру

    Согласен.
     
    sys нравится это.
  13. webtoucher

    webtoucher Нерд

    Печально, но и этот вариант мне не помог. Причём, с компа сделал
    ping 192.168.0.20
    arp -a
    и комп правильно вывел мак, значит из сети искру видно, но нифига не работает - ни клиент, ни сервер.
    Ты из какой оси проверял?
     
  14. sys

    sys Злобный Буратино Модератор

    Linux