Оглавление:
- Шаг 1: электрическая схема и защита цепей
- Шаг 2: Строительство
- Шаг 3: Программирование WiFi Shield
- Шаг 4: Добавление светодиодных индикаторов (необязательно)
- Шаг 5: Настройка конфигурации через встроенную веб-страницу
- Шаг 6. Справка - нет данных
Видео: Дешевый концентратор NMEA / AIS - мост RS232 к Wi-Fi для использования на борту: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
Обновление от 9 января 2021 года - добавлено дополнительное TCP-соединение и повторное использование последнего соединения, если подключается больше клиентов Обновление 13 декабря 2020 года - добавлена версия кода без конфигурации для лодок с существующими маршрутизаторами
Вступление
Этот мост NMEA / AIS RS232-WiFi основан на WiFi Shield ESP8266-01. AIS - это автоматическая система идентификации, показывающая местоположение ближайших кораблей. NMEA 0183 - это стандарт Национальной ассоциации морской электроники, используемый для сообщений GPS.
Мост RS232-Wi-Fi был изменен по сравнению с ESP8266-01 WiFi Shield, чтобы питаться от батареи 12 В и принимать вход RS232 (+/- 15 В) и создавать локальную сеть, которая передает данные через TCP и UDP. Он был разработан совместно с Джо, который хотел запустить дешевую и простую автономную локальную сеть для доступа к данным своего AIS из любого места на своей яхте. Этот результирующий модуль создает точку доступа (маршрутизатор) и настраивает TCP-сервер для 4 подключений, а также передает данные в широковещательной группе UDP. Веб-страница конфигурации предназначена для установки номеров портов TCP и UDP, мощности передачи данных Wi-Fi и входящей скорости передачи данных RS232. В отличие от WiFi Shield, здесь нет кнопки настройки, поэтому после сборки модуль может быть полностью герметичным. Цепи защиты включены, чтобы сделать это устройство устойчивым к неправильному подключению. Хотя модуль разработан с учетом NMEA (GPS) и AIS, он будет обрабатывать любые данные RS232 со скоростью передачи от 4800 до 38400 (и другие данные путем редактирования эскиза Arduino).
Функции
- Использует недорогой и доступный модуль ESP8266-01: - Также можно использовать другие модули ESP8266.
- Надежность: - Схема имеет ряд встроенных средств защиты для защиты от ошибок при подключении.
- Энергоэффективность: - Преобразователь постоянного тока в постоянный источник питания эффективно питает устройство от батареи 12 В, а мощность Wi-Fi Tx может быть уменьшена для экономии энергии.
- Простота использования: - Просто подключите источник питания 5,5–12 В и линию передачи RS232, а затем подключите приемник к сети и подключитесь к службе TCP или UDP для получения данных. Может быть быстро заменен на запасной, если устройство выйдет из строя
- Простота настройки: - Нет необходимости перепрограммировать, нет специального режима конфигурации. Предоставляется страница конфигурации, которая позволяет вам установить скорость передачи RS232 и мощность передачи WiFi, а также номера портов для серверов TCP и UDP.
-
Необязательно Версия без конфигурации: - Также есть еще один скетч, где вся конфигурация предварительно запрограммирована. Это для тех ситуаций, в которых уже есть локальная сеть с собственным маршрутизатором (точкой доступа).
Запасы:
Для этого моста RS232-Wi-Fi ESP8266-01 требуются следующие детали или аналогичные. Цены указаны по состоянию на август 2020 года и не включают стоимость доставки и пластиковый футляр: -
Модуль WiFi ESP8266-01 - ~ 1,50 доллара США онлайн (рискните) ИЛИ для надежного продукта SparkFun ESP8266-01 - 6,95 доллара США
Понижающий преобразователь MPM3610 3,3 В Adafruit - 5,95 долл. США на входе с 5 В на 21 В, ИЛИ понижающий понижающий модуль питания DC-DC 3 А онлайн Aliexpress ~ 2,00 доллара США
10-контактный разъем Element14 - 0,40 доллара США (или 28-контактная клеммная колодка от Jaycar AU 0,95 доллара США)
1 шт. 1N5711 Диод Шоттки Digikey 1,15 доллара США (или 1,60 австралийского доллара США)
2 диода 1N4001 SparkFun 0,30 доллара США (или 1N4004 Jaycar 1 доллар США) Подойдет любой диод 1A 50 В или выше, например 1N4001, 1N4002, 1N4003, 1N4004
1 выключен 2N3904 NPN транзистор SparkFun 0,50 доллара США (или 0,75 доллара США Jaycar любой NPN общего назначения с Vce> 40 В, Hfe> 50 при 1 мА, Ic> 50 мА, например, BC546, BC547, BC548, BC549, BC550, 2N2222
6 резисторов 3 кОм, например Резисторы 3K3 - Digikey - 0,60 доллара США (или металлопленочные резисторы 3K3ohm 1/2 Вт, 1% - Pk.8 от Jaycar AU 0,85 доллара США)
3 резистора 330R Element14 0,10 долл. США (или резисторы на 330 Ом 1/2 Вт 1% металлопленочные - Pk.8 от Jaycar AU 0,85 долл. США)
1 резистор 10 кОм Element14 0,05 доллара США (или металлопленочные резисторы 10 кОм 0,5 Вт - упаковка из 8 штук от Jaycar AU 0,85 доллара США)
Плата Vero (линки и шины) Jaycar HP9556 OR (полоска меди) (полоска меди) например Jaycar HP9540 ~ 5,50 австралийских долларов
пластиковый корпус и провод для подключения.
Общая стоимость ~ 9,90 долларов США + доставка и пластиковый корпус (по состоянию на август 2020 года) с использованием Aliexpress ESP8266-01 и модуля DC-DC ИЛИ ~ 19,30 долларов США с использованием модуля Sparkfun ESP8266-01 и понижающего преобразователя Adafruit DC-DC. Достаточно дешево, чтобы сделать пару запчастей.
Чтобы запрограммировать мост RS232-WiFi, вам также понадобится кабель USB-Serial. Здесь используется последовательный кабель SparkFun с USB на TTL (10,95 долларов США), потому что он имеет красиво маркированные концы и поддерживает драйверы для широкого диапазона ОС, включая кабель для программирования, стоимость только одного моста RS232-WiFi составляет от 20 до 24 долларов США. (плюс доставка и футляр).
Шаг 1: электрическая схема и защита цепей
Выше приведена принципиальная схема моста RS232 - WiFi (версия в формате pdf). Он был адаптирован из ESP8266-01 Wifi Shield и модифицирован для работы с RS232 и питанием от 5 до 12 В (аккумулятор). Преобразователь постоянного тока в постоянный обеспечивает энергоэффективную работу от батареи 12 В для работы в ночное время, когда нет солнечной энергии, а потребление энергии ограничено.
В схему встроено несколько защит. Соединения на левой стороне схемы используются только во время сборки для программирования / отладки устройства. Резисторы 330R R6 и R7 защищают от короткого замыкания выхода TX на выход TX при программировании / отладке. При программировании вы подключаете TX к RX и RX к TX. Выход отладки TX должен быть подключен к входу RX UART 3v3, чтобы увидеть выходные данные отладки (см. Комментарии в эскизе ESP8266_NMEA_BRIDGE.ino).
Разъемы на правой стороне схемы используются для подключения готового устройства к источнику питания и источнику NMEA / AIS RS232. Это единственные соединения, которые должны быть доступны после сборки устройства. Держите эти соединения попарно.
2N3904 обеспечивает инверсию и сдвиг уровня от сигнала RS232 +/- 15 В до входа TTL UART на ESP2866. Обратное напряжение между эмиттером и базой 2N3904 должно выдерживать не менее 6 В. D4 ограничивает базовое напряжение обратного эмиттера менее 1 В, когда на входе RS232 -15 В.
Наконец, «драйверы и приемники RS-232 должны выдерживать неопределенное короткое замыкание на землю» (википедия RS232), поэтому, если вы случайно подключите линии RS232 к клеммам источника питания, это не должно повредить устройство NMEA / AIS.
Источник питания
Диод D1 предотвращает подачу обратного напряжения на преобразователь постоянного тока в постоянный, если вы случайно поменяете местами контакты + V и GND при подключении. D1 имеет небольшой ток утечки. D2 обеспечивает путь низкого напряжения для этого тока утечки, чтобы поддерживать обратное напряжение на преобразователе постоянного тока ниже -0,3 В. Резистор 330R (R10) в линии RS232 GND обеспечивает защиту от короткого замыкания батареи на землю, если положительный вывод батареи подключен к проводу GND источника питания платы при подключении заземления RS232 GND.
Преобразователь постоянного тока в постоянный рассчитан на рабочее входное напряжение до 21 В, поэтому он подходит для батареи 12 В при замене. Напряжение полностью заряженного аккумулятора может составлять до ~ 14,8 В, а напряжение зарядного устройства может быть выше, 16 В и более. Входное напряжение 21 В преобразователя постоянного тока рассчитано на это. Защита от случайного обратного подключения питания (среди ночи в ненастную погоду). Абсолютное максимальное напряжение на входе преобразователя составляет 28 В, поэтому он может работать с подключенным к нему сигналом RS232. Напряжение RS232 должно быть меньше +/- 25 В.
Если вы случайно подключите провода от источника питания к разъемам RS232 TX / GND (поменяны местами или нет), резисторы 10K и 330R защитят от короткого замыкания источника питания.
Таким образом, схема защищена от переключения питания и выводов RS232, а также от подключения проводов от этих пар в любом направлении. Перемешивание проводов, по одному от каждой пары, не защищено от всех комбинаций, поэтому держите RS232 и провода питания спаренными и подключайте их попарно.
Средний ток, используемый платой, составляет около 100 мА (в зависимости от мощности передачи и скорости передачи данных WiFi). Если бы для питания платы от батареи на 12 В использовался простой линейный регулятор, потребляемая мощность составила бы 12 В x 100 мА = 1,2 Вт или 1,2 Ач за 12 ночей. Использование преобразователя постоянного тока в постоянный с КПД ~ 70% снижает эту нагрузку до 0,47 Вт или 0,47 Ач за 12 часов ночи.
Шаг 2: Строительство
Я сконструировал это устройство из небольшого куска веро-платы со связями и шинами питания (версия в формате pdf). Вот вид сверху и снизу готовой доски. Убедитесь, что вы внимательно проверили проводку, когда закончите. Если перевернуть кабель снизу, его легко подключить не к тому контакту.
Шаг 3: Программирование WiFi Shield
Каждый мост RS232-WiFi нужно программировать только один раз и никогда больше. Встроенная веб-страница обеспечивает доступ к доступным конфигурациям.
Установка поддержки ESP8266
Чтобы запрограммировать щит, следуйте инструкциям, приведенным на https://github.com/esp8266/Arduino в разделе «Установка с помощью Boards Manager». При открытии Boards Manager из меню Tools → Board выберите Type Contributed и установите платформу esp8266. Этот проект был скомпилирован с использованием ESP8266 версии 2.6.3. Более поздние версии могут быть лучше, но могут иметь свои собственные ошибки, поскольку платформа быстро развивается.
Закройте и снова откройте Arduino IDE, и теперь вы можете выбрать «Generic ESP8266 Module» в меню «Инструменты» → «Плата».
Установка вспомогательных библиотек
Вам также необходимо установить из https://www.forward.com.au/pfod/pfodParserLibraries/index.html последние версии библиотеки pfodESP8266BufferedClient (для pfodESP8266Utils.h и pfodESP8266BufferedClient.h) и библиотеки millisDisDelay (для. час).
Загрузите эти zip-файлы на свой компьютер, переместите их на рабочий стол или в другую папку, которую вы легко найдете, а затем используйте пункт меню Arduino IDE Sketch → Import Library → Add Library для их установки. Вам также необходимо установить библиотеку SafeString. Библиотека SafeString доступна в диспетчере библиотек Arduino, или вы можете загрузить файл SafeString.zip напрямую для ручной установки через Sketch → Import Library → Add Library.
Остановите и перезапустите IDE Arduino и в разделе «Файл»> «Примеры» вы должны увидеть pfodESP8266BufferedClient и SafeString.
Программирование доски
Чтобы запрограммировать плату, установите плату в режим программирования, замкнув перемычку (внизу слева). Затем подключите USB к последовательному кабелю TTL UART.
Обратите внимание: подключайте выводы 3V3 TX / RX только к левому разъему, используя 3V3 TX / RX от последовательного кабеля USB на TTL Sparkfun. Кабельные соединения: RX (желтый), TX (оранжевый), VCC (5V) (красный), и GND (черный). Обратите внимание, что желтый (RX) кабель подключен к контакту TX на плате, а оранжевый (TX) кабель подключен к контакту RX на плате. Черный (GND) кабель подключается к GND для контакта TX / RX
Примечание. Кажется, существует две версии этого кабеля. Старые версии имеют 5V Vcc и RX (коричневый), TX (коричневый / персиковый), VCC (красный) и GND (черный), в любом случае вывод VCC здесь не используется. Также есть комментарии, что провода TX и RX в некоторых случаях перепутаны. Если Arduino IDE не может запрограммировать плату, попробуйте поменять местами кабели TX / RX. 330R защищает от короткого замыкания TX-TX.
Подайте питание на плату от 6 В до 12 В, 500 мА или более мощный источник питания или аккумулятор. Сначала подключите провод источника питания -Ve (GND), чтобы ток источника питания не пытался течь обратно через USB-соединение. Предпочтительно использовать изолированный (плавающий) источник питания от 6 до 12 В или батарею. Обратите внимание, что для модулей Aliexpress DC-DC требуется напряжение не менее 6,5 В.
Затем подключите USB-кабель к компьютеру. Выберите его COM-порт в меню Инструменты → Порт. Оставьте частоту процессора, размер флэш-памяти и скорость загрузки по умолчанию.
Проверьте фото и вашу проводку. Также см. Советы по программированию ESP8266 (сбой espcomm). Скомпилируйте эскиз ESP8266_NMEA_BRIDGE.ino. Затем выберите Файл → Загрузить или используйте кнопку со стрелкой вправо, чтобы скомпилировать и загрузить программу. Загружены два файла. Если вы получаете сообщение об ошибке при загрузке, проверьте, правильно ли подключены ваши кабельные соединения, и повторите попытку.
После завершения программирования удалите режим программирования, закорачивающий связь и программирование соединений TX / RX, а затем выключите и включите источник питания, чтобы перезапустить плату в нормальном режиме.
Подключите устройство NMEA / AIS.
Нет версии конфигурации
Существует еще одна версия этого скетча, ESP8266_NMEA_BRIDGE_noCfg.ino, в которой вся конфигурация предварительно запрограммирована в коде скетча. В этом случае концентратор NMEA подключается к существующему маршрутизатору (точке доступа), чтобы сделать данные доступными в сети.
Конфигурация находится в верхней части файла ESP8266_NMEA_BRIDGE_noCfg.ino.
// ================= ЖЕСТКОЕ ЗАПИСАННАЯ КОНФИГУРАЦИЯ ==================
const char ssid = "yourRouterSSID"; // задайте здесь SSID вашей сети const char password = "yourRouterPassword"; // установите пароль вашей сети здесь IPAddress staticIP (10, 1, 1, 190); // установить здесь статический IP-адрес концентратора NMEA. ОБРАТИТЕ ВНИМАНИЕ, что между цифрами // убедитесь, что никакое другое устройство не работает с этим же IP-адресом и что IP-адрес находится в диапазоне IP-адресов вашего маршрутизатора // общие диапазоны IP-адресов маршрутизатора: от 10.1.1.2 до 10.1.1.254 // от 192.168.1.2 до 192.168..254.254 и // от 172.16.1.2 до 172.31.254.254 // маршрутизатор обычно 10.1.1.1 или 192.168.1.1 или 172.16.1.1 в зависимости от его диапазона IPAddress udpBroadcaseIP (230, 1, 1, 1); // здесь устанавливаем широковещательный IP-адрес UDP. ОБРАТИТЕ ВНИМАНИЕ, что между числами. Этот IP-адрес не зависит от диапазона маршрутизатора, не меняйте const uint16_t tcpPortNo = 10110; // задаем номер порта tcp-сервера NMEA здесь const uint16_t udpPortNo = 10110; // установить номер порта широковещательной передачи NMEA UDP здесь const unsigned int txPower = 10; // Мощность передачи в диапазоне от 0 до 82; константа без знака int GPS_BAUD_RATE = 4800; // Последовательная скорость передачи вашего GPS-модуля // ================= КОНЕЦ ЖЕСТКОКОДИРОВАННОЙ КОНФИГУРАЦИИ ==============
Шаг 4: Добавление светодиодных индикаторов (необязательно)
Мой консультант по парусному спорту в этом проекте, Джо, предложил установить на корпус красный светодиодный индикатор питания и зеленый светодиодный индикатор, чтобы указать, что все работает. Вот модифицированная схема с добавлением этих двух светодиодов. (версия pdf)
R9 и R11 устанавливают ток светодиода и, следовательно, яркость. Используйте резистор самого большого размера, чтобы светодиоды оставались видимыми. Их будет сложно увидеть под прямыми солнечными лучами или в ярко освещенной кабине, поэтому установите устройство в темном углу для максимальной видимости. У Jaycar есть подходящие красные и зеленые светодиоды на лицевой панели (~ 2,75 австралийских долларов), а у Sparkfun есть несколько супер ярких красных и зеленых светодиодов (1,70 доллара США), но подойдет почти любой красный и зеленый светодиоды.
Шаг 5: Настройка конфигурации через встроенную веб-страницу
Когда вы включаете плату после программирования, она автоматически создает локальную сеть. То есть он станет локальной точкой доступа (роутером). Имя сети начинается с NMEA_, за которым следуют 12 шестнадцатеричных цифр, уникальных для каждой платы, например. NMEA_18FE34A00239 Пароль для локальной сети всегда NMEA_WiFi_Bridge. Если вам нужно поменять местами устройства в море, выключите старый, установите запасной, а затем найдите новую сеть NMEA_….. и используйте пароль NMEA_WiFi_Bridge, чтобы присоединиться к ней.
Если вы не видите сеть, подойдите ближе к печатной плате и проверьте, правильно ли подключены силовые кабели. На плате ESP8266-01 должен быть синий свет.
После того, как вы подключились к сети со своим компьютером или мобильным телефоном, вы можете открыть веб-страницу конфигурации по адресу https://10.1.1.1 (Примечание: введите https://10.1.1.1, если вы просто введете 10.1.1.1, вы Google может попытаться найти его и потерпит неудачу, поскольку вы не подключены к Интернету)
На странице конфигурации вы можете установить мощность передачи WiFi. Меньшие числа для меньшей мощности, дальности и потребления тока. Вы также можете изменить номера портов для соединений TCP и UDP. По умолчанию 10110 является назначенным портом для соединений NMEA, но при желании вы можете выбрать свой собственный. Номера IP фиксированы. Наконец, вы можете установить скорость передачи в соответствии с вашим источником NMEA / AIS. 4800 бод - стандартная скорость передачи данных для NMEA. В то время как 34800 бод - это стандартная скорость передачи для AIS.
После того, как вы сделали свой выбор, нажмите «Отправить», и откроется сводная страница сохраненных изменений.
Если это не так, используйте кнопку «Назад» в браузере, чтобы вернуться и исправить их. Чтобы изменения вступили в силу, необходимо перезапустить доску. Для этого нажмите кнопку Применить эти изменения.
Как только плата перезагрузится, она снова автоматически отобразит страницу конфигурации с текущей конфигурацией.
Подключите свой компьютер или мобильное устройство к TCP или UDP соединению и проверьте, что вы получаете данные.
Готово !! Запечатайте все в водонепроницаемой пластиковой коробке, оставив свободными только два провода питания и два вывода RS232.
Шаг 6. Справка - нет данных
Если вы подключились к сети и настроили мобильное устройство для подключения к TCP 10.1.1.1 и порту, который вы установили (или присоединитесь к группе многоадресной рассылки UDP 230.1.1.1 с установленным вами портом), если вы все еще не получаете любые данные попробуйте следующие шаги.
1) Убедитесь, что оборудование NMEA / AIS включено.
2) Убедитесь, что кабели RS232 подключены правильно.
3) Проверьте настройку «управления потоком» на вашем оборудовании NMEA / AIS. Установите значение «НЕТ», если это возможно. Если нет, выберите «аппаратное» ИЛИ управление потоком RTS / CTS и замкните RTS на контакты CTS и DSR кабеля NMEA / AIS. То есть для разъема DB-25 соедините контакты 4, 5 и 6 вместе. Для разъема DB-9 соедините контакты 6, 7 и 8 вместе. При «аппаратном» управлении оборудование NMEA / AIS (DTE) выдает RTS (ReadyToSend), когда оно хочет отправить данные. С помощью этих подключений вывод RTS управляет выводами ClearToSend (CTS) и DataSetReady (DSR), которые вводятся обратно в оборудование NMEA / AIS, чтобы сообщить ему, что другая сторона готова и может принимать данные.
Отладка
Чтобы включить вывод Debugging TX, раскомментируйте, т.е. отредактируйте на #define DEBUG рядом с верхней частью эскиза ESP8266_NMEA_BRIDGE.ino.
Отсоедините USB-кабели TX / RX и просто подключите желтый кабель RX к выходу Debug TX. Оставьте черный кабель GND подключенным к GND для TX / RX. Последовательный монитор Arduino IDE теперь будет показывать отладочные сообщения.
По умолчанию группа многоадресной рассылки UDP запускается, но вы можете отключить ее, закомментировав, т.е. отредактируйте // #define UDP_BROADCAST в верхней части скетча ESP8266_NMEA_BRIDGE.ino.
Заключение
Этот мост NMEA / AIS RS232-WiFi надежен и прост в использовании. Он эффективно работает от источника 12 батарей и достаточно дешев, чтобы носить с собой запасной, который при необходимости можно поменять в середине рейса.
Рекомендуемые:
Как утилизировать телефоны Android для BOINC или складной установки без использования батарей: 8 шагов
Как утилизировать телефоны Android для BOINC или складного устройства без использования батарей: ПРЕДУПРЕЖДЕНИЕ: Я НИКОГДА НЕ НЕСУСЬ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПОВРЕЖДЕНИЯ, ВЫЯВЛЕННЫЕ ВАШЕМУ ОБОРУДОВАНИЮ, СЛЕДУЯ ЭТОМ РУКОВОДСТВУ. Это руководство более эффективно для пользователей BOINC (личный выбор / причины), его также можно использовать для СКЛАДЫВАНИЯ. Поскольку у меня мало времени, я
Практический PIR для домашнего использования: 7 шагов (с изображениями)
Практический PIR для домашнего использования: как и многие из вас, кто работает с проектами домашней автоматизации, я искал функциональный датчик PIR для автоматизации некоторых поворотов на поворотах в моем собственном доме. Хотя датчики PIR переключателя света были бы оптимальными, вы не можете согнуть угол. Ти
Концентратор для умного дома ESP32: 11 шагов
ESP32 Smart Home Hub: создание системы, которая может обрабатывать большие объемы данных датчиков, иметь несколько выходов и подключаться к Интернету или локальной сети, требует много времени и больших усилий. Слишком часто люди, желающие создать свою собственную сеть умного дома
Решение IOT для совместного использования велосипеда: 6 шагов
Решение IOT для совместного использования велосипеда. В наши дни в Китае очень популярен общий велосипед. На рынке представлено более 10 марок велосипедов для шеринга, и «мобайк» является самым известным, у него более 100 миллионов зарегистрированных пользователей, и он распространился на другие города, чем
USB Power Fan Cooled, встроенный USB-концентратор, сумка для ноутбука, часть 1: 6 шагов
USB Power Fan Cooled, встроенный USB-концентратор, сумка для ноутбука Часть 1: Сумки для ноутбуков дороги. дешевые - полная чушь. Едва приличные начинаются примерно с 69,99 долларов, и мне трудно тратить такие деньги, когда это не совсем то, что я хочу в первую очередь, поэтому я решил сделать это сам и посмотреть, что я