Система удаленного управления по телефоной линии

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

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

Идея не нова, похожих разработок в интернет достаточно много. Есть готовые решения, как для городской телефонной линии, так и для мобильной связи, причем многие используют не GSM модули, а старые мобильные телефоны. Но, передо мной стояла конкретная задача – создание устройства удаленного управления с использованием городской телефонной линии.

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

За счет свободных аппаратных ресурсов, я добавил несколько дополнительных входов, состояние которых отслеживается устройством. В случае замыкания любого из входов происходит дозвон администратору. Эти входы можно использовать, например, для охраны помещения, подключив к ним герконовые датчики открывания двери или датчики движения.

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

Схема и работа отдельных узлов

Технические характеристики:

  • количество каналов управления – 8;

  • количество дополнительных входов – 4;

  • коммутируемое выходное напряжение канала – 12 ÷ 230В;

  • максимальный коммутируемый ток нагрузки – 10А;

  • диапазон измерения температуры – 0 ÷ 50ОС;

  • тип набора номера – импульсный \ тоновый (задается программно);

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

Устройство собранно на микроконтроллере ATMega162 (DD2). Выбор данного контроллера обусловлен большим количеством линий ввода/вывода, наличием двух аппаратных модулей USART, наличием трех внешних прерываний (INT0 – INT2), низкой ценой.

Все необходимые настройки (пароль доступа, номер телефона администратора, состояние выходов каналов управления, минимальная и максимальная допустимая температура) хранятся в энергонезависимой памяти EEPROM микроконтроллера, что гарантирует правильную настройку и работу оборудования при включении, после длительного отсутствия напряжения питания.

Тактируется микроконтроллер от внутреннего RC генератора. Поскольку все процессы, связанные с обслуживанием телефонной линии достаточно медленные, можно было обойтись небольшой частотой, но так как для измерения температуры применен датчик, работающий по протоколу 1-wire, выбрана частота 8 МГц.

Цепочка R12, C4 служит для формирования импульса начального сброса при включении напряжения питания.

Светодиоды HL3HL5 индицируют режим работы устройства (HL3ошибка, HL4режим ожидания, HL5режим управления).

Для внутрисхемного программирования микроконтроллера предусмотрен разъем XS2 под программатор AVR910. Конденсаторы С5, С6 служат фильтром по питанию. Входы порта PA4-PA7 являются линиями дополнительных входов, резисторы R13-R16 подтягивают входы порта к питанию.

Линии порта PA0-PA3 являются шиной данных для декодера (DA2) и кодера (DA4) DTMF сигналов. В режиме ожидания линии шины настроены как вход с Z состоянием.

Для управления каналами выделен порт PortC микроконтроллера. Сигналы, через резисторы R17-R24 управляют транзисторными ключами VT1-VT8, которые в свою очередь управляют электромагнитными реле К1-К8. Диоды VD4-VD11 шунтируют обмотки реле.

Для питания устройства при аварийном отключении напряжения в сети, предусмотрен резервный аккумулятор. В штатном режиме устройство питается от сетевого адаптера с напряжением 12В и током 1…1,5А. Аккумулятор при этом постоянно подзаряжается через резистор R43. Штатное питание и аккумулятор развязаны между собой диодами VD14, VD15. При пропадании напряжения в сети, устройство питается от аккумулятора. Поскольку для питания микросхем необходимо напряжение +5В, применен интегральный стабилизатор DA5. Для питания микроконтроллера DD1 и карты памяти применен стабилизатор DA6 с напряжением +3,3В. Конденсаторы С21-С25 являются фильтрующими.

Узел контроля пропадания напряжения питания собран на транзисторе VT11, работающем в режиме ключа и резисторах R40R42. Пока напряжение питания в норме, через резистор R40 напряжение поступает на базу транзистора VT11 и открывает его, на входе PD7 присутствует низкий логический уровень. При пропадании напряжения питания транзистор закрывается, и напряжение +5В через резисторы R41 и R42 подается на вход PD7.

Датчиком температуры служит цифровой термометр DS18S20 (DA1), работающий по протоколу 1-wire. Резистор R33 обеспечивает подтяжку шины 1-wire к плюсу напряжения питания.

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

При поступлении вызова от АТС, сигнал в линии представляет собой переменное напряжение частотой 16…50 Гц и амплитудой 24…110В. Это напряжение гасится конденсатором С7 и резистором R26, и поступает на оптопару HLS1. Транзистор оптопары открывается, и через резистор R27 разряжается конденсатор С8. На входе PD3 микроконтроллера появляется низкий логический уровень.

Варистор R25 защищает цепи от превышения напряжения в линии. Диод VD12 работает при обратной полуволне сигнала вызова. Резистор R27 ограничивает ток разряда конденсатора через транзистор оптопары. Резистор R28 подтягивает вход порта микроконтроллера к плюсу напряжения питания, и через него же заряжается конденсатор С8. Сопротивления резисторов R27, R28 обеспечивают задержку разрядки конденсатора С8, чтобы не происходило ложных срабатываний при поступлении сигнала вызова. Вход PD3 микроконтроллера является входом внешнего прерывания INT1, программа написана так, что вызовы с телефонной линии принимаются и обрабатываются по прерыванию.

При входящем вызове программа контроллера пропускает три «звонка», после чего «поднимает трубку». Контроллер устанавливает высокий логический уровень на выходе PD4 и через резистор R32 открывается светодиод оптопары HLS3. При этом открывается транзистор VT10, и за счет стабилитрона VD13 напряжение линии снижается до 7,5В.

Диодный мост VDS1 служит для правильного подключения входного блока к телефонной линии. Через обмотки трансформатора Tr1 из линии на вход DTMF дешифратора поступают команды управления, и через эту же обмотку передаются сигналы набора номера в тоновом режиме и голосовые сообщения администратору.

Для набора номера при дозвоне администратору предусмотрено два типа набора номера – импульсный и тоновый. Тип набора программируется при подключении через USB порт компьютера, при установке номера телефона администратора и сохраняется в EEPROM.

Набор номера в импульсном режиме происходит через оптопару HLS2 и транзисторный ключ VT9. Резистор R30 ограничивает ток через светодиод оптопары, резистор R29 ограничивает ток через транзистор VT9. Для набора номера в импульсном режиме микроконтроллер сначала запрещает контроль температуры и напряжения питания, обнаружение входящих звонков (прерывание INT1), обнаружение приема DTMF посылок (прерывание INT2), обнаружение окончания голосовых сообщений (прерывание INT0), прием/передачу данных на компьютер по шине USB. Затем «поднимает трубку», устанавливая высокий логический уровень на выходе PD4, ожидает 2,6 сек, и производит набор номера.

На выходе PD4 устанавливается низкий логический уровень, а на входе PD5 высокий. При этом через оптопару HLS2 открывается транзистор VT9 и напряжение в линии, ограничиваясь сопротивлением резистора R29, падает почти до нуля. Через 40 мсек на выходе PD5 устанавливается низкий логический уровень, оптопара HLS2 и транзистор VT9 закрываются и напряжение в линии повышается до 60В, формируя импульс длинной 60 мсек. Затем процесс повторяется, пока количество импульсов не будет равно цифре набираемого номера. После набора одной цифры, микроконтроллер формирует межцифровую паузу длительностью 800 мсек, включая оптопару HLS3 с выхода PD4. Затем процесс повторяется для следующей цифры номера.

Для набора номера в тональном режиме используется специализированная микросхема HT9200 (DA4), она представляет собой параллельный шифратор DTMF сигналов.

Управление микросхемой осуществляется по входу CE. Когда на этом входе высокий логический уровень, линии шины D0..D3 находятся в высокоимпедансном состоянии, при высоком логическом уровне на входе CE данные шины D0..D3 декодируются в DTMF код. Данные на шине должны быть установлены до прихода низкого логического уровня на входе CE. На выводе 13 появляется DTMF команда, длительность посылки равна длительности импульса на входе CE. Тактируется шифратор от внешнего кварцевого резонатора ZQ2 частотой 3,57954МГц. Конденсаторы С19, С20 являются фильтрами напряжения питания. Резистор R39 ограничивает DTMF сигнал, передаваемый в телефонную линию.

Для набора номера в тоновом режиме микроконтроллер сначала «поднимает трубку» как и при импульсном наборе, ожидает 2,6 сек, затем производит набор номера.

На шине PA0-PA3 устанавливается код передаваемого символа и на выходе PE2 формируется импульс низкого логического уровня на время 70 мсек. При этом микросхема HT9200 формирует DTMF сигнал который через резистор R39 поступает на трансформатор Tr1 и далее в телефонную линию. Между цифрами номера микроконтроллер вставляет межцифровую паузу длительностью 70 мсек. устанавливая на выходе PE2 (вход CE DA4) высокий логический уровень.

Если при программировании номера администратора вставлен символ (*), независимо от типа набора микроконтроллер формирует паузу в наборе номера, длительностью 2,6 сек.

При окончании сеанса связи микроконтроллер «кладет трубку», устанавливая низкие логические уровни на выходах PD4, PD5 отключая оптопары HLS2, HLS3 и освобождая линию. Контроллер ожидает 2,6 сек (время необходимое для определения АТС сигнала отбоя), затем разрешает обнаружение входящих звонков (прерывание INT1), контроль температуры, напряжения питания и состояния линий входа.

Администратор управляет системой с помощью DTMF сигналов, формируемых телефонным аппаратом, работающим в тоновом режиме. Для декодирования этих сигналов используется специализированная микросхема MV8870 (DA2) в стандартном включении (аналог КР1008ВЖ18). Конденсатор С10 – разделяющий, резистор R35 задает коэффициент усиления внутреннего ОУ. Резистор R36 и конденсатор С13 задают длительность обработки DTMF сигнала. Тактируется микросхема от внешнего кварцевого резонатора ZQ1 частотой 3,57954МГц. В режиме ожидания на выходе PE1 микроконтроллера (вход OE декодера) установлен низкий логический уровень, при этом выходы линии шины Q0..Q3 находятся в высокоимпедансном состоянии.

DTMF сигнал, полученный из линии, через трансформатор Tr1, конденсатор С10 и резистор R34 поступает на вход декодера. При этом, микросхема формирует на выходе DSO импульс с высоким логическим уровнем, сообщая контроллеру о получении данных. Поскольку эта линия подключена ко входу PE0/INT2 микроконтроллера, по окончанию импульса на линии, программа обрабатывает событие внешнего прерывания.

На выходе PE1 устанавливается высокий уровень разрешения работы шины, декодер устанавливает на шине Q0-Q3 код принятой DTMF команды. Микроконтроллер считывает данные и переводит шину в высокоимпедансное состояние, устанавливая низкий логический уровень на выходе PE1 (вход OE декодера).

Программа написана так, что считывание DTMF сигналов (разрешение внешнего прерывания INT2) возможно только в промежутки времени, определенные алгоритмом работы устройства. То есть, например, во время голосового сообщения администратору, контроллер не отреагирует на принятый DTMF сигнал.

Для предотвращения бесконечных циклов, ожидание получения следующей DTMF команды ограничено временем 40 сек. Если в течении этого времени администратор на нажмет кнопку на своем телефонном аппарате, устройство перейдет в режим ожидания.

Кроме канала управления по телефонной линии предусмотрена возможность расширенного управления системой с компьютера через USB порт. При этом можно не только управлять каналами устройства и отслеживать температуру, наличие напряжения питания и состояние дополнительных входов, но и программировать пароль доступа к системе, номер телефона администратора, верхний и нижний предел критической температуры. Для совмещения с USB портом используется специализированная микросхема FT232RL (DA3). Конденсаторы С14С16 служат фильтрами напряжения питания. Светодиоды HL6, HL7 индицируют прием/передачу данных, резисторы R37, R38 ограничивают ток через светодиоды. Питается микросхема непосредственно от USB порта компьютера.

При управлении устройством с компьютера, ожидание ввода команды ограниченно временем 1 мин. Если в течении этого времени команда с компьютера не поступит, программа контроллера перейдет в режим ожидания.

Для сообщения администратору о состоянии системы и выполненных действиях используется голосовой модуль, собранный на микроконтроллере ATTiny2313 (DD1). Этот модуль считывает файлы, записанные на карту памяти MicroSD, и передает их через трансформатор Tr1 аналогового входного узла в телефонную линию. Голосовой модуль взят отсюда. В отличие от оригинальной конструкции, все кнопки управления удалены.

Так как голосовой модуль питается от источника с пониженным напряжением, предусмотрены меры для согласования уровней, это резисторы R2-R6, R11 и диоды VD1-VD3. Резистор R1 подтягивает вход сброса микроконтроллера к напряжению питания. Конденсаторы С1, С2 являются фильтром по питанию. Резисторы R7-R9 ограничивают ток через светодиоды HL1, HL2 показывающие режим работы голосового модуля. Конденсатор С3 является разделяющим по постоянному току.

При запуске голосового блока могут возникать ошибки инициализации карты памяти. Для отслеживания состояния голосового модуля при запуске введен контроль работы этого блока. Если устройство нормально запускается, микроконтроллер DD1 передает по USART на DD2 последовательность сообщений:

– «S» – (Start) периферия микроконтроллера проинициализирована нормально;

– «C» – (Card Init) SD карта проинициализирована нормально и поддерживается;

– «F» – (FAT Init) FAT система поддерживается;

– «R» – (Ready) устройство полностью готово – ожидает команды запуска трека;

Если в течении 30 сек. после запуска микроконтроллер DD2 не получит символ «R», программа контроллера перезагрузит голосовой модуль, установив на выходе PB4 низкий логический уровень. При этом на входе PA2 (Reset) микроконтроллера DD1 через диод VD1 формируется импульс сброса длительностью 100 мксек., голосовой модуль перезагружается, и инициализация карты памяти повторяется. Голосовые сообщения записаны на карту памяти в две директории.

Выбор директории, из которой воспроизводится файл, происходит с выхода PB1 микроконтроллера DD2. Если этот порт настроен как вход с Z состоянием, за счет резистора R5 на входе выбора директории PA1 DD1 присутствует высокий логический уровень, для воспроизведения выбрана директория 1. Если порт PB1 DD2 настроен как выход – 0, через резистор R6 и диод VD2 на входе выбора директории PA1 DD1 присутствует низкий логический уровень, для воспроизведения выбрана директория 2.

Выбор и запуск файла на воспроизведение происходи по USART, при этом микроконтроллер DA2 передает первую букву имени файла (подробней читайте у автора разработки). Запуская на воспроизведение последовательно несколько файлов, устройство формирует голосовое сообщение заданного содержания.

Список файлов записанных на карту памяти:

При воспроизведении голосового сообщения на выходе PB3 микроконтроллера DD1 устанавливается высокий логический уровень. Автор разработки использовал этот вывод для управления включением УНЧ. В данной конструкции этот выход используется для отслеживания окончания голосового сообщения.

Когда голосовой модуль не работает, на выходе PB3 присутствует низкий логический уровень, соответственно на входе PD2 контроллера DD2, настроенного как вход с подтяжкой, за счет диода VD3 и резистора R11 также присутствует низкий логический уровень. При воспроизведении голосового сообщения на выходе PB3 (DD1) устанавливается высокий логический уровень, который запирает диод VD3 и на входе PD2 (DD2) (за счет внутреннего подтягивающего резистора) устанавливается высокий логический уровень. По окончанию воспроизведения голосового сообщения на входе PD2 контроллера DD2, появляется низкий логический уровень. Поскольку вход PD2 микроконтроллера является входом внешнего прерывания INT0, последовательность голосовых сообщений обрабатывается по прерываниям.

Например, для формирования сообщения: «Текущая температура двадцать семь градусов» программа контроллера выполняет следующие действия.

  • запрещается обнаружение приема DTMF команды (прерывание INT2), разрешается обнаружение окончания голосового сообщения (прерывание INT0), и запускается таймер на 20 сек., ожидая окончания голосового сообщения (чтобы в случае подвисания голосового блока программа не крутилась в бесконечном цикле).

  • выбирается директория воспроизведения 1 – выход PB1 настраивается как вход с Z состоянием;

  • по USART передается символ «G» – звучит сообщение «Текущая температура», на выходе PB3 (DD1) высокий логический уровень;

  • по окончанию сообщения на выходе PB3 микроконтроллера DD1 низкий логический уровень вызывает обработку прерывание INT0 программы контроллера DD2;

  • обработчик прерывания считывает заданные данные;

  • выбирается директория воспроизведения 2 – выход PB1 настраивается как выход 0;

  • по USART передается символ «U» – звучит сообщение «двадцать», на выходе PB3 (DD1) высокий логический уровень;

  • по окончанию сообщения на выходе PB3 микроконтроллера DD1 низкий логический уровень вызывает прерывание INT0 программы контроллера DD2;

  • обработчик прерывания считывает заданные данные;

  • выбирается директория воспроизведения 2 – выход PB1 настраивается как выход 0;

  • по USART передается символ «H» – звучит сообщение «семь», на выходе PB3 (DD1) высокий логический уровень;

  • по окончанию сообщения на выходе PB3 (DD1) низкий логический уровень вызывает прерывание INT0 программы контроллера DD2;

  • обработчик прерывания считывает заданные данные;

  • выбирается директория воспроизведения 1 – выход PB1 настраивается как вход с Z состоянием;

  • по USART передается символ «H» – звучит сообщение «градусов», на выходе PB3 (DD1) высокий логический уровень;

  • по окончанию сообщения на выходе PB3 микроконтроллера DD1 низкий логический уровень вызывает прерывание INT0 программы контроллера DD2;

  • обработчик прерывания считывает заданные данные;

  • обнаружив признак конца сообщения, программа DD2 запрещает обнаружение окончания голосового сообщения (запрещает прерывание INT0), разрешает обнаружение DTMF команды (разрешает прерывание INT2) и запускает таймер на 40 сек, ожидая реакции от администратора.

Работа устройства.

После включения напряжения питания устройство ожидает инициализации карты памяти и запуска голосового модуля. Затем, так как при включении/отключении напряжения питания нужно сообщить администратору о произошедшем событии, устройство производит дозвон администратору. При этом из EEPROM считывается номер телефон, «поднимается трубка» и производится набор номера. По окончанию набора устройство ожидает соединения с администратором, формирует и передает в линию голосовое сообщение «Изменение на объекте управления, для входа в систему введите пароль», это сообщение повторяется через каждые 3 секунды.

Если в течении 45 сек. администратор не поднимет трубку (спит, нет дома, выключил мобильник или занят), устройство перейдет в режим ожидания.

Рекомендуется в качестве номера оператора сохранять номер мобильного телефона или номер городского телефона с автоответчиком, в этом случае, даже при пропущенном звонке, освободившись, администратор узнает, что на объекте управления что-то произошло.

Администратор, подняв трубку на своем телефоне и услышав сообщение, по его окончании должен ввести пароль доступа к системе. Если пароль введен не правильно, устройство формирует и передает голосовое сообщение «Пароль не принят, для входа в систему введите пароль».

Если пароль доступа будет введен не правильно три раза, устройство положит трубку и перейдет в режим ожидания.

При вводе правильного пароля устройство переходит в главное меню и формирует голосовое сообщение «Пароль принят, для управления каналом введите его номер, нажав клавишу от 1 до 8, для получения информации от дополнительных датчиков нажмите 9, чтобы прослушать сообщение еще раз нажмите *, для окончания сеанса нажмите #».

При нажатии номера канала управления (1 – 8) администратор получает возможность узнать состояние канала, и управлять им. Например, при выборе канала 5 (допустим, он выключен) устройство проверяет состояние этого канала и формирует голосовое сообщение «Выбранный канал 5 выключен, для включения канала нажмите –1, для выключения канала нажмите – 2, для переключения канала нажмите – 3, для перезагрузки канала на 2 секунды нажмите – 4, для перезагрузки канала на 30 секунд нажмите – 5, чтобы прослушать сообщение еще раз нажмите – *, чтобы вернуться в главное меню нажмите – #».

Далее, нажав одну из указанных клавиш, администратор может выполнить нужное действие. Допустим, для перезагрузки канала 5 на время 30 секунд, следует нажать кнопку 5. При этом состояние канала изменяется на противоположное, запускается таймер отсчета времени на 30 секунд и формируется голосовое сообщение «канал 5 включен, чтобы проверить состояние канала нажмите – *, чтобы выйти в главное меню нажмите – #».

Теперь, если периодически нажимать кнопку «*», голосовое сообщение будет повторяться до тех пор, пока не пройдет 30 секунд. По окончанию этого времени изменится состояние канала, и соответственно голосовое сообщение – «канал 5 выключен, чтобы проверить состояние канала нажмите – *, чтобы выйти в главное меню нажмите – #»

Если находясь в главном меню нажать кнопку 9, устройство сообщит о состоянии дополнительных датчиков. Допустим, что текущая температура 27ºC, напряжение питания сети включено, замкнут дополнительный вход 2, остальные не замкнуты. В этом случае устройство формирует следующее голосовое сообщение «Дополнительный канал 1 выключен, дополнительный канал 2 включен, дополнительный канал 3 выключен, дополнительный канал 4 выключен, текущая температура 27 градусов, напряжение в сети питания включен, чтобы прослушать сообщение еще раз нажмите – *, чтобы вернуться в главное меню нажмите – #».

Обратите внимание, измерение температуры ограниченно диапазоном 0 – 49 ºC. При температурах ниже нуля формируется сообщение – «… ниже нуля градусов …», при температуре выше 49 ºC формируется сообщение – «… больше пятидесяти градусов …», при сбоях измерения температуры вызванных сильными наводками на шину 1-wire или при выходе датчика температуры из строя формируется сообщение – «… ошибка измерения …»

Если администратор не расслышал голосовое сообщение полностью, следует нажать на кнопку «*». Во всех пунктах меню эта клавиша вызывает повторное формирование голосового сообщения. Для возврата в главное меню, а также для окончания сеанса связи необходимо нажать клавишу «#», при этом устройство «кладет трубку», и переходит в режим ожидания. Если администратор положит трубку не закончив сеанс, устройство перейдет в режим ожидания автоматически через 40 сек.

Если администратор пропустил вызов, то он всегда сможет дозвониться по телефону, номер которого выделен для устройства. При этом система пропускает три сигнала посылки вызова и после этого «поднимает трубку». При этом формируется и передается в линию голосовое сообщение «Здравствуйте, для входа в систему введите пароль». Далее все происходит как и при дозвоне устройства к администратору.

При управлении по телефонной линии есть ограничения. Ввод команд управления возможно только по окончанию голосового сообщения. Время нажатия кнопки администратором после окончания голосового сообщения не позднее 40 сек.

Измерение температуры.

Измерение температуры окружающего воздуха возможно только в режиме ожидания. Поскольку изменение температуры процесс медленный, считывание температуры от датчика происходит один раз в минуту. Результат измерения хранится в RAM микроконтроллера и в случае необходимости преобразуется либо в последовательность голосовых сообщений, либо в ASCII символы (при передаче данных по USB).

В процессе измерения текущая температура сравнивается с максимальной и минимальной температурой заданной при программировании устройства. Если текущая температура ниже минимальной допустимой или превышает максимально допустимую, устройство производит набор номера администратора, чтобы сообщить об аварийной ситуации.

Обратите внимание, что первое измерение температуры происходит через 1 минуту после запуска устройства.

Проверка наличия напряжения питания в сети.

Поскольку обычно серверное оборудование подключено к сети питания через систему резервного питания (UPS), проверка напряжения производится 1 раз в минуту. Это сделано еще и для того, чтобы при кратковременных провалах напряжения питания устройство не реагировало на них.

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

Контроль дополнительных входов.

Опрос состояния дополнительных входов устройство производит раз в секунду. При этом, если будет замкнут хотя бы один из входов, устройство произведет набор номера администратора, чтобы сообщить о возникшей ситуации. Если после этого будет замкнут еще один вход, устройство также произведет дозвон администратору. Заметьте, что дозвон производится только при замыкании входов. При восстановлении состояния дозвон администратору не производится.

Управление и программирование устройства с компьютера.

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

При подключении необходимо установить на компьютер драйвер для FT232RL. Его можно взять на сайте производителя. Для управления используется любая терминальная программа (например, для Windows это – Hyper Terminal). Настраивается она на скорость обмена 9600, 1 стоп бит, без бита четности. Возможно, придется выбрать параметры шрифта, так как устройство передает сообщения на русском языке. После правильной настройки и подключения нажмите любую клавишу на клавиатуре. В ответ устройство выдаст сообщение о состоянии всех каналов управления, температуре, наличии напряжения питания, состоянии дополнительных входов. Кроме того в конце сообщения выводится краткая справка о командах управления в терминальном режиме.

Пример сообщения:

Состояние системы:

Канал 1 выкл

Канал 2 выкл

Канал 3 вкл

Канал 4 выкл

Канал 5 выкл

Канал 6 вкл

Канал 7 выкл

Канал 8 выкл

Температура среды +28С

минимальная температура +15С

максимальная температура +34С

Напряжение в сети питания вкл

Вход А выкл

Вход В выкл

Вход С выкл

Вход D выкл

Номер телефона администратора *9#1234567

Пароль доступа *1234#

----------------------------------------------------------------

Для управления каналом введите его номер (цифры от 1 до 8) и команду управления:

1 – включить канал;

2 – выключить канал;

3 – переключить канал;

4 – перезагрузить канал на 2 секунды;

5 – перезагрузить канал на 30 секунд;

и нажмите ENTER

Например, для выключения канала 5 введите:

52 ->

Для изменения номера телефона введите «T» и номер телефона (до 12 цифр). Если перед номером

нет признака типа набора, номер будет набран в импульсном режиме, если перед номером

стоит «*», номер будет набран в тональном режиме. Для паузы следует вставить символ «#».

Например, для набора номера 9 1234567в тоновом режиме с паузой после первой цифры введите:

T*9#1234567 ->

Для смены пароля введите «Р», пароль (6 символов от 1 до 9, * или #) и нажмите ENTER.

Например:

P*1234# ->

Для установки минимальной температуры введите «L», температуру (две цифры), и нажмите ENTER.

Например:

L18 ->

Для установки максимальной температуры введите «H», температуру (две цифры), и нажмите ENTER.

Например:

H38 ->

Для окончания сеанса введите «Е», или сеанс завершиться автоматически через 1 минуту.

Обратите внимание, в программу устройства введена проверка отношений температур. Если например, установлена максимальная температура 35ºС, то невозможно установить минимальную температуру больше 34 ºС.

Файлы проекта:

Исходник, .HEX файлы (прошивка) в AVR Studio не забудьте EEPROM) – проект не оптимизировал, многое написано «в лоб».

Проект в Proteus – работа голосового модуля, DTMF кодера и декодера эмулируются AVR контроллерами.

Прошивка голосового модуля – взято отсюда