Làm cách nào tôi có thể kết nối với Arduino bằng WiFi?


27

Tôi đang làm việc để xây dựng một trạm thời tiết dựa trên năng lượng mặt trời dựa trên Arduino. Trạm thời tiết bao gồm một cảm biến nhiệt độ và một quang điện trở, và tôi dự định sẽ thêm một máy đo gió trong tương lai. Tôi muốn kết nối trạm thời tiết với mạng không dây của mình để tôi có thể truy xuất dữ liệu cảm biến từ máy tính của mình mà không phải chạy dây (tôi sống trong một dịch vụ cho thuê).

Các tùy chọn khác nhau để kết nối Arduino với WiFi là gì? Tôi đã xem các lá chắn ethernet, khiên WiFi và một thứ gọi là Xbee, nhưng tôi không hiểu mỗi cái đó dùng để làm gì.

Tôi cũng có một bộ định tuyến gia đình không dây mà tôi có thể sử dụng. Có thể kết nối Arduino Uno của tôi với bộ định tuyến thông qua cổng ethernet hoặc USB của bộ định tuyến và sau đó nhận dữ liệu từ và gửi lệnh tới Arduino không dây qua mạng gia đình của tôi không? Nếu vậy, làm thế nào điều này sẽ được thực hiện?

Tôi hiện đang có một Arduino Uno trần.


4
Bạn có lá chắn Ethernet không?
jfpoilpret

3
Bạn cần làm rõ câu hỏi của mình: "giao tiếp với nó" nghĩa là gì? Tải lên bản phác thảo? Gửi lệnh đến một bản phác thảo? Lấy dữ liệu từ một bản phác thảo?
jfpoilpret

Tôi đã cố gắng thêm chi tiết và bối cảnh cho câu hỏi. Tôi không có bất kỳ lá chắn hiện tại.
jlbnjmn

Tôi không nghĩ rằng bất kỳ sửa đổi nào của Uno chính thức đều có cổng ethernet. Tôi đoán bạn phải có một Arduino Ethernet (tương tự), hoặc có lẽ là một bản sao không chính thức của một loại nào đó?
Peter Bloomfield

Tôi đã chỉnh sửa câu hỏi để chỉ định cổng ethernet trên bộ định tuyến không dây. Vậy câu hỏi là: [Arduino +? + (Bộ định tuyến không dây OR?) = Arduino gửi dữ liệu qua mạng không dây của tôi].
jlbnjmn

Câu trả lời:


24

Bạn có một vài tùy chọn để kết nối Arduino của bạn với mạng / Internet.

Ethernet

Một cái gì đó giống như Arduino Ethernet Shield cho phép bạn cắm cáp Ethernet từ tường hoặc bộ định tuyến vào Arduino của bạn. Rõ ràng, hạn chế chính là thiết bị của bạn bây giờ được buộc bằng dây cáp. Để sử dụng ngoài trời, tôi sẽ không làm điều này.

Wifi

Các Arduino WiFi khiên cho phép bạn kết nối với mạng gia đình WiFi của bạn. Điều này giống như Ethernet ngoại trừ không dây.

Các ESP8266 là một thay thế rẻ hơn rằng, với firmware mặc định, có các chức năng tương tự như WiFi Shield. Hãy cẩn thận rằng bạn cấp nguồn cho nó với 3,3V chứ không phải 5V như phần còn lại của Arduino. Nó cũng sử dụng các mức logic 3,3V vì vậy đừng kết nối trực tiếp chân TX của Arduino với chân RX của ESP; sử dụng một bộ chia điện áp.

RF

Nếu bạn có nhiều cảm biến hoặc các thiết bị khác cần liên lạc với nhau, tùy chọn tốt nhất thường là mô-đun RF. Bạn có nhiều lựa chọn ở đây, XBee là một trong số đó. Kiểm tra Hướng dẫn mua Sparkfun XBee để xem tất cả các tùy chọn có sẵn. Và đó chỉ là XBee. Có nhiều tùy chọn không dây khác có sẵn, ở tất cả các loại giá.

Điều với RF là không ai trong số này sẽ kết nối với Internet. Bạn sẽ có tất cả các thiết bị của mình giao tiếp với nhau hoặc trạm gốc, sau đó sẽ được kết nối với mạng bằng mô-đun WiFi hoặc Ethernet.

Bộ định tuyến không dây

Tùy thuộc vào loại bộ định tuyến không dây bạn sử dụng, bạn có thể để Arduino giao tiếp trực tiếp với nó và sử dụng nó làm kết nối với mạng.


1
Đối với giao tiếp "RF", bạn cũng có thể sử dụng các mô-đun nRF24L01 + phổ biến. Có một số thư viện tốt cho việc này. Vấn đề với liên kết RF là bạn cần phải có Arduino hoặc Raspberry Pi khác, v.v. chạy như "máy thu" sau đó được kết nối với máy tính của bạn, nơi bạn muốn lưu trữ / xem / phân tích dữ liệu. Đối với Wifi, hiện tại cũng có các tấm chắn CC3000
Mike WP

Trong khi nghiên cứu các tùy chọn bạn cung cấp, tôi đã bắt gặp Yun. Đó sẽ là một lựa chọn đơn giản hơn? Cảm ơn.
jlbnjmn

Có lẽ. không bao giờ sử dụng nó cho mình. Các tấm chắn không khó để giao tiếp và có thể rẻ hơn.
sachleen

4

Kết hôn với OpenWrt và Arduino của bạn

Nhận một bộ định tuyến nhỏ có khả năng OpenWrt như "TP-Link TL-WR703N", flash nó với phiên bản OpenWrt ổn định hiện tại và kết nối Arduino của bạn với cổng USB của bộ định tuyến.

Giải pháp này chiếm một nửa hoặc ít hơn chi phí cho các tấm chắn WiFi và có nhiều năng lượng hơn.

... và rẻ hơn như một YÙN.

Máy chủ web tự động hóa nhà thông minh trên bộ định tuyến OpenWRT WR703N giao tiếp với Arduino, so với Raspberry Pi và Ubuntu có thể là điểm khởi đầu để đọc về điều này và công cụ tìm kiếm yêu thích của bạn sẽ tìm thấy nhiều liên kết hơn về việc kết hôn với WR703N và Arduinos ...

(!) Vui lòng xem https://arduino.stackexchange.com/a/1754/653 quá ....


4

ESP8266 là mô-đun wifi 5 $ giá rẻ với kết nối UART, SPI. Điều này có thể được tích hợp với Arduino một cách liền mạch thông qua phần mềm chứng khoán bằng cách sử dụng các lệnh AT hoặc bằng cách viết phần sụn tùy chỉnh bằng SDK được cung cấp và GIPO có sẵn. Để tham khảo thêm http://www.esp8266.com/


3

Tôi đã làm việc với xbee trên arduino và raspberry pi được vài tháng rồi. Mặc dù nó có vấn đề và sự kỳ quặc, nhưng nó là một công cụ tuyệt vời trong chuỗi truyền thông. Nó không hoàn hảo nhưng với mặt lưới của nó, đối với tôi nó còn vươn xa hơn cả wifi của tôi và thậm chí có thể đáng tin cậy hơn (pi mâm xôi của tôi với wifi thỉnh thoảng bị mất, tuy nhiên xbee được kết nối vẫn hoạt động ở chế độ nền.

Cụ thể trong trường hợp của tôi, nó cho phép kết nối nối tiếp giữa các thiết bị của tôi (là một số arduinos, raspberry pi (điều phối viên) và mac của tôi (được sử dụng chủ yếu để theo dõi nhưng đôi khi cũng tiêm dữ liệu nối tiếp)). Trong trường hợp này, nó hoàn hảo. Nó không cho phép truy cập internet hoặc truy cập ngoài khung xbee, nhưng điều đó hoàn toàn phù hợp với tôi vì việc triển khai đơn giản như Serial.print và serial.read không có phí Ethernet.


2

Tôi sử dụng Spark Core , một nền tảng lập trình Arduino rất dễ sử dụng. Nền tảng này được xây dựng trên cơ sở rằng WiFi nên dễ sử dụng và giá rẻ. Thậm chí có thể lập trình Spark Core từ mọi nơi, mọi lúc.


Làm thế nào để nó so sánh với XBee về: giá (bao gồm các công cụ kết nối Arduino như khiên), phạm vi khoảng cách, lập trình (trên Arduino)?
jfpoilpret

2

Bạn có thể thử Arduino Yun, nó giống như Uno nhưng nó có WiFi trực tiếp trên bảng.

Có một phần trong "Hướng dẫn về Arduino Yún" có tên là "Định cấu hình WiFi trên bo mạch" , mô tả cách định cấu hình WiFi.


1
Xin chào, bạn có thể chỉnh sửa câu trả lời của bạn với một số thông tin thêm. OP đã biết về Yun nên câu trả lời của bạn sẽ hữu ích hơn nếu, ví dụ, nó hướng dẫn mọi người cách sử dụng chip WiFi trên nó.
sachleen

1

Những gì bạn muốn là khá dễ dàng để làm và mã đã tồn tại. Nhưng theo cách tôi phát hiện ra, bạn sẽ không kết nối Arduino cảm biến với wifi của mình. Thay vào đó, bạn sẽ sử dụng một Arduino khác làm cổng như thế này:

Cảm biến Arduino: Nằm bên ngoài, kết nối với cảm biến nhiệt độ, tốc độ gió, đo mưa?

Cổng Arduino: Nằm bên trong, tấm chắn ethernet w / Wiznet 5001

Bộ cảm biến Arduino và Gateway Arduino nói chuyện với nhau bằng bộ thu phát không dây RẤT dễ sử dụng, nRF24L01 +. Các mô-đun không dây có giá 3 đô la mỗi cái và thư viện để sử dụng rất trưởng thành. Tất cả dữ liệu cảm biến được truyền thông dễ dàng đến Gateway bằng thư viện này.

Gateway Arduino w / ethernet hoạt động như một máy chủ web, cho phép bất kỳ máy tính nào trong mạng cục bộ của bạn mở một trang và xem các điều kiện hiện tại. Nhìn vào trang này để biết mã Arduino: http://arduino.cc/en/Tutorial/WebServer

Bạn cũng muốn lưu thông tin nhiệt độ / tốc độ gió lịch sử phải không? Đây là phần tốt nhất! Gateway Arduino có thể đẩy dữ liệu đến một dịch vụ như Xively, một dịch vụ thu thập dữ liệu dựa trên web miễn phí cũng cung cấp cho bạn một cách tiện lợi để trực quan hóa / vẽ biểu đồ dữ liệu của bạn. Có một chút trục trặc khi sử dụng Wiznet cùng với mô-đun nRF24L01. Cả mô-đun không dây và lá chắn ethernet đều sử dụng cùng một bus để liên lạc, vì vậy hãy xem blog này để xem làm thế nào bạn có thể sử dụng cả hai cùng một lúc:

http://www.ematld.ca/content/arduino-ethernet-nrf24l01-and-pachubecosmxively

Xively cũng cho phép bạn đặt dữ liệu đó thành công khai hoặc riêng tư, vì vậy bạn có thể chọn đóng góp dữ liệu trạm thời tiết của mình cho cộng đồng.

Một số lưu ý khác: Tôi thích các mô-đun nRF24L01 + vì chúng rất rẻ. Các mô-đun Xbee có giá cao hơn bản thân Arduinos. Bạn có thể tiếp tục thêm các mô-đun nRF24L01 + quanh nhà sau khi bạn thiết lập một cổng. Vấn đề chi phí tương tự tồn tại với lá chắn wifi - đắt tiền.


1

Nếu bạn muốn một giải pháp thay thế rẻ hơn để thêm khả năng WiFi cho Arduino, hãy nhìn vào tấm chắn WiFi WiFi .

Nó hoạt động tuyệt vời với thư viện WiFiEsp . Mô hình lập trình hoàn toàn giống với Arduino WiFi Shield


0

Kiểm tra mô-đun wifi ESP8266, đây là mô-đun giá rẻ và có thể được điều khiển bằng bất kỳ vi điều khiển nào bằng các lệnh AT, cũng là Soc để bạn có thể sử dụng độc lập.


0

Sử dụng bộ cmd ESP8266 AT rất khó khăn và dễ bị lỗi. Đề nghị bạn khởi động lại ESP8266-01 như một cây cầu UART-WiFi như được mô tả ở đây Wifi ESP8266 Thêm vào cho Arduino Made Simple

Lưu ý rằng thiết lập cũng cho phép bạn định cấu hình lại các cài đặt wifi của mình mà không cần lập trình lại ESP8266-01


0

Sử dụng năng suất ESP8266 dễ bị lỗi, yêu cầu cập nhật cần phải được flash, một số yêu cầu hàn và không phù hợp với môi trường sản xuất. Ngoài ra, có vấn đề với nguồn điện vì bạn cần phải có nguồn điện 3,3V riêng . Đó là năm 2016 (!) Và hiện tại có rất nhiều tùy chọn khác.

"Bảng WiFi UNO là Arduino UNO tích hợp WiFi." http://www.arduino.org/products/boards/arduino-uno-wifi

"Star Otto là bo mạch Arduino đầu tiên có bộ xử lý STM32F469 có WiFi." http://www.arduino.org/products/boards/arduino-star-otto (Trên thực tế, kể từ tháng 10, nó vẫn chưa có sẵn, "Sắp ra mắt").

Xin lưu ý hai bảng này là từ tổ chức Arduino KHÁC .


0

Sau một vài thử nghiệm và lỗi trong dự án IoT của tôi, tôi khuyên bạn nên làm việc trên ESP32 trên ESP8266 (và cả Arduino Uno & Nano), trừ khi bạn biết rất rõ phạm vi dự án của mình.

Ưu điểm của ESP32 so với ESP8266:

  1. RAM lớn hơn, hướng dẫn ESP8266: 32KB và dữ liệu người dùng 80 KB, ESP32: 520 KB

Tôi đang làm việc trên một dự án IoT và cố gắng xác thực thiết bị trên GCP bằng chứng chỉ. Chứng chỉ gốc của GCP đã có khoảng 120 KB, do đó, nó không phù hợp với ESP8266. Có những lựa chọn thay thế nhưng điều đó làm phức tạp mọi thứ.

  1. ESP32 có bluetooth & ESP8266 không

Vâng, tại một số điểm của dự án IoT của bạn, bạn có thể muốn bluetooth kết nối thiết bị của mình với điện thoại ...

  1. Một số phiên bản của ESP32 có các cổng tích hợp cho máy ảnh (tìm kiếm ESP32 CAM)

Với ESP8266, bạn chắc chắn có thể sử dụng máy ảnh nhưng điều đó sẽ liên quan đến mã hóa & hệ thống dây nhiều hơn và hiệu suất kém hơn.

Và cuối cùng, tôi đã thử kết nối chip wifi với Arduino Uno & Nano nhưng tôi gặp phải một số lỗi và sự cố với các lệnh AT. Vì vậy, bây giờ tôi khá hài lòng với ESP32 vì mọi thứ đều được tích hợp.

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.