Управление по каналам сотовой связи

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

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

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

Ниже публикую таблицу истинности микросхемы DTMF декодера.

PD1PD2PD3PD4
11000
20100
31100
40010
51010
60110
71110
80001
91001
00101
*1101
#0011

Программа должна поддерживать два режим работы.

  1. телефонный режим
  2. режим управления нагрузками.

Телефонный режим:

После авто поднятия трубки мобильного телефона устройство ждёт ввода пароля состоящего из любых четырёх цифр. После ввода пароля, пароль больше нигде в программе не предусматривается (только после повторного дозвона.) Включение и выключение телефонного режима происходит нажатием кнопки [*] после включения телефонного режима должна появиться логическая 1 на выводе 11 (PD5) Повторное нажатие [*] переводит 11 вывод МК (PD5) в состояние логического 0.

Вывод PD6 работает следующим образом: Если в течении 20 секунд на этот вывод не поступит логический 0, МК отключает телефонную линию (PD5 = 0).

Режим управления нагрузками.

Режим управления нагрузками активируется после нажатия кнопки [#] Всего должно работать 7 нагрузок. Они подключены к портам PC0-PC5, PB0

Пример управления портами нагрузок:

Если нам необходимо включить нагрузку номер 1  нужно нажать следующие кнопки на телефоне: 1 – номер линии 1 – нагрузка включена 0 – нагрузка выключена.

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

11 включена первая линия

10 выключена первая линия

21 включена вторая линия

20 выключена вторая линия

31 включена третья линия

30 выключена третья линия

41 включена четвёртая линия

40 выключена четвёртая линия

51 включена пятая линия

50 выключена пятая линия

61 включена шестая линия

60 выключена шестая линия

71 включена седьмая линия

70 выключена седьмая линия

* узнать состояние линии нагрузки

Для того, что бы узнать включена линия или отключена необходимо выбрать линию нажатием кнопки с номером линии, например 1 и потом нажать * Звуковой сигнал «бип» говорит о том, что линия включена, а «бип»» бип» говорит о том, что линия отключена. Так же после определения состояния линии можно её включить или выключить нажатием кнопки 0 или 1. Если мы хотим отказаться в любой момент работать с уже выбранной линией нужно нажать на #. Тем самым мы попадём в режим выбора режимов работы.

 

Нажатие каждой клавиши должно подтверждаться звуковыми сигналами появляющимися на выводе 17 (PB3).

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

Вариант правильно нажатых клавиш

1 биип 1 биип пауза в 1 секунду бииииип (переход в режим готовности для следующего ввода команды)

1 биип 0 биип пауза в 1 секунду бииииип (переход в режим готовности для следующего ввода команды)

Вариант неправильно нажатых клавиш (вместо команды включения (1) или отключения (0) были нажаты отличные от 0 или 1 клавиши телефона, кроме клавиши [#])

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

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

Если в течении 20 секунд не было нажато ни одной клавиши программа переходит в режим ввода пароля.

Если во время работы, в режиме управления нагрузками, была нажата клавиша [#], тогда текущая, незавершённая, работа с нагрузкой  должна остаться без изменений и МК должен перейти в режим выбора режимов работы устройства (телефонная линия или управление нагрузками)

Подведём итоги условия перехода в режим выбора режимов работы.

Телефонный режим.

Выход из этого режима происходит если в течении 20 секунд не появился сигнал логического 0 на PD6. Если сигнал на PD6 не появился то на PD5 должен появиться логический ноль и программа переходит в режим выбора режимов работы.

Так же выход из телефонного режима происходит после нажатия клавиши[*] При этом на PD5 должен появиться логический 0

Режим управления нагрузками.

Выход из этого режима происходит если в течении 20 секунд не была нажата ни одна из клавиш телефона. Программа переходит в режим ввода пароля.

Дополнения к функциям устройства:

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

Описание логических уровней.

На вывод PD6 приходит сигнал логического нуля (лог 0) Это сигнал звонка городской телефонной станции. После прихода трёх сигналов лог 0 на вывод PD6, на выводе PD5 (поднятие трубки городского аппарата) должна появиться логическая 1,а на выводе PD7 (воспроизведение голоса) должен появиться лог 0 примерно на 1 секунду и после этого вывод PD7 должен перейти в лог 1. Примерно через 5 секунд на выводе PB2 (кнопка Yes мобильника) должна появиться лог 1 примерно на 1 сек.

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

Пример работы одного цикла устройства. Представим, звенит звонок на городском телефонном аппарате (ГТА). Сигнал с тел линии поступает на оптрон. С выхода оптрона лог 0 поступает на PD6. После прихода третьего логического 0 на PD6, должно сработать устройство авто поднятия трубки собранного на транзисторе Т11 и реле (на PD5 лог 1). Звонящий абонент должен услышать фразу автоответчика. Автоответчик должен включиться от прихода, (кратковременного, примерно 1 сек,) логического нуля с вывода PD7 на блок автоответчика. Примерно через 5 секунд после авто поднятия трубки, мобильник должен набрать номер телефона, который был набран последним с этого мобильника. Пять секунд нужны для того, что бы звонящий аббонент смог без помех дослушать автоответчик. Набор номера на мобильнике происходит после кратковременного появления лог 1 на выводе PB2 (примерно 1 сек.)

Теперь нюансы: После окончания разговора с абонентом я должен положить трубку ГТА самостоятельно нажатием кнопки [*]. Тем самым я попадаю в основное меню где я могу управлять нагрузками или позвонить на любой другой номер перейдя в телефонный режим.  После того как я положил трубку мобильного телефона, мобильник в устройстве то же автоматически перешёл в режим ожидания. Устройство соответственно то же перешло в режим ожидания.

Изготавливаем фотошаблон

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

Подготавливаем фоторезистивную плёнку.

Приклеиваем плёнку к стеклотекстолиту при помощи ламинатора.

Устанавливаем подготовленную плату с фотошаблоном в ящик для засветки фоторезиста.

Крупный план.

Так выглядит плата с засвеченным фоторезистом.

Берём примерно 30 гранул этого средства и растворяем его в 150 мл холодной воды. Лёгкими поглаживаниями кисточкой по фоторезисту помогаем ему удалить не засвеченные участки.

Так должно получиться.

После травления в хлорном железе.

Частичная пайка компонентов.

Готовая конструкция.

Готовая конструкция.

Принципиальная схема без голосового модуля.

Прошивку и исходники предоставлю по запросу по электронной почте. Отвечаю не сразу в связи с сильной занятостью.

Добавить комментарий