Как подключиться к Arduino с помощью WiFi?

Я работаю над созданием метеостанции на базе Arduino, работающей от солнечных батарей. Метеостанция состоит из датчика температуры и фоторезистора, в будущем планирую добавить анемометр. Я хочу подключить метеостанцию к своей беспроводной сети, чтобы получать данные датчиков с компьютера без необходимости прокладки проводов (я живу в арендованной квартире).

Какие существуют варианты подключения Arduino к WiFi? Я просмотрел экраны Ethernet, WiFi и что-то под названием Xbee, но я не понимаю, для чего каждый из них.

У меня также есть беспроводной домашний маршрутизатор, который я мог бы использовать. Можно ли подключить мой Arduino Uno к маршрутизатору через порт Ethernet или USB-порт маршрутизатора, а затем получать данные и отправлять команды на Arduino по беспроводной сети через мою домашнюю сеть? Если да, то как это будет реализовано?

Сейчас у меня голая Arduino Uno.

, 👍35

Обсуждение

У вас есть экран Ethernet?, @jfpoilpret

Вам нужно уточнить свой вопрос: что значит "общаться с ним"? Загрузить скетчи? Отправить команды на скетч? Получить данные из скетча?, @jfpoilpret

Я попытался добавить детали и контекст к вопросу. На данный момент у меня нет щитов., @jlbnjmn

Я не думаю, что какая-либо версия официального Uno имеет порт Ethernet. Я предполагаю, что у вас должен быть Arduino Ethernet (который похож) или, возможно, какой-то неофициальный клон?, @Peter Bloomfield

Я отредактировал вопрос, чтобы указать порт Ethernet на беспроводном маршрутизаторе. Итак, вопрос: [Arduino + ? + (Беспроводной маршрутизатор ИЛИ ?) = Arduino отправляет данные по моей беспроводной сети]., @jlbnjmn

Также взгляните на модуль Wi-Fi adafruit cc3000. Если вам нужно регистрировать данные на интернет-сервере, рекомендуется Wi-Fi / Ethernet, если вам просто нужны данные на вашем компьютере, более дешевым вариантом будет использование motinos из лаборатории с низким энергопотреблением., @Hemal Chevli


12 ответов


Лучший ответ:

30

У вас есть несколько вариантов подключения Arduino к сети/Интернету.

Ethernet

Что-то вроде Arduino Ethernet Shield позволяет подключить Ethernet-кабель от стены или маршрутизатора к Arduino. Очевидно, что основное ограничение заключается в том, что ваше устройство теперь привязано кабелем. Для наружного использования я бы не стал этого делать.

Wi-Fi

Arduino WiFi Shield позволяет подключаться к домашней сети Wi-Fi. Это то же самое, что и Ethernet, за исключением того, что теперь оно беспроводное.

ESP8266 — это более дешевая альтернатива, которая с прошивкой по умолчанию имеет те же функции, что и WiFi Shield. Будьте осторожны, чтобы питать его от 3,3 В, а не 5 В, как остальную часть Arduino. Он также использует логические уровни 3,3 В, поэтому не подключайте вывод TX Arduino напрямую к выводу RX ESP; используйте делитель напряжения.

РФ

Если у вас есть много датчиков или других устройств, которым необходимо взаимодействовать друг с другом, лучшим вариантом обычно является радиочастотный модуль. Здесь у вас есть много вариантов, XBee — один из них. Ознакомьтесь с Руководством по покупке Sparkfun XBee, чтобы ознакомиться со всеми доступными вариантами. И это только XBee. Доступно множество других вариантов беспроводной связи по самым разным ценам.

Дело в том, что RF ни один из них не будет подключаться к Интернету. Все ваши устройства будут обмениваться данными друг с другом или с базовой станцией, которая затем будет подключена к сети с помощью модуля WiFi или Ethernet.

COM порт беспроводного маршрутизатора

В зависимости от того, какой тип беспроводного маршрутизатора вы используете, Arduino может напрямую связываться с ним и использовать его для подключения к сети.

  • Arduino — дешевое подключение к Wi-Fi
  • Преобразование Ethernet Shield в беспроводной Shield
,

Что касается «RF» связи, вы также можете использовать популярные модули nRF24L01+. Для этого есть несколько хороших библиотек. Проблема с радиоканалом заключается в том, что вам нужно, чтобы другой Arduino или Raspberry Pi и т. д. работали в качестве «приемника», который затем подключался к вашему компьютеру, где вы хотите хранить/просматривать/анализировать данные. Для Wi-Fi теперь также доступны экраны CC3000 http://www.adafruit.com/products/1534., @Mike WP

Изучая предоставленные вами варианты, я наткнулся на Yun. Это будет более простой вариант? Спасибо., @jlbnjmn

Может быть. сам никогда не пользовался. С щитами несложно взаимодействовать, и они могут быть дешевле., @sachleen


3

Я работаю с xbee на arduino и raspberry pi уже несколько месяцев. Несмотря на то, что у него есть свои проблемы и особенности, это отличный инструмент в коммуникационной цепочке. Это не идеально, но, учитывая сетевую сторону этого, для меня он работает дальше, чем мой Wi-Fi, и может быть даже более надежным (мой Raspberry Pi с Wi-Fi иногда отключается, однако подключенный xbee продолжает работать в фоновом режиме.

Конкретно в моем случае это позволяет установить последовательное соединение между моими устройствами (несколько ардуино, Raspberry Pi (координатор) и мой Mac (используемый в основном для мониторинга, но иногда и для ввода последовательных данных)). В данном случае идеально. Он не разрешает доступ в Интернет или доступ за пределы платформы xbee, но это меня полностью устраивает, поскольку реализация так же проста, как Serial.print и Serial.read, без накладных расходов Ethernet.

,

2

Я использую Spark Core, очень простую в использовании платформу программирования Arduino. Эта платформа была построена на том, что Wi-Fi должен быть простым в использовании и дешевым. Можно даже запрограммировать Spark Core из любого места и в любое время.

,

Как он соотносится с XBee с точки зрения: цены (включая соединительные элементы Arduino, такие как экран), дальности действия, программирования (на Arduino)?, @jfpoilpret


2

Вы можете попробовать Arduino Yun, он похож на Uno, но имеет Wi-Fi прямо на плате.

В "Руководстве по Arduino Yun" есть часть под названием "Настройка встроенного WiFi", в котором описывается, как настроить Wi-Fi.

,

Привет, не могли бы вы отредактировать свой ответ, указав дополнительную информацию. OP уже знает о Yun, поэтому ваш ответ был бы более полезным, если бы, например, он помог людям понять, как использовать на нем чип WiFi., @sachleen


5

Объедините OpenWrt и Arduino

Купите небольшой маршрутизатор с поддержкой OpenWrt, например «TP-Link TL-WR703N», установите на него текущую стабильную версию OpenWrt и подключите Arduino к USB-порту маршрутизатора.

Это решение стоит половину или даже меньше стоимости WiFi-щитов и обладает гораздо большей мощностью.

...и дешевле, чем YÙN.

Веб-сервер для автоматизации умного дома на маршрутизаторе OpenWRT WR703N интерфейс с Arduino, по сравнению с Raspberry Pi и Ubuntu может быть отправной точкой для чтения об этом, и ваша любимая поисковая система найдет еще много ссылок о слиянии WR703N и Arduino...

(!) См. также https://arduino.stackexchange.com/a/1754/653....

,

1

То, что вы хотите, довольно легко сделать, и код уже существует. Но, как я себе это представляю, вы не будете подключать датчик Arduino к своему Wi-Fi. Вместо этого вы будете использовать другой Arduino в качестве шлюза следующим образом:

Датчик Arduino: расположен снаружи, подключен к датчику температуры, скорости ветра, датчику дождя?

Шлюз Arduino: расположен внутри, с сетевым экраном Wiznet 5001

Sensor Arduino и Gateway Arduino взаимодействуют друг с другом с помощью ОЧЕНЬ простого в использовании беспроводного трансивера nRF24L01+. Беспроводные модули стоят по 3 доллара каждый, а библиотека для использования очень зрелая. Все данные датчиков легко передаются на шлюз с помощью этой библиотеки.

Шлюз Arduino с Ethernet действует как веб-сервер, позволяя любому компьютеру в вашей локальной сети открывать страницу и просматривать текущие условия. Посмотрите на этой странице код Arduino: http://arduino.cc/en/Tutorial/Веб-сервер

Вы также хотите сохранить историческую информацию о температуре/скорости ветра, верно? Это лучшая часть! Gateway Arduino может отправлять данные в такую службу, как Xively, бесплатную веб-службу сбора данных, которая также дает вам отличный способ визуализации/графики ваших данных. Есть небольшой сбой при использовании Wiznet вместе с модулем nRF24L01. Беспроводной модуль и Ethernet Shield используют для связи одну и ту же шину, поэтому загляните в этот блог, чтобы узнать, как вы можете использовать их одновременно:

http://www.heald.ca/content/arduino-ethernet-nrf24l01-and -пахубекосмически

Xively также позволяет сделать эти данные общедоступными или частными, поэтому вы можете поделиться данными своей метеостанции с сообществом.

Некоторые другие примечания: Мне нравятся модули nRF24L01+, потому что они очень дешевые. Модули Xbee стоят дороже, чем сами Arduino. Вы можете продолжать добавлять модули nRF24L01+ по всему дому после установки шлюза. Та же проблема с ценой существует и с Wi-Fi Shield — дорого.

,

4

ESP8266 – это недорогой Wi-Fi-модуль за 5 долл.  с подключением по UART и SPI. Это можно легко интегрировать с Arduino либо через стандартную прошивку с помощью AT-команд, либо путем написания пользовательской прошивки с использованием предоставленного SDK и доступного GIPO. Для получения дополнительной информации http://www.esp8266.com/

,

0

Проверьте модуль Wi-Fi ESP8266, это дешевый модуль, им можно управлять с помощью любого микроконтроллера с помощью AT-команд, а также это Soc, поэтому вы можете использовать его автономно.

,

0

Использование набора команд AT для ESP8266 затруднено и чревато ошибками. Предлагаем вам перепрошить ESP8266-01 как мост UART-WiFi, как описано здесь Дополнение Wi-Fi ESP8266 для Arduino — это просто

Обратите внимание, что программа установки также позволяет изменить настройки Wi-Fi без перепрограммирования ESP8266-01

,

1

Если вам нужна более дешевая альтернатива для добавления возможностей WiFi в Arduino, обратите внимание на ESP WiFi. щит.

Он отлично работает с библиотекой WiFiEsp. Модель программирования точно такая же, как у Arduino WiFi Shield

,

0

Использование шилда ESP8266 подвержено ошибкам, требует обновления, которое необходимо прошить, требуется пайка, и это не подходит для производственной среды. Кроме того, есть проблемы с блоком питания, потому что вам нужен отдельный блок питания 3,3 В. На дворе 2016 год (!) и сейчас доступно гораздо больше возможностей.

«Плата UNO WiFi — это Arduino UNO со встроенным WiFi». http://www.arduino.org/products/boards/arduino-uno-wifi

и

«Star Otto — первая плата Arduino с процессором STM32F469 и WiFi». http://www.arduino.org/products/boards/arduino-star-otto ( На самом деле, по состоянию на октябрь он все еще недоступен, "Скоро").

Обратите внимание, что эти две платы принадлежат ДРУГОЙ организации Arduino.

,

0

После нескольких проб & ошибки в моем проекте IoT, я бы рекомендовал работать с ESP32 вместо ESP8266 (а также с Arduino Uno и Nano), за исключением случаев, когда вы очень хорошо знаете объем своего проекта.

Преимущества ESP32 по сравнению с ESP8266:

  1. Больше оперативной памяти, ESP8266: 32 КБ инструкций и усилителей; 80 КБ пользовательских данных, ESP32: 520 КБ

Я работаю над проектом Интернета вещей и пытаюсь аутентифицировать устройство в GCP с помощью сертификата. Корневой сертификат GCP уже около 120 КБ, поэтому в ESP8266 он не влезает. Есть альтернативы, но это все усложняет.

  1. ESP32 имеет Bluetooth и усилитель; ESP8266 нет

В какой-то момент вашего проекта Интернета вещей вам может понадобиться Bluetooth для подключения вашего устройства к телефону...

  1. Некоторые версии ESP32 имеют встроенные порты для камеры (поиск ESP32 CAM)

С ESP8266 вы, безусловно, можете использовать камеру, но для этого потребуется больше кодирования и кодирования. проводка и потенциально худшая производительность.

И, наконец, я попытался подключить чип Wi-Fi с помощью Arduino Uno & Nano, но я столкнулся с некоторыми ошибками и проблемами с AT-командами. Таким образом, теперь я вполне доволен ESP32, потому что все интегрировано.

,