Дальнейшее развитие проекта Кнопки запуска.
Итак, накатавшись с удобством и забыв о ключах, подошло время к зиме. И ожидая в холодной машине пока она не прогреется подтолкнуло поискать как с этим справляются очумелые автолюбители. Полазив на форумах и почитав несколько статей от знающих людей было решено делать GSM модуль к уже проверенной "Кнопке".
Выбор пал на Ардуино (собственно только сам контроллер) и GSM шилд на модуле SIM800L (как самый доступный около 3,5$) .
Т.к. GSM модуль в пиковых значениях потребляет до 2А применил DC/DC преобразователь LM2596S.
На контроллере реализованы 5 входов:
- Педаль тормоз;
- Ручной тормоз;
- Датчик масла (программно пока не реализован);
- Тахометр (программно пока не реализован);
- Вход напряжения Аккумулятора.
На контроллере реализованы 4 выхода:
- Реле Потребители - клемма АСС;
- Реле Зажигание - клемма 15 замка зажигания;
- Реле Стартер - клемма 50 замка зажигания;
- Реле NC - опционльно.
Реле - автомобильные с током до 30А с внешним подключением. Ключ для управления на MOSFET транзисторах. В первом варианте (что нашлось) были irfz44n, после использовал Si4800BDY (или подобные, полно на старых материнках).
Также Имеется разъем для подключения bluetooth или WIFI(планируется) для управления или пере прошивки по воздуху. Собственно bluetooth был опробован как удлинитель UART для мониторинга при написании программы. Также bluetooth планируется для управления с брелка.
Сначала был реализовано управление через DTMF сигналы.
При наборе "Авто" поднимало трубку и ждало команды (эта функция остается и в дальнейших версиях):
- "999" - Запуск двигателя и выключение его через 10 минут или если мотор прогреется до 85 градусов, подключение к GPRS не происходит. Работает при включенном ручном тормозе, также возможен съем информации с положение нейтрали;
- "789" - Принудительное выключение двигателя;
- "#11"-"#99" - Сохранение номер в память сим карты в соответствующую позицию. Будет использовано при охранных функциях;
- "777" - Перезагрузка GSM модуля. Как не прискорбно иногда они подвисают при работе по GPRS, также реализована полная перезагрузка раз в сутки;
- "456" - Подключение к GPRS и к MQTT серверу. MQTT сервер используется для удаленного управления через интернет соединение.
Для первых испытаний не заморачивался и взял готовые модули. Сделал под них двухстороннюю печатку и в таком виде доводил до рабочего состояния.
Собственно само устройство при наладке:
А теперь самое интересное!
Для связи с "Авто" я применил сервер с MQTT протоколом - cloudmqtt.com.
Когда я начинал с ним работать использование их серверов было бесплатно, к сожалению сейчас это платно, старые зарегистрированные аккаунты остались бесплатными (хотя для дела можно и купить это того стоит).
Возможно использовать другие серверы суть не меняется (только адресация данных). Например - mqtt.4api.ru.
Скачиваем на телефон приложение для работы с MQTT - MQTT Dash. Здесь подробно о настройках - Почитать
Порядок работы таков:
1. "Авто" в режиме сна.
2. Звоним и выбираем опцию - Завести ("999") или Подключить к MQTT("456").
3а. Если завести - "Авто" отрабатывает программу и выключается.
3б. Если Произошло подключение Мы можем через приложение на телефоне Включить / Выключить двигатель.
Что Мы можем через приложение:
- Видеть Напряжение на Аккумуляторе;
- Видеть состояние датчиков температуры (реализовано до 10 шт);
- Видеть баланс на номере "Авто";
- Видеть состояние "Пусковых" реле (Клемма 15, 50, ACC) и заведен авто или нет;
- Также Мы можем изменить время прогрева;
- Реализовано автоматическое отключение от GPRS через 2 минуты после выключения прогрева или через 5 минут если было подключение без включения двигателя;
- Также Добавлен вывод ошибок подключения и др. Опционально;
- И счетчик суточной перезагрузки.
SCH схема в формате Eagle 7.7