#include <SoftwareSerial.h>
SoftwareSerial mySerial(14, 15);
byte led = 13;
void setup() {
delay(2000);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.begin(9600);
mySerial.begin(9600);
Serial.println();
Serial.println("Turn on AOH:");
mySerial.println("AT+CLIP=1"); //включить АОН
delay(300);
Serial.println("Text format sms:");
mySerial.println("AT+CMGF=1"); // текстовый формат SMS
delay(300);
Serial.println("Mode GSM:");
mySerial.println("AT+CSCS=\"GSM\""); // кодировка текста - GSM
delay(300);
Serial.println("SMS to terminal:");
mySerial.println("AT+CNMI=2,2,0,0,0"); // вывод смс в консоль
delay(300);
}
void loop()
{
if(mySerial.available()) //если модуль что-то послал
{
char ch = ' ';
String val = "";
while(mySerial.available())
{
ch = mySerial.read();
val += char(ch); //собираем принятые символы в строку
delay(3);
}
Serial.print("Sim send> ");
Serial.println(val);
if(val.indexOf("+CMT") > -1) //если есть входящее sms
{
if(val.indexOf("On") > -1) // смотрим, что за команда
{
Serial.println("On D13");
digitalWrite(led, HIGH); //включаем светодиод
}
if(val.indexOf("Off") > -1) // смотрим, что за команда
{
digitalWrite(led, LOW); //выключаем
Serial.println("Off D13");
}
}
}
}
Попробовал сейчас не меняя схемы(нет ни датчиков Темп ни ОС по Напр...) залить найденный и немного изенённый скетч (тот что выше) - при получении смс (ON or OFF) светодиод переключается......
В программирование пока что нуб поэтому появилось предположение, что, возможно, нужо собрать всю схему до конца.....
Таже пробовал ещё один (так же с просторов тырнета) скетч для отправки смс с "СИМкарты webasto" - смс отправляет мне на номер с текстом.... (правда с небольшой грамматической ошибкой непонятно почему-то получаю смс)
/*
* EEPROM Clear
*
* Sets all of the bytes of the EEPROM to 0.
* Please see eeprom_iteration for a more in depth
* look at how to traverse the EEPROM.
*
* This example code is in the public domain.
*/
#include <EEPROM.h>
void setup() {
// initialize the LED pin as an output.
pinMode(13, OUTPUT);
Serial.begin (9600);
/***
Iterate through each byte of the EEPROM storage.
Larger AVR processors have larger EEPROM sizes, E.g:
- Arduno Duemilanove: 512b EEPROM storage.
- Arduino Uno: 1kb EEPROM storage.
- Arduino Mega: 4kb EEPROM storage.
Rather than hard-coding the length, you should use the pre-provided length function.
This will make your code portable to all AVR processors.
***/
for (int i = 0 ; i < EEPROM.length() ; i++) {
EEPROM.write(i, 0);
}
// turn the LED on when we're done
for (int i = 0 ; i < EEPROM.length() ; i++) {
Serial.print (EEPROM.read(i)); Serial.print (" ");
}
digitalWrite(13, HIGH);
}
void loop() {
/** Empty loop. **/
}
Осталось две фичи реализовать - энергосбережение и контроль зависания и перезагрузки GSM. Всем спасибо, так активно помогаете.
У меня sim900.
Контроль делал так:
1. Раз в минуту посылаю AT. Если модуль ответил OK - хорошо, cчётчик=0. Иначе +1 к счётчику попыток.
2. Если счётчик >= 5, сбрасываю счётчик и "нажимаю" кнопку питания.
Всё работает более года.
Одно такое событие за год произошло.
В продолжении попытки получения положительного результата обнаружил что общаясь с модулем через переходник UNO с использованием PuTTY обнаружил что на команду:
AT+ICF?
Приходит сообщение об ошибки.... при этом при попытке отправить смс, оно приходит на телефон...
Когда EEprom был у вас ещё не тронутый (во всех ячейках FF),то заработало бы, если бы вы скетч заливали сразу после копипаста (без сохранения скетча на компе). При сохранении скетча на компе сбивается кодировка символов соответсвующих байту FF (который в еепроме был изначально), т.е. символа "я" и все косяки из-за этого, а потом я вам немного неправильно почистить еепром предложил, поэтому тоже не работало. Исправил в начале темы как еепром чистить до заливки скетча.
это у вас НЕ получилось, а нули написались в этом случае, потому что вы распечатку в терминал поставили до считываения тел.номера из еепром, а изначально, при старте программы, в переменную тел.номера нули записываются и вы их сразу и распечатали.
PS удалите простыню из сообщения #71, мешает . Кстати когда вставляете скетч, там вверху вкладка правая, можно галочку ставить "свернуть", чтобы под катом было.
почистите еепром таким скетчем и заливайте 2.1 без измнений, должно всё заработать по идее
#include <EEPROM.h>
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, 0);
for (int i = 0 ; i < EEPROM.length() ; i++) EEPROM.write(i, '0');
digitalWrite(13, HIGH);
}
void loop() {}
Приветствую. Спасибо Вам огромное за проделанную работу, всё теперь получилось (пошёл покупать недостающие детали и буду собирать до конца – смс ки отправляю – в ответ приходят подтверждения и инфо о состоянии – попробовал пока только с напряжением питания) - давно занялся поиском чего-то подобного для запуска котла по смс. Об arduino узнал недавно и пока что всё в процессе начинания и изучения. Изначально была идея запускать по шине CAN (точнее сказать в моей машине по периферийной шине i-bus через приборную панель) и по CAN отслеживать и отправлять сообщение о состоянии котла, температуре ОЖ и бортовом напряжении. Но для этого, как понимаю, нужно знать протокол обмена… Но с выносными датчиками, кому не лень, тоже всё хорошо.
Готов нарисовать и выложить нарисованную схему, для тех «ленивых» кто спрашивает её, но пока не пойму как прикрепить рисунок.
По ходу макетирования появилось несколько вопросов.
1. sms на запрос баланса приходят в HEX unicode =( /лечится заменой оператора или можно программой?/
2. не знаю как на версиях Webasto которые устанавливают как доп, но на "старых" например, моделях БМВ есть несколько условий при которых котёл не будет запущен - (с завода котёл кстати, работал только как "догревайка", но перекодировка творит чудеса и теперь работает ещё и как "автономное отопление" без колхозинга) - одно из них пониженное напряжение питания (недавно у товарища попытались запустить котёл при разряженной АКБ U=11.6V) - сигнал на запуск пришел, а вот котёл не запустился пока не зарядили АКБ. И это считаю правильная задумка - зачем тёплый двигатель, если стартер не крутится. Не увидел организованно ли это в Вашей программе уважаемый автор, но возможно, это будет своим образом аварийная защита, для котлов которые будут рады усадить АКБ в ноль (если такие существуют, конечно)
Изначально была идея запускать по шине CAN (точнее сказать в моей машине по периферийной шине i-bus через приборную панель) и по CAN отслеживать и отправлять сообщение о состоянии котла, температуре ОЖ и бортовом напряжении. Но для этого, как понимаю, нужно знать протокол обмена… Но с выносными датчиками, кому не лень, тоже всё хорошо.
Я так понимаю котел у вас штатный, да к тому же по CAN управляется . Вы уверены в возможности запуска его по аналогу? Вообще чтобы по CAN запускать конечно нужно знать протокол обмена. Но исследование CAN шины тоже дело интересное, хотя и не лёгкое. Если будет интересно, могу выложить проект CAN хакера на ардуино (там собственно сама ардуино и китайский модуль кана на MCP2515), который как раз и позволяет выявить из CAN шины нужные сообщения.
Короче в будущем конечно неплохо было бы дополнить данное устройство CAN шиной, но работы с этим не мало будет, особенно в программной части - протоколы разных авто.
Я хочу допилить хотябы W-BUS, т.к. если сказать по чесноку, в данный момент организовано только включение выключение котла без опроса его реального состояния. Просто у меня нет Webasto Evo чтобы протокол W-BUS помучить.
А вы если только аналог будете использовать вам можно не ставить микруху LM393 и всю её обвязку
По ходу макетирования появилось несколько вопросов.
1. sms на запрос баланса приходят в HEX unicode =( /лечится заменой оператора или можно программой?/
2. не знаю как на версиях Webasto которые устанавливают как доп, но на "старых" например, моделях БМВ есть несколько условий при которых котёл не будет запущен - (с завода котёл кстати, работал только как "догревайка", но перекодировка творит чудеса и теперь работает ещё и как "автономное отопление" без колхозинга) - одно из них пониженное напряжение питания (недавно у товарища попытались запустить котёл при разряженной АКБ U=11.6V) - сигнал на запуск пришел, а вот котёл не запустился пока не зарядили АКБ. И это считаю правильная задумка - зачем тёплый двигатель, если стартер не крутится. Не увидел организованно ли это в Вашей программе уважаемый автор, но возможно, это будет своим образом аварийная защита, для котлов которые будут рады усадить АКБ в ноль (если такие существуют, конечно)
1. Намного проще через оператора решить. (Ну всмысле не заменой его, а подбором правильной команды запроса баланса, либо есть такая функция у некоторых перевода на транслит.) Парсить этот юникод и PDU полный песец.
2. По напряжению АКБ по идее во всех котлах есть выключение. Я не стал делать выключение по напряжению. Но это не сложно - пару строк добавить.
Да, совершенно верно, котёл штатный. Вопрос конечно этот самому интересен будет ли он по +12V запускаться....но скачав документацию (описание + схемы соединений) предполагаю что работать должно. В любом случае скоро узнаем и напишу здесь. Главное чтобы конфликта не было по CAN.
А по поводу использовать MCP2515 - я уже получил из Китая его именно для этих целей, так что выкладывайте прошивку CAN хакера если найду время с удовольствием посижу с ним.
Хочу собрать полную схему (с LM393) так как машины меняются а сегодня новые котлы так понимаю уже все работают по W-Bus....возможно пригодится.
на портале carhelp.info много полезного найдете на этот счет - как запускать штатные котлы. Вам нужно узнать, есть ли у вашего котла шина W-Bus, если есть, то нужно попробовать запустить диагноситку котла по этой шине оригинальной вебастовской программой WTT при помощи обычного к-лайн адаптера. Если диагностика получится, всё упрощается.
ДА, пару лет назад использовал эту программу (WTT) для ремонта своего котла - не пропаяно было хорошо одно сопротивление. На каком-то форуме писал об этом с фото.
Значит можно попробовать подключиться к шине используя Вашу схему!?
Сейчас уже схему не вспомню но кажется именно по этой шине котёл соединён с приборной панелью и имеет название i-bus а уже приборная панель с CAN шиной. То есть через диагностический разъём авто к котлу с помощью WTT не подключиться, собирал всё дома на столе и подключал.
Значит можно попробовать подключиться к шине используя Вашу схему!?
Собираете два адаптера из сообщения #84 или легче покупаете, Один для подключения WTT к котлу, второй - чтобы посниффить обмен данными. Когда узнаете какие байты там летают, можно будет запускать котёл по i-bus (полагаю тот же W-bus)
Спасибо за схему и скетч. Один адаптер есть им собственно и ковыряюсь в авто (прошивка / кодировка блоков) второго нет, попробую купить.... Китай совсем обленил увы, да и часто получается что проще и Дешевле купить готовое устройство чем собирать в одном экземпляре. Исключение составляет - хобби.
Почти закончил собирать плату. Пока провожу эксперименты на столе, надеюсь скоро начнуться полевые испытания!
Если позволите ещё один момент замечен при проверке.
Всё прекрасно работает (смс команды) пока не отключить питание. После повторного включения питания и спустя даже 10 минут устройство никак не реагирует на смс команды пока не нажать кнопку Reset на Nano. После этого снова начинает всё работать.
И ещё подскажите в какую строку и что добавить чтобы в мониторе порта увидеть напряжение АКБ (исключительно для настройки) ? Понижающий DC-DC отличается от Вашего и шунтирует входным сопротивлением делитель напряжения. Вместо 13,70 приходит в смс 12,65. Хочу подобрать подстроичником, но каждый раз отправлять смс.......
вот здесь 4,92 это напряжение питания на ардуино, реальное измеренное вольтметром , 9950 это реальное измеренное сопротивление плеча 10К делителя напряжения, 98930 - это реальное измеренное сопротивление плеча 100К делителя напряжения. Измерьте и подставьте свои данные, должно быть ближе к правде. Если после этого отличается от реального напряжения, корректируйте ещё значение сопротивлений.
Скетч для настройки вольтаметра с выводом в терминал.
#define analogInput A7
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // сопротивление R1 (100K)
float R2 = 10000.0; // сопротивление R2 (10K)
int value = 0;
void setup(){
pinMode(analogInput, INPUT);
Serial.begin (9600);
}
void loop(){
// считывание аналогового значения
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0;
vin = vout / (R2/(R1+R2));
if (vin<0.09) vin=0.0;// обнуляем нежелательное значение
Serial.print("INPUT V= ");
Serial.println(vin);
delay(500);
}
Всё прекрасно работает (смс команды) пока не отключить питание. После повторного включения питания и спустя даже 10 минут устройство никак не реагирует на смс команды пока не нажать кнопку Reset на Nano. После этого снова начинает всё работать.
вот тут хз, у меня тоже так было на одной ардуино (от robotdyn ), на другой все норм. надо пробовать на другом МК. попробуйте в Setup строка 115 задержку на 6...7 секунд повысить
Приветствую. Спасибо за скетч - подобрал в программе величинами сопротивлений значение напряжения. Про делитель напряжения как бы всё понятно, но как ранее заметил что DC-DC шунтирует этот делитель и показывает "погоду" вместо напряжения. (Если запитать DC-DC от отдельного источника то проблем нет). В общем сейчас всё хорошо (значения в программе кстати получились далеки от истины).
Появилось время и добрался до авто. Идёт с фишки от котла три провода - один на насос, второй на i-BUS (CAN) и третий на таймер (точнее сказать на связку Telestart + timer) которого нет но можно дооснастить. На схеме этот провод идёт на квадратную фишку таймера на контакт "OUT". Отсюда появился вопрос - по какому протоколу работает связка таймер-котёл? Если W-Bus то можно попробовать подключить выход с Вашей конструкции на этот провод!?
А Подозреваю что на проводе OUT должен быть просто потенциал 12в при включении. Но если даже там цифра, мой вариант может и подойдет. По крайней мере так включали некоторые штатные котлы. Машина то какая?
MaksVV,
1. Получилось сделать контроль зависаний? Я писал выше #63
2. все возможности по энергосбережению в микроконтроллере AVR описаны тут https://www.gammon.com.au/power
спасибо по ссылке почитаю. Контроль зависаний попытался сделать. Добавил в скетч (сообщение #82). Нарисовал новую плату с реле. Т.е. питание GSM сидит на нормально-замкнутых контактах реле. При рестарте подается питание на реле и оно размыкает питание GSM. Но это только пробная версия, ещё ничего не проверял. Т.к. нет времени и детали ещё не дошли.
реле между контактами gsm модуля. Если gsm модуль на панельки устанавливать, то он высоко сидит, туда это реле по идее влезть должно, судя по его размерам.
Попробовал сейчас не меняя схемы(нет ни датчиков Темп ни ОС по Напр...) залить найденный и немного изенённый скетч (тот что выше) - при получении смс (ON or OFF) светодиод переключается......
В программирование пока что нуб поэтому появилось предположение, что, возможно, нужо собрать всю схему до конца.....
такой скетч попробуйте, если не работает, проблема в аппартаной части. СМС нужно слать с текстом ON или OFF , управляем встроенным светодиодом.
эмм, не успел ответить ))
Этот Ваш скетч крайний попробовал - РАБОТАЕТ тоже! =))
ну то есть ON включает и OFF выключает светодиод!
Таже пробовал ещё один (так же с просторов тырнета) скетч для отправки смс с "СИМкарты webasto" - смс отправляет мне на номер с текстом.... (правда с небольшой грамматической ошибкой непонятно почему-то получаю смс)
попробуйте почистить еепром сначала вот этим
в сериал мониторе должно появиться много нулей
Подтверждаю - спустя пару сек побежали нули
залил снова после чистки v2.1 - ничего увы не поменялось.....ответное смс на WriteNumber1 не получаю
недавно собрал пару модулей, всё работало, соберу ещё один, найду косяк, отпишусь
Может проблема из-за нестыковки уровней Rx Tx или скорости !? Но со светодиодом работает. А вот смс с СИМ получаю hello @ord вместо hello world.....
ОК. Будет интересно. Хочу пристроить модуль к своему котлу - Thermo Top С...... запускать думаю сигналом +12В на 30 минут.
Осталось две фичи реализовать - энергосбережение и контроль зависания и перезагрузки GSM. Всем спасибо, так активно помогаете.
У меня sim900.
Контроль делал так:
1. Раз в минуту посылаю AT. Если модуль ответил OK - хорошо, cчётчик=0. Иначе +1 к счётчику попыток.
2. Если счётчик >= 5, сбрасываю счётчик и "нажимаю" кнопку питания.
Всё работает более года.
Одно такое событие за год произошло.
В продолжении попытки получения положительного результата обнаружил что общаясь с модулем через переходник UNO с использованием PuTTY обнаружил что на команду:
AT+ICF?
Приходит сообщение об ошибки.... при этом при попытке отправить смс, оно приходит на телефон...
Чтобы посмотреть что происходит на Rх GSM модуля нужно раскоментировать строку 356 скетча 2.1. а строку 137 поменять на
Соответственно смотреть в сериал мониторе на скорости 19200
Чтобы посмотреть что происходит на Rх GSM модуля нужно раскоментировать строку 356 скетча 2.1. а строку 137 поменять на
Соответственно смотреть в сериал мониторе на скорости 19200
Приветствую. Поменял скетч. В мониторе вижу что пришла смс WriteNumber1
Но в ответ так же тишина
А вот продолжение - отправляю смс с телефона, в мониторе порта вижу, что получает модуль, а в ответ - тишина =(
в строку 147 добавьте это, чтобы узнать изначально какой номер из еепрома в переменную считался
должны нули по идее быть
Добавил....ничего нового в терменале увы не появилось
то что в строке 140
NastroykaGSM ();
переместить после строки 147 (после Serial.println (""); Serial.println (TelNumber1); )
в сериал порту должен напечататься первым делом номер телефона, вот нужно и посмотреть какой там номер, должны быть все нули
Ага разобрался перекинул часть программы за "строку 147" - - - - да первые нули
потом
Получилось вот так:
почистите еепром таким скетчем и заливайте 2.1 без измнений, должно всё заработать по идее
Когда EEprom был у вас ещё не тронутый (во всех ячейках FF),то заработало бы, если бы вы скетч заливали сразу после копипаста (без сохранения скетча на компе). При сохранении скетча на компе сбивается кодировка символов соответсвующих байту FF (который в еепроме был изначально), т.е. символа "я" и все косяки из-за этого, а потом я вам немного неправильно почистить еепром предложил, поэтому тоже не работало. Исправил в начале темы как еепром чистить до заливки скетча.
это у вас НЕ получилось, а нули написались в этом случае, потому что вы распечатку в терминал поставили до считываения тел.номера из еепром, а изначально, при старте программы, в переменную тел.номера нули записываются и вы их сразу и распечатали.
PS удалите простыню из сообщения #71, мешает . Кстати когда вставляете скетч, там вверху вкладка правая, можно галочку ставить "свернуть", чтобы под катом было.
почистите еепром таким скетчем и заливайте 2.1 без измнений, должно всё заработать по идее
Приветствую. Спасибо Вам огромное за проделанную работу, всё теперь получилось (пошёл покупать недостающие детали и буду собирать до конца – смс ки отправляю – в ответ приходят подтверждения и инфо о состоянии – попробовал пока только с напряжением питания) - давно занялся поиском чего-то подобного для запуска котла по смс. Об arduino узнал недавно и пока что всё в процессе начинания и изучения. Изначально была идея запускать по шине CAN (точнее сказать в моей машине по периферийной шине i-bus через приборную панель) и по CAN отслеживать и отправлять сообщение о состоянии котла, температуре ОЖ и бортовом напряжении. Но для этого, как понимаю, нужно знать протокол обмена… Но с выносными датчиками, кому не лень, тоже всё хорошо.
Готов нарисовать и выложить нарисованную схему, для тех «ленивых» кто спрашивает её, но пока не пойму как прикрепить рисунок.
По ходу макетирования появилось несколько вопросов.
1. sms на запрос баланса приходят в HEX unicode =( /лечится заменой оператора или можно программой?/
2. не знаю как на версиях Webasto которые устанавливают как доп, но на "старых" например, моделях БМВ есть несколько условий при которых котёл не будет запущен - (с завода котёл кстати, работал только как "догревайка", но перекодировка творит чудеса и теперь работает ещё и как "автономное отопление" без колхозинга) - одно из них пониженное напряжение питания (недавно у товарища попытались запустить котёл при разряженной АКБ U=11.6V) - сигнал на запуск пришел, а вот котёл не запустился пока не зарядили АКБ. И это считаю правильная задумка - зачем тёплый двигатель, если стартер не крутится. Не увидел организованно ли это в Вашей программе уважаемый автор, но возможно, это будет своим образом аварийная защита, для котлов которые будут рады усадить АКБ в ноль (если такие существуют, конечно)
Я так понимаю котел у вас штатный, да к тому же по CAN управляется . Вы уверены в возможности запуска его по аналогу? Вообще чтобы по CAN запускать конечно нужно знать протокол обмена. Но исследование CAN шины тоже дело интересное, хотя и не лёгкое. Если будет интересно, могу выложить проект CAN хакера на ардуино (там собственно сама ардуино и китайский модуль кана на MCP2515), который как раз и позволяет выявить из CAN шины нужные сообщения.
Короче в будущем конечно неплохо было бы дополнить данное устройство CAN шиной, но работы с этим не мало будет, особенно в программной части - протоколы разных авто.
Я хочу допилить хотябы W-BUS, т.к. если сказать по чесноку, в данный момент организовано только включение выключение котла без опроса его реального состояния. Просто у меня нет Webasto Evo чтобы протокол W-BUS помучить.
А вы если только аналог будете использовать вам можно не ставить микруху LM393 и всю её обвязку
По ходу макетирования появилось несколько вопросов.
1. sms на запрос баланса приходят в HEX unicode =( /лечится заменой оператора или можно программой?/
2. не знаю как на версиях Webasto которые устанавливают как доп, но на "старых" например, моделях БМВ есть несколько условий при которых котёл не будет запущен - (с завода котёл кстати, работал только как "догревайка", но перекодировка творит чудеса и теперь работает ещё и как "автономное отопление" без колхозинга) - одно из них пониженное напряжение питания (недавно у товарища попытались запустить котёл при разряженной АКБ U=11.6V) - сигнал на запуск пришел, а вот котёл не запустился пока не зарядили АКБ. И это считаю правильная задумка - зачем тёплый двигатель, если стартер не крутится. Не увидел организованно ли это в Вашей программе уважаемый автор, но возможно, это будет своим образом аварийная защита, для котлов которые будут рады усадить АКБ в ноль (если такие существуют, конечно)
1. Намного проще через оператора решить. (Ну всмысле не заменой его, а подбором правильной команды запроса баланса, либо есть такая функция у некоторых перевода на транслит.) Парсить этот юникод и PDU полный песец.
2. По напряжению АКБ по идее во всех котлах есть выключение. Я не стал делать выключение по напряжению. Но это не сложно - пару строк добавить.
на скорую руку состряпал скетч v2.2 и переделал плату. Добавлено:
- тактовая кнопка вкл/выкл с индикацией состояния команды на работу котла;
- рестарт GSM модуля в случае если он не отвечает ("завис") при помощи кратковременного оключения питания средствами реле;
- запись в еепром количество рестартов;
Но это вообще ничего не проверено, т.к. деталей нет и проверить пока некогда
плата
Да, совершенно верно, котёл штатный. Вопрос конечно этот самому интересен будет ли он по +12V запускаться....но скачав документацию (описание + схемы соединений) предполагаю что работать должно. В любом случае скоро узнаем и напишу здесь. Главное чтобы конфликта не было по CAN.
А по поводу использовать MCP2515 - я уже получил из Китая его именно для этих целей, так что выкладывайте прошивку CAN хакера если найду время с удовольствием посижу с ним.
Хочу собрать полную схему (с LM393) так как машины меняются а сегодня новые котлы так понимаю уже все работают по W-Bus....возможно пригодится.
на портале carhelp.info много полезного найдете на этот счет - как запускать штатные котлы. Вам нужно узнать, есть ли у вашего котла шина W-Bus, если есть, то нужно попробовать запустить диагноситку котла по этой шине оригинальной вебастовской программой WTT при помощи обычного к-лайн адаптера. Если диагностика получится, всё упрощается.
схема к-лайн
программа Webasto Termo Test
ДА, пару лет назад использовал эту программу (WTT) для ремонта своего котла - не пропаяно было хорошо одно сопротивление. На каком-то форуме писал об этом с фото.
Значит можно попробовать подключиться к шине используя Вашу схему!?
Сейчас уже схему не вспомню но кажется именно по этой шине котёл соединён с приборной панелью и имеет название i-bus а уже приборная панель с CAN шиной. То есть через диагностический разъём авто к котлу с помощью WTT не подключиться, собирал всё дома на столе и подключал.
Скетч Can Hacker
библиотеки для скетча CanHacker (уже настроены на кварц 8 Мгц CAN-модуля)
программа CanHacker
Скорость ком порта в программе CanHacker в настройках делаем 115200
схема подключения
Собираете два адаптера из сообщения #84 или легче покупаете, Один для подключения WTT к котлу, второй - чтобы посниффить обмен данными. Когда узнаете какие байты там летают, можно будет запускать котёл по i-bus (полагаю тот же W-bus)
Спасибо за схему и скетч. Один адаптер есть им собственно и ковыряюсь в авто (прошивка / кодировка блоков) второго нет, попробую купить.... Китай совсем обленил увы, да и часто получается что проще и Дешевле купить готовое устройство чем собирать в одном экземпляре. Исключение составляет - хобби.
Почти закончил собирать плату. Пока провожу эксперименты на столе, надеюсь скоро начнуться полевые испытания!
Если позволите ещё один момент замечен при проверке.
Всё прекрасно работает (смс команды) пока не отключить питание. После повторного включения питания и спустя даже 10 минут устройство никак не реагирует на смс команды пока не нажать кнопку Reset на Nano. После этого снова начинает всё работать.
И ещё подскажите в какую строку и что добавить чтобы в мониторе порта увидеть напряжение АКБ (исключительно для настройки) ? Понижающий DC-DC отличается от Вашего и шунтирует входным сопротивлением делитель напряжения. Вместо 13,70 приходит в смс 12,65. Хочу подобрать подстроичником, но каждый раз отправлять смс.......
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К делителя напряжения. Измерьте и подставьте свои данные, должно быть ближе к правде. Если после этого отличается от реального напряжения, корректируйте ещё значение сопротивлений.
Скетч для настройки вольтаметра с выводом в терминал.
вот тут хз, у меня тоже так было на одной ардуино (от robotdyn ), на другой все норм. надо пробовать на другом МК. попробуйте в Setup строка 115 задержку на 6...7 секунд повысить
Приветствую. Спасибо за скетч - подобрал в программе величинами сопротивлений значение напряжения. Про делитель напряжения как бы всё понятно, но как ранее заметил что DC-DC шунтирует этот делитель и показывает "погоду" вместо напряжения. (Если запитать DC-DC от отдельного источника то проблем нет). В общем сейчас всё хорошо (значения в программе кстати получились далеки от истины).
Появилось время и добрался до авто. Идёт с фишки от котла три провода - один на насос, второй на i-BUS (CAN) и третий на таймер (точнее сказать на связку Telestart + timer) которого нет но можно дооснастить. На схеме этот провод идёт на квадратную фишку таймера на контакт "OUT". Отсюда появился вопрос - по какому протоколу работает связка таймер-котёл? Если W-Bus то можно попробовать подключить выход с Вашей конструкции на этот провод!?
А Подозреваю что на проводе OUT должен быть просто потенциал 12в при включении. Но если даже там цифра, мой вариант может и подойдет. По крайней мере так включали некоторые штатные котлы. Машина то какая?
Можно просто подать 12в попробовать. По идее на w-bus шине такие уровни сигналов.
MaksVV,
1. Получилось сделать контроль зависаний? Я писал выше #63
2. все возможности по энергосбережению в микроконтроллере AVR описаны тут https://www.gammon.com.au/power
спасибо по ссылке почитаю. Контроль зависаний попытался сделать. Добавил в скетч (сообщение #82). Нарисовал новую плату с реле. Т.е. питание GSM сидит на нормально-замкнутых контактах реле. При рестарте подается питание на реле и оно размыкает питание GSM. Но это только пробная версия, ещё ничего не проверял. Т.к. нет времени и детали ещё не дошли.
реле применил миниатюное, такое
не вижу на плате реле, ткните носом пожалуйста
нет ли в планах нарисовать схему, что бы проще было разбираться откуда куда и зачем?
реле между контактами gsm модуля. Если gsm модуль на панельки устанавливать, то он высоко сидит, туда это реле по идее влезть должно, судя по его размерам.
время жалко, а что вам кроме реле не понятно?
схема надеюсь нигде не накосячил.