Как мне использовать Arduino и node.js?

9

Я новичок в Arduino, однако у меня есть опыт веб-разработки, в последнее время я использую, meteor js и средний стек для различных проектов. Тем не менее, я готов попробовать любой язык для развития.

Я пытаюсь создать простое приложение для управления светодиодом на Arduino через Интернет.

Я работаю с другим человеком, и Arduino будет за брандмауэром, поэтому я не уверен, как получить к нему доступ через Интернет. У меня есть доступ к Arduino Uun, который я могу использовать для тестирования дома, у которого действительно есть linio, подключенный через мост, который я не совсем понимаю, что это делает.

Я также слышал об этом , но хотел бы как можно больше держаться подальше от сторонних сборок, если смогу сделать это сам.

Какой общий способ сделать это с Arduino за брандмауэром? Как мне сделать это с Arduino Yun? Это проще с юн?

Андерс Китсон
источник

Ответы:

9

Я работаю над аналогичным проектом, который использует Интернет для связи с внешним устройством (мобильным). Я читаю данные с датчиков и передаю их через Интернет с помощью веб-сокетов. Я использую 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 более удобным или даже найдете другие решения.

lokers
источник
Добро пожаловать в Arduino Stack Exchange! Можете ли вы добавить более подробную информацию к вашему ответу? Ответы, которые являются всеми или в основном ссылками, неприемлемы на Stack Exchange, потому что ответ бесполезен, если сайт отключается. Ссылки на библиотеки в порядке, так как библиотека бесполезна, если сайт отключается; статьи и учебники должны быть перефразированы. Может, просто процитировать несколько предложений и добавить пример кода? Спасибо!
Анонимный Пингвин,
1

Прежде всего, вы должны иметь четкое представление о том, что вам нужно делать. 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. но это только последняя часть

Lesto
источник
У меня есть юн, поэтому я буду этим пользоваться. Я подключился к юн через Wi-Fi и SSH. Как мне настроить сервер Linux и чем я могу открыть порт?
Андерс Китсон
см. официальный учебник, он уже имеет веб-сервер, вам просто нужно добавить свою собственную страницу :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto