Як я можу підключитися до Arduino за допомогою WiFi?


27

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

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

У мене також є бездротовий домашній маршрутизатор, яким я міг би скористатися. Чи можна підключити мій Arduino Uno до маршрутизатора через маршрутизатор Ethernet або USB-порт, а потім отримувати дані та відправляти команди до Arduino бездротово через мою домашню мережу? Якщо так, то як би це було досягнуто?

Наразі у мене є голий Ардуїно Уно.


4
У вас є Ethernet-щит?
jfpoilpret

3
Вам потрібно уточнити своє запитання: що означає "спілкування з нею"? Завантажити ескізи? Надіслати команди до ескізу? Отримати дані з ескізу?
jfpoilpret

Я намагався додати детальність і контекст до питання. Наразі у мене немає щитів.
jlbnjmn

Я не думаю, що будь-яка редакція офіційного Uno має порт Ethernet. Я думаю, у вас повинен бути ардуїновий Ethernet (який подібний), чи, можливо, неофіційний клон якогось роду?
Пітер Блумфілд

Я відредагував питання, щоб вказати порт Ethernet на бездротовому маршрутизаторі. Тож питання: [Arduino +? + (Бездротовий маршрутизатор АБО?) = Arduino надсилає дані по моїй бездротовій мережі].
jlbnjmn

Відповіді:


24

У вас є кілька варіантів підключення вашого Arduino до мережі / Інтернету.

Ethernet

Щось на зразок Arduino Ethernet Shield дозволяє вам підключити Ethernet-кабель від стіни або маршрутизатора до свого Arduino. Очевидно, головне обмеження полягає в тому, що ваш пристрій тепер прив’язаний кабелем. Для зовнішнього використання я б цього не робив.

WiFi

Arduino WiFi Shield дозволяє підключити до домашньої WiFi мережі. Це подібно до Ethernet, за винятком його бездротової мережі.

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

РФ

Якщо у вас багато датчиків або інших пристроїв, яким потрібно спілкуватися один з одним, найкращим варіантом зазвичай є RF модуль. Тут у вас є багато варіантів, XBee є одним з них. Перегляньте посібник із покупки Sparkfun XBee, щоб переглянути всі наявні варіанти. І це просто XBee. Існує безліч інших бездротових опцій за різними цінами.

Річ у РФ полягає в тому, що жодне з них не підключиться до Інтернету. У вас буде всі ваші пристрої спілкуватися один з одним або базовою станцією, яка потім буде підключена до мережі або через модуль WiFi або через Ethernet.

Послідовний бездротовий маршрутизатор

Залежно від того, яким бездротовим маршрутизатором ви користуєтесь, ви можете мати можливість Arduino спілкуватися безпосередньо з ним і використовувати це як ваше з'єднання з мережею.


1
Що стосується зв'язку "RF", ви також можете використовувати популярні модулі nRF24L01 +. Для цього є кілька хороших бібліотек. Проблема з посиланням RF полягає в тому, що вам потрібно мати ще один Arduino або Raspberry Pi і т.д., який працює як "приймач", який потім підключається до комп'ютера, де ви хочете зберігати / переглядати / аналізувати дані. Для Wifi тепер також доступні щити CC3000 adafruit.com/products/1534
Mike WP

Під час дослідження варіантів, які ви надали, я натрапив на Юнь. Це було б більш простим варіантом? Спасибі.
jlbnjmn

Можливо. ніколи не використовував його сам. Екрани не важко взаємодіяти і можуть бути дешевшими.
sachleen

4

Виходьте заміж за OpenWrt та свого Arduino

Отримайте невеликий маршрутизатор, що підтримує OpenWrt, як-от "TP-Link TL-WR703N", підключіть його до поточної стабільної версії OpenWrt і підключіть Arduino до USB-порту маршрутизатора.

Це рішення становить половину або менше вартості WiFi-екранів і має набагато більшу потужність.

... і дешевше як YÙN.

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

(!) Перегляньте /arduino//a/1754/653 теж….


4

ESP8266 - це дешевий 5-доларовий wifi-модуль з підключенням UART, SPI. Це може бути інтегровано з Arduino безперешкодно через прошивку на складі за допомогою команд AT, або шляхом написання власної прошивки за допомогою наданого SDK та GIPO. Докладніше http://www.esp8266.com/


3

Я працюю з xbee над arduino та малиновим пі вже кілька місяців. Незважаючи на те, що у нього є проблеми і примхи, це чудовий інструмент у ланцюжку комунікацій. Це не ідеально, але з огляду на його сітчасту сторону, для мене він сягає далі, ніж мій wifi, і навіть може бути більш надійним (мій малиновий пі з wifi час від часу випадає, проте підключений xbee продовжує функціонувати у фоновому режимі.

Зокрема, в моєму випадку це дозволяє послідовно з'єднатись між моїми пристроями (будучи кількома ардуїно, малиновим пі (координатором) та моїм mac (використовується в основному для моніторингу, але також періодично вводити серійні дані)). У цьому випадку це ідеально. Це не дозволяє доступ до Інтернету чи доступ за рамки xbee, але це мені дуже підходить, оскільки реалізація настільки ж проста, як Serial.print та Serial.read без накладних витрат Ethernet.


2

Я використовую Spark Core, який є дуже простою у використанні платформою програмування Arduino. Ця платформа була побудована на принципі, що WiFi повинен бути простим у використанні та дешевим. Можна навіть запрограмувати Spark Core з будь-якого місця та в будь-який час.


Як воно порівнюється з XBee за рівнем: ціна (включаючи з'єднувальні речі Arduino, такі як щит), відстань, програмування (на Arduino)?
jfpoilpret

2

Ви можете спробувати Arduino Yun, він схожий на Uno, але він має WiFi прямо на платі.

Є частина "Посібника по Arduino Yún" під назвою "Налаштування бортового WiFi" , в якому описано, як налаштувати WiFi.


1
Привіт, ти міг би відредагувати свою відповідь ще трохи інформації. ОП вже знає про Yun, тому ваша відповідь була б кориснішою, якщо, наприклад, вона орієнтувала людей на те, як використовувати чіп WiFi на ньому.
Sachleen

1

Те, що ви хочете, зробити досить просто, і код вже існує. Але так, як я це уявляю, ви не підключите датчик Arduino до свого wifi. Замість цього ви будете використовувати інший Arduino як свій шлюз таким чином:

Датчик Arduino: Розташований зовні, підключений до датчика температури, швидкості вітру, манометра?

Шлюз Arduino: Розташований всередині, з / у Wiznet 5001 ethernet-щит

Датчик Arduino і Gateway Arduino спілкується один з одним, ДУЖЕ простий у користуванні бездротовий приймач, nRF24L01 +. Бездротові модулі коштують 3 долари кожен, а бібліотека для використання дуже зріла. Усі дані датчиків легко передаються до шлюзу за допомогою цієї бібліотеки.

Шлюз Arduino з мережевою мережею діє як веб-сервер, що дозволяє будь-якому комп'ютеру у вашій локальній мережі відкрити сторінку та переглянути поточні умови. Подивіться на цю сторінку код Arduino: http://arduino.cc/en/Tutorial/WebServer

Ви також хочете зберегти інформацію про температуру / швидкість вітру? Це найкраща частина! Шлюз Arduino може передавати дані до такої служби, як Xively, безкоштовна веб-служба збору даних, яка також надає вам чудовий спосіб візуалізації / графіки даних. Існує невелика іконка з використанням Wiznet разом з модулем nRF24L01. Обидва бездротовий модуль та ethernet-щит використовують для спілкування одну і ту ж шину, тому перегляньте цей блог, щоб побачити, як можна використовувати обидва одночасно:

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

Xively також дозволяє зробити ці дані загальнодоступними або приватними, тому ви можете вирішити внести дані вашої метеостанції до спільноти.

Деякі інші примітки: мені подобаються модулі nRF24L01 +, тому що вони дешеві. Модулі Xbee коштують дорожче, ніж самі Arduinos. Після встановлення шлюзу можна продовжувати додавати nRF24L01 + модулі навколо будинку. Ця ж проблема з витратами існує і з wifi-екраном - дорого.


1

Якщо ви хочете більш дешеву альтернативу, додайте можливості WiFi до Arduino, погляньте на ESP WiFi-щит .

Він чудово працює з бібліотекою WiFiEsp . Модель програмування точно така ж, як Arduino WiFi Shield


0

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


0

Використання набору cmd ESP8266 AT важко і схильне до помилок. Запропонуємо перезапустити ESP8266-01 як міст UART-WiFi, як описано тут. ESP8266 Wifi Додати для Arduino Made Simple

Зауважте, що налаштування також дозволяє вам перенастроювати налаштування Wi-Fi без повторного програмування ESP8266-01


0

Використання шланга ESP8266 схильне до помилок, потребує оновлення, яке потрібно прошивати, потрібні деякі пайки, а це не підходить для виробничого середовища. Також є проблеми з джерелом живлення, оскільки вам потрібно мати окремий блок живлення 3,3 В. Настав 2016 рік (!), І зараз є ще безліч варіантів.

"Дошка WiO WiFi - це Arduino UNO із вбудованим WiFi." http://www.arduino.org/products/boards/arduino-uno-wifi

і

"Зірка Отто - перша плата Arduino, на якій представлений процесор STM32F469 з WiFi." http://www.arduino.org/products/boards/arduino-star-otto (Насправді станом на жовтень це все ще не доступно, "Скоро").

Зверніть увагу, що ці дві ради є від організації OTHER Arduino.


0

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

Переваги ESP32 над ESP8266:

  1. Більша оперативна пам’ять, ESP8266: 32 КБ інструкції та дані користувачів 80 КБ, ESP32: 520 Кб

Я працюю над проектом IoT і намагаюся аутентифікувати пристрій на GCP за допомогою сертифіката. Кореневий сертифікат GCP вже становить близько 120 КБ, тому він не входить у ESP8266. Є альтернативи, але це ускладнює речі.

  1. ESP32 має Bluetooth та ESP8266 ні

Ну, в якийсь момент вашого IoT-проекту ви, можливо, захочете Bluetooth з'єднати ваш пристрій зі своїм телефоном ...

  1. Деякі версії ESP32 мають інтегровані порти для камери (пошук у ESP32 CAM)

З ESP8266 ви, безсумнівно, можете використовувати камеру, але це вимагатиме більше кодування та проводки та потенційно нижчих показників.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.