GSM устройство управления котлами Webasto и не только

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Попробовал сейчас не меняя схемы(нет ни датчиков Темп ни ОС по Напр...) залить найденный и немного изенённый скетч (тот что выше) - при получении смс (ON or OFF) светодиод переключается......

В программирование пока что нуб поэтому появилось предположение, что, возможно, нужо собрать всю схему до конца.....

MaksVV
Offline
Зарегистрирован: 06.08.2015

такой скетч попробуйте, если не работает, проблема в аппартаной части. СМС нужно слать с текстом ON или OFF , управляем  встроенным светодиодом. 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

эмм, не успел ответить ))

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Этот Ваш скетч крайний попробовал - РАБОТАЕТ тоже! =))

uu5jhu
Offline
Зарегистрирован: 21.11.2017

ну то есть ON включает и OFF выключает светодиод!

Таже пробовал ещё один (так же с просторов тырнета) скетч для отправки смс с "СИМкарты webasto" - смс отправляет мне на номер с текстом.... (правда с небольшой грамматической ошибкой непонятно почему-то получаю смс)

MaksVV
Offline
Зарегистрирован: 06.08.2015

попробуйте почистить еепром сначала вот этим 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

в сериал мониторе должно появиться много нулей

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Подтверждаю - спустя пару сек побежали нули

uu5jhu
Offline
Зарегистрирован: 21.11.2017

залил снова после чистки v2.1 - ничего увы не поменялось.....ответное смс на WriteNumber1 не получаю

MaksVV
Offline
Зарегистрирован: 06.08.2015

недавно собрал пару модулей, всё работало, соберу ещё один, найду косяк, отпишусь

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Может проблема из-за нестыковки уровней Rx Tx или скорости !? Но со светодиодом работает. А вот смс с СИМ получаю hello @ord вместо hello world.....

uu5jhu
Offline
Зарегистрирован: 21.11.2017

ОК. Будет интересно. Хочу пристроить модуль к своему котлу - Thermo Top С...... запускать думаю сигналом +12В на 30 минут.

toc
Offline
Зарегистрирован: 09.02.2013

MaksVV пишет:

Осталось две фичи реализовать  - энергосбережение и контроль зависания и перезагрузки GSM. Всем спасибо, так активно помогаете.

У меня sim900.
Контроль делал так:
1. Раз в минуту посылаю AT. Если модуль ответил OK - хорошо, cчётчик=0. Иначе +1 к счётчику попыток.
2. Если счётчик >= 5, сбрасываю счётчик и "нажимаю" кнопку питания.
Всё работает более года.
Одно такое событие за год произошло.

uu5jhu
Offline
Зарегистрирован: 21.11.2017

В продолжении попытки получения положительного результата обнаружил что общаясь с модулем через переходник UNO с использованием PuTTY обнаружил что на команду:

AT+ICF?

Приходит сообщение об ошибки.... при этом при попытке отправить смс, оно приходит на телефон...

MaksVV
Offline
Зарегистрирован: 06.08.2015

Чтобы посмотреть что происходит на Rх  GSM модуля нужно раскоментировать строку 356 скетча 2.1. а строку 137 поменять на 

1Serial.begin (19200);

 Соответственно смотреть в сериал мониторе на скорости 19200

uu5jhu
Offline
Зарегистрирован: 21.11.2017

MaksVV пишет:

Чтобы посмотреть что происходит на Rх  GSM модуля нужно раскоментировать строку 356 скетча 2.1. а строку 137 поменять на 

1Serial.begin (19200);

 Соответственно смотреть в сериал мониторе на скорости 19200

Приветствую. Поменял скетч. В мониторе вижу что пришла смс WriteNumber1

Но в ответ так же тишина

 

uu5jhu
Offline
Зарегистрирован: 21.11.2017

А вот продолжение - отправляю смс с телефона, в мониторе порта вижу, что получает модуль, а в ответ - тишина =(

MaksVV
Offline
Зарегистрирован: 06.08.2015

в строку 147 добавьте это, чтобы узнать изначально какой номер из еепрома в переменную считался

1Serial.println (""); Serial.println (TelNumber1);

должны нули по идее быть

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Добавил....ничего нового в терменале увы не появилось

MaksVV
Offline
Зарегистрирован: 06.08.2015

то что в строке 140   NastroykaGSM ();

переместить после строки 147 (после  Serial.println (""); Serial.println (TelNumber1);  )

в сериал порту должен напечататься первым делом номер телефона, вот нужно и посмотреть какой там номер, должны быть все нули

uu5jhu
Offline
Зарегистрирован: 21.11.2017
uu5jhu
Offline
Зарегистрирован: 21.11.2017

 

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Ага разобрался перекинул часть программы за "строку 147" - - - - да первые нули

 

потом

01AT+CMGF=1
02 
03OK
04+IFC=1, 1
05AT+CPBS="SM"
06 
07OK
08AT+GSMBUSY=1
09 
10OK

 

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Получилось вот так:

01pinMode (IGN, INPUT);  digitalWrite (IGN,  HIGH);
02  pinMode (Eng, INPUT);  digitalWrite (Eng,  HIGH);
03   
04 
05 
06 
07    
08   
09Serial.begin (19200); // сериал соединение протокол W-Bus
10mySerial.begin(19200);           // сериал соединение для gsm модуля
11    delay(2000);
12   
13 
14 
15Serial.println (""); Serial.println (TelNumber1);
16 
17NastroykaGSM (); 
18 
19TimeWebasto = EEPROM.read(1)*60000UL;
20Protocol = EEPROM.read(2);
21 
22for (int i=0; i<12; i++) TelNumber1[i] = EEPROM.read (i+10);
23for (int i=0; i<12; i++) TelNumber2[i] = EEPROM.read (i+30);
24}
25 
26 
27 
28 
29 
30 
31 
32 
33void loop() {

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

почистите еепром таким скетчем и заливайте 2.1 без измнений, должно всё заработать по идее

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Когда EEprom был у вас ещё не тронутый (во всех ячейках FF),то заработало бы, если бы вы скетч заливали сразу после копипаста (без сохранения скетча на компе). При сохранении скетча на компе сбивается кодировка символов соответсвующих байту FF (который в еепроме был изначально), т.е. символа "я" и все косяки из-за этого, а потом я вам немного неправильно почистить еепром предложил, поэтому тоже не работало. Исправил в начале темы как еепром чистить до заливки скетча. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

uu5jhu пишет:
Получилось вот так:

это у вас НЕ получилось, а нули написались в этом случае, потому что вы распечатку в терминал поставили до считываения тел.номера из еепром, а изначально, при старте программы, в переменную тел.номера нули записываются и вы их сразу и распечатали.   

PS удалите простыню из сообщения #71, мешает .  Кстати когда вставляете скетч, там вверху вкладка правая, можно галочку ставить "свернуть", чтобы под катом было. 

uu5jhu
Offline
Зарегистрирован: 21.11.2017

MaksVV пишет:

почистите еепром таким скетчем и заливайте 2.1 без измнений, должно всё заработать по идее

 

 

 

Приветствую. Спасибо Вам огромное за проделанную работу, всё теперь получилось (пошёл покупать недостающие детали и буду собирать до конца – смс ки отправляю – в ответ приходят подтверждения и инфо о состоянии – попробовал пока только с напряжением питания) - давно занялся поиском чего-то подобного для запуска котла по смс. Об arduino узнал недавно и пока что всё в процессе начинания и изучения. Изначально была идея запускать по шине CAN (точнее сказать в моей машине по периферийной шине i-bus через приборную панель) и по CAN отслеживать и отправлять сообщение о состоянии котла, температуре ОЖ и бортовом напряжении. Но для этого, как понимаю, нужно знать протокол обмена… Но с выносными датчиками, кому не лень, тоже всё хорошо.

Готов нарисовать и выложить нарисованную схему, для тех «ленивых» кто спрашивает её, но пока не пойму как прикрепить рисунок.

uu5jhu
Offline
Зарегистрирован: 21.11.2017

По ходу макетирования появилось несколько вопросов.

1. sms на запрос баланса приходят в HEX unicode =(  /лечится заменой оператора или можно программой?/

2. не знаю как на версиях Webasto которые устанавливают как доп, но на "старых" например, моделях БМВ есть несколько условий при которых котёл не будет запущен - (с завода котёл кстати, работал только как "догревайка", но перекодировка творит чудеса и теперь работает ещё и как "автономное отопление" без колхозинга) - одно из них пониженное напряжение питания (недавно у товарища попытались запустить котёл при разряженной АКБ U=11.6V) - сигнал на запуск пришел, а вот котёл не запустился пока не зарядили АКБ. И это считаю правильная задумка - зачем тёплый двигатель, если стартер не крутится. Не увидел организованно ли это в Вашей программе уважаемый автор, но возможно, это будет своим образом аварийная защита, для котлов которые будут рады усадить АКБ в ноль (если такие существуют, конечно)

MaksVV
Offline
Зарегистрирован: 06.08.2015

uu5jhu пишет:
Изначально была идея запускать по шине CAN (точнее сказать в моей машине по периферийной шине i-bus через приборную панель) и по CAN отслеживать и отправлять сообщение о состоянии котла, температуре ОЖ и бортовом напряжении. Но для этого, как понимаю, нужно знать протокол обмена… Но с выносными датчиками, кому не лень, тоже всё хорошо.

Я так понимаю котел у вас штатный, да к тому же по CAN управляется . Вы уверены в возможности запуска его по аналогу? Вообще чтобы по CAN запускать конечно нужно знать протокол обмена. Но исследование CAN шины тоже дело интересное, хотя и не лёгкое. Если будет интересно, могу выложить проект CAN хакера на ардуино (там собственно сама ардуино и китайский модуль кана на MCP2515),  который как раз и позволяет выявить из CAN шины нужные сообщения. 

Короче в будущем конечно неплохо было бы дополнить данное устройство CAN шиной, но работы с этим не мало будет, особенно в программной части  - протоколы разных авто. 

Я хочу допилить хотябы W-BUS, т.к. если сказать по чесноку, в данный момент организовано только включение выключение котла без опроса его реального состояния. Просто у меня нет Webasto Evo чтобы протокол W-BUS помучить. 

А вы если только аналог будете использовать вам можно не ставить микруху LM393 и всю её обвязку

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

uu5jhu пишет:

По ходу макетирования появилось несколько вопросов.

1. sms на запрос баланса приходят в HEX unicode =(  /лечится заменой оператора или можно программой?/

 

2. не знаю как на версиях Webasto которые устанавливают как доп, но на "старых" например, моделях БМВ есть несколько условий при которых котёл не будет запущен - (с завода котёл кстати, работал только как "догревайка", но перекодировка творит чудеса и теперь работает ещё и как "автономное отопление" без колхозинга) - одно из них пониженное напряжение питания (недавно у товарища попытались запустить котёл при разряженной АКБ U=11.6V) - сигнал на запуск пришел, а вот котёл не запустился пока не зарядили АКБ. И это считаю правильная задумка - зачем тёплый двигатель, если стартер не крутится. Не увидел организованно ли это в Вашей программе уважаемый автор, но возможно, это будет своим образом аварийная защита, для котлов которые будут рады усадить АКБ в ноль (если такие существуют, конечно)

 

1. Намного проще через оператора решить. (Ну всмысле не заменой его, а подбором правильной команды запроса баланса, либо есть такая функция у некоторых перевода на транслит.)  Парсить этот юникод и PDU полный песец. 

2. По напряжению АКБ по идее во всех котлах есть выключение. Я не стал делать выключение по напряжению. Но это не сложно - пару строк добавить. 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

на скорую руку состряпал скетч v2.2  и переделал плату. Добавлено: 

- тактовая кнопка  вкл/выкл с индикацией состояния команды на работу котла;

- рестарт GSM модуля в случае если он не отвечает ("завис") при помощи кратковременного оключения питания средствами реле;

- запись в еепром количество рестартов;

Но это вообще ничего не проверено, т.к. деталей нет и проверить пока некогда

плата

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Да, совершенно верно, котёл штатный. Вопрос конечно этот самому интересен будет ли он по +12V запускаться....но скачав документацию (описание + схемы соединений) предполагаю что работать должно. В любом случае скоро узнаем и напишу здесь. Главное чтобы конфликта не было по CAN.

А по поводу использовать MCP2515 - я уже получил из Китая его именно для этих целей, так что выкладывайте прошивку CAN хакера  если найду время с удовольствием посижу с ним. 

Хочу собрать полную схему (с LM393) так как машины меняются а сегодня новые котлы так понимаю уже все работают по W-Bus....возможно пригодится.

MaksVV
Offline
Зарегистрирован: 06.08.2015

на портале carhelp.info много полезного найдете на этот счет - как запускать штатные котлы. Вам нужно узнать, есть ли у вашего котла шина W-Bus, если есть, то нужно попробовать запустить диагноситку котла по этой шине оригинальной вебастовской программой WTT при помощи обычного к-лайн адаптера. Если диагностика получится, всё упрощается. 

схема к-лайн 

 

программа Webasto Termo Test 

uu5jhu
Offline
Зарегистрирован: 21.11.2017

ДА, пару лет назад использовал эту программу (WTT) для ремонта своего котла - не пропаяно было хорошо одно сопротивление. На каком-то форуме писал об этом с фото. 

Значит можно попробовать подключиться к шине используя Вашу схему!?

Сейчас уже схему не вспомню но кажется именно по этой шине котёл соединён с приборной панелью и имеет название i-bus а уже приборная панель с CAN шиной. То есть через диагностический разъём авто к котлу с помощью WTT не подключиться, собирал всё дома на столе и подключал.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Скетч Can Hacker

библиотеки для скетча CanHacker (уже настроены на кварц 8 Мгц CAN-модуля)

программа CanHacker

Скорость ком порта в программе  CanHacker в настройках делаем 115200

схема подключения 

MaksVV
Offline
Зарегистрирован: 06.08.2015

uu5jhu пишет:
Значит можно попробовать подключиться к шине используя Вашу схему!?

Собираете два адаптера из сообщения #84 или легче покупаете, Один для подключения WTT к котлу, второй - чтобы посниффить обмен данными. Когда узнаете какие байты там летают, можно будет запускать котёл по i-bus (полагаю тот же W-bus)

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Спасибо за схему и скетч. Один адаптер есть им собственно и ковыряюсь в авто (прошивка / кодировка блоков) второго нет, попробую купить.... Китай совсем обленил увы, да и часто получается что проще и Дешевле купить готовое устройство чем собирать в одном экземпляре. Исключение составляет - хобби.

Почти закончил собирать плату. Пока провожу эксперименты на столе, надеюсь скоро начнуться полевые испытания!

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Если позволите ещё один момент замечен при проверке. 

Всё прекрасно работает (смс команды) пока не отключить питание. После повторного включения питания и спустя даже 10 минут устройство никак не реагирует на смс команды пока не нажать кнопку Reset на Nano. После этого снова начинает всё работать.

И ещё подскажите в какую строку и что добавить чтобы в мониторе порта увидеть напряжение АКБ (исключительно для настройки) ? Понижающий DC-DC отличается от Вашего и шунтирует входным сопротивлением делитель напряжения. Вместо 13,70 приходит в смс 12,65. Хочу подобрать подстроичником, но каждый раз отправлять смс.......

MaksVV
Offline
Зарегистрирован: 06.08.2015
193 void voltmetr()  //____________Цикл "Вольтметр"__измерение напряжения на выходе ИБП
194  
195 {
196    volt = analogRead(A7);                       // А7 аналоговый вход вольтметра
197    vout = (volt * 4.92) / 1024;            
198    Vpit = vout / (9950.0/(98930.0+9950.0));  // По формуле Vpit = vout / (R2/(R1+R2))
199    if (Vpit<0.09)  Vpit=0.0;                  // Округление до нуля
200 }

вот здесь 4,92 это  напряжение питания на ардуино, реальное измеренное вольтметром , 9950 это реальное измеренное  сопротивление плеча 10К делителя напряжения, 98930 -  это реальное измеренное  сопротивление плеча 100К делителя напряжения. Измерьте и подставьте свои данные, должно быть ближе к правде. Если после этого отличается от реального напряжения, корректируйте ещё значение сопротивлений. 

Скетч для настройки вольтаметра с выводом в терминал. 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

uu5jhu пишет:
Всё прекрасно работает (смс команды) пока не отключить питание. После повторного включения питания и спустя даже 10 минут устройство никак не реагирует на смс команды пока не нажать кнопку Reset на Nano. После этого снова начинает всё работать.

вот тут хз, у меня тоже так было на одной ардуино (от robotdyn ), на другой все норм. надо пробовать на другом МК. попробуйте в Setup строка 115 задержку на 6...7 секунд повысить

uu5jhu
Offline
Зарегистрирован: 21.11.2017

Приветствую. Спасибо за скетч - подобрал в программе величинами сопротивлений значение напряжения. Про делитель напряжения как бы всё понятно, но как ранее заметил что DC-DC шунтирует этот делитель и показывает "погоду" вместо напряжения. (Если запитать DC-DC от отдельного источника то проблем нет). В общем сейчас всё хорошо (значения в программе кстати получились далеки от истины).

Появилось время и добрался до авто. Идёт с фишки от котла три провода - один на насос, второй на i-BUS (CAN) и третий на таймер (точнее сказать на связку Telestart + timer) которого нет но можно дооснастить. На схеме этот провод идёт на квадратную фишку таймера на контакт "OUT". Отсюда появился вопрос - по какому протоколу работает связка таймер-котёл? Если W-Bus то можно попробовать подключить выход с Вашей конструкции на этот провод!?

MaksVV
Offline
Зарегистрирован: 06.08.2015

А Подозреваю что на проводе OUT должен быть просто потенциал 12в при включении. Но если даже там цифра, мой вариант может и подойдет. По крайней мере так включали некоторые штатные котлы. Машина то какая?

MaksVV
Offline
Зарегистрирован: 06.08.2015

Можно просто подать 12в попробовать. По идее на w-bus шине такие уровни сигналов.

toc
Offline
Зарегистрирован: 09.02.2013

MaksVV,
1. Получилось сделать контроль зависаний? Я писал выше #63
2. все возможности по энергосбережению в микроконтроллере AVR описаны тут https://www.gammon.com.au/power

MaksVV
Offline
Зарегистрирован: 06.08.2015

toc пишет:
Получилось сделать контроль зависаний?

спасибо по ссылке почитаю. Контроль зависаний попытался сделать. Добавил в скетч (сообщение #82). Нарисовал новую плату с реле. Т.е. питание GSM сидит на нормально-замкнутых контактах реле. При рестарте подается питание на реле и оно размыкает питание GSM. Но это только пробная версия, ещё ничего не проверял. Т.к. нет времени и детали ещё не дошли. 

реле применил миниатюное, такое 

blades
Offline
Зарегистрирован: 21.11.2017

не вижу на плате реле, ткните носом пожалуйста

нет ли в планах нарисовать схему, что бы проще было разбираться откуда куда и зачем?

MaksVV
Offline
Зарегистрирован: 06.08.2015

реле между контактами gsm модуля. Если gsm модуль на панельки устанавливать, то он высоко сидит, туда это реле по идее влезть должно, судя по его размерам. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

время жалко, а что вам кроме реле не понятно?

MaksVV
Offline
Зарегистрирован: 06.08.2015

схема надеюсь нигде не накосячил.