Як з'єднати два Arduino без щитів?


14

Я планую систему Arduino, яка складається з декількох дощок Arduino. Максимальна відстань між дошками - близько 50 метрів. Я хочу надсилати основні дані між цими, наприклад короткі рядки або цілі числа. Я знаю, що можу надсилати дані через кабелі Ethernet, але для цього потрібен ефірний щит або плата Arduino Ethernet, що вдвічі збільшує витрати. Чи є низький бюджет, щоб я міг з'єднати плати, використовуючи лише найпростіші дошки (наприклад, Uno) та деякі інші компоненти, але не повний щит?


Якщо бюджет не був проблемою, ви можете використовувати мікросхеми Bluetooth або xbee. Вони не надто погані, але
зароблять

@ Steven10172 Bluetooth-пристрої зручні, але, схоже, ОП хоче дешевого рішення без щитів (можливо, низький профіль?)
Анонімний Пінгвін

3
Переконайтеся , переконайтеся , щоб з'єднати підстави , якщо ваша середовище передачі електроенергії !!!
Анонімний пінгвін

Відповіді:


9

Для дротового провідного зв'язку дивіться RS-485 .

Оскільки вона використовує диференційовану врівноважену лінію по витій парі (наприклад, RS-422), вона може пройти відносно великі відстані (до 1200 футів (1200 м)). Основне правило полягає в тому, що швидкість в бітах / с, помножена на довжину в метрах, не повинна перевищувати 108. Таким чином, 50-метровий кабель не повинен сигналізувати швидше, ніж 2 Мбіт / с

Ви можете використовувати чіп MAX485. З цим досить легко працювати, але є і хороша бібліотека:

https://github.com/Protoneer/RS485-Arduino-Library


Чи не міг він просто прокласти дроти в RS-485 чи подібних, і просто використати їх для серійного економлення грошей? 9600 бод не працює майже так само швидко , як 2 Mbps. Чи є щось особливе у протоколі / напругах / тощо. що робить його придатним для далеких відстаней? Це може заощадити гроші ...
Анонімний пінгвін

Це диференціальний сигнал, що надсилається через виту пару. Знижує рівень шуму. en.wikipedia.org/wiki/Differential_signaling
sachleen

Ця сторінка є чудовим ресурсом на RS485 з Arduino gammon.com.au/forum/?id=11428
DaveP

7

Існує дві категорії, які я можу придумати, щоб класифікувати особливості корінних дощок Arduino:

Між 2 пристроями:

  • Серійний: Простий у використанні і вимагає лише 2 рядки даних.
  • OneWire: Більш складний у використанні та повільний, але використовує лише один рядок даних

Між більш ніж двома пристроями

  • I2C: Ви можете мати до 128 пристроїв у мережі, індивідуально адресованих, але потрібен головний пристрій, використовує 2 рядки даних. це відомо також як Дріт.
  • SPI: складний у використанні, але дуже швидкий і простий вибір пристрою. використовує багато рядків даних (3 + кількість пристроїв)
  • OneWire: використання адресованого oneWire навіть повільніше, ніж звичайний oneWire, все ж лише один рядок даних
  • SoftwareSerial: Ви можете мати кілька пристроїв, підключених різними послідовними лініями, але це повільніше.
  • МОЖЛИВО: доступне лише у службі належного користування та адресною адресою

Існують і інші методи, але перелічені лише потребують мінімум зовнішнього обладнання.

Детальну інформацію про відстань див. У розділі http://forum.arduino.cc/index.php?topic=82937.0 та http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html

Ці швидкості передачі безпосередньо керуються в Serial і їх можна змінити в багатьох інших.


5

Freakduino робить деякі плати Arduino із вбудованим бездротовим пристроєм. Їх бездротовий зв'язок довгого діапазону становить 900 МГц, а коротший діапазон - 2,4 ГГц. Я думаю, що це насправді радіо XBee, і для програмування ви б використали бібліотеку під назвою chibiArduino, яка доступна (і задокументована) на веб-сайті Freakduino. Під час бездротового спілкування з іншим радіо можна використовувати Broadcast або вказати радіо за його ідентифікатором, який є значенням, яке потрібно встановити в EEPROM Freakduino.

Знято безпосередньо з сайту Freakduino:

Додавання інтегрованого бездротового радіо на основі протоколу IEEE 802.15.4 (той же радіопротокол, що і XBee) дозволяє бездротового керування пристроями або збору даних бездротового сенсора. Додано додаткову схему акумуляторів, щоб вона могла функціонувати як справжній бездротовий вузол без зовнішніх кабелів живлення. Плата також розроблена для розміщення шаленого корпусу, щоб конструкцію можна було безпечно транспортувати або розгортати за фактичним сценарієм використання, не турбуючись про пошкодження схеми.

Цей радіозв'язок 900 МГц - мій особистий фаворит. Я використовую його постійно, тому що 900 МГц пропонує набагато кращий діапазон порівняно з 2,4 ГГц. Радіо може видавати до 10 мВт потужності передачі, що може отримати дивовижну кількість діапазону. При прямій лінії зору кілька сотень метрів не дивували б. Якщо потрібен додатковий діапазон, режим модуляції також можна змінити з OQPSK на BPSK. Це призводить до додаткового діапазону за рахунок швидкості передачі даних, максимум - від 250 кбіт до 40 кбіт / с у стандартному режимі.


0

Як ви сказали, екрани Ethernet дорогі, але не потрібно використовувати щит. Перевірте enc28j60 щодо дротових мереж або ESP8266, якщо ви хочете бездротового зв’язку. Обидва коштують близько 4 доларів США. Зараз я використовую ESP8266 і маю близько 8 пристроїв, що розмовляють між собою та Raspberry Pi. Це дійсно чудова маленька фішка! Я не можу особисто розмовляти з ENC28j60, оскільки вони все ще сидять у пакунку на моєму столі.


0

Ви можете використовувати плату розриву Ethernet ($ 2 у Sparkfun). Це дозволяє використовувати кабелі Ethernet, але вам не доведеться використовувати повний протокол TCP / IP, натомість ви можете просто підключити шпильки даних до плати розриву, використовувати Ethernet для їх підключення, а потім змусити їх розмовляти за допомогою послідовного. Я використовую це небагато, щоб розмістити один провідний датчик далі від Arduino для міцного, але дешевого зв'язку.

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