Создание классического двухстороннего пейджера на Arduino — DIY ретро-устройство
Компоненты и материалы
| Hologram Global IoT SIM-карта | 1 |
| Arduino UNO | 1 |
| Arduino GSM Shield V2 | 1 |
| Adafruit LCD Shield Kit 16x2 (I2C, синий/белый) | 1 |
| Корпус Hammond 4.7×2.6×1.4 дюйма (полупрозрачный синий) | 1 |
Приложения и онлайн-сервисы
- Hologram Data Router
О проекте
Введение
Хотел воссоздать славу 90-х и начала 2000-х — сделать свой двухсторонний пейджер, как у Джей-Зи! Но идея оказалась полезнее: устройство может заменить детям настоящий смартфон, служить SOS-кнопкой для одиночно работающих или спортсменов. Последние недели оно висит в гостиной — жена и я оставляем друг другу сообщения.
Суть: Проект отправляет и принимает SMS через Arduino с GSM-модемом в компактном корпусе с LCD и кнопками.
Примечание: Код поддерживает работу через последовательный порт — можно собрать версию без LCD-шилда.
Выбор железа
Был GSM Shield, SIM от Hologram, Arduino UNO — логично их объединить. Adafruit LCD Shield с кнопками использует I2C (только 2 пина: A4, A5), оставляя много свободных пинов. Шилды не конфликтуют по пинам:
- LCD Shield: A4, A5 (I2C), +5V, GND (только рядом с Vin)
- GSM Shield: пины 2, 3 (Software Serial), пин 7 (сброс питания), питание и земля
Всё остальное свободно для расширения. На USB питания хватало для SMS, для GPRS, возможно, понадобится больше.
Сотовая связь
Hologram даёт сотовую связь для любого устройства с SIM-слотом. После регистрации SIM можно выбрать номер в желаемом коде региона. Дёшево: $0.40/мес за активный сервис, можно ставить на паузу. Входящие SMS бесплатно, исходящие — $0.19. Через данные в облако Hologram можно удешевить до $0.60 за 1 МБ — хватит на кучу сообщений.
GSM Shield работал, но не проходил тесты GSMScanner и getIMEI() — вводящее в заблуждение. SMS и GPRS работали нормально.
Код и интерфейс
Основа — примеры Adafruit для LCD и Arduino для GSM Shield, плюс свой UI. Никогда не писал UI без клавиатуры — сделал просто: выбор заранее заготовленных сообщений кнопками вверх/вниж.
Просто стопку плат, рабочую SIM (даже из своего телефона!) и прошейте код — получите мессенджер:
- Включение → загрузка → сообщение о подключении к сети
- Левая кнопка: «Домой» (главный экран)
- Правая: подтверждение входящего сообщения (позволяет принять следующее), также гасит подсветку если сообщений нет
- Вверх/Вниз: прокрутка заготовок (у меня 4)
- Select: отправить выбранное сообщение
Входящие показываются автоматически, включают подсветку. Следующий шаг — меню выборов получателей или автоответ последнему отправителю (remoteNumber()).
Финальная сборка
Отверстия в корпусе — дрель и дремель (насадка #561 с направляющей #565). Джиг из досок и зажимов дал бы чище, но вручную тоже нормально. Провода только для питания 9V батареи и выключателя — без батареи работает от USB/сети.
9V батарея с зажимом влезает рядом с Arduino под GSM Shield. Паял питание на пины хедера. Ноги GSM Shield длинные и гнутся — их заогнул, чтобы не задевали сокеты Arduino, оставив свободные для питания. LCD Shield сверху имеет короткие ноги без гнезд — гнуть их единственный способ подключить что-то кроме шилдов.
USB порт Arduino прищипнул бокорезами, чтобы плата легла плоско на двусторонний скотч. Платы ставятся стопкой — LCD и кнопки чуть вылезают над корпусом. Идеально!
Заключение
Буду дорабатывать, даже 4-летний племянник поиграется. Хорошо работает как мессенджер, но ещё круче — как мини-доска объявлений дома. Эстетика нравится.
Дальнейшие идеи: второе меню для выбора получателя, автогашение экрана для экономии, свет/звук/вибромотор для уведомлений, интеграция с IFTTT (посылки, твиты). Что делаете вы? Как улучшите?
Приятного творичества! — Майк
Проект реализован в рамках программы Hologram Hacker-In-Residence. Контакт: Sheena, sheena@hologram.io
Код
Системный код для Arduino
Полный код скетча приведён в исходнике (около 400 строк). Основные модули: инициализация GSM и LCD, меню заготовок, приём/отправка SMS, работа с кнопками шилда, сериальный интерфейс для отладки, периодическая проверка входящих (каждые 1.5 сек).
Схемы
Сборка проще схемы — большинство связей делается просто установкой шилдов друг на друга! Остальное — опционально для батарейного питания.
Производственный процесс
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Устройство для общения глухосліпых людей с помощью 1Sheeld и Arduino
- Умная копилка: управление монетоприёмником на Arduino Nano
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
- Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
- Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
- Измерение солнечной радиации на Arduino UNO с Ethernet Shield
- Компактный радар на Arduino Nano с HC-SR04 и дисплеем 1.8"
- Генерация музыкальных тонов на Arduino: полный спектр 88 клавиш пианино