АОН для стационарного телефона

kazakoff
Offline
Зарегистрирован: 07.06.2013

Собственно вопрос можно ли сделать такую штуку, хочу на работе определять номер и выводить на комп.

а там написать уже прогу =)

Если можете подскажите пожалуйста и вообще реально ли это?

maksim
Offline
Зарегистрирован: 12.02.2012

Реально, но не актуально.

kazakoff
Offline
Зарегистрирован: 07.06.2013

Для меня очень актуально.

RANDREY
Offline
Зарегистрирован: 10.06.2012

UP

есть в инете подобное?

Есть у меня АОН РУСЬ (аналог-цифра), но охота в комп заводить данные по телефонам. Самая сложность приведения уровня телефонной линии в читаемое занято, получение ответа от АТС, формирование импульсного набора итд.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Шо?

RANDREY
Offline
Зарегистрирован: 10.06.2012

схема АОНа на пике (ардуине). Ранее делали на процессоре Z80 (3.5 мегагерц)

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

kazakoff пишет:

Собственно вопрос можно ли сделать такую штуку, хочу на работе определять номер и выводить на комп.

а там написать уже прогу =)

Если можете подскажите пожалуйста и вообще реально ли это?

дык, любой модем может делать запросы АТС для получения служебной инфы.

RANDREY
Offline
Зарегистрирован: 10.06.2012

а им можно управлять? UART или другие протоколы, чтоб внедрить в обычный телефон?

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

RANDREY пишет:

а им можно управлять? UART или другие протоколы, чтоб внедрить в обычный телефон?

"Вот и выросло поколение ..." :(

Модем - это с одной стороны телефонная линия, а с другой - тот самый UART.

RANDREY
Offline
Зарегистрирован: 10.06.2012

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

Современным это не надо, не удивлюсь, что АОН с ардуинкой ещё не стыковали, даже через модем, но спросить можно было, чтоб не изобретать велосипед(

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

RANDREY пишет:
не удивлюсь, что АОН с ардуинкой ещё не стыковали,

А я не удивлюсь, если Ваша станция отдает не АОН, а CID, или вообще ничего не отдает.

Я бы уже замахивался на asterisk, а не занимался фигней с полумерами...

RANDREY
Offline
Зарегистрирован: 10.06.2012

отдает АОНу CID, у нас цифровая станция. Не суть. Мой АОН принимает. Астерикс дорого, пока обойдусь. Забил)

Силовую часть можно посмотреть на схемке АОНа с КР1830ВЕ31 http://radiokaraganda.narod.ru/shem/phone/soul.gif

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

RANDREY пишет:
Астерикс дорого, пока обойдусь.

Ну, если опенсорс для Вас "дорого", то я не знаю... :)

AsteriskNOW is the premier, ready-to-run distribution of open source Asterisk.  AsteriskNOW is an ISO image that installs Linux, Asterisk and the FreePBX GUI in a single, simple install.  For more information, including installation instructions, check out the AsteriskNOW page.

RANDREY
Offline
Зарегистрирован: 10.06.2012

для него нужен IP телефон)

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

RANDREY пишет:
для него нужен IP телефон)

Не нужен, а вот плата сопряжения с двухпроводной линией (FXO) - нужна, иначе куда Вы будете втыкать телефонный джек? :)

Зато сразу все в компьютере, и не только номера, но и разговоры писать можно... А если Вам станция может отдавать звонки по IP - то зачем тогда городить АОН?

RANDREY
Offline
Зарегистрирован: 10.06.2012

круто, но от компа бы отвязаться.

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

В принципе мой АОН справляется, только телефоны ручкой переписываю) Пока забил, есть другой проект...

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Разве аналоговая телефония еще жива????

Или это предсмертные ковульсии ?

 

RANDREY
Offline
Зарегистрирован: 10.06.2012

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

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Вы уж определитесь как-нибудь:

RANDREY пишет:
но охота в комп заводить данные по телефонам.

RANDREY пишет:
круто, но от компа бы отвязаться.

RANDREY
Offline
Зарегистрирован: 10.06.2012

для приема звонков комп не обязательно должен включен.

Для скидывания базы звонков (ежедневно, еженедельно), вынуть карточку памяти из "телефона" вставить картридер и прочесть файлик со входящими, далее куда надо, написать базу не составить труда (только на паскале)...

Nesco
Offline
Зарегистрирован: 22.08.2022

Мне вообще тоже интересна такая тема, как АОН. В моём случае CallerID. Приставку бы сделал, такие как раньше были, лет так 20 назад. Они ещё номер нормальными числами по русски голосом проговаривали, а не как панасики с CallerID только цифрами. В магазине аналогичного ничего нет, только старые аоны можно на авито встретить.

Даже кое-что уже нашлось https://github.com/dilshan/arduino-caller-id?ysclid=l8gc4je0ns536018808

ZXPirate
Offline
Зарегистрирован: 18.02.2020

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

-NMi-
Offline
Зарегистрирован: 20.08.2018

Магию плавающих бит разгадал???

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ZXPirate пишет:

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

а Русь на каком контроллере была?

-NMi-
Offline
Зарегистрирован: 20.08.2018

Там что-то советское было, т34вм1 типа. Но с z80 совместимое. Ещё на pic16 были аоны.

Nesco
Offline
Зарегистрирован: 22.08.2022

Класное образное название "Т34вм1", настоящего названия тоже  не вспомню.

Nesco
Offline
Зарегистрирован: 22.08.2022

Оказывается и сейчас продаются АОНы, такие же как и раньше. С GPON, Caller ID работают. Стоят 4.5 т.р. Это очень хорошо.

А вот отдельных таких же приставок чего-то не вижу.

Нравится в старых аонах реализация голоса, когда он проговаривает входящий номер "по человечески", сотнями, десятками и единицами. Захотелось повторить простыми способами. Задача то вроде простая. Попробовал поиграть с модулем DFPlayer mini, в который micro SD вставляется. Но не впечатлило, глючный он какой-то. Сейчас хочу попробовать DY-SV17F .

-NMi-
Offline
Зарегистрирован: 20.08.2018
Nesco
Offline
Зарегистрирован: 22.08.2022

Интересная статья ! Спасибо!

Nesco
Offline
Зарегистрирован: 22.08.2022

Попробовал реализовать основу задачи проговаривания голосом входящего номера. Вроде как, ничего сложного, на DFPlayer mini или DY-SV17F . Ничего толкового не получается. Основные проблемы: воспроизведение другого файла (считывание по порядковому номеру  типа 00001.mp3) и неправильное определение состояния устройства (свободно или работает). А может оно просто медленное, это переключение состояния. В интернете эти вопросы смотрел, но как-то всё мутно.

Может я зря этим занимаюсь?  Хватит ли теоретически быстродействия у этих модулей для "человеческого" проговаривания телефонного номера, это же работа минимум с 30 мелкими звуковыми файлами.

smart_pic
Offline
Зарегистрирован: 17.04.2016

Nesco пишет:

Класное образное название "Т34вм1", настоящего названия тоже  не вспомню.

Был еще вариант в QFP корпусе.

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

АОНы на Z80 работали лучше всех известных.

Nesco
Offline
Зарегистрирован: 22.08.2022

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

Состояние (BUSY) воспроизводит или нет - теперь определяется, нашёл нужную библиотеку. Но паузы между проигрываемыми файлами всё таки большие.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Nesco пишет:

 Но паузы между проигрываемыми файлами всё таки большие.

"Большие" - это сколько?

Nesco
Offline
Зарегистрирован: 22.08.2022

Паузы между воспроизводимыми файлами 1.5 сек. Подключение One_Line Single Bus Mode. Память встроенная в плэйер.

Длительность самих файлов примерно 0.6 сек. Это файлы из одного слова, один, два и т.д.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

На мой непосвященный взгляд, 1500 мс - то очень много.

Хотелось бы знать, как именно проводилось измерение, в частности, 1500 мс - это время между чем и чем.

Ну и вообще хотелось бы знать, как МК получает сигнал об окончании предыдущего файла, а также длительности всех процессов между окончанием старого файла и началом нового. В двух режимах: когда проигрывается один и тот же файл и когда проигрываются разные файлы.

Если исходить из минимума в двухлучевой цифровой осциллограф (при наличии 4-лучевого или совмещенного  логанализатором - дело упрощается.), то добавить в код чередование логических 0 и 1 на свободный пин и посмотреть на одном канале звук, а на другом - этот пин.

Nesco
Offline
Зарегистрирован: 22.08.2022

Измерял с помощью секундомера в телефоне. Пальцем стартуешь и пальцем заканчиваешь. Длительность самого файла показывает редактор wav файлов. Пауза что на wav, что на MP3 на слух такая же. С осциллографом нет возможности. Но мне кажется можно в программе с помощью контрольных точек выявить тормоза через millis(), сейчас попробую. Чего то раньше в голову не пришло.

Дополню:

Замеры провёл. Всё прояснилось. 1.5 сек. паузы даёт медленное определение окончания воспроизведения, изменения состояния на ножке BUSY.

 

Nesco
Offline
Зарегистрирован: 22.08.2022
/*
 * busy_pin_test.ino - set mp3 player module to play tracks from flash using 1 wire for commands
 * and another BUSY wire so MCU can read and know if the track has ended.
 * 
 * DY_SV17F: Must connect CON1 and CON2 to GND, and CON3 to VCC via 10K resistors-
 * So the module will enter UART+OneLine mode (AKA OneWire)-
 * Those pins must be connected BEFORE powering the module - they are internally sampled at powerup!
 * 
 * Connect IO4 (ONE_LINE) pin to arduino pin D4 (can be any pin).
 * Connect CON3 (BUSY) pin to arduino pin D5 (can be any pin).
 * 
 * Track file names must be 5 digits starting from 00001.mp3 00002.mp3 00003.mp3...
 * Also applies for directory names.
 * 
 * https://github.com/arduino12/mp3_player_module_wire
 */
#include <Arduino.h>
#include <mp3_player_module_wire.h>

#define PLAYER_WIRE_PIN          (4)
#define PLAYER_BUSY_PIN         (5)

Mp3PlayerModuleWire player(PLAYER_WIRE_PIN);

void wait_for_end_of_track()
{
#ifdef PLAYER_BUSY_PIN
  delay(600);         // may need to increase if using large track files or other storage
  for (uint16_t debounce = 0; debounce != 0xff00;) {
    debounce = (debounce << 1) | digitalRead(PLAYER_BUSY_PIN) | 0xfe00;
    delay(10);
  }
  delay(300);         // may need to increase if using large track files or other storage
#else
  delay(2000);        // no way of knowing when the track ends
#endif
}

void setup()
{
  Serial.begin(115200);

  player.set_volume(20);            // default
  player.set_eq(2);      // default
  player.set_play_mode(player.PLAY_TRACK);  // default
  player.set_storage(player.STORAGE_FLASH); // default
  
Serial.println("Начало цикла");

  for (int8_t i = 4; i >= 0; i--) {
    Serial.println("Начало ");
    player.set_track_index(1);                // 00003.mp3
    Serial.println("После set_track ");
    player.play();
    Serial.println("После Play");
    wait_for_end_of_track();
    Serial.println("После определения окончания воспроизведения файла (BUSY)");
  }

}

void loop()
{

}

 

Nesco
Offline
Зарегистрирован: 22.08.2022

А здесь результаты в мониторе порта. Время с левой стороны показываается в самом мониторе, не пришлось даже millis() задействовать. 

Четыре раза прогоняется на воспроизведение один и тот же файл wav. Используемая библиотека указана в начале программы.

09:42:07.976 -> Начало цикла

09:42:08.042 -> Начало 
09:42:08.108 -> После set_track 
09:42:08.207 -> После Play
09:42:09.643 -> После определения окончания воспроизведения файла (BUSY)
09:42:09.709 -> Начало 
09:42:09.809 -> После set_track 
09:42:09.908 -> После Play
09:42:11.316 -> После определения окончания воспроизведения файла (BUSY)
09:42:11.383 -> Начало 
09:42:11.449 -> После set_track 
09:42:11.550 -> После Play
09:42:12.999 -> После определения окончания воспроизведения файла (BUSY)
09:42:13.066 -> Начало 
09:42:13.132 -> После set_track 
09:42:13.235 -> После Play
09:42:14.671 -> После определения окончания воспроизведения файла (BUSY)
09:42:14.737 -> Начало 
09:42:14.805 -> После set_track 
09:42:14.907 -> После Play
09:42:16.343 -> После определения окончания воспроизведения файла (BUSY)
 
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

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

Nesco
Offline
Зарегистрирован: 22.08.2022

 Долгая рекция на состояние вывода BUSY - это похоже болячка всех простых MP3 плэйеров. Попробовал озвученный Вами вариант на этом плэере dy-sv17f, когда зная длительность файла, насильно прерываешь воспроизведение, не получилось. Возможно из-за однопроводной схемы подключения. Теперь, когда отпала необходимость в сигнале BUSY, поскольку он всё равно тормознутый, можно попробовать и другие схемы подключения. В запасе есть ещё DF mini Player. И ещё проскакивал вариант с SPI Card Reader и просто ардуино уно, без плэйера.

 

rkit
Offline
Зарегистрирован: 23.11.2016

Достаточно взять esp32 с кодеком и иметь стопроцентный контроль над звуком.

А все эти плееры выкинуть на помойку истории, как пережиток ушедшей эпохи дешевых авр.

Nesco
Offline
Зарегистрирован: 22.08.2022

Успел намного почитать про ESP32. Очень интересно. Но с чего начать, какой модуль ESP32 лучше купить? По какому названию искать? У меня глаза разбегаются.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Nesco пишет:

Успел намного почитать про ESP32. Очень интересно. Но с чего начать, какой модуль ESP32 лучше купить? По какому названию искать? У меня глаза разбегаются.

бери 38 пиновый

Nesco
Offline
Зарегистрирован: 22.08.2022

Нашёл 38 пиновую, вот такую https://ampero.ru/esp-32-debugging-board-wifi-bluetooth-esp-wroom-32.html

ZXPirate
Offline
Зарегистрирован: 18.02.2020

z80

ZXPirate
Offline
Зарегистрирован: 18.02.2020

незнаю  о чем вы , все что я знал на тот момент - пошли 500 гц - получишь ответ,

Nesco
Offline
Зарегистрирован: 22.08.2022

rkit пишет:

Достаточно взять esp32 с кодеком и иметь стопроцентный контроль над звуком.

А все эти плееры выкинуть на помойку истории, как пережиток ушедшей эпохи дешевых авр.

Кодек - это MAX98357A или pcm5102a ?

Upper
Offline
Зарегистрирован: 23.06.2020

Наверное имелся в виду программный кодек для ESP32.

В 90-х голосовые аноны делались в том числе на процессорах PIC без ЦАП, с воспроизведением голоса через шим. Так что можете попробовать и на обычной ардуино. Примеры программного проигрывания ардуиной WAV файлов в интернете есть.

Nesco
Offline
Зарегистрирован: 22.08.2022

Может и программный. Я послушал в интернете на видео примеры на программном кодеке, но что-то качество не впечатлило. Возможно исходные файлы wav были такие, а может и динамики такие. Но старая АОН приставка звучала гораздо лучше. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
Nesco
Offline
Зарегистрирован: 22.08.2022

На али цена конечно повкусней. Я уже приобрёл, к IDE прикрутил. Несколько примеров запустил. Звук попробовал, без внешего декодера I2S, очень неплохо, wav файлики c micro SD картридера. Звук хороший, но пока проскакивают глюки. В планах попробовать дополнить платкой MAX98357A (I2S декодер). 

Ещё интересный момент. Приходитмся при заливке скетча на две маленькие кнопочки давить. Чего-то поднадоело.