Pk-vtk.ru

Электро освещение
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ретро GSM телефон на Arduino 1958 года, с дисковым номеронабирателем

Ретро GSM телефон на Arduino 1958 года, с дисковым номеронабирателем

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

Есть стационарные телефонные аппараты у которых нет провода между трубкой и базой, но есть провод к розетке АТС. В нашем проекте у телефона останется провод между трубкой и базой, но пропадёт провод к розетке, так как связь будет осуществляться по сети GSM.

Что такое GSM-розетка

Самодельное реле удаленного управления

Самодельное реле удаленного управления

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

Управляемые телефоном устройства в быту

Нагрузочная мощность GSM аппаратуры включения, самодельной или промышленной, редко превышает 3А-5А, что, конечно, вводит определенные ограничения на количество и виды потребителей. Правда, весь вопрос в цене. Можно купить по-настоящему дорогие модели или использовать, в случае самостоятельной сборки, высоковольтные компоненты, выдерживающие большую нагрузку. К сожалению, и стоимость их будет выше. Управляемые телефоном устройства в быту

Управляем розеткой по SMS

Хочу представить вам очень простой способ удаленного управления электропитанием.
Мы будем использовать готовые радиоуправляемые розетки, поэтому нам не потребуется ничего паять. Это очень здорово, потому что 220 В (начинающим) лучше не трогать.

Топик без картинки - деньги на ветер

P.S. вчера был похожий топик, но использовался Raspberry Pi, управляемый через чат. Наш вариант несколько попроще и универсальнее, потому что ему не нужен Интернет и смартфон, а вместо Raspberry будет обычное Arduino.

Нам понадобится

Железо

  • Arduino UNO или аналог. В принципе можно и Mega.
  • GSM/GPRS Shield. Подойдет любой. Я использовал шилд от китайского Seeedstudio, т.к. его проще всего купить из России.
  • Передатчик 443MHz — на AliExpress пара приемник-передатчик стоит чуть ли не 20 руб. Мой называется FS1000A/XY-FST, где FS1000A — это передатчик.
  • Управляемая розетка(и) 443MHz. Я брал комплект AB440S из трех розеток-переходников с пультом в немецком интернет-магазине. Сейчас, кажется, можно найти что-то подобное и у нас — видел недавно в Чип-и-Дип.
  • Библиотека для управления GSM-шилдом. Скачайте код с сайта производителя. Для моего шилда такого кода не было, поэтому я скачал универсальную библиотеку для SIM900 GSMSHIELD для управления розетками.
Читайте так же:
Все для бару розетка

Принцип работы

В диапазоне 433MHz могут работать без лицензии маломощные рации и устройства дистанционного управления. В продаже можно найти готовые диммеры, выключатели, патроны и розетки, управляемые пультом по радио в этом частотном диапазоне. Для наших целей лучше всего подходят «промежуточные» розетки-переходники: в обычную розетку вставляется радиоуправляемая, а уже в нее само устройство.

Чтобы такие розетки можно было различать между собой у них есть адрес, задаваемый DIP- или поворотными переключателями. За счет этого можно управлять несколькими розетками независимо. Или наоборот — установить им одинаковый адрес, чтобы они включались и выключались одновременно.

Наша схема элементарна: Ардуино получает SMS с командой, затем с помощью радиомодуля посылает сигнал «включить» или «выключить» на розетки. SMS-ки будут вида A1B0C0, где A, B, C… — имена розеток, 0 — выкл., 1 — вкл.

Собираем устройство

  1. Вставляем симкарту в GSM-шилд, а шилд в ардуину.
  2. Подключаем ноги передатчика: GND→GND, VCC→5V, DATA→в один из пинов, например в 12.
  3. Также я припаял проводок 15 см к ANT в углу платки передатчика. Но мне кажется, что это опционально.

Проверяем GSM-модуль

Если вы еще не работали с GSM-шилдом до этого, я рекомендую сначала залить тестовый код (взят отсюда)и проверить его работу.
Код все данные из Serial передает в SoftwareSerial и обратно, таким образом, подключив шилд к SoftwareSerial, мы можем отправлять команды модему через Serial Monitor в Arduino IDE.

Заливаем код в Ардуино, открываем Serial monitor. Вводим команду AT — ответ должен быть OK. Если ответа нет, значит что-то не так. Возможно, нужно поменять скорость передачи?

Дальше можно проверить, что мы зарегистрировались в сети:
AT+COPS?
+COPS: 0,0,»MTS-RUS»
OK

Я рекомендую понизить скорость UART-модема. Не знаю точно насчет SMS, но GPRS точно работает надежнее на низких скоростях — у Ардуинки маленький буфер и часть информации может теряться. Установим скорость 2400 бод.
AT+IPR=2400
OK

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

Смотрим/меняем адреса розеток

У розеток есть аппаратный адрес из двух частей. Первые 5 бит — одинаковые у всего комплекта и совпадают с адресом пульта. Последние 5 бит — индивидуальные. Адрес можно поменять, отвернув крышечку. На других моделях задание адреса может отличаться — см. сайт rc-switch.

Читайте так же:
Блок розеток для кухни установка

Если вы используете не GSMSHIELD, а какую-то другую библиотеку, то код разумеется будет отличаться, но принцип будет один и тот же. Через определенные интервалы времени мы проверяем, нет ли у нас непрочитанных SMS, парсим их, и если пришла валидная команда с авторизованного номера, то посылаем радиосигнал функциями mySwitch.switchOff или mySwitch.switchOn , передавая им адрес розетки.
Прим. в моем случае для шилда от Seeedstudio нужно было залезть в GSM.cpp и поменять заданные пины на 7 и 8.GitHub.

Проблемы?

Если розетки ни в какую не хотят переключаться, можно попробовать принять сигнал от родного пульта на приемник. В rc-switch есть пример кода.

Конструкция

GSM-розетка своими руками предполагает покупку реле, а также изготовление простого блока управления, расшифровующего тон. Функция реле будет состоять из включения и отключения контактов. А сигнализировать о выполнении команды ему будет декодер, что и показывает схема.

Соответственно, чтобы изготовить устройство, требуется приобрести поляризованное реле. У него есть пара катушек. Если к сети подключается одна из них, якорь притягивается к одному из релейных сердечников. Это будет препятствовать размыканию контакта даже в случае отсутствия напряжения. Для фиксации контакта в исходной позиции требуется, чтобы напряжение было подано на 2-ю катушку. Подающийся туда импульс должен иметь определенную амплитуду и продолжительность.

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

В этом разделе мы рассмотрим вопросы подключения GSM – модулей к плате адуино. За основу почти во всех примерах берется Arduino Uno, но в большинстве своем примеры пойдут и для плат Mega, Nano и т.д.

Подключение модуля SIM800

Для подключения нужны плата Ардуино, модуль SIM800L, понижающий преобразователь напряжения, провода для соединения и батарея на 12В. Модуль SIM800L требует нестандартное для ардуино напряжение в 3,7В, для этого нужен понижающий преобразователь напряжения.

Распиновка модуля SIM800 приведена на рисунке.

GSM GPRS в Ардуино

Плату Ардуино нужно подключить к компьютеру через USB кабель. Батарею на 12 В подключить через преобразователь: -12В на землю Ардуино, от земли в преобразователь в минус, +12В в преобразователь в плюс. Выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Ардуино. Несколько модулей можно подключать к любым цифровым пинам.

Читайте так же:
Что такое розетка это брошка

GSM GPRS в Ардуино

Подключение модуля A6

Модуль A6 стоит дешевле, чем SIM900, и его очень просто подключать к Ардуино. Модуль питается напряжением 5В, поэтому для соединения не нужны дополнительно понижающие напряжение элементы.

Для подключения потребуются плата Ардуино (в данном случае рассмотрена Arduino UNO), GSM модуль А6, соединительные провода. Схема подключения приведена на рисунке.

GSM и GPRS модуль для Arduino

Вывод RX с модуля GSM нужно подключить к TX на плате Ардуино, вывод TX подключить к пину RX на Ардуино. Земля с модуля соединяется с землей на микроконтроллере. Вывод Vcc на GSM модуле нужно соединить с PWR_KEY.

Подключение с помощью GSM-GPRS шилда

Перед подключением важно обратить внимание на напряжение питания шилда. Ток в момент звонка или отправки данных может достигать значений в 15-2 А, поэтому не стоит запитывать шилд напрямую от Ардуино.

Перед подключением к Ардуино нужно установить сим-карту на GSM-GPRS шилд. Также нужно установить джамперы TX и RX, как показано на рисунке.

GSM и GPRS модуль для Arduino

Подключение производится следующим образом – первый контакт (на рисунке желтый провод) с шилда нужно соединить с TX на Ардуино. Второй контакт (зеленый провод) подключается к RX на Ардуино. Земля с шилда соединяется с землей с аруино. Питание на микроконтроллер поступает через USB кабель.

Макет соединения шилда и платы Ардуино изображен на рисунке.

GSM и GPRS модуль для Arduino

Для работы потребуется установить библиотеку GPRS_Shield_Arduino.

Для проверки правильности собранной схемы нужно сделать следующее: соединить на Ардуино RESET и GND (это приведет к тому, что данные будут передаваться напрямую от шилда к компьютеру), вставить сим-карту в шилд и включить питание шилда. Плату Ардуино нужно подключить к компьютеру и нажать кнопку включения. Если все соединено правильно, загорится красный светодиод и будет мигать зеленый.

Краткое описание взаимодействия через AT-команды

AT-команды – это набор специальных команд для модема, состоящий из коротких текстовых строк. Чтобы модем распознал поданную ему команду, строки должны начинаться с букв at. Строка будет восприниматься, когда модем находится в командном режиме. AT-команды можно отправлять как при помощи коммуникационного программного обеспечения, так и вручную с клавиатуры. Практические все команды можно разделить на 3 режима – тестовый, в котором модуль отвечает, поддерживает ли команду; чтение – выдача текущих параметров команды; запись – произойдет записывание новых значений.

Читайте так же:
Розетка с защитными шторками ip54

Список наиболее используемых AT-команд:

  • AT – для проверки правильности подключения модуля. Если все исправно, возвращается OK.
  • A/ – повтор предыдущей команды.
  • AT+IPR? – получение информации о скорости порта. Ответом будет +IPR: 0 OK (0 в данном случае – автоматически).
  • AT+ICF? – настройка передачи. В ответ придет +ICF: бит, четность.
  • AT+IFC? – контроль передачи. Ответом будет +IFC: терминал от модуля, модуль от терминала (0 – отсутствует контроль, 1 – программный контроль, 2 – аппаратный).
  • AT+GCAP – показывает возможности модуля. Пример ответа – +GCAP:+FCLASS,+CGSM.
  • AT+GSN – получение IMEI модуля. Пример ответа 01322600XXXXXXX.
  • AT+COPS? – показывает доступные операторы.
  • AT+CPAS – состояние модуля. Ответ +CPAS: 0. 0 – готовность к работе, 3 – входящий звонок, 4 – голосовое соединение, 2 – неизвестно.
  • AT+CCLK? – информация о текущем времени и дате.
  • AT+CLIP=1 – включение/выключение АОН. 1 – включен, 0 – выключен.
  • AT+CSCB=0 – прием специальных смс-сообщений. 0 – разрешено, 1 – запрещено.
  • AT+CSCS= “GSM” – кодирование смс-сообщения. Можно выбрать одну из следующих кодировок: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – получение информации об ошибке.
  • AT+CPIN=XXXX – ввод пин-кода сим-карты.
  • AT&F – сброс до заводских настроек.
  • AT+CPOWD=1 – срочное(0) или нормальное(1) выключение модуля.
  • ATD+790XXXXXXXX – звонок на номер +790XXXXXXXX.
  • ATA – ответ на вызов.
  • AT+CMGS=”+790XXXXXXXX”>Test sms – отправка смс-сообщения на номер +790XXXXXXXX.

В данном случае рассмотрены основные команды для модуля SIM900. Для разных модулей команды могут незначительно отличаться. Данные для модуля будут подаваться через специальную программу «терминал», которую нужно установить на компьютер. Также подавать команды модулю можно через монитор порта в Arduino IDE.

Монитор порта GSM и GPRS модуль для Arduino

Разновидности китайских модулей:

Модуль на SIM800C с минимальной обвязкой. Отсутствует конвертер уровней UART интерфейса, фильтры, стабилизатор питания. Самый популярный, дешевый и малогабаритный.

Аналогичный китайский модуль на SIM800L

Этот модуль уже поинтереснее, есть конвертер уровней (на плате два транзистора 2n7002) два включенных последовательно диода, чтобы снизить напряжение питания 5 вольт до положенных модему 4.2 вольта, решение сомнительное но самое дешевое. Выведена нога для антенны встроенного bluetooth. Все еще отсутствуют фильтры в аналоговой части

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

Читайте так же:
Dead space 3 розетка

Этот мало чем отличается от модулей выше, есть конвертер уровней, есть два диода чтобы снизить напряжение питания 5 вольт до положенных модему 4.2 вольта, к сожелению отсутствуют голосовые функции! возможно будет удобней в подключении, есть крепежные отверстия.

Вот, это уже чтото… Линейный стабилизатор напряжения питания MIC29302, конвертер логических уровней, на плате bluetooth антенна и SMA разъем для GSM антенны, Отсутствуют фильтры на аналоговой части.

Shield от Keystudio, вот это то как должно быть, есть возможность использовать внешнее питание и питание от ардуино, линейный стабилизатор питания MIC29302, фильтры в аналоговой части и джек для подключения гарнитуры, ионистор для часов, вывели даже USB. Один недостаток, цена…

Прогаем мозги

В отли­чие от девай­са с модулем Wi-Fi, в нашей вер­сии BadUSB будет прог­рамми­ровать­ся толь­ко модуль Arduino. SIM800L выс­тупит как часть канала переда­чи, которая обра­баты­вает получа­емые от базовой стан­ции сиг­налы GSM. Резуль­татом работы (в зависи­мос­ти от отправ­ленной модулю SIM800L коман­ды) будет тек­сто­вая информа­ция, выведен­ная в COM-порт. Рас­смот­рим основные коман­ды биб­лиоте­ки это­го модуля, с которы­ми будем работать.

Об­щать­ся с модулем SIM800L мож­но через COM-порт с помощью тек­сто­вых команд. Их перечень огро­мен, поэто­му при­веду в качес­тве при­мера толь­ко те, которые будут задей­ство­ваны.

  • AT — нас­трой­ка ско­рос­ти обме­на дан­ными;
  • AT+CMGDA — уда­ление всех SMS из памяти сим­ки;
  • AT+CMGDA — уда­ление всех про­читан­ных SMS;
  • AT+CLIP=1 — вклю­чение AOH;
  • AT+DDET=1 — вклю­чение воз­можнос­ти исполь­зования тональ­ного набора;
  • AT+CMGF=1; &W — вклю­чение тек­сто­вого режима SMS с сох­ранени­ем зна­чения;
  • AT+CMGL , 1 — зап­рос на чте­ние неп­рочитан­ных SMS;
  • AT+CMGR=»index», 1 — получе­ние тек­ста SMS по индексу (index);
  • AT+CMGR=»index» — отме­тить по индексу SMS как про­читан­ное.

Итак, прис­тупим к соз­данию кода. Логичес­ки его мож­но раз­делить на две час­ти. Пер­вая — обра­бот­ка дан­ных, получа­емых от модуля SIM800L, и «выужи­вание» полез­ной наг­рузки из SMS. Вто­рая — эму­ляция модулем Arduino нажатий кла­виш, отправ­ляемых через USB-порт компь­юте­ру. Осно­ву вто­рой час­ти сос­тавил код, написан­ный Spacehuhn и перера­ботан­ный мной.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector