Làm cách nào để sử dụng Arduino và node.js?


9

Tôi chưa quen với Arduino, tuy nhiên tôi có kinh nghiệm trong việc phát triển web, gần đây tôi đã sử dụng, sao băng js và ngăn xếp trung bình cho các dự án khác nhau. Tuy nhiên, tôi sẵn sàng thử bất kỳ ngôn ngữ nào để phát triển.

Những gì tôi đang cố gắng làm là xây dựng một ứng dụng đơn giản để điều khiển đèn LED trên Arduino trên web.

Tôi đang làm việc với một người khác và Arduino sẽ đứng sau một tường lửa nên tôi không chắc làm thế nào để truy cập nó qua internet. Tôi có quyền truy cập vào Arduino Uun mà tôi có thể sử dụng để thử nghiệm tại nhà có kết nối linio qua cầu nối, điều mà tôi không hiểu lắm đó là gì.

Tôi cũng đã nghe nói về điều này , nhưng muốn tránh xa các bên thứ ba xây dựng càng nhiều càng tốt nếu tôi có thể tự làm điều đó.

Cách phổ biến để làm điều này với Arduino đằng sau tường lửa là gì? Làm thế nào để tôi làm điều này với Arduino Yun? Là dễ dàng hơn với một Yun?

Câu trả lời:


9

Tôi đang làm việc trên một dự án tương tự sử dụng internet để liên lạc với thiết bị bên ngoài (di động). Tôi đang đọc dữ liệu từ các cảm biến và chuyển chúng qua web với các ổ cắm web. Tôi đang sử dụng Arduino Yun cho dự án này và Spacebrew (cho giao tiếp ổ cắm web). Đó là cách tiếp cận rất thú vị nhưng khá khó khăn trong một số trường hợp. Bạn có thể sẽ gặp phải vấn đề không đồng bộ / đồng bộ, trong trường hợp của tôi, điều này dẫn tôi đến việc chạy một số tập lệnh Python trên Yun được kích hoạt từ Xử lý mã. Tôi hiện đang chạy máy chủ Spacebrew trên VPN của mình, vì vậy tôi có thể kết nối Yun của tôi ở nhà và sử dụng iphone của tôi từ khắp mọi nơi để có được bài đọc.

Điều đáng nói là Yun đi kèm với thư viện Temboo được cài đặt sẵn, đây là điểm khởi đầu tuyệt vời cho giao tiếp web. Cấu hình thực sự dễ dàng và nhanh chóng. Bạn cũng sẽ tìm thấy tài liệu chính thức rất tiện dụng và dễ hiểu. Đó thực sự là điểm khởi đầu tuyệt vời để thử nghiệm các ứng dụng giống như web được tích hợp với Arduino Yun.

Tàu vũ trụ

  • http://docs.spacebrew.cc/

    Spacebrew là một bộ công cụ phần mềm mở, có thể định tuyến lại linh hoạt để biên đạo các không gian tương tác. Hay nói cách khác, một cách đơn giản để kết nối những thứ tương tác với nhau. Mọi yếu tố bạn kết nối với hệ thống đều có thể đăng ký và xuất bản các nguồn cấp dữ liệu.

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

    Repo này chứa Thư viện Spacebrew cho Python cùng với các ứng dụng tài liệu và ví dụ.

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

    Thư viện Spacebrew Yun có hai thành phần chính - một tập các kịch bản python chạy trên linino và một thư viện chạy trên chip atmel. Bạn tìm thấy thông tin về cách cài đặt cả hai thành phần này để bạn có thể kết nối với Spacebrew từ bản phác thảo Arduino.

Temboo

Yun cũng đã xây dựng trong thư viện Temboo, đó là một cách tuyệt vời để bắt đầu thử nghiệm, một khi bạn chứng minh được khái niệm bạn có thể bắt đầu thu hẹp môi trường của mình và chuyển đi nếu bạn không muốn sử dụng phần mềm của bên thứ 3.

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

    Thư viện Temboo giúp dễ dàng kết nối với hơn 100 tài nguyên và dịch vụ dựa trên web với Chế biến. Hiện tại bạn có thể tìm thấy các thư viện cho Android, Arduino, iOS, Java, Node.js, PHP, Xử lý, Python, API REST, Ruby, Twyla

Node.js

Bạn cũng có thể chạy node.js trên chính Yun, đây là bài viết hay và một số gói đã sẵn sàng để cài đặt:

Thư viện cầu cho Arduino Yun là gì?

Bạn cũng hỏi về thư viện Bridge. Như bạn đã biết Yun có hai bộ xử lý trên tàu, một bộ đang chạy mã Xử lý của bạn, bộ kia có Linux trên đó (Linino). Cầu cơ bản đơn giản hóa việc giao tiếp giữa họ để họ có thể "nói chuyện" với nhau, thêm thông tin ở đây:

  • http://arduino.cc/en/Reference/YunBridgeL Library

    (Lấy từ tài liệu arduino.cc :)

    Arduino Yún có hai bộ xử lý trên tàu. Một là ATmega32U4 giống như trên Arduino Leonardo. Cái còn lại là Atheros 9331, chạy Linux và ngăn xếp không dây OpenWRT, cho phép bo mạch kết nối với mạng WiFi và Ethernet. Có thể gọi các chương trình hoặc tập lệnh tùy chỉnh trên hệ thống Linux thông qua Arduino để kết nối với các dịch vụ internet khác nhau.

    Thư viện Bridge đơn giản hóa việc giao tiếp giữa ATmega32U4 và AR9331. Nó kế thừa từ Stream và nhiều phương thức nên quen thuộc với serial và các dẫn xuất khác của Stream.

    Các lệnh cầu nối từ 32U4 được Python diễn giải trên AR9331. Vai trò của nó là thực thi các chương trình về phía GNU / Linux khi được Arduino yêu cầu, cung cấp một không gian lưu trữ chung để chia sẻ dữ liệu như đọc cảm biến giữa Arduino và Internet và nhận lệnh từ Internet và chuyển trực tiếp chúng tới Arduino.

    Bridge cho phép giao tiếp theo cả hai hướng, hoạt động như một giao diện với dòng lệnh Linino.

Bắt đầu từ đâu?

Tôi sẽ bắt đầu với Temboo nếu tôi là bạn, đó là một đường cong học tập tuyệt vời và bước khởi đầu khá đơn giản. Bạn cũng sẽ tìm hiểu và hiểu cách thức hoạt động của bảng và cách bạn có thể giao tiếp với "thế giới bên ngoài". Khi bạn có bằng chứng về khái niệm, hãy bắt đầu thử nghiệm với các thư viện khác nhau và cải thiện cách tiếp cận. Có lẽ bạn sẽ thấy Spacebrew tiện dụng hơn sau này hoặc thậm chí khám phá các giải pháp khác nhau.


Chào mừng bạn đến với Sàn giao dịch Arduino! Bạn có thể vui lòng thêm chi tiết cho câu trả lời của bạn? Câu trả lời là tất cả hoặc chủ yếu là các liên kết không được chấp nhận trên Stack Exchange vì câu trả lời là vô ích nếu trang web bị sập. Các liên kết đến thư viện là tốt, vì thư viện là vô dụng nếu trang web bị sập; bài viết và hướng dẫn nên được diễn giải. Có lẽ chỉ cần trích dẫn một vài câu và thêm một số mã ví dụ? Cảm ơn!
Chim cánh cụt ẩn danh

1

trước hết bạn cần phải rõ ràng những gì bạn cần làm. Arduino UNO chỉ là một vi điều khiển có kết nối nối tiếp (qua USB). Để làm cho arduino của bạn có thể truy cập từ internet, nó cần được kết nối với internet hoặc để có một cái gì đó hoạt động như một cây cầu. Bạn có thể sử dụng lá chắn ethernet, wifi shiled hoặc phù thủy YUN là arduino UNO + micro linux có ethernet và wifi (có thể lập trình trong phyton hoặc chip có thể ra lệnh gửi linux tới bash shell bằng thư viện cầu đặc biệt ) Bạn thậm chí có thể kết nối arduin trên máy tính bằng usb và tạo một chương trình cầu nối, hoặc, nếu tường lửa / bộ định tuyến của bạn là một linux / tương tự được mở khóa, bạn có thể sử dụng nó.

Có bao nhiêu lựa chọn và chúng tôi bắt đầu sự kiện để quyết định cách nói chuyện với nó. Khi bạn muốn sử dụng node.sj, bạn có thể sử dụng socket hoặc get / post. Sử dụng ổ cắm nhanh hơn, nhẹ hơn và có thể tạo kết nối kéo và js sẽ là một điều cần thiết. Với get / post bạn thậm chí không cần js, dạng html thuần túy sẽ làm được.

sau đó, sau khi bạn quyết định phù thủy bạn thích (arduino là máy chủ http hoặc ổ cắm đơn giản), bạn có thể mở cổng tương ứng trên tường lửa / nat. nhưng chỉ là phần cuối cùng


Tôi có một yun vì vậy tôi sẽ sử dụng nó. Tôi đã kết nối với yun qua wifi và ssh. Làm cách nào để thiết lập máy chủ linux và làm cách nào để mở một cổng?
Anders Kitson

xem hướng dẫn chính thức, nó altready có một máy chủ webv, bạn chỉ cần thêm trang của riêng bạn :) scuola.arduino.cc/lesson/b4EoRkV/...
Lesto
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.