Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Аппаратное обеспечение
    RB433UAH и Arduino Uno/Mega с Ethernet shield

    RB433UAH и Arduino Uno/Mega с Ethernet shield

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    RB433UAH и Arduino Uno/Mega с Ethernet shield, Аппаратное обеспечение
     
    SurferTim
    Guest
    #1
    0
    27.11.2011 15:39:00
    Кто-нибудь ещё, кроме меня, понял, какой классный тандем это вообще? Подключаешь к одному из USB-портов на RB433UAH — и вот ты уже полностью контролируешь ситуацию. Можно зайти в USB (серийный) порт Ардуино с роутера. У меня есть «консольная» программа, которая отлично работает с этим роутером. Можно считывать цифровые и аналоговые пины, управлять цифровыми и ШИМ-выходами. Ардуино может заходить в роутер через USB-порт (для этого на Ардуино нужно перепаять джампер). Пока что не дошёл дальше входа в систему.  

    54 цифровых входа/выхода, из них 14 — 8-битные ШИМ-выходы. 16 аналоговых входов с разрешением 10 бит. 4-портовый UART, SPI, I2C и прочее... Ethernet shield поддерживает работу и как сервер, и как клиент (http и smtp). Подключаешь к ether2 — и вперёд.  

    Кстати, забыл упомянуть microSD «жёсткий диск» на Ethernet shield. У меня на 2 ГБ. Всё это питается от USB-порта RB433UAH. Это реально кайф!  

    Кто-то заинтересован в вики по этой теме?  

    P.S. Эти платы Arduino не для новичков. Если вы хотя бы в C не разбираетесь — это совсем не ваше.
     
     
     
    chambri
    Guest
    #2
    0
    31.12.2014 09:32:00
    Некоторое время назад я пытался подключить Arduino к Mikrotik, но помощи было недостаточно. Цель в том, чтобы по сети Arduino отправлял telnet-команды для изменения поведения нескольких кнопок на Mikrotik. Вот ссылка на то, что у меня получилось. Если кто-то может помочь — буду признателен. http://forum.arduino.cc/index.php?topic=77187.0
     
     
     
    remedix
    Guest
    #3
    0
    06.06.2014 07:35:00
    Всем привет, знаю, что это старый пост, но, думаю, вы сможете мне помочь. Я хочу читать вывод с Arduino, подключённого через USB. Каждую минуту Arduino отправляет в сериал следующее: «humidity:33.00,temperature:26.51,pressure:980.08». Я пробовал всё, что вы советовали для включения порта, но в логах постоянно выскакивают ошибки вроде: «login failure for user humidity:33.00,temperature:26.51,pressure:980.08 via local». Похоже, RB сначала ждёт данные для входа. Как это сделать? В итоге хочу сохранять эти данные в лог-файл. Есть идеи? Спасибо!
     
     
     
    Zapnologica
    Guest
    #4
    0
    08.06.2013 14:03:00
    Не мог бы ты дать мне немного больше информации по этому поводу? Я уже очень давно хочу это сделать. Как мне общаться с Arduino через USB на Mikrotik? Также хотел бы попробовать расшарить последовательный порт Arduino по сети. Это позволит подключаться к моему Arduino через Wi-Fi сеть... Я знаю, что можно расшарить обычный последовательный порт с помощью такой команды: /port remote-access add port=serial0 protocol=rfc2217 tcp-port=10000. Мне просто нужно понять, как смонтировать USB-последовательный порт на номер порта, например, как здесь "serial0". Как сделать так, чтобы USB-последовательный порт стал, скажем, serial1, и тогда я смогу расшарить serial1 по сети и подключаться к нему с ПК?
     
     
     
    SurferTim
    Guest
    #5
    0
    09.06.2013 10:15:00
    Я подключаюсь к USB-порту, используя пользователя с особыми правами через SSH.  
    /user  
    add name=arduino password=arduino group=full  

    /special-login  
    add user=arduino port=usb1  

    Затем захожу по SSH в роутер. При появлении приглашения «Login:» вводим имя пользователя и пароль — arduino. В итоге вы попадаете в USB-порт Arduino, как будто работаете с последовательным монитором. Подключение сбрасывает Arduino, если только вы не разорвали дорожку «reset-en» на плате.  

    Или можно получить прямой доступ к USB-порту.  
    /port remote-access  
    add port=usb1 tcp-port=8088  

    Если подключаетесь к роутеру по IP и порту 8088, вы напрямую выходите на Arduino. Подключение сбрасывает Arduino, если вы не разорвали «reset-en» дорожку на Arduino.  

    У меня также есть Ethernet shield, подключенный к одному из Ethernet-портов.  

    Редактирую: если у вас есть удалённые объекты, которым нужна дополнительная безопасность, это отличный вариант. Он мониторит переключатели дверей/окон/ворот, управляет камерами и светом и может отправлять email или SMS на ваш мобильный телефон, если что-то пойдёт не так.
     
     
     
    Zapnologica
    Guest
    #6
    0
    18.06.2013 17:59:00
    Я понял, что нужно просто указать usb1 вместо serial0, и всё отлично работает. Это просто лучшее из всего, что я видел. Я не могу дождаться, когда начну играть. Какое классное сочетание, я так рад, что Mikrotik совместим с Arduino.
     
     
     
    SurferTim
    Guest
    #7
    0
    19.06.2013 09:58:00
    Это открыло для меня совершенно новый мир. Я на форуме Arduino под ником SurferTim. Заглядывай, если нужна помощь. http://forum.arduino.cc Мои специализации — Ethernet Shield и шина SPI. Я обитаю в разделе Networking.

    редактирование: Я написал эти два скетча специально для использования на RB433UAH. http://playground.arduino.cc/Code/WebClient http://playground.arduino.cc/Code/Email

    @Zapnologica: Думаю, тебе не нужно это объяснять. Твой ник уже вижу там.
     
     
     
    dominuspolux
    Guest
    #8
    0
    25.08.2013 19:54:00
    Привет. Можно ли считать уровень сигнала RSSI роутера через Arduino и показывать его на LCD, подключённом к Arduino, в режиме реального времени? Это было бы полезно для настройки антенны, а ещё Arduino мог бы управлять сервоприводами для этого.
     
     
     
    dmcosta
    Guest
    #9
    0
    17.01.2014 17:11:00
    У меня была такая же идея, но мне нужно считывать уровень сигнала на LTE-интерфейсе, например, lte1. Если Arduino может это делать, я смогу управлять моторизованной антенной и проводить поиск лучшей ориентации. Может, кто-то сможет помочь с этим? Спасибо.
     
     
     
    SurferTim
    Guest
    #10
    0
    07.02.2014 14:57:00
    Я пока не нашёл способа сделать всё наоборот. Я могу подключиться к Arduino через роутер Mikrotik, но не могу подключиться к роутеру с самого Arduino. Возможно, telnet с Ethernet shield на роутер Mikrotik сработает. Если будет возможность, обязательно попробую.
     
     
     
    Zapnologica
    Guest
    #11
    0
    06.06.2014 08:27:00
    Ты хочешь сохранить эти данные непосредственно на RB или где-то на компьютере? У тебя есть два варианта.  
    1: использовать Mikrotik, чтобы создать виртуальный COM-порт, на который потом запускаешь клиентское ПО на компьютере — так ты получаешь доступ к Arduino. По сути, это создает «трубопровод» от компьютера к Arduino. Можно делать это через интернет, локальную сеть или беспроводное подключение — не важно. Это самый простой способ, потому что ты сможешь использовать C# или любой другой язык для работы с последовательными сообщениями.  
    2: Подключиться к Arduino напрямую с Mikrotik и логировать данные локально. Я сам так не пробовал, но, думаю, самый простой способ — написать скрипт, который запрашивает у Arduino сообщение, получает ответ и сохраняет его в файл. Лучше так, чем слушать постоянно.
     
     
     
    remedix
    Guest
    #12
    0
    06.06.2014 08:36:00
    Привет, спасибо за ответ. Нет, я не хочу использовать компьютер для считывания каких-либо данных. Мне кажется, вариант 2 ближе всего к тому, что я пытаюсь сделать. В общем, идея в том, чтобы arduino отправлял сериал-данные на mikrotik и сохранял их в логах mikrotik (в памяти, а не на диске). Затем скрипт на mikrotik прочитает логи, найдет записи от «arduino» и отправит результаты на веб-сервис. Я уже написал скрипт на mikrotik и сам веб-сервис. Теперь мне не хватает части, где mikrotik записывает сериал-данные в логи.
     
     
     
    SurferTim
    Guest
    #13
    0
    06.06.2014 13:50:00
    Прошу прощения, что давно не экспериментировал с этим. Я был занят другим проектом. Сейчас я на том этапе, когда эта функция действительно нужна. Постараюсь скоро найти время, чтобы проверить, смогу ли войти в роутер Mikrotik через USB-порт. Скорее всего, это был бы самый простой вариант с наименьшим количеством оборудования (без Ethernet-шейлда). Может быть, удастся получить помощь от поддержки MikroTik — это бы очень помогло. Есть какие-нибудь идеи?
     
     
     
    RogerWilco
    Guest
    #14
    0
    08.06.2014 00:39:00
    Мне это интересно. Мой пост на днях как раз про похожее (вход в сериал-устройство, правда, не наоборот): http://forum.mikrotik.com/t/connecting-to-serial-devices-with-a-usb-ftdi-ttl-232-cable/77869/1 Я не подключаюсь к Arduino, но дело похожее. В будущем планирую использовать Netduino. @remedix: Ты имеешь в виду что-то вроде:

    MK роутер подключается к Arduino или твоему сериал-устройству через TTL/USB  
    MK подключается к Arduino или сериал-устройству через терминал  
    MK запрашивает данные или устройство автоматически отправляет данные при подключении  
    MK записывает полученные данные в лог
     
     
     
    remedix
    Guest
    #15
    0
    08.06.2014 07:28:00
    Ребята, я решил свою проблему. Вот что я выяснил: мой Arduino шлёт данные каждые 30 секунд на USB-порт. Я использовал /port, чтобы привязать логирование с USB в файл, с помощью команды: /port set 0 data-bits=7 name=usb1  
    /port remote-access add log-file=arduino.dat port=usb1 protocol=raw tcp-port=65535

    Потом написал скрипт, который каждые 5 минут читает «arduino.dat», берёт последнюю строку, выводит её в консоль и отправляет на веб-сервис.

    Примечания: сложность была в том, что файл можно читать только если он меньше 4096 байт, поэтому после чтения я удалял файл и создавал заново. К тому же, все строки в «arduino.dat» заканчиваются символом \r (возврат каретки), который я удалял, считая длину строки и убирая последний символ.

    Если кому интересно, вот итоговый рабочий код:

    if ( [/file get [/file find name=arduino.dat] size] > 0 ) do={
      :global content [/file get [/file find name="arduino.dat"] contents] ;
      :global contentLen [:len $content ];
      :global lineEnd 0;  
      :global line "";  
      :global lastEnd 0;  
      :global lastLine "";  
      :global sizeOfLine "";  
      :do {  
           :set lineEnd [:find $content "\n" $lastEnd ] ;
           :set line [:pick $content $lastEnd $lineEnd] ;
           :set lastEnd ( $lineEnd + 1 ) ;  
           :if ( [:pick $line 0 1] != "#" ) do={
              :local entry [:pick $line 0 $lineEnd ]
              :if ( [:len $entry ] > 0 ) do={
                  :global lineSize [:len $entry];
                  :set lastLine $entry      
              }  
           }  
      } while ($lineEnd < $contentLen)  

    # отправляем данные на веб-сервис  
    :set sizeOfLine [:len $lastLine];
    :local thisLineSize ($sizeOfLine - 1);  
    :set lastLine [:pick $lastLine 0 $thisLineSize];
    :tool fetch url="http://URL/post.php\3Freadings=$lastLine" mode=http dst-path=arduino.reading  
    :log info $lastLine;  
    }  

    # обслуживание. Удаляем файл и создаём заново, чтобы не превысить 4096 байт и файл можно было читать дальше  
    /file remove arduino.dat  
    /port remote-access disable [find where port=usb1]
    /port remote-access enable [find where port=usb1]
     
     
     
    icezinho
    Guest
    #16
    0
    10.01.2018 11:48:00
    Привет, как твой Arduino отправляет данные на MK? Можешь, пожалуйста, показать пример? Я пробовал использовать код, но он работает плохо, думаю, проблема в данных с Arduino!
     
     
     
    guestph
    Guest
    #17
    0
    04.05.2019 04:58:00
    Это тоже возможно для mikrotik hAP lite TC (RB941-2nD-TC)? Я хочу, чтобы мой Arduino с Ethernet shield общался с hAP lite через его LAN-порты, но, похоже, с Ethernet shield что-то не так. Мой shield не может подключиться к hAP lite, но когда я подключал Arduino с Ethernet к ПК через RJ45-кабель, проблем не было. Я предполагаю, что подключу модем и свяжу hAP Lite с LAN-портом модема (например, LAN1), а Arduino с Ethernet shield — к другому LAN-порту (LAN2), и пусть они общаются через TelnetClient. Дело в том, что я не могу выполнить Telnet к своему hAP Lite с Arduino+Shield, используя IP-адрес, выданный моим модемом. Что-то я упускаю? Я использовал библиотеку TelnetClient от Alejho с Github (https://github.com/alejho/Arduino-Telnet-Client).
     
     
     
    osel
    Guest
    #18
    0
    18.01.2021 21:14:00
    Есть новости по проблеме с лимитом в 4 КБ при записи данных с последовательного порта? В последней стабильной версии (сейчас 6.48) проблема всё ещё не решена: лог останавливается ровно после 4096 байт. Обходные методы — удаление файла и включение/выключение удалённого доступа к порту — не помогают, запись прекращается после получения 4 КБ, несмотря на то, что файл меньше после удаления и повторного включения удалённого доступа.
     
     
     
    icezinho
    Guest
    #19
    0
    10.01.2018 11:51:00
    @remedix, привет! Можешь помочь мне с твоим кодом, пожалуйста?
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры