GSM модули находят широкое применение в современных радиоэлектронных проектах. Достаточно много подобных проектов рассмотрено и на нашем сайте. Но вместо покупки GSM модуля, цены на которые непрерывно растут в условиях современного дефицита электронных компонентов, в подобных проектах можно использовать и старый сотовый телефон, которых наверняка скопилось у вас дома как минимум несколько штук.
В данной статье мы рассмотрим подключение к плате Arduino старого сотового телефона и будем его использовать вместо GSM модуля для осуществления некоторых функций приема данных.
Общие принципы работы проекта
Непосредственное извлечение GSM модуля из старого сотового телефона в большинстве случаев представляет собой весьма нетривиальную задачу, на решение которой можно потратить много сил и времени. Поэтому в данном проекте мы применим несколько другой подход.
Когда сотовый телефон принимает вызов или SMS, он светится, жужжит или издает какие либо другие звуки. И мы это можем использовать в Arduino. Мы можем подключиться к двигателю телефона, который используется для его вибрации, поэтому мы сможем отслеживать моменты когда на него подается питание – а это случается когда телефон получает SMS или телефонный звонок.
Конечно, подобное решение не является полноценной заменой GSM модуля, при помощи которого мы могли бы считывать все принимаемые данные и осуществлять передачу данных (к примеру, из платы Arduino с помощью GSM модуля можно сделать полноценный сотовый телефон), но определенную пользу из такого решения все таки можно извлечь. Например, что бы удаленно включать/выключать какой-нибудь насос или другой исполнительный механизм нам, в принципе, не важно содержание поступающих SMS – при первой SMS мы можем его включать, при второй – выключать, при третьей – снова включать и т.д.
Для реализации данного проекта нам понадобятся всего лишь плата Arduino Uno (купить на AliExpress), светодиод, сим-карта и старый сотовый телефон. Внешний вид этих компонентов показан на следующих рисунках.
В этом проекте при поступлении SMS на сотовый телефон мы будем включать светодиод, подключенный к плате Arduino. При желании, я думаю, вы данный проект легко сможете адаптировать под свои потребности.
Подключение к двигателю сотового телефона
Далее нам необходимо получить доступ к двигателю сотового телефона, который используется для его вибрирования (rumble motor). Для различных телефонов доступ к этому двигателю будет отличаться, но при помощи визуального осмотра и, при необходимости, использования поиска в сети интернет, я думаю, вы без проблем сможете найти этот двигатель в телефоне.
После этого нам необходимо припаять два провода к контактам этого двигателя. Поскольку эти двигатели во многих моделях телефонов очень миниатюрные, то для этой цели желательно использовать минимальное количество припоя и очень тонкие провода.
Затем, когда эти провода будут припаяны к контактам двигателя, нам необходимо подключить к ним мультиметр. Делается это для двух целей. Первая – узнать величину напряжения, возникающую на этих контактах. Вторая – определить какой контакт является положительным, а какой отрицательным.
Автор проекта (ссылка на оригинал приведена в конце статьи) использовал для этого свой старый телефон blackberry и с помощью мультиметра определил, что на этих контактах формируется напряжение примерно 1.5 В, что вполне подходит для подключения к Arduino.
Схема проекта
Схема подключения сотового телефона вместо GSM модуля к Arduino представлена на следующем рисунке.
Как видите, схема достаточно проста. Контакт земли двигателя (ground pin) нам необходимо подключить к контакту земли платы Arduino, а положительный контакт (positive pin) двигателя – к контакту A0 платы Arduino. Также необходимо подключить катод (-) светодиода к контакту земли платы Arduino, а анод (+) светодиода – контакту 7 платы.
Исходный код программы (скетча)
Код программы также очень простой. Контакт 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” через последовательный порт.
Автор проекта планирует в будущем использовать подобное решение для включения/выключения света в комнате с помощью SMS.