GSM модули находят широкое применение в современных радиоэлектронных проектах. Достаточно много подобных проектов рассмотрено и на нашем сайте. Но вместо покупки GSM модуля, цены на которые непрерывно растут в условиях современного дефицита электронных компонентов, в подобных проектах можно использовать и старый сотовый телефон, которых наверняка скопилось у вас дома как минимум несколько штук.
Общие принципы работы проекта
Непосредственное извлечение GSM модуля из старого сотового телефона в большинстве случаев представляет собой весьма нетривиальную задачу, на решение которой можно потратить много сил и времени. Поэтому в данном проекте мы применим несколько другой подход.
Когда сотовый телефон принимает вызов или SMS, он светится, жужжит или издает какие либо другие звуки. И мы это можем использовать в Arduino. Мы можем подключиться к двигателю телефона, который используется для его вибрации, поэтому мы сможем отслеживать моменты когда на него подается питание – а это случается когда телефон получает SMS или телефонный звонок.
Конечно, подобное решение не является полноценной заменой GSM модуля, при помощи которого мы могли бы считывать все принимаемые данные и осуществлять передачу данных (к примеру, из платы Arduino с помощью GSM модуля можно сделать полноценный сотовый телефон), но определенную пользу из такого решения все таки можно извлечь. Например, что бы удаленно включать/выключать какой-нибудь насос или другой исполнительный механизм нам, в принципе, не важно содержание поступающих SMS – при первой SMS мы можем его включать, при второй – выключать, при третьей – снова включать и т.д.
Для реализации данного проекта нам понадобятся всего лишь плата Arduino Uno (купить на AliExpress), светодиод, сим-карта и старый сотовый телефон. Внешний вид этих компонентов показан на следующих рисунках.
В этом проекте при поступлении SMS на сотовый телефон мы будем включать светодиод, подключенный к плате Arduino. При желании, я думаю, вы данный проект легко сможете адаптировать под свои потребности.
Подключение к двигателю сотового телефона
Далее нам необходимо получить доступ к двигателю сотового телефона, который используется для его вибрирования (rumble motor). Для различных телефонов доступ к этому двигателю будет отличаться, но при помощи визуального осмотра и, при необходимости, использования поиска в сети интернет, я думаю, вы без проблем сможете найти этот двигатель в телефоне.
Затем, когда эти провода будут припаяны к контактам двигателя, нам необходимо подключить к ним мультиметр. Делается это для двух целей. Первая – узнать величину напряжения, возникающую на этих контактах. Вторая – определить какой контакт является положительным, а какой отрицательным.
Схема проекта
Схема подключения сотового телефона вместо GSM модуля к Arduino представлена на следующем рисунке.
Исходный код программы (скетча)
Код программы также очень простой. Контакт 7 платы Arduino у нас работает как цифровой выход. А на контакте A0 мы будем считывать напряжение с выхода двигателя сотового телефона и сохранять его в переменной sensorValue. Если значение sensorValue будет больше 50 мы будем подавать логическую единицу на контакт 7, в результате чего будет загораться светодиод, подключенный к данному контакту. Если значение sensorValue будет меньше или равно 50, мы будем выключать светодиод. Также через последовательный порт мы будем передавать сообщения «Rumble on» и «Rumble off», которые будут сигнализировать о состоянии двигателя сотового телефона.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void setup() { Serial.begin(9600); pinMode(7, OUTPUT); } void loop() { int sensorValue = analogRead(A0); if (sensorValue > 50) { digitalWrite(7, HIGH); Serial.println("Rumble on"); delay(1000); } else { digitalWrite(7, LOW); Serial.println("Rumble off"); delay(100); } } |
Тестирование работы проекта
Когда проект будет полностью готов к работе, то при передаче SMS на сотовый телефон будет подаваться сигнал на двигатель, включающий режим вибрации (rumble motor), плата Arduino будет считывать этот сигнал, включать светодиод и передавать сообщение “Rumble On” через последовательный порт.