Звук на SIM800

Тема в разделе "Посоветуйте детальки", создана пользователем ostrov, 27 фев 2018.

  1. ostrov

    ostrov Гуру

    Имеется SIM800 и плеер DfPlayer. Нужно при поднятии трубки запустить в эфир мп3 файл с плеера. На SIM800 вход аудио сигнала микрофонный, в плеера выход или на динамики или стерео на усилитель. Я то то не соображу с ходу как правильно и безопасно подать звук на микрофонный вход? Подскажете?
     
  2. ostrov

    ostrov Гуру

    НА одном из форумов нашел такую схему, пока не пробовал:
    [​IMG]
     
    Airbus нравится это.
  3. Airbus

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

    Вполне.
     
  4. ostrov

    ostrov Гуру

    Нет, схема вверху не правильная. Сплошные помехи.
     
  5. ostrov

    ostrov Гуру

    Ну раз никому не интересно, то правильную и не покажу. И другие секретики не открою. :oops:
     
  6. ostrov

    ostrov Гуру

    В общем разобрался сам. Сейчас тестовое устройство умеет:

    - поднимать трубку при входящем звонке (опционально если звонят не из белого списка, трубка кладется),
    - проигрывать в телефонную линию mp3 файлы любой длины и в любом количестве в хорошем качестве,
    - принимать и исполнять одиночные DTMF команды,
    - принимать и исполнять DTMF команды из нескольких символов, например заканчивающиеся решеткой или звездочкой,
    - делать звонки и проигрывать абоненту файл (оповещение), или несколько файлов по заданному алгоритму (голосовое меню),
    - принимать и исполнять команды по SMS (опционально только с номеров из белого списка),
    - отправлять сообщения по SMS,
    - (опция) вести лог событий на SD-карточку.
    - может что то забыл еще.

    Комбинируя данные возможности можно создать тысячу и одну веселую поделку. Например был такой запрос: звоним своему загородному дому, он спрашивает "Хозяин, во сколько тебя ждать?", набираем "1830#", к этому времени все будет прогрето и вскипячено. Как вариант - говорящая машина с запуском. Можно и перед друзьями понтонуться, если что. )
     
  7. Slacky

    Slacky Гик

    Ну сказали А, говорите и Б :))

    Схему и код интересно посмотреть ...
     
  8. itsWoland

    itsWoland Нерд

    на точность не претендую, но поиски дали вот это
    возможно что-то подобное
    upload_2019-8-1_20-53-12.png
    вопрос в следующем
    Без микрофона вообще никак?
     
  9. ostrov

    ostrov Гуру

    Запросто без микрофона.


     
  10. itsWoland

    itsWoland Нерд

    а там схема та же? или есть изменения?
     
  11. ostrov

    ostrov Гуру

    На вход подал напрямую с выхода плеера, через резисторы получается очень тихо и шумно. Громкость не помню какую выстави, порядка 20 из 30 что-ли, надо подбирать.
     
  12. Onkel

    Onkel Гуру

    Там же вроде стерео, надо с двух каналов через пару резисторов.
    У меня еще плейер шумел, когда на него шли команды, приходилось делать для него отдельный uart софтовый.
     
  13. a1000

    a1000 Гуру

    А встроенный в SIM800 плеер вас не устроил?
     
    Andrey12 нравится это.
  14. Andrey12

    Andrey12 Гик

    Я так понял у ТС SIM800L там нет плеера. Надо брать SIM800C и работает устойчивее и плеер в нем есть. Но несколько отличается процесс включения.
     
  15. a1000

    a1000 Гуру

    У меня SIM800 L и всё заработало. Нужна програмулька для заливки файлов и файлы надо в каком-то хитром формате. Я сейчас в больнице, подробнее объяснить не могу. Завтра буду дома, могу посмотреть.
     
  16. itsWoland

    itsWoland Нерд

    там хитрая программулина, а заливается в основном AMR файлы для меньшего весу ,был для мобильных популярен
     
    Последнее редактирование: 10 авг 2019
  17. itsWoland

    itsWoland Нерд

    Сегодня выяснил что sim800l sim800l рознь
    В моём случае для того чтобы впихнуть туда файлы пришлось прошивку обновлять
    с воспроизедением пока не разобрался

    при коде
    Код (C++):
     ...
    _response = sendATCommand("AT+FSLS=C:\\User\\", true);
      _response = sendATCommand("AT+CREC=4, \"C:\\User\001.amr\",0,100", true);

    String sendATCommand(String cmd, bool waiting) {
      String _resp = "";                            // Переменная для хранения результата
      Serial.println(cmd);                          // Дублируем команду в монитор порта
      sim.println(cmd);                          // Отправляем команду модулю
      if (waiting) {                                // Если необходимо дождаться ответа...
        _resp = waitResponse();                     // ... ждем, когда будет передан ответ
        // Если Echo Mode выключен (ATE0), то эти 3 строки можно закомментировать
        if (_resp.startsWith(cmd)) {  // Убираем из ответа дублирующуюся команду
          _resp = _resp.substring(_resp.indexOf("\r", cmd.length()) + 2);
        }
        Serial.println(_resp);                      // Дублируем ответ в монитор порта
      }
      return _resp;                                 // Возвращаем результат. Пусто, если проблема
    }

    String waitResponse() {                         // Функция ожидания ответа и возврата полученного результата
      String _resp = "";                            // Переменная для хранения результата
      long _timeout = millis() + 10000;             // Переменная для отслеживания таймаута (10 секунд)
      while (!sim.available() && millis() < _timeout)  {}; // Ждем ответа 10 секунд, если пришел ответ или наступил таймаут, то...
      if (sim.available()) {                     // Если есть, что считывать...
        _resp = sim.readString();                // ... считываем и запоминаем
      }
      else {                                        // Если пришел таймаут, то...
       Serial.println("Timeout...");               // ... оповещаем об этом и...
      }
      return _resp;                                 // ... возвращаем результат. Пусто, если проблема
    }
    выдаёт это

    Код (C++):
    AT+FSLS=C:\User\

    001.amr
    24.amr
    4514.amr


    AT+CREC=4,"C:\User\001.amr",1,100

    +CME ERROR: 100

    >AT+CREC=4,"C:\User\001.amr",1,100

    +CME ERROR: 100

     
     
  18. itsWoland

    itsWoland Нерд

    Всё гениальное просто... надо было напрямую к выходу динамика влупить микрофонный вход
     
    ostrov нравится это.