Як я можу використовувати Arduino та node.js?


9

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

Що я намагаюся зробити - це створити просту програму для керування світлодіодом на Arduino через Інтернет.

Я працюю з іншою людиною, і Arduino буде за брандмауером, тому я не знаю, як отримати доступ до нього через Інтернет. У мене є доступ до Arduino Uun, який я можу використовувати для тестування вдома, у якого лінійка підключена через міст, і я не зовсім розумію, що це робить.

Я також чув про це , але хотів би якомога більше триматися подалі від сторонніх будівель, якщо я можу це зробити сам.

Який загальний спосіб зробити це з Arduino за брандмауером? Як це зробити з Arduino Yun? Чи легше з Юном?

Відповіді:


9

Я працюю над подібним проектом, який використовує Інтернет для спілкування із зовнішнім пристроєм (мобільним). Я читаю дані з датчиків і передаю їх по Інтернету з веб-розетками. Я використовую Arduino Yun для цього проекту та Spacebrew (для зв'язку в веб-сокетах). Це дуже цікавий підхід, але досить складний у деяких випадках. Ви, ймовірно, зіткнетеся з асинхронною / синхронною проблемою, яка в моєму випадку призвела до запуску деяких скриптів Python на Yun, запущених з коду обробки. В даний час я працюю на сервері Spacebrew на своєму VPN, тому я можу підключити свій Yun, що залишився вдома, і використовувати свій iphone скрізь, щоб отримати показання.

Також варто згадати, що Yun поставляється з попередньо встановленою бібліотекою Temboo, що є чудовою відправною точкою для веб-спілкування. Конфігурація дійсно проста і швидка. Ви також знайдете офіційну документацію дуже зручно і легко зрозуміти. Це дійсно чудова відправна точка для експериментів із веб-подібними програмами, інтегрованими з Arduino Yun.

Космос

  • http://docs.spacebrew.cc/

    Spacebrew - це відкритий, динамічно повторюваний набір програмних засобів для хореографії інтерактивних просторів. Або, іншими словами, простий спосіб з'єднати інтерактивні речі між собою. Кожен елемент, який ви підключите до системи, може підписатися та публікувати канали даних.

  • http://github.com/Spacebrew/pySpacebrew

    Ця репорта містить бібліотеку Spacebrew для Python, а також документацію та приклади програм.

  • http://github.com/julioterra/yunSpacebrew

    Бібліотека Spacebrew Yun має два основні компоненти - набір сценаріїв python, які працюють на лініно, та бібліотеку, що працює на мікросхемі atmel. Ви знайдете інформацію про те, як встановити обидва ці компоненти, щоб ви могли підключитися до Spacebrew за допомогою ескізу Arduino.

Тембу

Yun також створив бібліотеку Temboo, це прекрасний спосіб почати експериментувати, як тільки ви доведете концепцію, ви можете почати звужувати своє оточення та віддалятися, якщо не хочете використовувати програмне забезпечення сторонніх виробників.

  • http://www.temboo.com/arduino

    Бібліотека Temboo полегшує підключення до понад 100 веб-ресурсів та служб за допомогою Processing. В даний час ви можете знайти бібліотеки для Android, Arduino, iOS, Java, Node.js, PHP, Processing, Python, REST API, Ruby, Twyla

Node.js

Ви також можете запустити node.js у самій Yun, ось добра стаття та деякі пакунки, готові встановити:

Що таке мостова бібліотека для Arduino Yun?

Ви також запитали про бібліотеку Bridge. Як ви знаєте, у 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! Чи можете ви додати більш детальну інформацію у відповідь? Відповіді, які є усіми або здебільшого посиланнями, не є прийнятними на біржі стека, оскільки відповідь марна, якщо сайт не працює. Посилання на бібліотеки є прекрасними, оскільки бібліотека марна, якщо сайт не працює; статті та навчальні посібники слід перефразовувати. Може, просто процитуйте кілька речень та додайте приклад коду? Дякую!
Анонімний пінгвін

1

перш за все вам потрібно мати чітке поняття, що вам потрібно зробити. Arduino UNO - це лише мікроконтролер із послідовним (через USB) з'єднанням. Щоб зробити ваш ардуїно доступним з Інтернету, його потрібно з'єднати з Інтернетом або мати щось таке, що є мостом. Ви можете використовувати ethernet-щит, вимкнений wifi або YUN-відьма - це ардуїно UNO + мікролінукс з ethernet і wifi (програмується у фітоні, або чіп може командувати команду відсилання linux до bash shell за допомогою спеціальної бібліотеки мосту ) Ви навіть можете підключити arduin на ПК за допомогою usb та створити програму мосту, або, якщо ваш брандмауер / маршрутизатор є розблокованим Linux / подібним, ви можете використовувати його.

Скільки варіантів, і ми починаємо події, щоб вирішити, як з ним поговорити. Як ви хочете використовувати node.sj, ви можете використовувати socket або get / post. Використання сокета швидше, легше і може створити підключення, і js стане реквізитом. З get / post вам навіть js не потрібен, чиста форма html буде робити.

потім, після того як ви вирішили, що вам подобається система відьом (arduino як http-сервер або звичайний сокет), ви можете відкрити відповідний порт на брандмауері / nat. але це лише остання частина


У мене є юн, тому я буду використовувати це. Я підключився до юни через wifi та ssh. Як налаштувати сервер Linux та чим відкрити порт?
Андерс Кітсон

дивіться офіційний підручник, у нього вже є сервер webv, вам просто потрібно додати власну сторінку :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.