Jak mogę połączyć się z Arduino za pomocą Wi-Fi?

27

Pracuję nad budową słonecznej stacji pogodowej opartej na Arduino. Stacja pogodowa składa się z czujnika temperatury i fotorezystora, a w przyszłości planuję dodać anemometr. Chciałbym podłączyć stację pogodową do mojej sieci bezprzewodowej, aby móc pobrać dane czujnika z komputera bez konieczności prowadzenia przewodów (mieszkam w wypożyczalni).

Jakie są różne opcje podłączenia Arduino do WiFi? Patrzyłem na osłony Ethernet, osłony WiFi i coś o nazwie Xbee, ale nie rozumiem do czego służą.

Mam także bezprzewodowy router domowy, którego mogę użyć. Czy możliwe jest podłączenie mojego Arduino Uno do routera przez routery Ethernet lub port USB, a następnie odbieranie danych i wysyłanie poleceń do Arduino bezprzewodowo przez moją sieć domową? Jeśli tak, jak można to osiągnąć?

Obecnie mam nagie Arduino Uno.

jlbnjmn
źródło
4
Czy masz osłonę Ethernet?
jfpoilpret
3
Musisz wyjaśnić swoje pytanie: co oznacza „komunikować się z nim”? Przesyłać szkice? Wysyłać polecenia do szkicu? Czy pobierasz dane ze szkicu?
jfpoilpret
Próbowałem dodać szczegóły i kontekst do pytania. Obecnie nie mam żadnych tarcz.
jlbnjmn
Nie sądzę, żeby jakakolwiek wersja oficjalnego Uno miała port Ethernet. Myślę, że musisz mieć Arduino Ethernet (który jest podobny), a może jakiś nieoficjalny klon?
Peter Bloomfield,
Zredagowałem pytanie, aby określić port Ethernet routera bezprzewodowego. Pytanie brzmi: [Arduino +? + (Router bezprzewodowy LUB?) = Arduino wysyła dane przez moją sieć bezprzewodową].
jlbnjmn

Odpowiedzi:

24

Masz kilka opcji podłączenia Arduino do sieci / Internetu.

Ethernet

Coś w rodzaju Arduino Ethernet Shield pozwala podłączyć kabel Ethernet ze ściany lub routera do Arduino. Oczywiście głównym ograniczeniem jest to, że Twoje urządzenie jest teraz podłączone za pomocą kabla. Do użytku na zewnątrz nie zrobiłbym tego.

WiFi

Arduino WiFi Tarcza pozwala na podłączenie do domowej sieci Wi-Fi. To jest tak samo jak Ethernet, z wyjątkiem tego, że teraz jest bezprzewodowy.

ESP8266 to tańsza alternatywa, że z domyślnym firmware, posiada taką samą funkcjonalność jak WiFi Shield. Uważaj, aby zasilać go napięciem 3,3 V, a nie 5 V, jak reszta Arduino. Wykorzystuje również poziomy logiczne 3,3 V, więc nie podłączaj styku TX Arduino bezpośrednio do styku RX ESP; użyj dzielnika napięcia.

RF

Jeśli masz wiele czujników lub innych urządzeń, które muszą się ze sobą komunikować, najlepszą opcją jest zazwyczaj moduł RF. Masz tutaj wiele opcji, XBee jest jedną z nich. Sprawdź Przewodnik kupna Sparkfun XBee, aby zobaczyć wszystkie dostępne opcje. A to tylko XBee. Dostępnych jest wiele innych opcji bezprzewodowych za wszelką cenę.

Problem z RF polega na tym, że żadne z nich nie połączy się z Internetem. Będziesz mieć wszystkie urządzenia komunikujące się ze sobą lub ze stacją bazową, która następnie zostanie podłączona do sieci za pomocą modułu WiFi lub Ethernet.

Router bezprzewodowy szeregowy

W zależności od używanego routera bezprzewodowego Arduino może komunikować się bezpośrednio z nim i używać go jako połączenia z siecią.

sachleen
źródło
1
Jeśli chodzi o komunikację „RF”, możesz także użyć popularnych modułów nRF24L01 +. Istnieją na to dobre biblioteki. Problem z łączem RF polega na tym, że musisz mieć inne Arduino lub Raspberry Pi itp. Działające jako „odbiornik”, który następnie jest podłączony do komputera, na którym chcesz przechowywać / przeglądać / analizować dane. W przypadku Wi-Fi dostępne są teraz tarcze CC3000 adafruit.com/products/1534
Mike WP
Badając dostępne opcje, natknąłem się na Yun. Czy byłaby to prostsza opcja? Dzięki.
jlbnjmn
Może. sam tego nigdy nie użyłem. Tarcze nie są trudne do połączenia i mogą być tańsze.
sachleen
4

Poślub OpenWrt i swoje Arduino

Zdobądź mały router obsługujący OpenWrt, taki jak „TP-Link TL-WR703N”, sflashuj go za pomocą bieżącej stabilnej wersji OpenWrt i podłącz Arduino do portu USB routera.

To rozwiązanie stanowi połowę lub mniej kosztu osłon WiFi i ma znacznie większą moc.

... i tańsze niż Y'N.

Serwer sieci inteligentnej automatyki domowej na routerze OpenWRT WR703N połączonym z Arduino, w porównaniu z Raspberry Pi i Ubuntu może być punktem wyjścia do przeczytania o tym, a twoja ulubiona wyszukiwarka znajdzie wiele innych linków o małżeństwie z WR703N i Arduinos ...

(!) Zobacz też https://arduino.stackexchange.com/a/1754/653 ....

odszedł
źródło
4

ESP8266 to tani moduł Wi-Fi za 5 $ z łącznością UART, SPI. Można to bezproblemowo zintegrować z Arduino albo poprzez standardowe oprogramowanie układowe za pomocą komend AT, albo przez napisanie niestandardowego oprogramowania układowego za pomocą dostarczonego zestawu SDK i dostępnego GIPO. Więcej informacji na stronie http://www.esp8266.com/

Suneesh
źródło
3

Od kilku miesięcy pracuję z Xbee nad arduino i Raspberry Pi. Chociaż ma swoje problemy i dziwactwa, jest doskonałym narzędziem w łańcuchu komunikacji. To nie jest idealne, ale biorąc pod uwagę stronę z siatki, dla mnie sięga dalej niż moje wifi i może być nawet bardziej niezawodne (moje Raspberry Pi z Wi-Fi czasami czasem odpada, ale podłączony Xbee nadal działa w tle.

W szczególności w moim przypadku pozwala to na szeregowe połączenie między moimi urządzeniami (jest to kilka arduinos, Raspberry Pi (koordynator) i mój Mac (używany głównie do monitorowania, ale także od czasu do czasu wstrzykiwania danych szeregowych)). W tym przypadku jest idealny. Nie pozwala na dostęp do Internetu ani dostęp poza ramy xbee, ale to mi odpowiada, ponieważ implementacja jest tak prosta jak Serial.print i Serial.read bez narzutu Ethernet.

Madivad
źródło
2

Używam Spark Core, który jest bardzo łatwą w użyciu platformą programistyczną Arduino. Platforma ta została zbudowana z założenia, że ​​WiFi powinno być łatwe w użyciu i tanie. Może nawet zaprogramować Spark Core z dowolnego miejsca, w dowolnym czasie.

Aaron Klap
źródło
Jak wypada w porównaniu z XBee pod względem: ceny (w tym Arduino, takich jak tarcza), odległości, programowania (na Arduino)?
jfpoilpret
2

Możesz wypróbować Arduino Yun, to jest jak Uno, ale ma WiFi bezpośrednio na płycie.

Część „Przewodnika po Arduino Yún” zawiera część „Konfiguracja wbudowanego Wi-Fi” , która opisuje sposób konfiguracji Wi-Fi.

Johan
źródło
1
Witaj, czy możesz edytować swoją odpowiedź, podając więcej informacji. OP już wie o Yun, więc twoja odpowiedź byłaby bardziej przydatna, jeśli na przykład poprowadziłaby ludzi do korzystania z chipu WiFi na nim.
sachleen
1

To, czego chcesz, jest dość łatwe do zrobienia, a kod już istnieje. Ale tak, jak ja to widzę, nie podłączysz czujnika Arduino do swojego Wi-Fi. Zamiast tego użyjesz innego Arduino jako swojej bramy w następujący sposób:

Czujnik Arduino: Umieszczony na zewnątrz, podłączony do czujnika temperatury, prędkości wiatru, miernika deszczu?

Gateway Arduino: Znajduje się wewnątrz, z osłoną ethernetową Wiznet 5001

Sensor Arduino i Gateway Arduino rozmawiają ze sobą za pomocą BARDZO łatwego w obsłudze bezprzewodowego nadajnika-odbiornika, nRF24L01 +. Moduły bezprzewodowe kosztują 3 USD, a biblioteka do użytku jest bardzo dojrzała. Wszystkie dane czujnika są łatwo przekazywane do bramki przy użyciu tej biblioteki.

Gateway Arduino w / ethernet działa jak serwer sieciowy, umożliwiając każdemu komputerowi w sieci lokalnej otwarcie strony i wyświetlenie aktualnych warunków. Spójrz na tę stronę po kod Arduino: http://arduino.cc/en/Tutorial/WebServer

Chcesz również zapisać historyczne informacje o temperaturze / prędkości wiatru, prawda? To najlepsza część! Gateway Arduino może przekazywać dane do usługi, takiej jak Xively, bezpłatna internetowa usługa gromadzenia danych, która zapewnia także świetny sposób na wizualizację / wykres danych. Z używaniem Wiznetu i modułu nRF24L01 jest trochę czkawka. Zarówno moduł bezprzewodowy, jak i osłona sieci Ethernet wykorzystują tę samą magistralę do komunikacji, więc spójrz na tego bloga, aby zobaczyć, jak możesz korzystać z obu jednocześnie:

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

Xively pozwala również ustawić te dane jako publiczne lub prywatne, dzięki czemu możesz zdecydować się na przekazanie danych stacji pogodowej społeczności.

Kilka innych uwag: Lubię moduły nRF24L01 +, ponieważ są tanie. Moduły Xbee kosztują więcej niż same Arduinos. Możesz nadal dodawać moduły nRF24L01 + wokół domu po ustanowieniu bramy. Ten sam problem z kosztami występuje w przypadku osłony Wi-Fi - drogie.

użytkownik851
źródło
1

Jeśli chcesz tańszej alternatywy, aby dodać możliwości WiFi do Arduino, spójrz na tarczę ESP WiFi .

Działa świetnie z biblioteką WiFiEsp . Model programowania jest dokładnie taki sam jak Arduino WiFi Shield

Twim
źródło
0

Sprawdź moduł Wi-Fi ESP8266, jest to tani moduł i można nim sterować za pomocą dowolnego mikrokontrolera za pomocą poleceń AT, a także Soc, dzięki czemu można go używać samodzielnie.

suxing
źródło
0

Korzystanie z zestawu cmd ESP8266 AT jest trudne i podatne na błędy. Zasugeruj, aby przebudować ESP8266-01 jako mostek UART-WiFi, jak opisano tutaj. ESP8266 Wifi Add to Arduino Made Simple

Pamiętaj, że konfiguracja pozwala również ponownie skonfigurować ustawienia Wi-Fi bez konieczności ponownego programowania ESP8266-01

drmpf
źródło
0

Używanie sielda ESP8266 jest podatne na błędy, wymaga aktualizacji, która wymaga flashowania, wymaga lutowania i nie jest odpowiednia dla środowiska produkcyjnego. Istnieją również problemy z zasilaczem, ponieważ musisz mieć osobny zasilacz 3,3 V. Jest 2016 (!), A teraz dostępnych jest wiele innych opcji.

„Płyta UNO WiFi to Arduino UNO ze zintegrowanym Wi-Fi”. http://www.arduino.org/products/boards/arduino-uno-wifi

i

„Star Otto to pierwsza płyta Arduino z procesorem STM32F469 z Wi-Fi”. http://www.arduino.org/products/boards/arduino-star-otto (Właściwie od października wciąż nie jest dostępny, „Wkrótce”).

Uwaga: te dwie tablice pochodzą z INNEJ organizacji Arduino.

Chiwda
źródło
0

Po kilku próbach i błędach w moim projekcie IoT zaleciłbym pracę nad ESP32 nad ESP8266 (a także Arduino Uno i Nano), chyba że dobrze znasz zakres swojego projektu.

Zalety ESP32 w stosunku do ESP8266:

  1. Większa pamięć RAM, ESP8266: instrukcja 32 KB i dane użytkownika 80 KB, ESP32: 520 KB

Pracuję nad projektem IoT i próbuję uwierzytelnić urządzenie na GCP przy użyciu certyfikatu. Główny certyfikat GCP ma już około 120 KB, więc nie pasuje do ESP8266. Istnieją alternatywy, ale komplikuje to wszystko.

  1. ESP32 ma bluetooth i ESP8266 nie

W pewnym momencie projektu IoT możesz chcieć podłączyć urządzenie Bluetooth do telefonu ...

  1. Niektóre wersje ESP32 mają zintegrowane porty kamery (szukaj ESP32 CAM)

Dzięki ESP8266 możesz z pewnością korzystać z kamery, ale będzie to wymagało więcej kodowania i okablowania oraz potencjalnie gorszej wydajności.

I w końcu próbowałem połączyć układ Wi-Fi z Arduino Uno i Nano, ale napotkałem kilka błędów i problemów z poleceniami AT. Dlatego teraz jestem całkiem zadowolony z ESP32, ponieważ wszystko jest zintegrowane.

Lewen
źródło