Como posso me conectar a um Arduino usando WiFi?

27

Estou trabalhando na construção de uma estação meteorológica movida a energia solar e baseada em Arduino. A estação meteorológica consiste em um sensor de temperatura e um fotorresistor, e pretendo adicionar um anemômetro no futuro. Gostaria de conectar a estação meteorológica à minha rede sem fio para poder recuperar os dados do sensor do meu computador sem precisar passar os fios (moro em um local de aluguel).

Quais são as diferentes opções para conectar o Arduino ao WiFi? Eu olhei para escudos ethernet, escudos WiFi e algo chamado Xbee, mas não entendo para que servem cada um deles.

Eu também tenho um roteador doméstico sem fio que eu poderia usar. É possível conectar meu Arduino Uno ao roteador por meio da porta Ethernet ou USB dos roteadores e depois receber dados e enviar comandos para o Arduino sem fio através da minha rede doméstica? Se sim, como isso seria realizado?

Atualmente, tenho um Arduino Uno vazio.

jlbnjmn
fonte
4
Você tem um escudo Ethernet?
jfpoilpret
3
Você precisa esclarecer sua pergunta: o que significa "comunicar com ele"? Carregar esboços? Enviar comandos para um esboço? Obter dados de um esboço?
jfpoilpret
Eu tentei adicionar detalhes e contexto à pergunta. Eu não tenho nenhum escudo atualmente.
jlbnjmn
Eu não acho que nenhuma revisão do Uno oficial tenha uma porta Ethernet. Eu acho que você deve ter um Arduino Ethernet (que é semelhante), ou talvez um clone não oficial de algum tipo?
27514 Peter Peter
Editei a pergunta para especificar a porta ethernet no roteador sem fio. Então a pergunta é: [Arduino +? + (Roteador sem fio OU?) = Arduino enviando dados pela minha rede sem fio].
jlbnjmn

Respostas:

24

Você tem algumas opções para conectar seu Arduino à rede / Internet.

Ethernet

Algo como o Arduino Ethernet Shield permite conectar um cabo Ethernet da parede ou do roteador ao seu Arduino. Obviamente, a principal limitação é que seu dispositivo agora está preso pelo cabo. Para uso externo, eu não faria isso.

Wi-fi

O Arduino WiFi Shield permite que você se conecte à sua rede Wi-Fi doméstica. É exatamente como a Ethernet, exceto agora sua conexão sem fio.

O ESP8266 é uma alternativa mais barata que, com o firmware padrão, tem a mesma funcionalidade que o WiFi Shield. Tenha cuidado para alimentá-lo com 3.3V e não 5V como o restante do Arduino. Ele também usa níveis lógicos de 3.3V, portanto, não conecte o pino TX do Arduino diretamente ao pino RX do ESP; use um divisor de tensão.

RF

Se você possui muitos sensores ou outros dispositivos que precisam se comunicar, a melhor opção é geralmente um módulo de RF. Você tem muitas opções aqui, sendo o XBee uma delas. Confira o Guia de compra do Sparkfun XBee para ver todas as opções disponíveis. E isso é apenas XBee. Existem muitas outras opções sem fio disponíveis, a todos os tipos de preços.

O problema da RF é que nada disso se conectará à Internet. Todos os seus dispositivos se comunicarão entre si ou com uma estação base, que será conectada à rede por um módulo WiFi ou Ethernet.

Série do roteador sem fio

Dependendo do tipo de roteador sem fio usado, o Arduino pode se comunicar diretamente com ele e usá-lo como sua conexão a uma rede.

sachleen
fonte
1
Quanto à comunicação "RF", você também pode usar os populares módulos nRF24L01 +. Existem algumas boas bibliotecas por aí para isso. O problema com o link de RF é que você precisa ter outro Arduino ou Raspberry Pi etc. funcionando como o "receptor" que é conectado ao seu computador onde você deseja armazenar / visualizar / analisar os dados. Para Wifi, agora também existem escudos CC3000 disponíveis adafruit.com/products/1534 #
Mike WP
Enquanto pesquisava as opções que você forneceu, me deparei com o Yun. Essa seria uma opção mais direta? Obrigado.
jlbnjmn
Talvez. nunca usei eu mesmo. Os escudos não são difíceis de interagir e podem ser mais baratos.
Sachleen
4

Case com o OpenWrt e seu Arduino

Obtenha um pequeno roteador compatível com OpenWrt como "TP-Link TL-WR703N", atualize-o com a versão estável atual do OpenWrt e conecte seu Arduino à porta USB do roteador.

Esta solução representa metade ou menos do custo dos escudos WiFi e tem muito mais energia.

... e mais barato como um YÙ.

O servidor da web de automação residencial inteligente no roteador OpenWRT WR703N com interface com o Arduino, em comparação com o Raspberry Pi e o Ubuntu, pode ser um ponto de partida para ler sobre isso e seu mecanismo de pesquisa favorito encontrará muitos mais links sobre como casar o WR703N e o Arduinos ...

(!) Consulte https://arduino.stackexchange.com/a/1754/653 também ....

se foi
fonte
4

O ESP8266 é um módulo wifi barato de 5 $ com conectividade UART, SPI. Isso pode ser integrado com o Arduino sem problemas, através do firmware padrão usando os comandos AT ou escrevendo um firmware personalizado usando o SDK fornecido e o GIPO disponível. Para mais referência http://www.esp8266.com/

Suneesh
fonte
3

Estou trabalhando com o xbee no arduino e no raspberry pi há alguns meses. Embora tenha problemas e peculiaridades, é uma ótima ferramenta na cadeia de comunicação. Não é perfeito, mas dado o lado da malha, para mim chega além do meu wifi e pode até ser mais confiável (meu raspberry pi com wifi ocasionalmente cai, no entanto, o xbee conectado continua a funcionar em segundo plano.

Especificamente no meu caso, ele permite uma conexão serial entre meus dispositivos (sendo vários arduinos, um raspberry pi (coordenador) e meu mac (usado principalmente para monitorar, mas também ocasionalmente injetar dados seriais)). Nesse caso, é perfeito. Ele não permite acesso à Internet ou além da estrutura xbee, mas isso me convém perfeitamente, pois a implementação é tão simples quanto Serial.print e Serial.read sem sobrecarga de Ethernet.

Madivad
fonte
2

Eu uso o Spark Core, que é uma plataforma de programação Arduino muito fácil de usar. Essa plataforma foi criada com base no princípio de que o Wi-Fi deve ser fácil de usar e barato. Pode até programar o Spark Core de qualquer lugar, a qualquer hora.

Aaron Klap
fonte
Como ele se compara ao XBee em termos de: preço (incluindo itens de conexão do Arduino como um escudo), faixa de distância, programação (no Arduino)?
jfpoilpret
2

Você pode experimentar um Arduino Yun, é como um Uno, mas tem um Wi-Fi diretamente na placa.

Há uma parte no "Guia para o Arduino Yún" chamado "Configurando o Wi-Fi integrado" , que descreve como configurar o Wi-Fi.

Johan
fonte
1
Olá, você pode editar sua resposta com mais algumas informações. O OP já conhece o Yun, então sua resposta seria mais útil se, por exemplo, orientasse as pessoas a usar o chip WiFi nele.
Sachleen
1

O que você quer é bem fácil de fazer e o código já existe. Mas do jeito que eu inviso, você não vai conectar o sensor Arduino ao seu wifi. Em vez disso, você usará outro Arduino como gateway como este:

Sensor Arduino: Localizado do lado de fora, conectado ao sensor de temperatura, velocidade do vento, pluviômetro?

Gateway Arduino: Localizado no interior, com o escudo Wiznet 5001 ethernet

O Sensor Arduino e o Gateway Arduino se comunicam usando um transceptor sem fio MUITO fácil de usar, o nRF24L01 +. Os módulos sem fio custam US $ 3 cada e a biblioteca para uso é muito madura. Todos os dados do sensor são facilmente comunicados ao Gateway usando esta biblioteca.

O Gateway Arduino com Ethernet atua como um servidor da Web, permitindo que qualquer computador em sua rede local abra uma página e visualize as condições atuais. Veja nesta página o código do Arduino: http://arduino.cc/en/Tutorial/WebServer

Você também deseja salvar as informações históricas de temperatura / velocidade do vento, certo? Esta é a melhor parte! O Gateway Arduino pode enviar dados para um serviço como o Xively, um serviço gratuito de coleta de dados baseado na Web que também oferece uma maneira bacana de visualizar / representar graficamente seus dados. Há um pequeno problema com o uso do Wiznet junto com o módulo nRF24L01. O módulo sem fio e a blindagem Ethernet usam o mesmo barramento para se comunicar, portanto, dê uma olhada neste blog para ver como você pode usar os dois ao mesmo tempo:

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

O Xively também permite tornar esses dados públicos ou privados, para que você possa contribuir com os dados da estação meteorológica para a comunidade.

Algumas outras notas: Eu gosto de módulos nRF24L01 + porque são muito baratos. Os módulos Xbee custam mais do que os próprios Arduinos. Você pode continuar adicionando módulos nRF24L01 + pela casa, depois de estabelecer um gateway. O mesmo problema de custo existe com o Wi-Fi Shield - caro.

user851
fonte
1

Se você quiser uma alternativa mais barata para adicionar recursos de WiFi ao Arduino, consulte o escudo do ESP WiFi .

Funciona muito bem com a biblioteca WiFiEsp . O modelo de programação é exatamente o mesmo que o Arduino WiFi Shield

Twim
fonte
0

Verifique o módulo wifi ESP8266, é um módulo barato e pode ser controlado usando qualquer microcontrolador por comandos AT, também é Soc, para que você possa usá-lo de maneira independente.

suxing
fonte
0

O uso do conjunto de cmd ESP8266 AT é difícil e propenso a erros. Sugira que você atualize novamente o ESP8266-01 como uma ponte UART-WiFi, conforme descrito aqui ESP8266 Wifi Add on for Arduino Made Simple

Observe que a instalação também permite redefinir suas configurações de wifi sem reprogramar o ESP8266-01

drmpf
fonte
0

O uso do sensor ESP8266 é suscetível a erros, requer uma atualização que precisa ser atualizada, é necessária alguma solda e não é apropriado para um ambiente de produção. Além disso, há problemas com a fonte de alimentação porque você precisa de uma fonte de alimentação separada de 3,3V. É 2016 (!) E há muito mais opções disponíveis agora.

"A placa UNO WiFi é a Arduino UNO com WiFi integrado". http://www.arduino.org/products/boards/arduino-uno-wifi

e

"A Star Otto é a primeira placa Arduino com o processador STM32F469 com WiFi". http://www.arduino.org/products/boards/arduino-star-otto (Na verdade, a partir de outubro ainda não está disponível, "Coming Soon").

Observe que essas duas placas são da organização OTHER Arduino.

Chiwda
fonte
0

Após várias tentativas e erros no meu projeto de IoT, eu recomendaria trabalhar no ESP32 sobre o ESP8266 (e também no Arduino Uno e Nano), exceto se você souber muito bem o escopo do seu projeto.

Vantagens do ESP32 sobre o ESP8266:

  1. RAM maior, ESP8266: instrução de 32 KB e dados do usuário de 80 KB, ESP32: 520 KB

Estou trabalhando em um projeto de IoT e tentando autenticar o dispositivo no GCP usando um certificado. O certificado raiz do GCP já tem cerca de 120 KB, portanto não se encaixa no ESP8266. Existem alternativas, mas isso complica as coisas.

  1. O ESP32 possui bluetooth e o ESP8266 não

Bem, em algum momento do seu projeto de IoT, você pode querer que o Bluetooth conecte seu dispositivo ao telefone ...

  1. Algumas versões do ESP32 possuem portas integradas para a câmera (procure no ESP32 CAM)

Com o ESP8266, você certamente pode usar uma câmera, mas isso envolverá mais codificação e fiação e desempenho potencialmente pior.

E, finalmente, tentei conectar um chip wifi com o Arduino Uno & Nano, mas encontrei alguns bugs e problemas com os comandos AT. Portanto, agora estou muito feliz com o ESP32 porque tudo está integrado.

Lewen
fonte