UDP на ENC28J60
- Войдите на сайт для отправки комментариев
Пт, 11/03/2016 - 13:43
Добрый день. Необходимо сделать так, чтобы при нажатии кнопки на одной ардуине, вторая дёргала бы через мосфет кнопку выключения двух ПК. Купил для этого дела модули enc28j60 и ардуино нано. Пока удалось сделать только через веб выключение. Не могу разобраться с библиотекой, а примеров в интернете как- то не нашёл. По симу прошу помочь.
#include "etherShield.h"
#include "ETHER_28J60.h"
int ledpina = 6;
int ledpinb = 7;
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
static uint8_t ip[4] = {192, 168, 5, 13};
static uint16_t port = 80;
ETHER_28J60 ethernet;
void setup()
{
ethernet.setup(mac, ip, port);
pinMode(ledpina, OUTPUT);
pinMode(ledpinb, OUTPUT);
}
void loop()
{
char* params;
if (params = ethernet.serviceRequest())
{
ethernet.print("<H1>Server Turn off/on</H1>");
ethernet.print("<a href='?cmd=on1' >Выключить Сервер1</a>");
ethernet.print("<a href='?cmd=on2' >Выключить Сервер2</a>");
if (strcmp(params, "?cmd=on1") == 0)
{
digitalWrite(ledpina, HIGH);
delay (20);
digitalWrite(ledpina, LOW);
}
if (strcmp(params, "?cmd=on2") == 0)
{
digitalWrite(ledpinb, HIGH);
delay(20);
digitalWrite(ledpinb, LOW);
}
}
ethernet.respond();
delay(100);
}
А Вам нужно именно, через Web? Просто одним проводочком нельзя ардуины соединить и дёргать? Или Web что-то ещё важное будет делать?
Просто, если других целей, кроме как "дёрнуть, чтобы что-то сделала" нет, то Web это такая "толстая Берта" для такого воробья.
При чем здесь UDP?
UDP протокол нижнего уровня и хорош там где нужна максимальная производительность при отсутствии гарантии доставки
вам можно обычные данные через tcp использовать или GET запрос по http протоколу
а библиотека для enc28j60 не одна, их разных есть
Между ардуинами очень большое растояние.
библиотека была взята отсюда https://geektimes.ru/post/255430/