Arduino:Примеры/HttpClientConsole

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


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

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

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

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

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

Цепь

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

Yun Fritzing.png

Код

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

1 #include <Bridge.h>
2 #include <HttpClient.h>
3 #include <Console.h>

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

1 void setup() {
2   pinMode(13, OUTPUT);
3   digitalWrite(13, LOW);
4   Bridge.begin();
5   Console.begin();
6   while(!Console);
7 }

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

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

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

1 while (client.available()) {
2     char c = client.read();
3     Console.print(c);
4   }
5   Console.flush();
6 
7   delay(5000);
8 }

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

 1 /*
 2   HTTP-клиент для Arduino Uno и Mega при помощи Yún Shield
 3 
 4  Этот пример для Yún101/YunShield/Yún показывает, как создать
 5  простой HTTP-клиент, способный подключаться к интернету и загружать
 6  контент. В данном случае мы подключимся к сайту Arduino и загрузим
 7  ASCII-версию логотипа Arduino. 
 8 
 9  Создан Томом Иго (Tom Igoe) в мае 2013 года,
10  модифицирован Марко Брианзой (Marco Brianza) для использования
11  консоли
12 
13  Этот код не защищен авторским правом.
14 
15  http://www.arduino.cc/en/Tutorial/HttpClient
16 
17  */
18 
19 #include <Bridge.h>
20 #include <HttpClient.h>
21 #include <Console.h>
22 
23 void setup() {
24   // Запуск Bridge требует около 2 секунд, поэтому есть смысл
25   // воспользоваться встроенный светодиодом как индикатором 
26   // инициализации библиотеки:
27   pinMode(13, OUTPUT);
28   digitalWrite(13, LOW);
29   Bridge.begin();
30   digitalWrite(13, HIGH);
31 
32   Console.begin();
33 
34   while (!Console); // ждем последовательного подключения:
35 }
36 
37 void loop() {
38   // инициализируем HttpClient:
39   HttpClient client;
40 
41   // делаем HTTP-запрос:
42   client.get("http://www.arduino.cc/asciilogo.txt");
43 
44   // если от сервера доступны какие-нибудь входящие байты, 
45   // считываем их и выводим на монитор порта:
46   while (client.available()) {
47     char c = client.read();
48     Console.print(c);
49   }
50   Console.flush();
51 
52   delay(5000);
53 }

См.также

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