Arduino:Примеры/HttpClientConsole: различия между версиями
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">») |
Нет описания правки |
||
Строка 24: | Строка 24: | ||
Подключаем библиотеки [[Arduino:Библиотеки/Bridge|Bridge]], HttpClient и Console. | Подключаем библиотеки [[Arduino:Библиотеки/Bridge|Bridge]], HttpClient и Console. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#include <Bridge.h> | #include <Bridge.h> | ||
#include <HttpClient.h> | #include <HttpClient.h> | ||
Строка 32: | Строка 32: | ||
В блоке [[Arduino:Справочник языка Arduino/setup()|setup()]] запускаем Bridge и перед переходом в блок [[Arduino:Справочник языка Arduino/loop()|loop()]] ждем инициализации последовательного подключения. | В блоке [[Arduino:Справочник языка Arduino/setup()|setup()]] запускаем Bridge и перед переходом в блок [[Arduino:Справочник языка Arduino/loop()|loop()]] ждем инициализации последовательного подключения. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void setup() { | void setup() { | ||
pinMode(13, OUTPUT); | pinMode(13, OUTPUT); | ||
Строка 44: | Строка 44: | ||
В блоке [[Arduino:Справочник языка Arduino/loop()|loop()]] создаем именованный экземпляр [[Arduino:Библиотеки/Bridge/Класс HttpClient|класса HttpClient]], а затем при помощи функции [[Arduino:Библиотеки/Bridge/Класс HttpClient/get()|client.get()]] вызываем нужный '''URL'''. | В блоке [[Arduino:Справочник языка Arduino/loop()|loop()]] создаем именованный экземпляр [[Arduino:Библиотеки/Bridge/Класс HttpClient|класса HttpClient]], а затем при помощи функции [[Arduino:Библиотеки/Bridge/Класс HttpClient/get()|client.get()]] вызываем нужный '''URL'''. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void loop() { | void loop() { | ||
HttpClient client; | HttpClient client; | ||
Строка 52: | Строка 52: | ||
Если в буфере есть какие-нибудь байты, пришедшие от сервера, считываем их и выводим на монитор порта. Повторяем это каждые пять секунд. | Если в буфере есть какие-нибудь байты, пришедшие от сервера, считываем их и выводим на монитор порта. Повторяем это каждые пять секунд. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
while (client.available()) { | while (client.available()) { | ||
char c = client.read(); | char c = client.read(); | ||
Строка 65: | Строка 65: | ||
Весь скетч полностью смотрите ниже. | Весь скетч полностью смотрите ниже. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
HTTP-клиент для Arduino Uno и Mega при помощи Yún Shield | HTTP-клиент для Arduino Uno и Mega при помощи Yún Shield |
Версия от 18:19, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Загрузка логотипа при помощи модуля 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);
}