"Самовывозом" продукцию можно забрать на следующий день после подтверждения заказа менеджером. Пожалуйста, оформляйте заказы заранее.
(098) 067-12-26 Киевстар (098) 067-12-26   Киевстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell
 info@arduino.ua
График работы магазина:
Пн-Пт: 9.00 - 19.00
Сб: 10.00 - 19.00
Вс: выходной
г. Киев, ул. Васильковская, 30
ст.м. "Васильковская"
Каталог

Школа робототехники intRobots

Создаём «умные устройства» на базе Arduino и Raspberry Pi

Всем, кто интересуется «умными устройствами», которые создаются на основе микроконтроллеров, будет интересно познакомиться с двумя современными столпами этих направлений аппаратной платформой Arduino и миникомпьютером Raspberry Pi. В нашей статье мы

Сборка танцующего робота

Сборка любого конструктора интересный и увлекательный процесс не только для детей но и для взрослых. Процесс увлекательный если есть подробное руководство или процесс сборки интуитивно понятен. Если же нет ни того ни другого то процесс сборки может

Доработка клеевого пистолета GlueGun 20W

Давно хотел себе приобрести мелкий клеевой пистолет. Большой есть, но обычно, пока он прогреется, то надобность в клее уже отпадает. А потом он еще и капли пускает, пока не остынет. И вот подвернулся удобный случай, GlueGun 20W всего за 35 грн. Данный

Обзор Arduino набора с UNO R3 от Keyestudio

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

Набор расширения для платформы mBot Add-on Pack Six-legged Robot

Шестиногий робот mBot - это пакет расширения 3-в-1 на основе набора для конструирования Makeblock mBot
Напиши статью и получи скидку!

Модуль мини-веб-сервера ENC28J60 Ethernet для Arduino Nano v3.0

2018-11-09

Все статьи →

ENC28J60 Ethernet Shield позволяет подключить плату Arduino Nano v3.0 к сети. Ведущий компонент – микросхема ENC28J60, которая поддерживает стеки TCP и UDP в IP-сети. Плата имеет стандартный разъем RJ-45 со встроенным линейным трансформатором, обеспечивающий гальваническую развязку модуля от кабеля TCP\IP, и опцией PoE (Power over Ethernet) для получения питания от обычной витой пары 5 категории. На плате установлены 2 светодиода, свечение которых свидетельствует об обмене данными. Выведенные на плату ENC28J60 Ethernet_shield разъёмы типа "мама" с шагом 1 дюйм позволяют произвести подключение к ней платы Arduino Nano по модульному принципу, что значительно экономит место.

ENC28J60 Ethernet Shield

Плата ENC28J60 Ethernet_shield управляется и получает/передает данные по SPI интерфейсу. При этом используются следующие выводы Arduino Nano:

  • D10 – SS;
  • D11 – MOSI;
  • D12 – MISO;
  • D13 – SCK;
  • D2 – выход прерывания. При приеме пакета импульс на этот выход – сигнал для Arduino срочно обрабатывать пакет. Или, как минимум, принять во внимание, что надо получать данные.

Характеристики

  • Напряжение питания 3,14 – 3,45 В;
  • Ток, мА: максимальный 250; номинальный 170;
  • Интегрированный MAC и 10 Base-T PHY;
  • Полный и полудуплекс;
  • Поддержка одного 10 Base-T порта с автоопределением полярности и коррекцией;
  • Автовыравнивание генерации контрольной суммы;
  • Автоотброс ошибочных пакетов;
  • Программируемая функция повтора передачи при ошибке;
  • Программируемые функции Padding и генерирование CRC;
  • Программируемая функция фильтрации ошибочных пакетов;
  • Тактовая частота SPI до 20 МГц.

Для работы с ENC28J60 Ethernet_shield рекомендуем использовать Arduino-библиотеку UIPEthernet, которую можно скачать из репозитория . В отличие от множества других библиотек для ENC28J60, эта библиотека является полной заменой стандартной (включенной в Arduino IDE) библиотеки Ethernet.h. Библиотека обеспечивает полную поддержку постоянных (потоковых) TCP и UDP-соединений (клиент и сервер), ARP, ICMP, DHCP и DNS. Для ее использования заменяем строку
#include
на
#include
И используем вее функции стандартной библиотеки Ethernet.h.

Использование

Плата ENC28J60 Ethernet_shield позволяет Arduino получить доступ в Интернет, что делает возможность создавать на основе связки Arduino+ ENC28J60 Ethernet_shield устройств, реализующих концепцию Internet of Things ("Интернет вещей"), согласно которой доступ к данным датчиков или управление исполнительными устройствами может быть обеспечено из любой точки мира.

Рассмотрим самый простой пример отправки данных с фоторезистора (аналоговый датчик освещенности) на один из облачных сервисов.

Сайт «Народный мониторинг» (www.narodmon.ru) — проект по сбору и отображению на карте мира показаний температуры, давления, влажности и т. п. практически в реальном времени по фактическому их состоянию (а не на основе прогнозов) от различных датчиков среды, установленных как на улице для публичного доступа, так и в помещении для приватного, а также с веб-камер для частного или публичного доступа. Передавать показания датчиков на narodmon.ru можно посредством протоколов TCP/UDP или HTTP GET/POST. Минимальный интервал передачи показаний датчика — 5 минут (если передавать чаще, то возможна блокировка).

Чтобы стать участником проекта, необходимо зарегистрироваться: заходим на сайт www.narodmon.ru.
Для отображения показаний датчика (возьмем простейший датчик температуры LM335) на карте необходимо выполнить следующие действия:

  • Подключить устройство мониторинга (в нашем случае Arduino) к источнику питания и к сети Интернет (с помощью платы Ethernet shield).
  • Настроить передачу показаний на сайт narodmon.ru с интервалом 5–15 минут (напомню, если чаще, то возможна блокировка).

Схема подключения датчика

И скетч отправки данных


#include

byte mac[] = { 0x94, 0xDE, 0x80, 0x3A, 0x90, 0xC9 }; //MAC-адрес Arduino
const unsigned long postingInterval = 600000; // интервал между отправками
// данных - 10 минут
// IP-адрес, назначаемый Ethernet shield:
byte ip[] = { 192, 168, 0, 119 };
// IP-адрес, dns сервера:
byte sdns[] = { 192, 168, 1, 1 };
// адрес шлюза:
byte gateway[] = { 192, 168, 0, 28 };
// маска:
byte subnet[] = { 255, 255, 255, 0 };

IPAddress server(94,19,113,221); // IP сервера
//IPAddress server(91,122,49,168); // IP сервера
EthernetClient client;
unsigned long lastConnectionTime = 0; // время последней передачи данных
boolean lastConnected = false; // состояние подключения
char replyBuffer[160];

void setup()
{
Serial.begin(9600);
// Ethernet connection:
Ethernet.begin(mac,ip,sdns,gateway,subnet);
// секунда для инициализации Ethernet
delay(1000);
//первое соединение через 15 секунд после запуска
lastConnectionTime = millis()-postingInterval+15000;
}

void loop()
{
//если не подключены, и прошло определенное время, то делаем замер,
//переподключаемся и отправляем данные
if (!client.connected() && (millis() - lastConnectionTime > postingInterval))
{
//формирование HTTP-запроса
memset(replyBuffer, 0, sizeof(replyBuffer));
strcpy(replyBuffer,"ID=");
//Конвертируем MAC-адрес
for (int k=0; k<6; k++)
{
int b1=mac[k]/16;
int b2=mac[k]%16;
char c1[2],c2[2];

if (b1>9) c1[0]=(char)(b1-10)+'A';
else c1[0] = (char)(b1) + '0';
if (b2>9) c2[0]=(char)(b2-10)+'A';
else c2[0] = (char)(b2) + '0';

c1[1]='\0';
c2[1]='\0';

strcat(replyBuffer,c1);
strcat(replyBuffer,c2);
}
strcat(replyBuffer,"&");
strcat(replyBuffer,"3351C4BA0200003B");
strcat(replyBuffer,"=");
char temp[3];
double tmpd=(analogRead(A0)*5.0/1024)*100-273.15;
int tmpi=int(tmpd);
itos(tmpi,temp);
strcat(replyBuffer,temp);
strcat(replyBuffer,'\0');
//отправляем запрос
httpRequest();
}
//храним последнее состояние подключения
lastConnected = client.connected();
}
// функция отправки запроса
void httpRequest() {
if (client.connect(server, 80))
{
// send the HTTP POST request:
client.println("POST http://narodmon.ru/post.php HTTP/1.0");
client.println("Host: narodmon.ru");
client.println("Content-Type: application/x-www-form-urlencoded");
client.print("Content-Length: ");
client.println(len(replyBuffer));
client.println();
client.println(replyBuffer);
client.println();
lastConnectionTime = millis();
}
else
{
client.stop();
}
}

// размер данных
int len(char *buf)
{
int i=0;
do
{
i++;
} while (buf[i]!='\0');
return i;
}
// функция int to string
void itos(int n, char bufp[3]) //
{
char buf[3]={'0','0','\0'};
int i = 1;
while (n > 0)
{
buf[i] = (n % 10)+48;
i--;
n /= 10;
}
for (i=0; i<3; i++)
bufp[i]=buf[i];
}

Для передачи данных на сайт «Народный мониторинг» мы используем резервный протокол передачи HTTP POST/GET на URL: http://narodmon.ru/post.php.

При этом HTTP-заголовки для POST будут следующими:
POST http://narodmon.ru/post.php HTTP/1.0\r\n
Host: narodmon.ru\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: NN(кол-во байт в строке данных ниже)\r\n
\r\n
ID=MAC&mac1=value1&...&macN=valueN[&time=UnixTime][&name=NAME][&lat=LAT][&lng=LNG]
Скетч запускает Ethernet-соединение, плата получает IP-адрес в Сети, один раз в 5 минут считываются данные с датчика температуры, формируется строка с данными для отправки на сервер «Народный мониторинг», и данные отправляются с использованием протокола HTTP POST.
Теперь авторизуемся на сайте, используя логин и пароль, выбираем команду меню Датчики | Мои Датчики | Добавить устройство и вводим MAC-адрес нашего устройства. Если данные уже были отправлены на сайт, устройство будет добавлено.

Затем выбираем тип данных для нашего датчика (температура), устанавливаем доступ к показаниям (приватный), указываем название устройства и выполняем привязку к карте устройства мониторинга, указав полный адрес щелчком по строке с адресом. После чего выбираем опцию показать на карте и в случае необходимости корректируем положение на карте с помощью плавающего меню

Через некоторое время мы можем посмотреть временной график изменения данных датчика на нашем устройстве. Для этого выбираем команду меню Профиль | Мои Датчики и значок графика для выбранного датчика.

Перепечатано с сайта www.arduino-kit.ru

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Общая оценка:

Оценка "Модуль мини-веб-сервера ENC28J60 Ethernet для Arduino Nano v3.0"
5 из 5
сделана на основе 2 оценок 2 клиентских отзывов.

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Кирилл
28.12.2018 15:12:57
Этот прибор очень полезен. Статья тоже.
Игорь
21.11.2018 17:54:03
Очень полезная статья
оплата картами Visa и MasterCard