Не работает ESP32 с EasyTransfer.h (или SoftEasyTransfer.h)
- Войдите на сайт для отправки комментариев
Вс, 12/04/2020 - 17:07
Приветствую форумчан. Подскажите, кто чем может.
Есть pro mini 3.3v с модулем rs485, которая общалась с такой же pro mini.
Не вижу смысла приводить весь код. Всё это работало через библиотеки SoftEasyTransfer.h SoftwareSerial.h и структуру данных:
SoftEasyTransfer ET;
struct SEND_DATA_STRUCTURE{
unsigned long ID;
unsigned long UID;
boolean Check;
};
SEND_DATA_STRUCTURE rxdata;
Но пришло время связать это всё с интернетом и добавить периферии. В ход пошла esp-wroom-32 36gpio на которой SoftEasyTransfer не ловит эти данные на SoftwareSerial для esp. То есть сам канал работает через uart, но не могу прочитать структуру данных на esp32. На ардуине это просто было. Уже долго гуглю, пробую разные варианты, но не могу дойти до сути.
В этом месте не приходят данные:
if(ET.receiveData()){
Serial.print("ID:");
Serial.print(rxdata.ID);
Serial.print("UID:");
Serial.println(rxdata.UID);
delay(500);
}
У esp32 три аппаратных сериала. Программный просто не нужен и вряд ли правильно работает.
Проверял, работает и программный. Просто если отправить в uart что-то, то приходит, а в ET.receiveData() не приходит не из аппаратного, не из софтового.
Может есть вариант прикрутить костыль на приёме в esp32? Просто не хватает знаний для понимания принципа работы библиотеки. Её протокол: Header(0x06,0x85),SizeofPayload,Payload,Checksum
Вот как теперь это всё отловить?
А, ну там сырые двоичные данные передаются, без поддержания совместимости между разными процессорами. Переделывать придется больше половины работы. Передавай в json, если не хочешь углубляться в технические детали.
А, ну там сырые двоичные данные передаются, без поддержания совместимости между разными процессорами. Переделывать придется больше половины работы. Передавай в json, если не хочешь углубляться в технические детали.
Придётся углубиться, чтобы не переделывать несколько устройств. Мы же на одной скорости будем принимать\передавать - 9600. Крч, я так понимаю:
ждём 00000110 как начало пакета, затем считываем уже известное количество байт (сумма байт под переменные структуры данных), а следующий уже будет контрольная сумма для перепроверки этих самых байт структуры. Кто знает как это реализовать?
Ну а что там реализовывать? Я для своих целей писал подобную библиотеку сам. Проблема у вас наверняка с разным описанием бинарных данных в атмеге и в есп.