Электронный компонент:Seeeduino Ethernet
Seeeduino Ethernet[1]
Seeeduino Ethernet – это компактная и многофункциональная плата, спроектированная на базе микроконтроллера MEGA328P (позволяет работать с платой аналогично Arduino) и модуля Wiz5100 (обеспечивает Ethernet-коммуникацию при помощи протоколов TCP и UDP). Кроме того, Seeeduino Ethernet оснащена модулем для SD-карты, что делает ее подходящей для проектов, где используется запись логов, а также обработка данных и их передача по сети.
В новой версии, как пишут разработчики, был уменьшен вес разъема RJ45, чтобы уравновесить плату с гребешками контактов. Кроме того, плата оснащена двумя контроллерами Grove, обеспечивающими коммуникацию через I2C и UART.
Купить плату Seeeduino Ethernet можно по этой ссылке.
Характеристики
- Напряжение – от 6.2 до 13 вольт
- Сила тока – от 140 до 550 мА
- Поддерживаемые карты – SD-карта типа MicroSD (должна быть марки SanDisk) с форматом FAT/FAT32 и объемом не более 2 Гб
- Поддерживаемые протоколы коммуникации – TCP/UDP
- Вес нетто – 23 (плюс-минус 2) грамма
- Ethernet-разъем – RJ45
Как пользоваться
Этот раздел расскажет, как использовать Ethernet-функции Seeeduino для записи/считывания информации с SD-карты, а также отправлять по сети цифровые/аналоговые данные.
Шаг 1: Настройка оборудования
Сначала нужно подключить питание. Сделать это можно двумя способами.
Способ 1.
Воспользоваться одним комплектом пассивных PoE-кабелей (от «power over ethernet», что значит «питание по Ethernet»). Это позволит одновременно питать плату и обеспечить Ethernet-соединение с нею.
Подробнее смотрите на картинке ниже:
Способ 2.
Воспользоваться отдельными кабелями для питания и Ethernet-коммуникации.
Шаг 2: Программирование
Теперь давайте протестируем код. Ниже показан скетч, цель которого – протестировать функции записи и считывания данных с SD-карты, а также отправки аналоговых/цифровых данных по сети. Кроме того, этот скетч можно использовать в качестве отправной точки для тестирования других функций платы.
Примечания:
- Все заголовочные файлы (т.е. файлы с расширением «*.h») были предустановлены в IDE Arduino (1.0)
- Вставьте карту MicroSD. Убедитесь, что ее объем не израсходован, а также в том, что она отформатирована в FAT/FAT32. Форматирование лучше выполнить при помощи программы SD Formatter (ссылку на нее ищите ниже, в разделе «Полезные ссылки»)
/*
Считывание и запись данных на SD-карту
Этот скетч-пример показывает, как считывать и записывать данные
в файл, записанный на SD-карту.
Цепь:
* SD-карта, подключенная к шине SPI:
* Контакт MOSI – к контакту 11
* Контакт MISO – к контакту 12
* Контакт CLK – к контакту 13
* Контакт CS – к контакту 4
Веб-сервер
Простой веб-сервер, который показывает значения
на входных аналоговых контактах
при помощи шилда Arduino Wiznet Ethernet Shield.
Цепь:
* Ethernet-шилд, подключенный к контактам 10, 11, 12 и 13
* Входные аналоговые контакты,
подключенные к контактам A0-A5 (опционально)
Создан 18 декабря 2009 года Дэвидом А. Меллисом (David A. Mellis),
модифицирован 4 сентября 2010 года Томом Иго (Tom Igoe).
*/
#include <SD.h>
#include <SPI.h>
#include <Ethernet.h>
// вводим MAC-адрес и IP-адрес своего контроллера;
// IP-адрес зависит от вашей локальной сети:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);
// инициализируем библиотеку «EthernetServer»
// при помощи IP-адреса и порта, которые мы хотим использовать
// (порт 80 используется для HTTP по умолчанию):
EthernetServer server(80);
File myFile;
void setup()
{
Serial.begin(9600);
Serial.print("Initializing SD card...");
// "Инициализация SD-карты..."
// на Ethernet-шилде CS-контактом является контакт 4,
// и по умолчанию он выставлен в режим вывода данных (OUTPUT);
// если вы не используете CS-контакт, аппаратный SS-контакт
// (на большинстве Arduino это контакт 10, на Mega – контакт 53),
// все равно нужно выставить на OUTPUT,
// иначе функции библиотеки «SD» просто не будут работать:
pinMode(10, OUTPUT);
// pinMode(4,OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
// "Инициализация не удалась!"
return;
}
Serial.println("initialization done.");
// "Инициализация прошла успешно."
// откройте файл; одновременно может быть открыт
// только один файл, поэтому перед открытием нового файла
// нужно закрыть предыдущий:
myFile = SD.open("test.txt",FILE_WRITE);
// если файл открыт или создан, то все окей, пишем на него:
if (myFile) {
Serial.print("Writing to test.txt...");
// "Запись на test.txt..."
myFile.println("testing 1, 2, 3.");
// "проверка 1, 2, 3."
// закрываем файл:
myFile.close();
Serial.println("done."); // "готово."
} else {
// если файл не открыт, сообщаем об ошибке:
Serial.println("error opening test.txt");
// "ошибка с открытием test.txt"
}
// снова открываем файл – на этот раз для чтения:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// читаем файл, пока не дойдем до конца:
while (myFile.available()) {
Serial.write(myFile.read());
}
// закрываем файл:
myFile.close();
} else {
// если файл не открыт, сообщаем об ошибке:
Serial.println("error opening test.txt");
// "ошибка с открытием test.txt"
}
// запускаем Ethernet-коммуникацию и сервер:
Ethernet.begin(mac, ip);
server.begin();
}
unsigned char buff[6];
void loop()
{
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// если дошли до конца строки
// (т.е. получили символ новой строки),
// и эта строка пуста, то это значит,
// что мы достигли конца HTTP-запроса;
// следовательно, можно отправлять ответ:
if (c == '\n' && currentLineIsBlank) {
// отправляем заголовок стандартного HTTP-ответа:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// показываем значение
// всех входных аналоговых контактов:
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
client.print("analog input ");
// "входной аналоговый контакт "
client.print(analogChannel);
client.print(" is ");
// " имеет значение "
client.print(analogRead(analogChannel));
client.println("<br />");
buff[analogChannel] = analogRead(analogChannel);
}
break;
}
if (c == '\n') {
// начинаем новую строчку:
currentLineIsBlank = true;
}
else if (c != '\r') {
// на текущей строчке есть символ:
currentLineIsBlank = false;
}
}
}
// даем веб-браузеру время на прием данных:
delay(1);
// закрываем соединение:
client.stop();
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) {
Serial.println("test.txt:");
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
myFile.print("analog input ");
// "входной аналоговый контакт "
myFile.print(analogChannel);
myFile.print(" is ");
// " имеет значение "
myFile.println(analogRead(analogChannel));
}
// читаем файл, пока не прочитаем все содержимое:
myFile.close();
}
else {
// если файл не открыт, сообщаем об ошибке:
Serial.println("error opening test.txt");
// "ошибка с открытием test.txt"
}
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// читаем файл, пока не прочитаем все содержимое:
while (myFile.available()) {
Serial.write(myFile.read());
}
// закрываем файл:
myFile.close();
}
else {
// если файл не открыт, сообщаем об ошибке:
Serial.println("error opening test.txt");
// "ошибка с открытием test.txt"
}
}
}
Шаг 3. Загрузка программы
Поскольку Seeeduino Ethernet не оснащена USB-коннектором, чтобы загрузить на нее скетч, нужно воспользоваться UartSBee (это адаптер USB-Serial).
Подключите UartSBee к Seeeduino Ethernet как показано на картинке ниже:
Шаг 4. Проверка результата
Убедитесь, что Seeeduino Ethernet и ваш ПК находятся в одной и той же локальной сети. Загрузив программу, откройте в IDE Arduino монитор порта. В нем должна появиться следующая информация:
Откройте браузер и введите в адресной строке веб-адрес «192.168.1.177». Откроется страница веб-сервера, через которую можно проверять данные, которые отправляет Seeeduino Ethernet:
Полезные ссылки
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Электронный компонент
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Seeeduino Ethernet
- Платформа Arduino
- Arduino платформа
- Arduino