Arduino:Примеры/HttpClientConsole

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Загрузка логотипа при помощи модуля Arduino Yun Shield[1]

Этот пример для Arduino Yun Shield демонстрирует, как создать простой HTTP-клиент, способный подключаться к интернету и загружать контент. В данном случае мы подключимся к сайту Arduino и загрузим логотип в виде ASCII-текста. Результат будет показан в консоли IDE Arduino, а передаваться будет через WiFi-соединение (не через USB).

Запрограммировав плату, зайдите в меню Инструменты > Порт (Tools > Port) и выберите нужный IP-адрес, а затем откройте монитор порта.

Необходимое оборудование

  • Плата или модуль Yun
  • Беспроводное соединение с интернетом

Цепь

Для этого примера цепи строить не нужно.

Код

Подключаем библиотеки Bridge, HttpClient и Console.

#include <Bridge.h>
#include <HttpClient.h>
#include <Console.h>

В блоке setup() запускаем Bridge и перед переходом в блок loop() ждем инициализации последовательного подключения.

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  Bridge.begin();
  Console.begin();
  while(!Console);
}

В блоке loop() создаем именованный экземпляр класса HttpClient, а затем при помощи функции client.get() вызываем нужный URL.

void loop() {
  HttpClient client;
  client.get("http://www.arduino.cc/asciilogo.txt");

Если в буфере есть какие-нибудь байты, пришедшие от сервера, считываем их и выводим на монитор порта. Повторяем это каждые пять секунд.

while (client.available()) {
    char c = client.read();
    Console.print(c);
  }
  Console.flush();

  delay(5000);
}

Весь скетч полностью смотрите ниже.

/*
  HTTP-клиент для Arduino Uno и Mega при помощи Yún Shield

 Этот пример для Yún101/YunShield/Yún показывает, как создать
 простой HTTP-клиент, способный подключаться к интернету и загружать
 контент. В данном случае мы подключимся к сайту Arduino и загрузим
 ASCII-версию логотипа Arduino. 

 Создан Томом Иго (Tom Igoe) в мае 2013 года,
 модифицирован Марко Брианзой (Marco Brianza) для использования
 консоли

 Этот код не защищен авторским правом.

 http://www.arduino.cc/en/Tutorial/HttpClient

 */

#include <Bridge.h>
#include <HttpClient.h>
#include <Console.h>

void setup() {
  // Запуск Bridge требует около 2 секунд, поэтому есть смысл
  // воспользоваться встроенный светодиодом как индикатором 
  // инициализации библиотеки:
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  Bridge.begin();
  digitalWrite(13, HIGH);

  Console.begin();

  while (!Console); // ждем последовательного подключения:
}

void loop() {
  // инициализируем HttpClient:
  HttpClient client;

  // делаем HTTP-запрос:
  client.get("http://www.arduino.cc/asciilogo.txt");

  // если от сервера доступны какие-нибудь входящие байты, 
  // считываем их и выводим на монитор порта:
  while (client.available()) {
    char c = client.read();
    Console.print(c);
  }
  Console.flush();

  delay(5000);
}

См.также

Внешние ссылки