Проблема с работой модулей LoRa и esp8266-01

Тема в разделе "ESP8266, ESP32", создана пользователем mxjurko, 13 авг 2019.

  1. mxjurko

    mxjurko Нуб

    Всем доброго времени суток!
    Сейчас работаю над интересным проектом. Для его реализации мне нужно было связать две Arduino Uno с помощью технологии LoRa (модуль LoRa SX1278 Ra-02). Выполнив эту задачу решил подцепить на одну из Arduino WiFi модуль esp8266-01, но обнаружил интересную вещь - esp и LoRa не хотят работать вместе (запитоваясь от одной Arduino 3.3V). Судя по всему проблема в потреблении токов (на 3.3V Arduino выдаёт всего 50мА, чего естественно мало). Пытался запитать от стороннего источника питания (USB-TTL PL2303 и Micro USB MB102 Module DC-12V), однако ничего не получилось.

    Получается -> если оба модуля подключены - работает с переодичным успехом либо LoRa, либо esp
    -> если один из модулей перевести на сторонний источник питания (Micro USB MB102 Module DC-12V), тогда работает лишь тот модуль, который полностью (с питанием) подключён к Arduino.

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

    P.S. С отправляющей данные стороной всё точно ОК.

    Код (C++):

    #include <SoftwareSerial.h>
    #include <SPI.h>
    #include <LoRa.h>

    #define TX 6
    #define RX 5

    SoftwareSerial WiFi_module (TX,RX);

    void setup() {
     
      Serial.begin(115200);
      Serial.println(">>>START");
     
      WiFi_module.begin(115200);

      WiFi_module.println("AT");
      if (WiFi_module.find("OK")) {
        Serial.println(">>>Yes, WiFi is WORKING!!!");
      }
      else {
        Serial.println(">>>Starting WiFi FAILED!");
      }

      if (!LoRa.begin(433E6)) {
        Serial.println(">>>Starting LoRa FAILED!");
        while (1);
      }
      else {
          Serial.println(">>>LoRa is WORKING too!");
      }
    }

    void loop() {
     
      int packetSize = LoRa.parsePacket();
     
      if (packetSize) {
        Serial.print("Received packet '");

        while (LoRa.available()) {
          Serial.print((char)LoRa.read());
        }

        Serial.print("' with RSSI ");
        Serial.println(LoRa.packetRssi());
      }
    }
     
  2. parovoZZ

    parovoZZ Гуру

    Изучить апноуты от Semtech и Espressif на предмет фильтрации питания. Очевидно, что тот и другой очень хорошо шумят по шинам питания. Не забывать, что и тот и другой потребляют в пике до 200мА. TI в этом плане рекомендует ставить дополнительные ШИМ стабилизаторы. Мне кажется, что если бюджет по току источник питания обеспечивает, то можно обойтись хорошим LC фильтром.
     
  3. b707

    b707 Гуру

    mxjurko
    если известно, что проблема в питании - зачем нам ваш код проверки?
    Вы бы лучше схему выложили, как вы внешний источник подключали. А то совершенно непонятно. что могло "не получится" при питании модулей внешним БП?
    Да и внешние БП у вас какие-то странные описаны, все с 5в выходом. Вы их случайно не к ардуине ли подключали, пытаясь таким образом повысить отдачу 3.3в?
     
    Airbus нравится это.
  4. mxjurko

    mxjurko Нуб

    Конечно нет, у обоих этих модулей есть выбор между 3.3V и 5V
    _______________
    | LoRa | Arduino |
    ===============
    | GND | GND |
    | 3.3V | 3.3V |
    | RST | 9 |
    | DIO0 | 2 |
    | NSS | 10 |
    | MOSI | 11 |
    | MISO | 12 |
    | SCK | 13 |
    ===============

    _________________
    | esp8266 | Arduino |
    ================
    | RX | 6 |
    | TX | 5 |
    | . . . |
    ================
    _________________
    | esp8166 | MB102 |
    ================
    | VCC | 3.3V |
    | GND | GND |
    ================
     
  5. parovoZZ

    parovoZZ Гуру

    а что это и для чего???
     
  6. b707

    b707 Гуру

    mxjurko, - GND esp8266 и GND Arduino должны быть соединены
     
    Airbus нравится это.
  7. mxjurko

    mxjurko Нуб

    Эммм..Когда переключаю GND со стороннего БП на Arduino (и оставляю 3.3V на БП) esp перестаёт работать (красный индикатор гаснет)
     
  8. b707

    b707 Гуру

    надо не переключать, а подключить GND и туда и туда.

    GND у всех модулей (ардуина. ЕСП. Лора, сторонний БП) - должен быть ОБЩИЙ
     
    Airbus нравится это.
  9. mxjurko

    mxjurko Нуб

    Вы имеете ввиду (например) на breadbord подключить линию GND с Arduino, и этой линией подключить землю ко всем модулям, но при этом 3.3V оставить на БП?
     
  10. Airbus

    Airbus Радиохулиган Модератор

    ЗЕМЛЯ (GND)ДОЛЖНА БЫТЬ ОБЩЕЙ У ВСЕХ МОДУЛЕЙ!!!!А питать Вы можете их как хотите и от чего хотите.Можно от одного источника можно от разных.От Ардуино-это самый худший вариант ибо ток потребления только одной esp8266 в среднем 60 миллиампер.
     
  11. b707

    b707 Гуру

    ДА
    в том числе и к GND блока питания
     
  12. mxjurko

    mxjurko Нуб

    Так.. Разобрался с землей и теперь в режиме программирования esp (reset -> GND), питаясь от БП всё ОК, но как только убираю перемычку reset-GND WiFi отрубается (выводит ">>>Starting WiFi failed", т.е. на AT-команду не находит "ОК")
    WiFi теперь питается от 3.3V на micro usb mb102 module dc-12v
    В чём может быть проблема?
     
  13. b707

    b707 Гуру

    вы же писали, что у вас ЕСП подключен к ардуино в качестве WIFI . Зачем Вы его программируете?
     
  14. mxjurko

    mxjurko Нуб

    Только для того, чтобы проверить ручками работает или нет.
     
  15. b707

    b707 Гуру

    после того, как вы его запрограммируете, он на AT команды отвечать и не должен
     
    Airbus нравится это.
  16. mxjurko

    mxjurko Нуб

    Так я программирую не его, а Arduino. Тогда как мне esp подключить к точке доступа WiFi?
     
    Последнее редактирование: 14 авг 2019