Монк - Программируем Arduino. Профессиональная работа со скетчами.

Тут можно читать онлайн Монк - Программируем Arduino. Профессиональная работа со скетчами. - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программируем Arduino. Профессиональная работа со скетчами.
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Питер
  • Год:
    2017
  • Город:
    СПб.
  • ISBN:
    978-5-496-02385-6
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Монк - Программируем Arduino. Профессиональная работа со скетчами. краткое содержание

Программируем Arduino. Профессиональная работа со скетчами. - описание и краткое содержание, автор Монк, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.
Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.
Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.

Программируем Arduino. Профессиональная работа со скетчами. - читать онлайн бесплатно полную версию (весь текст целиком)

Программируем Arduino. Профессиональная работа со скетчами. - читать книгу онлайн бесплатно, автор Монк
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Рис 123Плата Arduino WiFi Библиотека Ethernet Библиотека Ethernet - фото 79

Рис. 12.3.Плата Arduino WiFi

Библиотека Ethernet

Библиотека Ethernet претерпела существенные изменения с момента выпуска в 2011 году версии Arduino 1.0. Она не только позволяет плате Arduino с адаптером Ethernet действовать в роли веб-сервера или веб-клиента (возможность посылать запросы, подобно браузерам), но и реализует дополнительные возможности, такие как поддержка протокола динамической конфигурации сетевого узла (Dynamic Host Configuration Protocol, DHCP), автоматически присваивающего плате IP-адрес.

ПРИМЕЧАНИЕ

Превосходное описание библиотеки Ethernet можно найти в официальной документации Arduino: http://arduino.cc/en/reference/ethernet [10] Перевод на русский язык: http://arduino.ua/ru/prog/Ethernet . — Примеч. пер. .

Создание соединения

На первом этапе, прежде чем приступить к взаимодействиям по сети, необходимо установить соединение с сетью. Эту задачу решает функция Ethernet.begin(). Она позволяет вручную указать все параметры соединения с использованием следующего синтаксиса:

Ethernet.begin(mac, ip, dns, gateway, subnet)

Рассмотрим каждый из этих параметров:

• Mac — MAC-адрес сетевой карты (я расскажу о нем чуть позже);

• Ip — IP-адрес платы (можно выбрать любой допустимый для вашей сети);

• Dns — IP-адрес сервера доменных имен (Domain Name Server, DNS);

• Gateway — IP-адрес шлюза для выхода в Интернет (ваш домашний концентратор);

• Subnet — маска подсети.

Этот синтаксис кажется немного пугающим тем, кто не имеет опыта настройки параметров подключения к сети вручную. К счастью, все параметры, кроме mac, являются необязательными, и в 90% случаев вам придется указывать только параметры mac и ip или, весьма вероятно, только mac. Все остальные параметры будут настроены автоматически.

MAC-адрес, или адрес доступа к среде (Media Access Control), — это уникальный идентификатор сетевого интерфейса. Иными словами, это адрес платы расширения Ethernet или чего-то другого, предоставляющего сетевой интерфейс в распоряжение Arduino. Этот адрес должен быть уникальным только для вашей сети. Его обычно можно найти на наклейке с обратной стороны платы Ethernet или WiFi (рис. 12.4) или на упаковке. Если вы пользуетесь старой платой, не имеющей MAC-адреса, то можете просто создать свой адрес. Но не используйте в своей сети один и тот же адрес дважды.

Можно создать соединение с сетью с применением DHCP и получить динамический IP-адрес, как показано далее:

#include

#include

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

void setup()

{

Ethernet.begin(mac);

}

Рис 124Наклейка с MACадресом на плате WiFi Если потребуется присвоить плате - фото 80

Рис. 12.4.Наклейка с MAC-адресом на плате WiFi

Если потребуется присвоить плате фиксированный IP-адрес, что желательно, когда плата Arduino действует в роли веб-сервера, используйте примерно такой код:

#include

#include

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

byte ip[] = { 10, 0, 1, 200 };

void setup()

{

Ethernet.begin(mac, ip);

}

IP-адрес в параметре ip должен быть допустимым для вашей сети. Если вызвать функцию Ethernet.begin без параметра с IP-адресом, она по­пытается получить его с использованием DHCP и вернет 1, если соединение было установлено и динамический IP-адрес успешно получен, в противном случае вернет 0. Можно написать тестовый скетч, который будет устанавливать соединение и вызывать функцию localIP для получения IP-адреса, присвоенного Arduino. Следующий пример выполняет такую проверку и выводит сообщение с результатами в монитор последовательного порта. Это полноценный скетч, который вы можете опробовать самостоятельно. Но не забудьте заменить в коде MAC-адрес на указанный на вашей плате:

// sketch_12_01_dhcp

#include

#include

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

void setup()

{

Serial.begin(9600);

while (!Serial){}; // для совместимости с Leonardo

if (Ethernet.begin(mac))

{

Serial.println(Ethernet.localIP());

}

else

{

Serial.println("Could not connect to network");

}

}

void loop()

{

}

Настройка веб-сервера

Проект «Физический веб-сервер», описанный далее в этой главе, иллюстрирует организацию скетча, реализующего веб-сервер. А в этом разделе мы рассмотрим функции, помогающие реализовать веб-сервер.

Большая часть функций, необходимых для реализации веб-сервера, содержится в классе EthernetServer. Для запуска веб-сервера после установки соединения с сетью требуется пройти еще два этапа. Во-первых, нужно создать новый объект сервера, указав номер порта, который должен использоваться для приема входящих запросов. Это объявление находится в скетче перед функцией setup:

EthernetServer server = EthernetServer(80);

Обычно для приема запросов веб-серверы используют порт 80. То есть если вы настроили свой веб-сервер на обслуживание порта 80, вам не ­придется добавлять этот номер в адреса URL, чтобы связаться с сервером.

Во-вторых, чтобы фактически запустить сервер, в функции setup нужно выполнить следующую команду:

server.begin();

Эта функция запустит сервер, который будет ждать, пока кто-то не запросит страницу, которую обслуживает данный сервер. Фактическое обслуживание осуществляется в функции loop с применением функции available. Эта функция возвращает null (если нет запросов для обслуживания) или объект EthernetClient. Данный объект, как это ни странно, используется также для отправки исходящих запросов из Arduino к внешним веб-серверам. В данном случае EthernetClient представляет соединение между веб-сервером и браузером клиента.

Получив этот объект, можно прочитать входящий запрос с помощью read и вернуть HTML-ответ с помощью функций write, print и println. Закончив отправку HTML-ответа клиенту, нужно завершить сеанс вызовом функции stop объекта клиента. Я расскажу, как это сделать, в разделе «Физический веб-сервер» далее в этой главе.

Выполнение запросов

Плата Arduino может действовать не только как веб-сервер, но и как веб-браузер, посылая запросы удаленным веб-серверам, которые могут находиться в вашей сети или в Интернете.

Чтобы выполнить запрос, сначала нужно установить соединение с сетью, как в случае с веб-сервером, описанном в предыдущем разделе, но вместо объекта EthernetServer создать объект EthernetClient:

EthernetClient client;

Больше с объектом клиента ничего не требуется делать до отправки веб-запроса. Чтобы отправить веб-запрос, следует выполнить следующие действия:

if (client.connect("api.openweathermap.org", 80))

{

client.println("GET /data/2.5/weather?q=Manchester,uk HTTP/1.0");

client.println();

while (client.connected())

{

while (client.available())

{

Serial.write(client.read());

}

}

client.stop();

}

Функция connect вернет true, если соединение с веб-сервером было успешно установлено. Две команды client.println посылают веб-серверу запрос на получение желаемой страницы. Затем два вложенных цикла while читают данные, пока клиент остается подключенным к веб-серверу и продолжают поступать данные.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Монк читать все книги автора по порядку

Монк - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программируем Arduino. Профессиональная работа со скетчами. отзывы


Отзывы читателей о книге Программируем Arduino. Профессиональная работа со скетчами., автор: Монк. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x