Jak korzystać z Arduino i node.js?

9

Jestem nowy w Arduino, jednak mam doświadczenie w tworzeniu stron internetowych, ostatnio używam, Mete JS i średniego stosu do różnych projektów. Jestem jednak otwarty na wypróbowanie dowolnego języka dla rozwoju.

Staram się zbudować prostą aplikację do sterowania diodą LED w Arduino przez Internet.

Pracuję z inną osobą, a Arduino będzie za firewallem, więc nie jestem pewien, jak uzyskać do niego dostęp przez Internet. Mam dostęp do Arduino Uun, którego mogę używać do testowania w domu, który ma linio połączone mostem, co nie do końca rozumiem, co to robi.

Słyszałem o tym , ale chciałbym trzymać się z daleka od kompilacji stron trzecich, jeśli tylko mogę to zrobić.

Jaki jest typowy sposób, aby to zrobić z Arduino za firewallem? Jak to zrobić za pomocą Arduino Yun? Czy z Yun jest łatwiej?

Anders Kitson
źródło

Odpowiedzi:

9

Pracuję nad podobnym projektem, który wykorzystuje Internet do komunikacji z urządzeniem zewnętrznym (mobilnym). Czytam dane z czujników i przesyłam je przez sieć za pomocą gniazd sieciowych. Korzystam z Arduino Yun do tego projektu i Spacebrew (do komunikacji z gniazdami internetowymi). To bardzo interesujące podejście, ale w niektórych przypadkach stanowi wyzwanie. Prawdopodobnie napotkasz problem asynchroniczny / synchroniczny, co w moim przypadku doprowadziło mnie do uruchomienia niektórych skryptów Pythona na Yun'a wywołanych z kodu przetwarzania. Obecnie korzystam z serwera Spacebrew na mojej sieci VPN, więc mogę podłączyć swój Yun pozostawiony w domu i używać mojego iPhone'a zewsząd, aby uzyskać odczyt.

Warto również wspomnieć, że Yun ma fabrycznie zainstalowaną bibliotekę Temboo, która jest doskonałym punktem wyjścia do komunikacji internetowej. Konfiguracja jest naprawdę łatwa i szybka. Znajdziesz również oficjalną dokumentację bardzo przydatną i łatwą do zrozumienia. To naprawdę świetny punkt wyjścia do eksperymentowania z aplikacjami internetowymi zintegrowanymi z Arduino Yun.

Spacebrew

  • http://docs.spacebrew.cc/

    Spacebrew to otwarty, dynamicznie zmieniany programowy zestaw narzędzi do choreografii interaktywnych przestrzeni. Lub innymi słowy, prosty sposób łączenia ze sobą interaktywnych rzeczy. Każdy element podłączony do systemu może subskrybować i publikować kanały danych.

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

    To repozytorium zawiera bibliotekę Spacebrew dla Pythona wraz z dokumentacją i przykładowymi aplikacjami.

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

    Biblioteka Spacebrew Yun zawiera dwa główne komponenty - zestaw skryptów pythonowych uruchamianych na linino oraz bibliotekę działającą na chipie atmel. Znajdziesz tam informacje, jak zainstalować oba te komponenty, aby można było połączyć się ze Spacebrew ze szkicu Arduino.

Temboo

Yun ma również wbudowaną bibliotekę Temboo, jest to świetny sposób na rozpoczęcie eksperymentów, gdy udowodnisz koncepcję, możesz zacząć zawężać swoje środowisko i odchodzić, jeśli nie chcesz używać oprogramowania innych firm.

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

    Biblioteka Temboo ułatwia łączenie się z ponad 100 zasobami i usługami internetowymi dzięki Processing. Obecnie można znaleźć biblioteki dla Androida, Arduino, iOS, Java, Node.js, PHP, Processing, Python, REST API, Ruby, Twyla

Node.js

Możesz także uruchomić node.js na samym Yun, oto dobry artykuł i niektóre pakiety gotowe do zainstalowania:

Co to jest biblioteka Bridge dla Arduino Yun?

Pytałeś także o bibliotekę Bridge. Jak wiesz, Yun ma dwa procesory na pokładzie, jeden uruchamia kod przetwarzania, drugi ma Linuksa (Linino). Bridge w zasadzie upraszcza komunikację między nimi, aby mogli ze sobą „rozmawiać”, więcej informacji tutaj:

  • http://arduino.cc/en/Reference/YunBridgeLibrary

    (Na podstawie dokumentacji arduino.cc :)

    Arduino Yún ma dwa procesory na pokładzie. Jednym z nich jest ATmega32U4 jak na Arduino Leonardo. Drugi to Atheros 9331, na którym działa Linux i bezprzewodowy stos OpenWRT, który umożliwia płytce połączenie z siecią WiFi i Ethernet. Możliwe jest wywoływanie programów lub niestandardowych skryptów w systemie Linux za pośrednictwem Arduino, aby łączyć się z różnymi usługami internetowymi.

    Biblioteka Bridge upraszcza komunikację między ATmega32U4 i AR9331. Dziedziczy po Streamie, a wiele metod powinno być znanych z Serial i innych pochodnych Stream.

    Komendy mostkowe z 32U4 są interpretowane przez Python na AR9331. Jego rolą jest uruchamianie programów po stronie GNU / Linux na prośbę Arduino, zapewnienie wspólnej przestrzeni do udostępniania danych, takich jak odczyty czujników między Arduino i Internetem, oraz odbieranie poleceń z Internetu i przekazywanie ich bezpośrednio do Arduino.

    Bridge umożliwia komunikację w obu kierunkach, działając jako interfejs do wiersza poleceń Linino.

Gdzie zacząć?

Chciałbym zacząć od Temboo, gdybym był tobą, to świetna krzywa uczenia się i dość prosty krok na początek. Dowiesz się również i zrozumiesz, jak działa tablica i jak komunikować się ze „światem zewnętrznym”. Po uzyskaniu potwierdzenia koncepcji zacznij eksperymentować z różnymi bibliotekami i ulepsz swoje podejście. Być może później Spacebrew będzie bardziej przydatny, a nawet odkryjesz różne rozwiązania.

lokers
źródło
Witamy w Arduino Stack Exchange! Czy możesz dodać więcej szczegółów do swojej odpowiedzi? Odpowiedzi, które są w całości lub w większości odsyłaczami, są niedopuszczalne na Stack Exchange, ponieważ odpowiedź jest bezużyteczna, jeśli witryna ulegnie awarii. Łącza do bibliotek są w porządku, ponieważ biblioteka jest bezużyteczna, jeśli witryna ulegnie awarii; artykuły i tutoriale należy sparafrazować. Może po prostu zacytuj kilka zdań i dodaj przykładowy kod? Dzięki!
Anonimowy pingwin
1

przede wszystkim musisz jasno określić, co musisz zrobić. Arduino UNO to tylko mikrokontroler z połączeniem szeregowym (przez USB). Aby twoje arduino było dostępne z Internetu, musisz połączyć się z Internetem lub mieć coś, co działa jak most. Możesz użyć tarczy Ethernet, zepsutego Wi-Fi lub wiedźma YUN to arduino UNO + mikro Linux z Ethernetem i Wi-Fi (programowalne w phyton, lub chip może wydać polecenie wysyłania linuksa do powłoki powłoki za pomocą specjalnej biblioteki mostu ) Możesz nawet podłączyć arduin na PC za pomocą USB i stworzyć program pomostowy lub, jeśli twoja zapora ogniowa / router jest odblokowanym linuksem / podobnym urządzeniem, możesz go użyć.

Ile opcji, a my rozpoczynamy wydarzenie, aby zdecydować, jak o tym porozmawiać. Jak chcesz użyć node.sj, możesz użyć gniazda lub get / post. Korzystanie z gniazda jest szybsze, lżejsze i może tworzyć połączenie typu pull, a js będzie niezbędny. Z get / post nawet nie potrzebujesz js, wystarczy czysty formularz HTML.

następnie, gdy zdecydujesz, który system lubisz (arduino jako serwer http lub zwykłe gniazdo), możesz otworzyć odpowiedni port w firewallu / nat. ale to tylko ostatnia część

Lesto
źródło
Mam yun, więc będę tego używał. Podłączyłem się do yun przez Wi-Fi i SSH. Jak skonfigurować serwer Linux, a następnie jak otworzyć port?
Anders Kitson,
zobacz oficjalny samouczek, ma już serwer webv, wystarczy dodać własną stronę :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto