Давно порывался сделать свой адаптер климата с преферансом и поэтессами, но всё время что-то мешало. Существующий сейчас connects2 не устраивал своим ограниченным функционалом и отсутствием интеграции с андроидом.
Сначала думал сделать всё всё всё в одном. Но потом понял, что всё и сразу сделать не возможно, и по этому проект тормозит из-за отсутствия чётких малых целей. Решил сначала разобраться чисто с климатом и отправлять данные с него в андроид.
Вообще в голове пока выстраивается такой план по развитию этого проекта:
1.На первом этапе сделать простой, дешёвый и доступный для самостоятельного повторения мост для климата. Он будет отправлять информацию о состоянии климата либо в ГУ на андроиде, либо на нештатный ЖК экран. Поддержка штатного экрана первоначально не планируется, из-за необходимости применения сложной схемотехники и как следствие появление сложностей в повторении.
Тут вон не многие могут магнитолу даже по картинкам отремонтировать, а уж про "вытравить собственную плату и запаять её" я уже молчу.
2.Сделать уже более продвинутый адаптер, с поддержкой штатного экрана, руля, двусторонней связи с андроидом, возможностью подключения кнопок со штатной морды к андроиду, кан-шина и прочее.
Тут уже никакой самодеятельности, даже сам максимум пару плат-протопипов думаю фоторезистом сделать, а потом как устаканится - заказывать платы на заводе.
Если с железом под это всё дело мне мало-мальски понятно, с софтом на андроид пока совсем плохо. Есть некоторое понимание, как это должно выглядеть визуально, но писать и рисовать это самостоятельно... Наврятли. Убью очень много времени на изучение, и не факт, что выйдет что-то хорошее. По этому если есть программисты - веллкам, помогайте.
Ну что же, хватит лирики, давайте уже к практике.
Полгода назад я окончательно "разгадал" протокол климата, но накидать прототип адаптера руки дошли только сейчас. Для этого дела была взята Arduino, и на её базе были испытаны получившиеся наработки и догадки по протоколу.
Первая проба адаптера стала такой:
https://youtu.be/ISo93g1T9a0
Вчера я наткнулся на интересную программку "Serial Manager" на форуме PCCAR.ru, которая умеет принимать по терминалу данные и всячески реагировать на них. Немного подредактировав код, заставил гнать туда данные о климате.
Получилось вот как:
https://youtu.be/HWUYP1uhOx4
Извините за качество, снимал на тапочки.
В итоге сейчас имеем прототип моста.
1. Работать это всё должно на любой плате Ардуино. Я проверял на китайских MEGA 2560 и NANO, должно без проблем завестись и на UNO. Более крутые - не знаю, возможно.
2. Мост умеет работать как в одиночном (Master) режиме, так и в параллель (Slave) со штатной магнитолой. В параллель с connects2 тоже должен работать, но надо проверять.
3. Протокол работы с шиной передачи данных климата реализован полностью программно. Не используется аппаратная периферия (типа SPI порта).
Подключать всё это дело так:
к цифровому входу\выходу 2 подключаем красный №4 провод в малой зелёной фишке климата (DISP CLK);
к цифровому входу\выходу 3 подключаем жёлтый №5 провод в фишке климата (AC SO).
По-хорошему, для защиты, их надо подключить через сопротивления в 100 Ом, но работает и так. При желании, данные провода можно перенести на другие порты, для этого в начале скетчей есть соответствующие дефайны.
Если адаптер работает в одиночку (Master) - то надо замкнуть цифровой вход\выход 4 на землю. По умолчанию адаптер работает в режиме параллельного соединения с магнитолой или другим адаптером.
Минус питания платы (GND) ОБЯЗАТЕЛЬНО соединяем с массой автомобиля. Питание подаём либо на USB-разъём, либо +12V на Vin с автомобиля.
Я лично использовал плату MEGA 2560 и питал её прямо от прикуривателя через цилиндрический разъём.
В архиве два скетча. Первый - "soft_climat_bridge" - из первого видео. Просто гонит в терминал данные. Можно выбрать два формата, RAW и текст. Для выбора в начале файла есть соответствующие флажки.
Второй - soft_climat_bridge_serial_manager - вывод данных заточен специально под программу "serial manager".
Написано кривовато, но работает. Надо будет потом это дело переписать на нормальном Си и оформить в виде библиотеки.
При желании в первом скетче можно добавить поддержку текстового или графического дисплея и выводить данные прямо на него и забить на терминал.
На этом пока всё. Кому интересна разработка данного устройства - прошу вливаться в тему, повторять, тестировать, предлагать свои идеи. Если будет желание - распишу подробнее протокол. Частично его описание понятно из скетчей.
Как будет готова, хотя бы, бета версия адаптера - можно будет популярно, с картинками сделать инструкцию для сборки для всех желающих.
Пока это прототип и просто так, из коробки, за 5 минут это не работает. Что бы попробовать - надо хотя бы уметь скомпилировать скетч и залить его в ардуино.