ESP32 TTGO T-Call подключается к SX1276

esp32 spi lora

У меня есть ESP32 TTGO T-Call, и я хочу добавить LoRa SX1276. Я новичок в этом и пытаюсь написать простую программу, которая при получении пакета от отправителя LoRa отправляет через GSM HTTP-запрос. GSM-связь отлично работает с библиотекой TinyGSM. Моя проблема — соединение LoRa.

Определенные чипы в соответствии с этой проблемой имеют несколько зарезервированных контактов. Если я использую контакты приведенного выше примера, lora работает, но GSM не работает из-за зарезервированного контакты для SIM800. Я публикую фрагмент кода с настройкой LoRa, который не работает. Если есть необходимость в дальнейших объяснениях, спрашивайте. Буду признателен за любую помощь.

#define SCK 14
#define SS 15
#define MISO 19
#define MOSI 27
#define RST 34
#define DIO0 33

SPI.begin(SCK, MISO, MOSI, SS);
//настраиваем модуль трансивера LoRa
LoRa.setPins(SS, RST, DIO0);

while (!LoRa.begin(866E6)) {
    SerialMonitor.println(".");
    delay(500);
}
SerialMonitor.println("LoRa Initializing OK!");

Отредактировано

С настройкой

#define LORA_MISO 19
#define LORA_MOSI 27
#define LORA_SCK 5
#define LORA_SS 18

#define LORA_RST 14
#define LORA_DIO0 26

Лора работает (не sim800), но с настройками комментария @Juraj я получаю

E (11571) gpio: GPIO можно использовать только в режиме ввода. [ 11575][E][esp32-hal-gpio.c:130] __pinMode(): Ошибка настройки GPIO E (11571) gpio: gpio_set_level(226): ошибка вывода GPIO gpio_num E (11586) gpio: gpio_set_level(226): ошибка вывода GPIO gpio_num

Изменить

Хотя ошибка существует, она работает с указанными выше настройками:

#define LORA_MISO 2
#define LORA_MOSI 13
#define LORA_SCK 14
#define LORA_SS 15

#define LORA_RST 34
#define LORA_DIO0 25

Некоторые пакеты от отправителя потеряны, но, похоже, всё работает. Не знаю почему, но работает... Да и не очень стабильно.

Наконец-то контакты 34–39 можно использовать в качестве входных, поэтому #define LORA_RST 34 не работает. Но он еще не получен от отправителя.

, 👍0

Обсуждение

попробуйте MOSI 12, MISO 19, SCK 18 и любой контакт как SS, чтобы ваш io 15 был в порядке, @Juraj

@Юрай, спасибо за твой комментарий. Я попробую и дам вам отзыв, @kostas ch.

@Юрай, спасибо, к сожалению, я получаю E (11571) gpio: GPIO можно использовать только в качестве режима ввода. [ 11575][E][esp32-hal-gpio.c:130] __pinMode(): Ошибка настройки GPIO E (11571) gpio: gpio_set_level(226): ошибка вывода GPIO gpio_num E (11586) gpio: gpio_set_level(226): ошибка вывода GPIO gpio_num, @kostas ch.

попробуйте поменять MISO на MOSI в моем предложении. так МОСИ 19, МИСО 12, СКК 18, @Juraj

Хотя Lora.begin, перед началом я получаю ту же ошибку, и, конечно, когда отправитель отправляет, ничего не получено, @kostas ch.

Контакт 14 выглядит немного перегруженным: #define SCK 14 и #define LORA_RST 14. Не можете ли вы переместить LORA_RST, чтобы попытаться заставить оба устройства работать одновременно?, @6v6gt

Мои текущие настройки: `#define LORA_MISO 12 #define LORA_MOSI 19 #define LORA_SCK 18 #define LORA_SS 15 #define LORA_RST 34 #define LORA_DIO0 25 ` и в соответствии с этими настройками я получаю сообщение об ошибке при попытке подключения к Лоре. Сначала я пытаюсь заставить lora работать с другими контактами, кроме стандартного, где существует конфликт с sim800., @kostas ch.


1 ответ


Лучший ответ:

1

Похоже, проблема возникает из-за определения контактов и того факта, что SIM800 и чип LoRa SX1276 на плате могут конкурировать за одни и те же контакты, вызывая помехи.

Во-первых, давайте разберемся с назначением контактов TTGO T-Call для SIM800:

SIM800L IP5306 версия 20190610:

  1. 4: SIM800L RST
  2. 23: SIM800L DTR
  3. 26: Питание SIM800L
  4. 27: SIM800L TX
  5. 32: SIM800L RX
  6. 33: SIM800L RI

Из перечисленных вами контактов для LoRa SX1276:

  1. СК: 14
  2. СС: 15
  3. МИСО: 19
  4. MOSI: 27
  5. РСТ: 34
  6. ДИО0: 33

Очевидно, что MOSI на 27 и DIO0 на 33 мешают контактам SIM800L.

Вам необходимо выбрать контакты для LoRa, которые не будут мешать SIM800L. Однако имейте в виду, что ESP32 имеет определенные контакты, которые подходят не для всех типов соединений.

Предлагаемое переназначение будет следующим:

#define SCK 14
#define SS 15
#define MISO 19
#define MOSI 22
#define RST 34
#define DIO0 25

Скажите мне, сработает ли это.

,

хотел бы поблагодарить вас за попытку, но я получаю следующее: E (4757) gpio: GPIO можно использовать только в качестве режима ввода. [ 4761][E][esp32-hal-gpio.c:130] __pinMode(): Ошибка конфигурации GPIO E (4757) gpio: gpio_set_level(226): ошибка вывода GPIO gpio_num E (4771) gpio: gpio_set_level(226): ошибка вывода gpio_num GPIO. Это происходит при попытке подключиться к Лоре, @kostas ch.

Привет, в таком случае, пожалуйста, измените «RST» на что-то вроде 13? если контакт 13 не используется некоторыми другими модулями и если он доступен, переключение на него должно работать. если используется 13, я думаю, вы также можете использовать 12, 16, 17, 21, 22. пожалуйста, убедитесь, что назначенный вами PIN-код не мешает ничему другому. просто измените значок «RST» в моем ответе, и он должен начать работать. напишите мне после проверки доступного PIN-кода и сообщите мне, работает ли он. удачи. проблема с моим первым ответом заключалась в том, что, вероятно, было введено только 34, но 13 должно работать. если это работает, пожалуйста, одобрите., @b1n3t

После моего последнего изменения в конфигурации контактов и установки первого значения 33 это сработало! Моси в 27 не работал. Мне пришлось установить другое, как я установил на 2., @kostas ch.

Я очень рад слышать, что. Некоторые контакты уже заняты, поэтому они не работают. Кажется, 34 был только входным контактом. 33 или 13 в этом аспекте подойдут. Моси 22 работает?, @b1n3t

Я еще не тестировал, и на сегодня все готово. Завтра проверю и дам отзыв. Спасибо за ваше время, @kostas ch.