Как подключиться к Arduino с помощью WiFi?
Я работаю над созданием метеостанции на базе Arduino, работающей от солнечных батарей. Метеостанция состоит из датчика температуры и фоторезистора, в будущем планирую добавить анемометр. Я хочу подключить метеостанцию к своей беспроводной сети, чтобы получать данные датчиков с компьютера без необходимости прокладки проводов (я живу в арендованной квартире).
Какие существуют варианты подключения Arduino к WiFi? Я просмотрел экраны Ethernet, WiFi и что-то под названием Xbee, но я не понимаю, для чего каждый из них.
У меня также есть беспроводной домашний маршрутизатор, который я мог бы использовать. Можно ли подключить мой Arduino Uno к маршрутизатору через порт Ethernet или USB-порт маршрутизатора, а затем получать данные и отправлять команды на Arduino по беспроводной сети через мою домашнюю сеть? Если да, то как это будет реализовано?
Сейчас у меня голая Arduino Uno.
@jlbnjmn, 👍35
Обсуждение12 ответов
Лучший ответ:
У вас есть несколько вариантов подключения 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
Я работаю с xbee на arduino и raspberry pi уже несколько месяцев. Несмотря на то, что у него есть свои проблемы и особенности, это отличный инструмент в коммуникационной цепочке. Это не идеально, но, учитывая сетевую сторону этого, для меня он работает дальше, чем мой Wi-Fi, и может быть даже более надежным (мой Raspberry Pi с Wi-Fi иногда отключается, однако подключенный xbee продолжает работать в фоновом режиме.
Конкретно в моем случае это позволяет установить последовательное соединение между моими устройствами (несколько ардуино, Raspberry Pi (координатор) и мой Mac (используемый в основном для мониторинга, но иногда и для ввода последовательных данных)). В данном случае идеально. Он не разрешает доступ в Интернет или доступ за пределы платформы xbee, но это меня полностью устраивает, поскольку реализация так же проста, как Serial.print и Serial.read, без накладных расходов Ethernet.
Я использую Spark Core, очень простую в использовании платформу программирования Arduino. Эта платформа была построена на том, что Wi-Fi должен быть простым в использовании и дешевым. Можно даже запрограммировать Spark Core из любого места и в любое время.
Как он соотносится с XBee с точки зрения: цены (включая соединительные элементы Arduino, такие как экран), дальности действия, программирования (на Arduino)?, @jfpoilpret
Вы можете попробовать Arduino Yun, он похож на Uno, но имеет Wi-Fi прямо на плате.
В "Руководстве по Arduino Yun" есть часть под названием "Настройка встроенного WiFi", в котором описывается, как настроить Wi-Fi.
Привет, не могли бы вы отредактировать свой ответ, указав дополнительную информацию. OP уже знает о Yun, поэтому ваш ответ был бы более полезным, если бы, например, он помог людям понять, как использовать на нем чип WiFi., @sachleen
Объедините 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....
То, что вы хотите, довольно легко сделать, и код уже существует. Но, как я себе это представляю, вы не будете подключать датчик 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 — дорого.
ESP8266 – это недорогой Wi-Fi-модуль за 5 долл. с подключением по UART и SPI. Это можно легко интегрировать с Arduino либо через стандартную прошивку с помощью AT-команд, либо путем написания пользовательской прошивки с использованием предоставленного SDK и доступного GIPO. Для получения дополнительной информации http://www.esp8266.com/
Проверьте модуль Wi-Fi ESP8266, это дешевый модуль, им можно управлять с помощью любого микроконтроллера с помощью AT-команд, а также это Soc, поэтому вы можете использовать его автономно.
Использование набора команд AT для ESP8266 затруднено и чревато ошибками. Предлагаем вам перепрошить ESP8266-01 как мост UART-WiFi, как описано здесь Дополнение Wi-Fi ESP8266 для Arduino — это просто
Обратите внимание, что программа установки также позволяет изменить настройки Wi-Fi без перепрограммирования ESP8266-01
Если вам нужна более дешевая альтернатива для добавления возможностей WiFi в Arduino, обратите внимание на ESP WiFi. щит.
Он отлично работает с библиотекой WiFiEsp. Модель программирования точно такая же, как у Arduino WiFi Shield
Использование шилда 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.
После нескольких проб & ошибки в моем проекте IoT, я бы рекомендовал работать с ESP32 вместо ESP8266 (а также с Arduino Uno и Nano), за исключением случаев, когда вы очень хорошо знаете объем своего проекта.
Преимущества ESP32 по сравнению с ESP8266:
- Больше оперативной памяти, ESP8266: 32 КБ инструкций и усилителей; 80 КБ пользовательских данных, ESP32: 520 КБ
Я работаю над проектом Интернета вещей и пытаюсь аутентифицировать устройство в GCP с помощью сертификата. Корневой сертификат GCP уже около 120 КБ, поэтому в ESP8266 он не влезает. Есть альтернативы, но это все усложняет.
- ESP32 имеет Bluetooth и усилитель; ESP8266 нет
В какой-то момент вашего проекта Интернета вещей вам может понадобиться Bluetooth для подключения вашего устройства к телефону...
- Некоторые версии ESP32 имеют встроенные порты для камеры (поиск ESP32 CAM)
С ESP8266 вы, безусловно, можете использовать камеру, но для этого потребуется больше кодирования и кодирования. проводка и потенциально худшая производительность.
И, наконец, я попытался подключить чип Wi-Fi с помощью Arduino Uno & Nano, но я столкнулся с некоторыми ошибками и проблемами с AT-командами. Таким образом, теперь я вполне доволен ESP32, потому что все интегрировано.
- В чем разница между вариантами RF (wifi, xbee, NRF24L01)
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Как сделать повторитель Wi-Fi на Arduino?
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- Как установить связь между веб-камерой и Arduino UNO и получать прямую трансляцию на мобильном телефоне с помощью ESP8266?
- Как запустить TCP-сервер сокетов на Arduino Uno WiFi?
- ESP8266 - Один сервер, отправляющий данные нескольким клиентам
- Могу ли я использовать выход 3,3 В Arduino напрямую к esp8266?
У вас есть экран Ethernet?, @jfpoilpret
Вам нужно уточнить свой вопрос: что значит "общаться с ним"? Загрузить скетчи? Отправить команды на скетч? Получить данные из скетча?, @jfpoilpret
Я попытался добавить детали и контекст к вопросу. На данный момент у меня нет щитов., @jlbnjmn
Я не думаю, что какая-либо версия официального Uno имеет порт Ethernet. Я предполагаю, что у вас должен быть Arduino Ethernet (который похож) или, возможно, какой-то неофициальный клон?, @Peter Bloomfield
Я отредактировал вопрос, чтобы указать порт Ethernet на беспроводном маршрутизаторе. Итак, вопрос: [Arduino + ? + (Беспроводной маршрутизатор ИЛИ ?) = Arduino отправляет данные по моей беспроводной сети]., @jlbnjmn
Также взгляните на модуль Wi-Fi adafruit cc3000. Если вам нужно регистрировать данные на интернет-сервере, рекомендуется Wi-Fi / Ethernet, если вам просто нужны данные на вашем компьютере, более дешевым вариантом будет использование motinos из лаборатории с низким энергопотреблением., @Hemal Chevli