Я работаю над аналогичным проектом, который использует Интернет для связи с внешним устройством (мобильным). Я читаю данные с датчиков и передаю их через Интернет с помощью веб-сокетов. Я использую Arduino Yun для этого проекта и Spacebrew (для связи через веб-сокеты). Это очень интересный подход, но в некоторых случаях это довольно сложная задача. Вы, вероятно, столкнетесь с асинхронной / синхронной проблемой, которая в моем случае привела меня к запуску некоторых сценариев Python для Yun, запускаемых из кода обработки. В настоящее время я использую сервер Spacebrew в своем VPN, так что я могу подключить свой Yun, оставленный дома, и использовать свой iphone откуда угодно, чтобы получить показания.
Стоит также упомянуть, что Yun поставляется с предустановленной библиотекой Temboo, которая является отличной отправной точкой для общения в Интернете. Конфигурация действительно проста и быстра. Вы также найдете официальную документацию очень удобной и простой для понимания. Это действительно отличная отправная точка для экспериментов с веб-приложениями, интегрированными с Arduino Yun.
Spacebrew
http://docs.spacebrew.cc/
Spacebrew - это открытый, динамически перестраиваемый программный инструментарий для хореографии интерактивных пространств. Или, другими словами, простой способ соединять интерактивные вещи друг с другом. Каждый элемент, подключенный к системе, может подписываться и публиковать потоки данных.
http://github.com/Spacebrew/pySpacebrew
Этот репозиторий содержит библиотеку Spacebrew для Python, а также документацию и примеры приложений.
http://github.com/julioterra/yunSpacebrew
Библиотека Spacebrew Yun включает в себя два основных компонента - набор скриптов python, которые работают на linino, и библиотека, которая работает на чипе atmel. Там вы найдете информацию о том, как установить оба этих компонента, чтобы вы могли подключиться к Spacebrew из эскиза Arduino.
Temboo
Yun также встроил библиотеку Temboo, это отличный способ начать эксперименты. Как только вы докажете концепцию, вы можете начать сужать свою среду и уходить, если вы не хотите использовать стороннее программное обеспечение.
http://www.temboo.com/arduino
Библиотека Temboo позволяет легко подключаться к более чем 100 веб-ресурсам и сервисам с помощью Processing. В настоящее время вы можете найти библиотеки для Android, Arduino, iOS, Java, Node.js, PHP, обработки, Python, REST API, Ruby, Twyla
Node.js
Вы также можете запустить node.js на самом Yun, вот хорошая статья и некоторые пакеты, готовые к установке:
Что такое Мостовая библиотека для Arduino Yun?
Вы также спросили о библиотеке Бриджа. Как вы знаете, у Yun на борту два процессора: один выполняет ваш код обработки, а другой - Linux (Linino). Мост в основном упрощает связь между ними, чтобы они могли «общаться» друг с другом, больше информации здесь:
http://arduino.cc/en/Reference/YunBridgeLibrary
(Взято из документации arduino.cc :)
Arduino Yún имеет два процессора на борту. Одним из них является ATmega32U4, как на Arduino Leonardo. Другой - это Atheros 9331, работающий под управлением Linux и беспроводного стека OpenWRT, который позволяет плате подключаться к сетям WiFi и Ethernet. Через Arduino можно вызывать программы или пользовательские сценарии в системе Linux для подключения к различным интернет-сервисам.
Библиотека Bridge упрощает связь между ATmega32U4 и AR9331. Он наследуется от Stream, и многие методы должны быть знакомы с последовательными и другими производными Stream.
Команды моста от 32U4 интерпретируются Python на AR9331. Его роль заключается в выполнении программ на стороне GNU / Linux по запросу Arduino, предоставлении общего пространства хранения для обмена данными, такими как показания датчиков, между Arduino и Интернетом, а также получения команд из Интернета и передачи их непосредственно в Arduino.
Bridge обеспечивает связь в обоих направлениях, выступая в качестве интерфейса с командной строкой Linino.
Когда начать?
Я бы начал с Temboo на вашем месте, это отличная кривая обучения и довольно простой шаг для начала. Вы также узнаете и поймете, как работает доска и как вы можете общаться с «внешним миром». Получив подтверждение концепции, начните экспериментировать с различными библиотеками и улучшите подход. Возможно, позже вы найдете Spacebrew более удобным или даже найдете другие решения.
Прежде всего, вы должны иметь четкое представление о том, что вам нужно делать. Arduino UNO - это просто микроконтроллер с последовательным (через USB) соединением. Чтобы сделать Arduino доступным из Интернета, он должен быть подключен к Интернету или иметь что-то похожее на мост. Вы можете использовать Ethernet-щит, Wi-Fi Shiled или YUN, являющийся Arduino UNO + Micro Linux с Ethernet и Wi-Fi (программируемый в Phyton, или чип может командовать командой отправки Linux для оболочки Bash, используя специальную библиотеку мостов. ) Вы можете даже подключить arduin на ПК через usb и создать программу-мост, или, если ваш брандмауэр / маршрутизатор является разблокированным linux / аналогичным, вы можете использовать его.
Сколько стоит вариант, и мы начинаем событие, чтобы решить, как с ним разговаривать. Поскольку вы хотите использовать node.sj, вы можете использовать socket или get / post. Использование сокета быстрее, легче и может создать тяговое соединение, и js будет необходимым. С get / post вам даже не нужны js, подойдет чистая HTML-форма.
затем, после того, как вы решите, какая система вам нравится (arduino как http-сервер или обычный сокет), вы можете открыть соответствующий порт в брандмауэре / nat. но это только последняя часть
источник