Arduino:Примеры/DnsWebClient: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 28: | Строка 28: | ||
==Код== | ==Код== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Веб-клиент на базе DNS и DHCP | Веб-клиент на базе DNS и DHCP | ||
Строка 121: | Строка 121: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} | |||
[[Категория:Пример]] | [[Категория:Пример]] | ||
[[Категория:Примеры]] | [[Категория:Примеры]] | ||
[[Категория:Пример программирования Arduino]] | [[Категория:Пример программирования Arduino]] | ||
[[Категория:Примеры программирования Arduino]] | [[Категория:Примеры программирования Arduino]] |
Текущая версия от 12:33, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Веб-клиент на базе DNS и DHCP[1]
Этот пример при помощи Ethernet Shield подключает Arduino к серверу с определенным именем, используя DHCP и DNS. При вызове функции Ethernet.begin(mac) библиотека Ethernet, используя DHCP, пытается получить IP-адрес.
Использование DHCP значительно увеличивает размер скетча, поэтому убедитесь, что у вас достаточно места для запуска программы.
Поиск DNS начинается при вызове функции client.connect.(servername, port), где servername – это URL-строка вроде «www.arduino.com».
Необходимое оборудование
- Сетевой модуль Arduino Ethernet Shield;
- Плата Arduino, совместимая с Ethernet Shield;
Цепь
Ethernet Shield позволяет подключить плату Arduino к Ethernet-контроллеру WizNet (через SPI). Это подключение осуществляется при помощи 10-ого, 11-ого, 12-ого и 13-ого контактов. У более поздних моделей Ethernet Shield имеется встроенный слот для SD-карты. В этом примере мы будем управлять SS-контактом этой SD-карты через 4-ый цифровой контакт.
Ethernet Shield должен быть подключен к сети при помощи Ethernet-кабеля. Также вам надо поменять сетевые настройки в скетче, чтобы они соответствовали настройкам вашей сети.
Ethernet Shield устанавливается поверх платы Arduino.
Код
/*
Веб-клиент на базе DNS и DHCP
Этот скетч подключается к вебсайту http://www.google.com при помощи
сетевого модуля Arduino Ethernet Shield на базе WizNet.
Цепь:
* Ethernet Shield, подключенный к 10-ому, 11-ому, 12-ому и 13-ому контактам
Создан 18 декабря 2009 года Дэвидом А. Меллисом (David A. Mellis),
модифицирован 9 апреля 2012 Томом Иго (Tom Igoe),
основан на работе Эдриана Макивена (Adrian McEwen).
*/
#include <SPI.h>
#include <Ethernet.h>
// Ниже введите MAC-адрес вашего контроллера.
// У самых последних моделей Ethernet Shield MAC-адрес напечатан на стикере:
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
char serverName[] = "www.google.com";
// Создаем клиента, который затем будет подключаться
// к необходимым для нас IP-адресу и порту
// (порт 80 является для HTTP портом по умолчанию):
EthernetClient client;
void setup() {
// Инициализируем последовательную передачу данных и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для Leonardo)
}
// Запускаем Ethernet-соединение:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP"); // "Не удалось сконфигурировать Ethernet при помощи DHCP"
// Продолжать дальше смысла нет, поэтому просто ничего не делаем:
while(true);
}
// Даем Ethernet Shield секунду на инициализацию:
delay(1000);
Serial.println("connecting..."); // "Подключение..."
// Если подключение прошло успешно, сообщаем об этом через Serial Monitor:
if (client.connect(serverName, 80)) {
Serial.println("connected"); // "Подключено"
// Делаем HTTP-запрос:
client.println("GET /search?q=arduino HTTP/1.0");
client.println();
}
else {
// Если подключиться к серверу не удалось:
Serial.println("connection failed"); // "Подключиться не удалось"
}
}
void loop()
{
// Если от сервера доступны какие-либо входящие байты,
// считываем их и выводим на Serial Monitor:
if (client.available()) {
char c = client.read();
Serial.print(c);
}
// Если сервер отключился, останавливаем клиента:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting."); // "Отключение."
client.stop();
// Ничего не делаем:
while(true);
}
}
См.также
- Arduino Ethernet Shield
- Getting started with the ethernet shield
- Ethernet library
- ChatServer
- WebClient
- WebServer
- PachubeCient?
- TwitterClient
- BarometricPressureWebServer
Внешние ссылки
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.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino