Домой В мире Собираем телефон на ардуино своими руками

Собираем телефон на ардуино своими руками

49
0

Телефон на ардуино

Для начала понадобится плата Arduino Nano или ESP32 – они компактны и поддерживают необходимые интерфейсы. Минимальный набор компонентов включает GSM-модуль SIM800L, дисплей 0.96″ OLED, динамик, микрофон и аккумулятор на 3.7 В. Схема подключения строится через UART для связи с GSM и I2C для экрана.

Программная часть требует библиотек TinyGSM и Adafruit_SSD1306. Код обработки вызовов занимает не больше 150 строк, если использовать готовые примеры. Важно правильно настроить AT-команды для модуля SIM800L – ошибки в синтаксисе приводят к сбоям связи.

Корпус можно изготовить из фанеры или напечатать на 3D-принтере. Габариты не должны превышать 80×50×15 мм, иначе устройство станет неудобным. Для энергосбережения добавьте режим глубокого сна, сократив потребление до 2 мА в standby.

Создаём GSM-устройство на базе микроконтроллера

Для передачи голоса и SMS потребуется модуль SIM800L. Подключите его к плате через UART, соблюдая уровни напряжения: SIM800L работает от 3.7V, используйте преобразователь логики при питании от 5V.

Микрофон и динамик соедините с аудиовыходом модуля через усилитель LM386. Для фильтрации помех добавьте конденсатор 100 мкФ между сигнальным и земляным контактами.

Клавиатуру реализуйте на матрице 4×4 с подключением к цифровым пинам. Используйте библиотеку Keypad.h для обработки нажатий. Пример кода:

#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9,8,7,6};
byte colPins[COLS] = {5,4,3,2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

Для питания используйте Li-Ion аккумулятор 18650 с платой защиты TP4056. Максимальный ток заряда – 1А, установите резистор 1.2 кОм между PROG и GND.

Прошивку пишите с учётом ограничений памяти: ATmega328P имеет всего 2 КБ ОЗУ. Оптимизируйте код, отключая неиспользуемые функции в библиотеках.

Необходимые компоненты для создания мобильного устройства

Микроконтроллер: Плата на базе ATmega328P (например, Nano или Uno) или более мощная версия (ESP32, STM32) для обработки данных.

Модуль связи: SIM800L или A6/A7 для GSM-связи, обеспечивающий звонки и SMS. Для интернета подойдёт ESP8266 или SIM7000.

Клавиатура: Готовая матричная (4×4) или самодельная из тактовых кнопок.

Аккумулятор: Li-Ion 18650 (3.7 В) с платой защиты TP4056 и повышающим преобразователем до 5 В.

Аудио: Динамик 8 Ом и электретный микрофон с усилителем (LM386).

Антенна: Внешняя или встроенная петельная для GSM-модуля.

Корпус: Напечатанный на 3D-принтере или собранный из пластиковых пластин.

Дополнительно: Резисторы (10 кОм), конденсаторы (100 мкФ), стабилизатор напряжения (AMS1117).

Программирование основных функций

Для обработки входящих вызовов используйте библиотеку GSM.h. Подключите модуль SIM800L к плате через UART, задав скорость обмена 9600 бод. Пример инициализации:

#include 
GSM gsmAccess;
GSMVoiceCall vcs;

Настройка звонков

Для ответа на вызов добавьте в loop() проверку состояния:

if(vcs.getvoiceCallStatus() == RECEIVINGCALL) {
vcs.answerCall();
}

Чтобы совершить исходящий вызов, используйте:

vcs.voiceCall("+71234567890");

Работа с сообщениями

Для отправки SMS подключите библиотеку GSM_SMS.h. Пример отправки:

GSM_SMS sms;
sms.beginSMS("+71234567890");
sms.print("Текст сообщения");
sms.endSMS();

Приём сообщений требует циклической проверки:

if(sms.available()) {
char number[20];
sms.remoteNumber(number, 20);
String text = sms.readString();
sms.flush();
}

Для стабильной работы добавьте задержку 100 мс в основном цикле и обработку ошибок через gsmAccess.shutdown().

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь