K-Line сниффер на ESP8266

Здравстуйте. Хочу посмотреть фрйемы общения диагностической программы и автономного отопителя. пробовал разные примеры подключения ОТСЮДА а также через L9637 , tja1020, даже K-Line на пин rx подключал. но результаты всегда одни и те же.
вот так сейчас выглядит скетч :

#include <SoftwareSerial.h>
SoftwareSerial mySerial(D5, D6); //R,T
unsigned long prevTimedelay = 0; 
int Delay = 0;
void setup() {
 Serial.begin (115200);
mySerial.begin (10400);
}

void loop() {

if (mySerial.available()) {
delay (51);
unsigned long curTimedelay = millis ();
   Delay = curTimedelay-prevTimedelay;
Serial.println (""); Serial.print (Delay); Serial.println ("ms");
prevTimedelay = millis();  
while( mySerial.available()) {
    byte inByte = mySerial.read();
    Serial.print(" ");
    Serial.print(inByte,HEX);
   }
     
    }
}

но вывод монитора порта всегда показывает нули. например вот запрос диагностики :


6924ms
0 0 0 0 0
2041ms
0 0 0 0 0
2033ms
0 0 0 0 0
2024ms
0 0 0 0 0
2030ms
0 0 0 0 0
2031ms
0 0 0 0 0
2040ms
0 0 0 0 0
2022ms
0 0 0 0 0

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

При чтении softwareserial не стоит в коде использовать delay и вообще любые функции, потенциально выполняющиеся долго (дольше времени приёма бита, как минимум).

#include <SoftwareSerial.h>
SoftwareSerial mySerial(D5, D6); //R,T
unsigned long prevTimedelay = 0; 
int Delay = 0;
void setup() {
 Serial.begin (115200);
mySerial.begin (10400);
}

void loop() {

if (mySerial.available()) { 
while( mySerial.available()) {
    byte inByte = mySerial.read();
    Serial.print(" ");
    Serial.print(inByte,HEX);
   }
     
    }
}

так ?

по изменениям просто в мониторе порта нули стали в ряд

▒ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Я вообще жду, пока по available не будет понятно, что принято нужное количество байт. Софтсериал может легко прошляпить начало или конец бита, если МК чем-то другим занят.

Не мучай себе мозги с softwareserial. Это не стоит 50 рублей экономии. Возьми esp32 и работай нормально.

Тоесть думаете через физичесуий сериал подключу то получу резултат?

Ну я показвл код, ничего как видите не выполняется , задержек нет

Нет, не думаем.

Думаю, что если перестанешь усложнять себе жизнь без какой-либо причины, то в жизни будет гораздо меньше сложностей.

1 лайк

Евгений1, rkit
Это что за ответы ? Вы тут что местная “школота” ?
Я иак смотрю вы убогие срете такими ответами чють ои не в каждом посту. Это че + к активности чтоли набиваете? Чем такую бурду писать ,может сэкономите энергия дряхлых пальчишек.
Вроде норм все нарисал,норм спросил… откуда вы такие беретесь а ?

Вижу, что Serial.print выполняется, а не ничего.

1 лайк

Да? Не вижу схемы хоть убей. Не вижу осциллограмм.

1 лайк

Да, а что?

Норм ответил

Каким ещё может быть отрицательный ответ на этот вопрос? Предложите варианты.

Я уверен, что проектов чтения k-line ардуиной в инете полно. Почему бы не начать с повторения работающего проекта?

я вот тут тоже присматриваюсь, какой бы реализовать, на АЛИ, за деньги, в пределах пару тысяч…