Wi-fi k-line адаптер на esp8266
Создание wi-fi k-line адаптера своими руками с минимальным количеством элементов пайки, и простыми доступными компонентами
Вступление.
Современный автомобиль — это не просто средство передвижения, а сложная техническая
система с множеством электронных блоков управления (ЭБУ).
Для диагностики и настройки этих блоков необходим доступ к диагностическим интерфейсам,
одним из которых является K‑Line.
K‑Line — однопроводная линия обмена данными, используемая во многих автомобилях
для связи ЭБУ с диагностическим оборудованием.
Традиционно для подключения к K‑Line применяют проводные адаптеры с интерфейсами
COM или USB. Однако у таких решений есть существенные ограничения:
-
Привязка к кабелю. Длина провода ограничивает мобильность: мастер вынужден находиться рядом с автомобилем.
-
Износ разъёмов и кабелей. Частые подключения/отключения приводят к механическим повреждениям.
-
Неудобство в стеснённых условиях. В гараже или на подъёмнике кабель может мешать работе.
На смену проводным адаптерам приходят беспроводные решения, и наиболее перспективным вариантом здесь выглядит Wi‑Fi K‑Line адаптер. Он позволяет:
-
управлять диагностикой дистанционно — с ноутбука, планшета или смартфона в радиусе действия Wi‑Fi сети;
-
упростить подключение — не нужно искать свободный USB‑порт или COM‑порт;
-
повысить надёжность за счёт уменьшения числа механических соединений.
Цель этой статьи — пошагово разобрать процесс создания Wi‑Fi K‑Line адаптера «с нуля»: от выбора компонентов до написания прошивки . Мы рассмотрим:
-
Подбор ключевых компонентов: микроконтроллера с поддержкой Wi‑Fi (например, ESP8266/ESP32), преобразователя уровней K‑Line ↔ UART и элементов питания.
-
Разработку схемы согласования сигналов между автомобильной K‑Line и цифровой логикой микроконтроллера.
-
Написание прошивки для микроконтроллера: реализацию TCP/UDP‑сервера для передачи данных по Wi‑Fi и работу с UART.
-
Загрузка прошивки для микроконтроллера.
-
Создание ПО для ПК программы‑посредника, которая будет эмулировать виртуальный COM‑порт и маршрутизировать данные между приложением диагностики и Wi‑Fi адаптером.
-
Настройка программ . Для работы без проводов, а так же получение обновлений прошивки ESP и активаци ее.
В результате вы получите универсальное устройство, которое превратит вашу диагностику в гибкий и удобный процесс без проводов. Готовы приступить? Давайте начнём с выбора «сердца» нашего адаптера — Wi‑Fi модуля!
Подбор компонентов для Wi‑Fi K‑Line адаптера
Разберём каждый компонент из списка, его назначение в схеме и ключевые параметры, на которые стоит обратить внимание при подборе.
1. Модуль WiFi Wemos D1 mini ESP-12F ESP8266 CH340G 5V
Назначение: «мозг» адаптера, обеспечивающий:
-
Wi‑Fi связь с ПК;
-
преобразование данных между UART (от K‑Line) и TCP/UDP (по Wi‑Fi);
Ключевые особенности ESP‑12F:
-
встроенный Wi‑Fi (802.11 b/g/n);
-
4 МБ флеш‑памяти для прошивки;
-
несколько GPIO‑пинов для подключения возможной периферии;
-
низкое энергопотребление.
2. Понижающий DC‑DC преобразователь Mini360
Назначение: стабилизация напряжения питания схемы.
Параметры и требования:
-
входное напряжение: 4,75–23 В (соответствует диапазону бортового напряжения автомобиля 12 В, с учётом просадок и выбросов);
-
выходное напряжение: настраиваемое, необходимо установить 5В для питания WiFi Wemos D1 mini ESP-12F и для питания L9637D;
-
КПД: высокий (более 90 %), чтобы минимизировать нагрев.
3. L9637D Микросхема интерфейса ISO 9141
Назначение: преобразование сигналов между:
-
однопроводной шиной K‑Line автомобиля (ISO 9141‑2);
-
UART‑интерфейсом микроконтроллера (ESP‑12F).
Ключевые функции:
-
защита от перенапряжений и коротких замыканий;
-
формирование корректных уровней сигналов K‑Line (0 В и ∼12 В);
-
низкое потребление в режиме ожидания.
5. Резистор 1,5 кОм
6. Светодиод (индикатор)
Назначение: визуальная индикация обмена данными адаптера и подтяжка линии K‑Line к высокому уровню (12 В) через резистор 1,5 кОм:
-
идёт обмен данными.
7. Конденсатор 104 (0,1 мкФ)
Обозначение: 104=10×104 пФ =100000 пФ =0,1 мкФ.
Назначение: фильтрация высокочастотных помех на линиях питания.
Место установки:
-
параллельно входу Mini360 (подавление помех от бортовой сети);
8. Диод 1N4148
Назначение: защита схемы от переполюсовки питания.
Принцип работы:
-
при правильной полярности питания диод открыт, падение напряжения ∼0,7 В;
-
при обратной полярности диод закрыт, ток не течёт, адаптер защищён.
Разработка схемы Wi‑Fi K‑Line адаптера на базе ESP‑12F
Ниже — пошаговая разработка электрической схемы с пояснением соединений и расчётов.
1. Питание схемы
Цепь: бортсеть автомобиля (12 В) → Mini360 → 5 В для ESP‑12F.
Детализация:
-
Диод 1N4148
-
анод — к входному разъёму питания (+12 В);
-
катод — к входу L9637D (12В).
-
-
Mini360 (понижающий преобразователь):
-
вход: катод диода и GND;
-
выход: 5 В (подстроечным резистором на модуле выставляем точное значение);
-
GND — общий провод.
-
-
Конденсаторы 0,1 мкФ (фильтрация):
-
один — параллельно входу Mini360 (подавление помех от бортсети);
-
-
2. Подключение ESP‑12F
Выводы ESP‑12F, задействованные в схеме:
-
5V — к выходу 5 В Mini360;
-
GND — к общему проводу;
-
GPIO1 (TX) — к выводу RX трансивера L9637D (передача данных от ESP к K‑Line);
-
GPIO3 (RX) — к выводу TX трансивера L9637D (приём данных от K‑Line в ESP);
-
Прежде чем допаивать Rx Tx выводы esp нужно прошить.
-
3. Интерфейс K‑Line (L9637D + ISO 9141)
Подключение L9637D (SOIC‑8):
-
Pin 1 (RX) —к GPIO3 (RX) ESP‑12F (приём данных);
-
Pin 2 (LO) — не подключён.;
-
Pin 3 (TXD) — 5B;
-
Pin 4 (TX) — к GPIO1 (TX) ESP‑12F (передача данных);
-
Pin 5 (GND) — GND;
-
Pin 6 (k-line) — k-line автомобиля
-
Pin 7 (VS) — к катоду диода 1N4148 (питание от бортсети 12 В);.
-
Pin 8 (L) — не подключён.
-
Резистор 1,5 кОм:
-
один вывод — к Pin 7 L9637D;
-
второй вывод — канод светодиода.
Принципиальная схема до безобразия проста красным отмечено где нужно установить перемычки

Вид готовой платы в корпусе от старого vag kkl

Написание прошивки для микроконтроллера
Сердцем нашего адаптера является микроконтроллер ESP‑12F (модуль Wemos D1 mini), работающий под управлением операционной системы реального времени Arduino Core для ESP8266. Прошивка написана на языке C++ с использованием популярных библиотек:
-
ESPAsyncWebServer– для создания асинхронного веб‑сервера и WebSocket; -
ESP8266HTTPClientиWiFiClientSecure– для связи с сервером обновлений -
ArduinoJson– для обмена данными в формате JSON; -
EEPROM– для энергонезависимого хранения учётных данных
Прошивка построена по асинхронному принципу: все длительные операции (подключение к Wi‑Fi, HTTP‑запросы, OTA‑обновление) выполняются в фоновом режиме, не блокируя основной цикл и не вызывая срабатывания сторожевого таймера (watchdog). Рассмотрим ключевые компоненты.
1. Инициализация и настройка
При старте микроконтроллер:
-
Настраивает UART для работы с K‑Line (скорость 10400 бит/с, режим 8N1);
-
Запускает собственную точку доступа (Wi‑Fi AP) с именем
Wi-fi_K-lineи паролем12345678– это необходимо для первоначальной настройки; -
Загружает из EEPROM сохранённые SSID и пароль для подключения к домашней сети;
-
Пытается подключиться к сохранённой сети (если она есть);
-
Инициализирует асинхронный веб‑сервер, WebSocket и регистрирует обработчики HTTP‑запросов;
-
Запускает TCP‑сервер на порту 23 для взаимодействия с диагностическими программами (например, с ПО, которое эмулирует виртуальный COM‑порт).
2. Работа с K‑Line (TCP/UART‑мост)
Главная функция адаптера – прозрачная передача данных между K‑Line (подключённой к UART микроконтроллера через микросхему L9637D) и TCP‑клиентом, подключившимся к порту 23. В прошивке реализован классический мост:
-
Данные, поступающие из UART, буферизируются и при наличии активного TCP‑соединения отправляются клиенту.
-
Данные от TCP‑клиента аналогично передаются в UART.
-
Реализована поддержка специальных команд
0xFEдля изменения скорости UART и таймаута (это требуется для корректной работы с некоторыми диагностическими протоколами).
Важно, что обмен происходит без разбора пакетов – адаптер работает как прозрачный канал, оставляя всю логику диагностики на стороне ПК.
3. Веб‑интерфейс и WebSocket
Для удобства настройки создан веб‑интерфейс, доступный по IP‑адресу адаптера (в режиме точки доступа – 192.168.4.1). Страница позволяет:
-
Ввести SSID и пароль для подключения к домашней Wi‑Fi сети;
-
Отключиться от сети;
-
Проверить наличие активной лицензии;
-
Получить список доступных обновлений прошивки и установить выбранное.
Для мгновенного обновления информации используется WebSocket. При изменении статуса Wi‑Fi или лицензии сервер рассылает всем подключённым клиентам JSON с актуальными данными (MAC‑адрес, версия прошивки, состояние подключения и т.д.). Это обеспечивает отзывчивый интерфейс без постоянных HTTP‑запросов.
4. Лицензирование и защита
Поскольку устройство предназначено для коммерческого использования, в прошивку встроена система лицензирования.
5. Обновление прошивки по воздуху (OTA)
Функция OTA реализована асинхронно, без блокировки основного цикла. При нажатии кнопки «Обновить версию» в интерфейсе отправляется запрос на сервер, который возвращает список доступных прошивок. Пользователь выбирает нужную версию, и начинается загрузка бинарного файла по протоколу HTTPS. Весь процесс выполняется в фоне, а по завершении микроконтроллер автоматически перезагружается с новой прошивкой.
6. Основной цикл и обработка событий
Благодаря асинхронной архитектуре, в функции loop() выполняются только короткие операции:
-
Проверка наличия новых TCP‑клиентов и обслуживание существующих (мост UART↔TCP);
-
Обработка флагов, установленных обработчиками HTTP‑запросов (например,
pendingUpdateCheck,pendingLicenseCheck,pendingUpdate) – если флаг поднят, соответствующая длительная операция запускается в текущей итерации цикла, но с вызовамиyield(), предотвращающими срабатывание сторожевого таймера; -
Синхронизация внутреннего флага
wifiConnectedс реальным состоянием Wi‑Fi стека; -
Очистка WebSocket‑клиентов.
Такой подход гарантирует стабильную работу даже при одновременном выполнении нескольких задач (например, обмен по K‑Line и проверка обновлений).
Ссылка на актуальную прошивку ниже (работает только с лицензией и с программой о которой ниже)
Загрузка прошивки для микроконтроллера.
Прежде чем допаивать Rx Tx выводы esp нужно прошить.
Так как мы используем готовый модуль с uart usb нам просто нужно подключить esp к usb входу пк
Для загрузки прошивки нужно скачать ESP8266Flasher.
Далее открываем программу и выбираем порт

после чего выбираем файл прошивки

и жмем Flash
Как только прогресс-бар заполниться ESP готов к работе.
Создание программы-моста TCP/COM на Processing для связи диагностического ПО с ESP
После того как аппаратная часть адаптера собрана, а микроконтроллер ESP прошит, последним звеном становится программное обеспечение на стороне компьютера. Большинство диагностических программ умеют работать только с физическими COM-портами. Наша задача — создать программу-посредник, которая:
-
Подключится к ESP по Wi-Fi (TCP-сокет).
-
Создаст виртуальный COM-порт в системе.
-
Будет прозрачно передавать все данные между COM-портом и TCP-сокетом.
Реализовать такой мост можно разными способами, но мой выбор пал на Processing — среду, которая отлично подходит для быстрого прототипирования и имеет встроенную библиотеку для работы с последовательным портом и сетью.
Принцип работы моста
Алгоритм работы программы прост и эффективен (см. диаграмму ниже). Он организован как двунаправленная петля:
-
Инициализация: При запуске программа подключается к последовательному порту (который в дальнейшем будет связан с виртуальным COM-портом) и устанавливает TCP-соединение с ESP-адаптером.
-
Основной цикл:
-
COM -> TCP: Если данные появились в последовательном порту (диагностическая программа что-то отправила), они немедленно читаются и пересылаются в TCP-сокет для ESP.
-
TCP -> COM: Если данные пришли из TCP-сокета (ответ от ESP), они читаются и отправляются обратно в последовательный порт для диагностической программы.
-
-
Завершение: При закрытии окна программы или ошибке соединения все ресурсы корректно освобождаются.
Этот цикл повторяется с высокой частотой, обеспечивая минимальные задержки и делая работу с удалённым адаптером неотличимой от работы с проводным устройством.
Подробно расписывать не буду объем информации большой.
Программа на текущий момент выглядит так

Имеет простые настройки таймауты отправки выбор порта и эхо.
Скорость работы моста и esp меняется автоматически при получении запроса на смену скорости согласно протоколу kwp2000.
На данный момент экосистема из моста и ESP работает в режиме диагностики на эбу м73 и январь 7.2 и 5.1, так же поддерживает работу в онлайн режиме на м73 c прошивкой j73sx.
В дальнейшем планируется расширение функционала.
Настройка программ
Для того чтобы все полноценно работало необходимо создать мост из виртуальных ком портов с одной сторны к которому подключается программа для диагностики или настройки,
а с другой программа для работы с ESP.
Отлично походит программа Virtual Serial Port Driver 8.0.412
Создаем пару виртуальных COM портов к которым в дальнейшем подключаемся.

После чего в нашей программе tcpBride.exe выбираем порт

Далее включаем адаптер OBD разъем авто, подключаемся ноутбуком в wi-fi сети с "WI-fi_k-line" с паролем 12345678
После чего жмем кнопку старт в программе сверху загорится зеленым надпись ESP если подкоючение удалось.
Подключаемся ко второму связанному COM порту программой для настройки - диагностики и вуаля мы в эфире. (при наличии лицении)
Получение лицензии и обновление ESP
- Для получения лицензии или обновления ESP нужно подключить ваш адаптер к OBD2 .
- Подключится к сети адаптера по wi-fi.
- Открыть браузер и перейти по адресу 192.168.4.1
- Ввести данные для подключения к интернету посредством wi-fi соединения (раздача с телефона или роутер)
- Нажать подключиться, если соединение успешно появиться кнопка , "Oтключиться" и "Проверить обновление".

Если планируете приобрести лицензию, нажмите проверить лицензию.
Как только увидите сообщение "Нужно приобрести лицензию" скопируйте MAC адрес и отправьте на почту support@slplay.ru
Для получения дальнейших инструкций




