Начало работы с Arduino Yún
Arduino Yún - это устройство, не похожее ни на одну из моделей Ардуино. С точки зрения программирования, он очень похож на Arduino Leonardo, поскольку имеет такой же микроконтроллер (Atmel ATmega32U4), но в отличие от Leonardo, в нем также есть дополнительный процессор (Atheros AR9331), работающий под управлением Linux, с беспроводным стеком OpenWrt. Прошивка контроллера 32U4 через USB осуществляется точно так же, как и в Arduino Leonardo. А после того, как вы настроите Yún на работу в вашей сети WiFi, контроллер можно будет прошивать и через WiFi.
Для подключения Arduino Yún к компьютеру понадобится USB-кабель с разъемом Micro-B. Через USB-кабель осуществляется не только питание, но и передача данных между устройством и компьютером. Для прошивки Arduino Yún, необходимо из меню Tools > Board в среде программирования Ардуино выбрать пункт Arduino Yún. Поддержка платы Yún реализована только в версии Arduino IDE 1.5.4 или позже.
- Отличия от Arduino Leonardo
- Linino
- Python
- Внешнее хранилище Yún
- Web-службы
- Сброс процессоров (AR9331, WiFi и 32U4)
- Переназначение портов при сбросе
- Отсутствие сброса при открытии последовательного порта
- Установка драйверов для Yún
- Конфигурирование встроенного WiFi
- Прошивка 32U4 через WiFi
- Использование встроенного Ethernet
- Взаимодействие с Linino через Bridge
- Класс Console
- Класс Process
- Использование Bridge для передачи информации между процессорами
- Подключение к интернет сервисам с помощью Temboo
- Spacebrew
- Установка дополнительного программного обеспечения на Linux
- Что дальше?
Отличия от Arduino Leonardo
Помимо микросхемы 32U4, в Arduino Yún есть дополнительный процессор, Atheros AR9331, работающий под управлением специального дистрибутива Linux для встроенных систем - Linino, основанного на OpenWrt. В системе уже установлен Python 2.7.
Arduino Yún отличается от Leonardo физическими характеристиками, а также наличием множества разъемов. Например, на плате есть встроенный разъем для SD-карты, разъем Ethernet, коннектор USB-A для подключения внешних устройств (работает как хост). На плате Arduino Yun нет разъема питания; устройство запитывается от micro-USB.
На плате не встроенного стабилизатора напряжения на 5В. Поэтому, если напряжение, подаваемое на плату, больше 5В, то Arduino Yún может выйти из строя. Питание устройства можно осуществлять не только через micro-USB, но и через выводы Vin и 5V на плате. Однако производителем рекомендуется использовать интерфейс USB для питания платы всегда, когда это возможно.
Разъемы SD, Ethernet и USB-A физически не соединены с контроллером 32U4, они соединены с AR9331.
В Arduino Yún микроконтроллер 32U4 работает точно так же, как и в Leonardo, за исключением того, что вы не можете использовать в программе класс Serial1, поскольку соответствующий ему последовательный порт зарезервирован для взаимодействия с процессором AR9331.
В Arduino Yún есть встроенный WiFi-модуль, который позволяет ему соединяться с беспроводным роутером, либо работать в качестве точки доступа.
Все три процессора - 32u4, контроллер WiFi и AR9331 - имеют свою кнопку сброса на плате.
На плате есть несколько светодиодных индикаторов текущего состояния Yún - индикатор питания, индикатор соединения WLAN, индикатор соединения WAN и USB. Вывод 13 также соединен с одним из светодиодов.
Linino
Yún работает под управлением дистрибутива Linux (на базе OpenWrt) под названием Linino. Управлять системой можно как с командной строки, так и через веб-интерфейс, позволяющий изменять множество различных настроек. Этот интерфейс (под названием LuCi) дает доступ к большинству настроек, которые могут понадобиться для управления WiFi-модулем.
Как зайти в веб-интерфейс - описано ниже.
Для установки дополнительного программного обеспечения на Linino, необходимо использовать линуксовый менеджер пакетов opkg. Дополнительную информацию о нем, а также перечень основных команд можно найти на странице: Менеджер пакетов Yún.
Взаимодействие с системой Linino осуществляется через командную строку, независимо от способа обращения к устройству (через библиотеку Arduino Bridge или через SSH). Если вы не знакомы с командной строкой, почитать об основах работы с ней можно здесь. Там же приведены примеры наиболее часто используемых программ.
Python
Вместе с дистрибутивом Linino в системе установлен Python 2.7, который позволяет вам писать программы и скрипты. Для получения дополнительной информации о Python, посетите страницу документации Python 2.7.
Если вы только начинаете работать с Python, вам помогут несколько отличных онлайн ресурсов. "Learn Python the Hard Way" охватывает все аспекты, необходимые для отладки и запуска своих скриптов.
Внешнее хранилище Yún
Для хранения данных не рекомендуется использовать встроенную энергонезависимую память Yún, поскольку у нее есть ограниченное число циклов записи.
Вместо этого, для хранения данных (скриптов, веб-страниц и пр.) можно использовать внешнюю память, например карту памяти microSD или флеш-накопитель. Для считывания и записи информации на эти устройства через микроконтроллер 32U4, они должны содержать папку arduino в корне файловой системы.
Web-службы
В Linino используется REST для клиентов и серверов. REST - это аббревиатура "Representational State Transfer". Другими словами, это программная архитектура, которая позволяет представить различные аппаратные узлы Ардуино в видел URL'ов.
По умолчанию, доступ к REST API защищен паролем. Однако запрос пароля для доступа к веб-службам можно отменить. Для этого зайдите в панель настроек Arduino Yún, внизу страницы вы увидите переключатель режима доступа:
Описание концепций, лежащих в основе REST можно найти здесь.
Arduino Yún распознаются две конечные точки REST:
- /arduino
- /data
Все, что находится в URL после конечной точки, передается от веб-сервера в скетч, запущенный на микроконтроллере 32U4. Таким образом в своей программе можно создавать свой собственный API. Как работает этот механизм применительно к выводам общего назначения платы показано в примере Bridge ниже.
"/data" используется для обращения к внутреннему хранилищу параметров - ключ/значение. Для работы с хранилищем доступны следующие команды:
- /put/KEY/VALUE : сохраняет указанное значение внутри хранилища
- /get/KEY : возвращает значение запрашиваемого ключа в формате JSON
- /get : возвращает весь список значений хранилища в формате JSON.
- /delete : удаляет внутренне хранилище
Сброс процессоров (AR9331, WiFi и 32U4)
Для сброса процессора AR9331 и перезагрузки Linino, нажмите кнопку "YÚN RST", расположенную возле аналоговых входов и светодиодов платы.
Для сброса микроконтроллера 32U4 и перезапуска загруженной в Ардуино программы, дважды нажмите кнопку, расположенную за разъемом Ethernet.
Кнопка сброса модуля WiFi расположена возле разъема USB-A. После нажатия будет мигать светодиод WLAN.
Если вы перешли на другую локальную сеть и, соответственно, потеряли доступ к веб-интерфейсу для беспроводного управления Arduino Yún, то необходимо перезагрузить процессор AR9331 и сбросить сетевые настройки Ардуино, нажав и удерживая кнопку сброса WiFi не менее 5 секунд (но не более 30). Настройки WiFi будут сброшены и Arduino Yún запустит собственную WiFi-сеть с названием Arduino Yún-XXXXXXXXXXXX. Все остальные настройки и изменение останутся прежними.
Чтобы сбросить дистрибутив Linino в первоначальное состояние, зажмите кнопку сброса WiFi на время больше 30 секунд. Все настройки установятся в первоначальное состояние, как после покупки или перепрошивки платы. Помимо этого, такой сброс приведет к удалению всех установленных файлов и сетевых настроек.
Переназначение портов при сбросе
В составе устройства нет отдельной микросхемы, обслуживающей последовательную связь, поэтому используемые последовательные порты являются виртуальным - как в операционной системе ПК, так и на самом устройстве. При запуске загрузчика, 32U4 автоматически создает экземпляр класса для работы с последовательным интерфейсом, точно так же, как компьютер создает экземпляр драйвера последовательного порта при подключении Ардуино. В системе подключенная плата является экземпляром специального класса драйвера для работы с USB (Connected Device Class - CDC).
Такая организация приводит к тому, что при каждом сбросе платы, USB-соединение с компьютером будет разрываться и устанавливаться вновь. В системе устройство будет исчезать из списка доступных портов, соответственно последовательные порты будут перенумеровываться. Поэтому все программы, в которых был открыт порт Ардуино, потеряют соединение с устройством. Это одно из явных отличий Yun от Arduino Uno, в котором сброс микроконтроллера (ATmega328P) не приводит к разрыву USB-соединения (которое поддерживается дополнительным процессором ATmega8U2 или ATmega16U2). Эти отличия приводит к некоторым особенностям установки драйвера, процесса прошивки и взаимодействия с устройством, которые описаны ниже.
Отсутствие сброса при открытии последовательного порта
В отличие от Arduino Uno, Arduino Yun не перезапускает загруженный скетч при каждом открытии последовательного порта на компьютере. Это означает, что компьютер не получит данные, отправленные платой до открытия в операционной системе последовательного порта (в том числе и данные, отправляемые в блоке setup()).
Эта особенность справедлива и при работе с консолью (Console).
Такое изменение приводит к тому, что любые функции для работы с последовательным портом или консолью (такие, как print(), println(), write() и др.), написанные в блоке setup, не будут вызываться в момент открытия последовательного порта. Чтобы обойти эту проблему, можно программно проверять статус последовательного порта, например, так:
// пока последовательный порт не будет открыт - ничего не делаем: while (!Serial);
или так:
// пока консоль не будет открыта - ничего не делаем: while (!Console);
Установка драйверов для Arduino Yún
OSX
- При первом подключении Yun к компьютеру Mac, автоматически запустится программа "Keyboard Setup Assistant". Т.к. для Yun настраивать здесь особо нечего, можно просто закрыть это окно, кликнув по красной кнопке в левом верхнем углу.
Windows
Теперь для Windows есть инсталлятор среды разработки и драйверов.
- Скачайте и запустите инсталлятор Arduino IDE версии 1.5.4 или позже.
- Ознакомьтесь с лицензией и в случае согласия жмите кнопку "I agree".
- По умолчанию для установки выбраны все доступные компоненты: среда разработки, драйвера и ярлыки.
- Выберите папку, куда вы хотите установить IDE.
- Установщик будет информировать вас о процессе распаковки и установки файлов.
- Если вы выбрали опцию установки драйверов, то в процессе установки появится окно, требующее подтверждение этой операции.
- После завершения установки, нажмите кнопку "Close".
Примечание: Arduino Yún использует службу Bonjour для "разворачивания" беспроводной сети. Этой службы по умолчанию нет в Windows, поэтому если до этого вы ее не устанавливали, нужно скачать и установить ее (скачать можно отсюда). Также необходимо удостоверится, что антивирусник не блокирует порт с номером 5353.
Linux
Под Linux установка драйверов не требуется вообще. (Проверено на Ubuntu 10.0.4).
Конфигурирование встроенного WiFi
Arduino Yún может работать не только в качестве точки доступа, но и подключаться к существующим беспроводным сетям. В данном разделе приведены инструкции, как подключить Yun к WiFi-сети. Arduino Yún может работать как в зашифрованных (WEP, WPA, WPA2), так и незашифрованных сетях.
После первого включения Yún, Ардуино создаст WiFi-сеть с названием ArduinoYun-XXXXXXXXXXXX. Подключитесь к этой сети с компьютера.
Как только вам будет присвоен IP-адрес, откройте браузер и наберите в адресной строке: http://arduino.local
или 192.168.240.1. Через мгновение появится веб-страница, запрашивающая у вас пароль. Введите "arduino" и щелкните по кнопки Log In.
Загрузится страница с системной информацией о текущих сетевых соединениях по интерфейсам WiFi и Ethernet. Для продолжения нажмите кнопку Configuration (Настройка).
На загрузившейся странице можно настроить Arduino Yún, присвоив ему уникальное имя и указав, к какой сети необходимо подключаться.
В поле Yún NAME впишите уникальное имя своего Arduino. Это имя вам понадобится в будущем при обращении к Ардуино.
Задайте пароль для Ардуино длиной не менее 8 символов. Если оставить это поле пустым, система оставит действующим пароль по умолчанию - arduino.
По желанию можно установить часовой пояс и страну. Рекомендуется задать эти настройки, т.к. это может облегчить процесс подключения к локальным WiFi-сетям.
Введите имя той WiFi-сети, к которой желаете подключиться.
Выберите тип защиты и введите пароль сети.
После нажатия кнопки Configure & Restart (сохранить настройки и перезагрузиться), Arduino сбросит сам себя и подключится к заданной сети. Через несколько секунд созданная ранее WiFi-сеть Ардуино исчезнет.
Теперь вы можете подключиться к той сети, которую указали в настройках Arduino Yún.
Прошивка 32U4 через WiFi
Когда Arduino Yún находится в той же сети, что и ваш компьютер, к нему можно подключиться и удаленно прошить через WiFi.
Для этого после конфигурирования Yún подключитесь к той сети, которую вы указали в настройках Ардуино. Откройте среду разработки Arduino IDE.
В меню Tools > Port вы должны увидеть запись с именем вашего Arduino и его IP-адресом. В меню Board выберите пункт Arduino Yún.
Откройте тестовую программу (File > Examples > 01Basics > Blink) и прошейте ее в Ардуино. Система попросит вас ввести пароль администратора - введите тот пароль, который вы указывали в конфигурациях Ардуино.
После завершения процесса прошивки, микроконтроллер 32U4 перезапустится и начнет выполнять загруженную программу. В данном случае на плате должен мигать светодиод, подключенный к 13 выводу.
Использование встроенного Ethernet
При подключении Yun к проводной сети через Ethernet-кабель, Ардуино попытается автоматически подключиться к сети через DHCP. При этом в меню Port плата будет отображаться точно так же, как и при подключении через WiFi.
Если вы хотите напрямую подключить Yun к своему компьютеру, необходимо либо настроить на нем статический IP-адрес, либо настроить DHCP-сервер.
Примечание: интерфейс ethernet - это eth1, а не eth0
Взаимодействие с Linino через Bridge
Библиотека Bridge позволяет Ардуино взаимодействовать с Linino. Существует несколько вспомогательных классов, предназначенных для взаимодействия двух описанных ниже компонентов. Наиболее полную информацию о них можно найти в справке по библиотеке Bridge.
Все основные модули Arduino Yun - WiFi, Ethernet, USB-хост и SD-карта - подключены к процессору AR9331. Библиотека Bridge позволяет работать с этими устройствами, запускать скрипты и взаимодействовать с различными веб-службами.
Класс Console
Класс Console построен на базе библиотеки Bridge, и позволяет Arduino Yún отправлять на компьютер информацию так же, как и при последовательном соединении, только по беспроводному интерфейсу. Он создает защищенное соединение между Yún и вашим компьютером с помощью протокола SSH, и работает подобно Терминалу.
Прошейте ваш Yún следующей программой:
#include <Console.h> const int ledPin = 13; // вывод, к которому подключен светодиод int incomingByte; // переменная для хранения поступающих по послед. интерфейсу данных void setup() { // инициализируем последовательный интерфейс: Bridge.begin(); Console.begin(); while (!Console){ ; // ожидаем открытия подключения и открытия порта Console. } Console.println("You're connected to the Console!!!!"); // конфигурируем пин, к которому подключен светодиод, как выход: pinMode(ledPin, OUTPUT); } void loop() { // проверяем, не поступили ли на вход внешние данные: if (Console.available() > 0) { // считываем первый байт из входного буфера: incomingByte = Console.read(); // если это код прописной буквы "H" (ASCII-код 72), то включаем светодиод: if (incomingByte == 'H') { digitalWrite(ledPin, HIGH); } // если это код буквы "L" (ASCII-код 76) - выключаем светодиод: if (incomingByte == 'L') { digitalWrite(ledPin, LOW); } } }
Чтобы увидеть Терминал, выберите в меню Port пункт с именем и IP-адресом вашего Arduino. Устройство отображается в этом меню только в том, случае, если ваш компьютер находится в той же локальной сети, что и Arduino Yún. Если же Ардуино работает в другой сети, то в списке портов его не будет. Запустите программу Port Monitor. Система запросит у вас пароль от Arduino Yún.
Увидеть терминал можно также, открыв командную строку и набрав в ней:
ssh root@yourYunsName.local 'telnet localhost 6571'
Примечание: если вы работаете под Windows, необходимо установить эмулятор командной строки Linux. Одним из таких эмуляторов является программа PuTTY, в которой указанные выше команды надо вводить отдельно.
Теперь можно ввести 'H' для включения светодиода на 13 выводе, и 'L' - для выключения.
Класс Process
Методы класса Process позволяют Ардуино запускать на Linino "линуксовые" процессы.
В следующем примере показано, как Linino соединяется с удаленным сервером и с помощью утилиты curl скачивает определенный ASCII-текст. Скачанный текст выводится по последовательному интерфейсу.
#include <Process.h> void setup() { // Инициализируем библиотеку Bridge Bridge.begin(); // Инициализируем последовательный интерфейс Serial.begin(9600); // Ждем подключения прикладной программы Serial Monitor while (!Serial); // запускаем различные примеры процессов runCurl(); } void loop() { // здесь ничего не делаем. } void runCurl() { // запускаем команду "curl" и возвращаем Arduino ascii-лого из сети // curl - это консольная утилита для передачи данных через различные Интернет-протоколы Process p; // Создаем процесс и называем его "p" p.begin("curl"); // Процесс, который будет вызывать команду "curl" p.addParameter("http://arduino.cc/asciilogo.txt"); // Добавляем к "curl" URL страницы p.run(); // Запускаем процесс и ожидаем его завершения // Выводим логотип Ардуино через последовательный порт // выходные данные процесса можно считать с помощью потоков while (p.available()>0) { char c = p.read(); Serial.print(c); } // Убеждаемся, что последний бит данных корректно отправлен. Serial.flush(); }
Использование Bridge для передачи информации между процессорами
Библиотека Bridge позволяет передавать информацию между двумя процессорами с использованием пары значений - ключ/параметр.
В этом примере показано, как с помощью библиотеки Bridge обращаться к цифровым и аналоговым выводам платы посредством REST-вызовов. Пример также демонстрирует, как можно создавать собственное API, если оформлять браузерные команды в REST-стиле.
Перед запуском этого примера, убедитесь, что ваш компьютер работает в той же сети, что и Arduino Yun.
После прошивки платы, программа позволяет считывать и изменять текущее состояние ее выводов, а также настраивать режим работы выводов (как вход или как выход).
Если запрос REST-пароля отключен, то для управления выводами в адресной строке браузера можно вводить следующие команды:
- http://myArduinoYun.local/arduino/digital/13 : вызывает функцию digitalRead(13);
- http://myArduinoYun.local/arduino/digital/13/1 : вызывает функцию digitalWrite(13,1);
- http://myArduinoYun.local/arduino/analog/9/123 : вызывает функцию analogWrite(9,123);
- http://myArduinoYun.local/arduino/analog/2 : вызывает функцию analogRead(2);
- http://myArduinoYun.local/arduino/mode/13/input : вызывает функцию pinMode(13, INPUT);
- http://myArduinoYun.local/arduino/mode/13/output : вызывает функцию pinMode(13, OUTPUT);
Для выполнения перечисленных команд можно использовать не только браузер, но и утилиту curl, к примеру.
Итак, в программу необходимо подключить библиотеки Bridge, YunServer и YunClient:
#include <Bridge.h> #include <YunServer.h> #include <YunClient.h>
Создадим экземпляр класса сервера, который позволит Yun ожидать подключения клиентов.
YunServer server;
В блоке setup() проинициализируем последовательный интерфейс (для последующей отладки) и подадим высокий уровень на встроенный светодиод (на 13 пине) до тех пор, пока не стартует библиотека Bridge. Метод Bridge.begin() является блокирующим, и на его выполнение может уйти около 2 секунд. Как только Brdige запустился, выключаем светодиод:
void setup() { Serial.begin(9600); pinMode(13,OUTPUT); digitalWrite(13, LOW); Bridge.begin(); digitalWrite(13, HIGH);
Во второй части блока setup() заставим экземпляр YunServer прослушивать входящие соединения только с localhost'а. Все подключения к Linino будут передаваться микроконтроллеру 32U4 для анализа и дальнейших манипуляций с выводами платы. Подключения осуществляются на порт 5555. Запустим сервер командой server.begin():
server.listenOnLocalhost(); server.begin(); }
В блоке loop() создадим экземпляр YunClient для обработки подключений. При подключении клиента - обработать все поступившие запросы в специальной функции (которая будет описана ниже) и закрыть соединение.
В конце блока loop() добавим небольшую задержку, чтобы сильно не нагружать процессор:
void loop() { YunClient client = server.accept(); if (client) { process(client); client.stop(); } delay(50); }
Создадим функцию под именем process, которая в качестве аргумента будет принимать объект YunClient. Внутри этой функции считывается поступившая от клиента команда и сохраняется в строковой переменной. Далее осуществляется разбор этой строки и анализ содержащихся в ней REST-команд (digital, analog или mode). В случае обнаружения REST-команды, поступившая от клиента информация передается соответствующей функции.
void process(YunClient client) { String command = client.readStringUntil('/'); if (command == "digital") { digitalCommand(client); } if (command == "analog") { analogCommand(client); } if (command == "mode") { modeCommand(client); } }
Создадим функцию для работы с цифровыми (digital) командами, поступившими от клиента, который является параметром этой функции. Внутри функции создадим несколько локальных переменных для хранения номера вывода и его состояния:
void digitalCommand(YunClient client) { int pin, value;
Далее займемся разбором запроса, поступившего от клиента, и попробуем отыскать номер вывода с помощью функции client.parseInt().
Если после номера вывода идет символ "/", значит, после него в URL'е должна быть указана 1 или 0. Это значение будет характеризовать состояние, в которое необходимо установить вывод - высокий уровень (HIGH) или низкий (LOW). Если в URL'е нет завершающего слэша "/", значит, необходимо просто считать состояние указанного вывода.
pin = client.parseInt(); if (client.read() == '/') { value = client.parseInt(); digitalWrite(pin, value); } else { value = digitalRead(pin); }
После этого отправляем клиенту текстовые сообщения и в хранилище данных обновляем значение ключа, соответствующего указанному выводу, той величиной, которая была задана клиентом.
Если отправляемое значение указать внутри конструкции F()
, то оно будет выводиться с флеш-памяти. Это позволяет экономить свободно пространство в памяти SRAM, что особенно актуально при работе с длинными строками, характерными для URL'ов.
Имя ключа объединяет в себе номер вывода, а также его тип. Например, ключ D2 означает, что передаваемое значение относится к цифровому (Digital) выводу под номером 2.
client.print(F("Pin D")); client.print(pin); client.print(F(" set to ")); client.println(value); String key = "D"; key += pin; Bridge.put(key, String(value)); }
Теперь таким же образом опишем функцию для работы с аналоговыми командами. Отличие будет заключаться в том, что при работе с аналоговыми входами Ардуино, в названии ключа будет фигурировать символ A вместо символа D:
void analogCommand(YunClient client) { int pin, value; pin = client.parseInt(); if (client.read() == '/') { value = client.parseInt(); analogWrite(pin, value); // информируем клиента о том, что произошло client.print(F("Pin D")); client.print(pin); client.print(F(" set to analog ")); client.println(value); String key = "D"; key += pin; Bridge.put(key, String(value)); } else { value = analogRead(pin); client.print(F("Pin A")); client.print(pin); client.print(F(" reads analog ")); client.println(value); String key = "A"; key += pin; Bridge.put(key, String(value)); } }
Создадим еще одну функцию для изменения режима работы выводов: в качестве аргумента принимаем объект YunClient, создаем локальную переменную для хранения номера вывода и, подобно предыдущим функциям, извлекаем из поступившей команды номер вывода:
void modeCommand(YunClient client) { int pin; pin = client.parseInt();
Проверяем правильность URL'а:
if (client.read() != '/') { client.println(F("error")); return; }
Если URL введен правильно, сохраняем его в строку. Если режим задан строками input или output - изменяем режим работы указанного вывода и информируем об этом клиента. В противном случае - возвращаем ошибку.
String mode = client.readStringUntil('\r'); if (mode == "input") { pinMode(pin, INPUT); // информируем клиента о том, что произошло client.print(F("Pin D")); client.print(pin); client.print(F(" configured as INPUT!")); return; } if (mode == "output") { pinMode(pin, OUTPUT); // информируем клиента о том, что произошло client.print(F("Pin D")); client.print(pin); client.print(F(" configured as OUTPUT!")); return; } client.print(F("error: invalid mode ")); client.print(mode); }
Более подробное описание этого примера можно найти здесь.
Подключение к интернет сервисам с помощью Temboo
Arduino Yún предоставляет пользователю ряд возможностей для работы в сети, но наиболее интересные вещи можно создавать при работе с онлайн-сервисами. Чтобы максимально упростить вам взаимодействие с этими службами, Arduino стали партнером Temboo. Temboo предоставляет доступ к более, чем 100 API различных сервисов через единый аккаунт, что позволяет вам объединять и всячески обрабатывать данные, поступающих с разных онлайн-платформ (например, с Twitter, Facebook, Foursquare и даже FedEx или PayPal).
В папке File > Examples > Bridge > Temboo содержится множнество примеров, которые помогут быстро освоить принципы работы Arduino Yún с облаком. Подробнее об интеграции Ардуино и Temboo можно узнать в рекомендациях по началу работы с Temboo.
Spacebrew
Spacebrew - это простой способ соединить между собой различные интерактивные вещи. Сервис работает по принципу клиента/сервера, для взаимодействия которых используется технология WebSockets. Он запускает на Yun пользовательский сервер на Python, облегчающий взаимодействие устройств между собой.
В программное обеспечение Ардуино включено множество примеров работы со Spacebrew для Yun. Подробнее о Spacebrew - см. документацию о проекте.
Установка дополнительного программного обеспечения на Linux
По умолчанию в дистрибутиве Linino для Arduino Yún уже установлено несколько программ, включая "curl" и "python". Однако, по желанию вы можете устанавливать и другие программы. В операционных системах Linux дополнительное программное обеспечение устанавливается с помощью инструмента под названием "package management system" (система управления пакетами). Для получения дополнительной информации, см. инструкции по работе с менеджером пакетов.
Что дальше?
Теперь, когда вы разобрались с основами работы Yun, можете копнуть глубже в направлении библиотеки Bridge и примеров работы с библиотекой. Для получения дополнительной технической информации см. страницу с описанием устройства Arduino Yún.