Bagaimana cara menggunakan Arduino dan node.js?

9

Saya baru mengenal Arduino, namun saya memiliki pengalaman dalam pengembangan web, belakangan ini saya telah menggunakan, meteor js dan tumpukan rata-rata untuk berbagai proyek. Namun, saya terbuka untuk mencoba bahasa apa pun untuk pengembangan.

Apa yang saya coba lakukan adalah membangun aplikasi sederhana untuk mengontrol LED pada Arduino melalui web.

Saya bekerja dengan orang lain, dan Arduino akan berada di belakang firewall jadi saya tidak yakin bagaimana mengaksesnya melalui internet. Saya memiliki akses ke Arduino Uun yang dapat saya gunakan untuk pengujian di rumah yang memang memiliki linio terhubung melalui jembatan, yang saya tidak begitu mengerti apa yang dilakukannya.

Saya juga pernah mendengar hal ini , tetapi ingin menjauh dari pihak ketiga membangun sebanyak mungkin jika saya bisa melakukannya sendiri.

Whats cara umum untuk melakukan ini dengan Arduino di belakang firewall? Bagaimana saya melakukan ini dengan Arduino Yun? Apakah lebih mudah dengan Yun?

Anders Kitson
sumber

Jawaban:

9

Saya sedang mengerjakan proyek serupa yang menggunakan internet untuk berkomunikasi dengan perangkat eksternal (seluler). Saya membaca data dari sensor dan mengirimkannya melalui web dengan soket web. Saya menggunakan Arduino Yun untuk proyek ini dan Spacebrew (untuk komunikasi soket web). Ini pendekatan yang sangat menarik tetapi cukup menantang dalam beberapa kasus. Anda mungkin akan mengalami masalah asinkron / sinkron, yang dalam kasus saya membuat saya menjalankan beberapa skrip Python pada Yun yang dipicu dari Memproses kode. Saat ini saya sedang menjalankan server Spacebrew di VPN saya, jadi saya dapat menghubungkan Yun saya di rumah dan menggunakan iphone saya dari mana-mana untuk mendapatkan bacaan.

Perlu juga disebutkan bahwa Yun dilengkapi dengan perpustakaan Temboo yang sudah diinstal, yang merupakan titik awal yang bagus untuk komunikasi web. Konfigurasi ini sangat mudah dan cepat. Anda juga akan menemukan dokumentasi resmi sangat berguna dan mudah dimengerti. Ini adalah titik awal yang sangat bagus untuk bereksperimen dengan aplikasi seperti web yang terintegrasi dengan Arduino Yun.

Pesawat ruang angkasa

  • http://docs.spacebrew.cc/

    Spacebrew adalah perangkat lunak perangkat lunak yang terbuka, dapat dirutekan secara dinamis untuk mengatur ruang interaktif. Atau, dengan kata lain, cara sederhana untuk menghubungkan hal-hal interaktif satu sama lain. Setiap elemen yang Anda sambungkan ke sistem dapat berlangganan, dan mempublikasikan umpan data.

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

    Repo ini berisi Spacebrew Library for Python bersama dengan dokumentasi dan contoh aplikasi.

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

    Pustaka Spacebrew Yun memiliki dua komponen utama - satu set skrip python yang berjalan di linino, dan perpustakaan yang berjalan di chip atmel. Anda menemukan informasi bagaimana menginstal kedua komponen ini sehingga Anda dapat terhubung ke Spacebrew dari sketsa Arduino.

Temboo

Yun juga membangun di perpustakaan Temboo, ini adalah cara yang bagus untuk mulai bereksperimen, setelah Anda membuktikan konsepnya, Anda dapat mulai mempersempit lingkungan Anda dan menjauh jika Anda tidak ingin menggunakan perangkat lunak pihak ketiga.

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

    Perpustakaan Temboo memudahkan untuk terhubung ke lebih dari 100 sumber daya dan layanan berbasis web dengan Processing. Saat ini Anda dapat menemukan perpustakaan untuk Android, Arduino, iOS, Java, Node.js, PHP, Pemrosesan, Python, REST API, Ruby, Twyla

Node.js

Anda juga dapat menjalankan node.js pada Yun itu sendiri, inilah artikel bagus dan beberapa paket yang siap dipasang:

Apa perpustakaan Bridge untuk Arduino Yun?

Anda juga bertanya tentang perpustakaan Bridge. Seperti yang Anda ketahui, Yun memiliki dua prosesor, yang satu menjalankan kode pemrosesan Anda, yang lain menggunakan Linux (Linino). Bridge pada dasarnya menyederhanakan komunikasi di antara mereka sehingga mereka dapat "berbicara" satu sama lain, informasi lebih lanjut di sini:

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

    (Diambil dari dokumentasi arduino.cc :)

    Arduino Yún memiliki dua prosesor. Salah satunya adalah ATmega32U4 seperti pada Arduino Leonardo. Yang lainnya adalah Atheros 9331, menjalankan Linux dan tumpukan nirkabel OpenWRT, yang memungkinkan board terhubung ke jaringan WiFi dan Ethernet. Dimungkinkan untuk memanggil program atau skrip khusus pada sistem Linux melalui Arduino untuk terhubung dengan berbagai layanan internet.

    Pustaka Bridge menyederhanakan komunikasi antara ATmega32U4 dan AR9331. Itu mewarisi dari Stream, dan banyak metode harus akrab dari Serial dan turunan lainnya dari Stream.

    Perintah Bridge dari 32U4 ditafsirkan oleh Python pada AR9331. Perannya adalah untuk menjalankan program di sisi GNU / Linux ketika diminta oleh Arduino, menyediakan ruang penyimpanan bersama untuk berbagi data seperti pembacaan sensor antara Arduino dan Internet, dan menerima perintah dari Internet dan meneruskannya langsung ke Arduino.

    Bridge memungkinkan komunikasi di kedua arah, bertindak sebagai antarmuka ke baris perintah Linino.

Mulai dari mana?

Saya akan mulai dengan Temboo jika saya adalah Anda, itu adalah kurva pembelajaran yang bagus dan langkah yang cukup sederhana untuk memulai. Anda juga akan belajar dan memahami cara kerja dewan dan bagaimana Anda dapat berkomunikasi dengan "dunia luar". Setelah Anda memiliki bukti konsep, mulailah bereksperimen dengan berbagai perpustakaan dan tingkatkan pendekatannya. Mungkin Anda akan menemukan Spacebrew lebih berguna nantinya atau bahkan menemukan solusi yang berbeda.

lokers
sumber
Selamat Datang di Arduino Stack Exchange! Bisakah Anda menambahkan lebih detail pada jawaban Anda? Jawaban yang semuanya atau sebagian besar tautan tidak dapat diterima di Stack Exchange karena jawabannya tidak berguna jika situs turun. Tautan ke perpustakaan baik-baik saja, karena perpustakaan tidak ada gunanya jika situs turun; artikel dan tutorial harus diparafrasekan. Mungkin hanya mengutip beberapa kalimat dan menambahkan beberapa kode contoh? Terima kasih!
Penguin Anonim
1

pertama-tama Anda harus jelas apa yang perlu Anda lakukan. Arduino UNO hanyalah mikrokontroler dengan koneksi serial (melalui USB). Agar arduino Anda dapat diakses dari internet, arduino Anda harus terhubung dengan internet, atau memiliki sesuatu yang bertindak seperti jembatan. Anda dapat menggunakan ethernet shield, wifi shiled, atau YUN witch adalah arduino UNO + linux mikro dengan ethernet dan wifi (dapat diprogram di phyton, atau chip dapat memerintahkan perintah pengiriman linux ke bash shell menggunakan perpustakaan jembatan khusus ) Anda bahkan dapat menghubungkan arduin di pc dengan usb dan membuat program jembatan, atau, jika firewall / router Anda adalah linux yang tidak dikunci / mirip, Anda dapat menggunakannya.

Berapa banyak pilihan, dan kita mulai untuk memutuskan bagaimana berbicara dengannya. Karena Anda ingin menggunakan node.sj, Anda dapat menggunakan socket atau get / post. Menggunakan soket lebih cepat, lebih ringan, dan dapat membuat koneksi tarik, dan hanya akan menjadi syarat. Dengan mendapatkan / memposting Anda bahkan tidak perlu js, formulir html murni akan dilakukan.

kemudian, setelah Anda memutuskan sistem penyihir yang Anda sukai (Arduino sebagai server http atau soket biasa), Anda dapat membuka port yang sesuai pada firewall / nat. tetapi hanya bagian terakhir

Lesto
sumber
Saya punya yun jadi saya akan menggunakannya. Saya telah terhubung ke yun melalui wifi dan ssh. Bagaimana saya mengatur server linux, dan daripada bagaimana saya membuka port?
Anders Kitson
lihat tutorial resmi, ini juga sudah memiliki server webv, Anda hanya perlu menambahkan halaman Anda sendiri :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto