用 Arduino 制作经典双向寻呼机 – DIY 复古寻呼设备
组件与材料
| 组件 | 数量 |
|---|---|
| Hologram 全球物联网 SIM 卡 | 1 |
| Arduino UNO | 1 |
| Arduino GSM Shield V2 | 1 |
| Adafruit LCD Shield Kit 16x2 (I2C, 蓝底白字) | 1 |
| Hammond 项目盒 4.7x2.6x1.4 英寸 (半透明蓝) | 1 |
应用与服务
- Hologram Data Router
项目背景
想重现 90 年代双向寻呼机的酷炫感 (像 Jay-Z 用的那种)。但后来发现它更实用:可作为儿童通讯器替代手机,或户外独自作业者的 SOS 按钮。最近几周它一直放在客厅,我和妻子用它留便条。
核心功能:基于 Arduino + 蜂窝模块,在小型外壳中集成 LCD 显示和简易按键,实现短信收发。
注:代码支持串口模式,无 LCD Shield 也能运行。
硬件选型
手头有 Arduino GSM Shield,搭配 Hologram SIM 卡和 Arduino UNO。Adafruit LCD Shield 通过 I2C 仅占用 A4/A5 两个引脚,还带 5 个按键,留出大量扩展空间。三块板叠装连接整洁,电气上互不冲突:
- LCD Shield:A4 (SDA)、A5 (SCL)、5V、GND (靠近 Vin 侧的 GND)
- GSM Shield:D2、D3 (软串口)、D7 (复位)、电源、地
开发阶段仅用 USB 供电即可收发短信,GPRS 数据可能需要更大电流。
蜂窝通信
Hologram 提供蜂窝数据服务,注册 SIM 后可指定区号获取电话号码。资费极低:$0.40/月保持激活,随时可暂停;收短信免费,发短信 $0.19/条。未来可通过数据连接到 Hologram 云再转免费短信网关进一步降本。
注意:GSM Shield 无法正常运行 GSMScanner 和 getIMEI(),但短信和 GPRS 功能正常。
代码与界面
基于 Adafruit LCD Shield 例程和 Arduino GSM Shield 入门指南编写,自行设计了用户界面:
- 预设 4 条罐头消息,上下键切换
- 左键:返回主页
- 右键:确认收到短信 / 熄屏
- 选择键:发送当前选中的消息
来短信自动弹出显示,并点亮背光。后续可扩展:收件人菜单、自动回复、休眠省电、震动/蜂鸣器提醒、接入 IFTTT 显示包裹/推特通知等。
最终组装
用钻头和 Dremel 切割项目盒开孔,仅电池供电部分需焊线。9V 电池塞在 Arduino 和 GSM Shield 之间。GSM Shield 引脚特意做长弯曲,避开 Arduino 插座,方便接电池插针。Arduino 底部 USB 焊点剪平,用双面泡沫胶固定。三块板叠装后 LCD 和按键刚好露出盒盖。
系统代码
完整代码请见项目页面,核心功能包括:
- GSM 网络注册与连接
- LCD 菜单系统 (预设消息选择、发送、接收显示)
- 串口调试接口 (输入 's' 选择消息发送)
- 定时轮询短信 (默认 1.5 秒间隔)
- 背光切换、按键消抖
// 关键片段
#include <GSM.h>
#include <Wire.h>
#include <Adafruit_RGBLCDShield.h>
#include <utility/Adafruit_MCP23017.h>
#define PINNUMBER ""
char remoteNumber[20] = "12125551212"; // 目标号码
char* responses[] = {"Mike=Awesome!", "Yes", "No", "Howdy!"};
#define NUMRESPONSES (sizeof(responses)/sizeof(char*))
// ... 完整代码约 300 行,含 setup(), loop(), showResponses(), homeScreen(),
// receiveSMS(), sendSMS(), 串口交互等
原理图
大部分连接通过叠装实现,仅电池供电部分需额外接线。
制造工艺
- K30 CO₂ 传感器:室内空气质量实时监测
- 基于 1Sheeld 与 Arduino 的盲聋人士沟通辅助系统
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- 基于 Arduino Mega 与 Nextion 显示屏的交互式气象站
- Arduino Mega 驱动 Wii Nunchuk 控制 6 自由度机械臂
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- 紧凑型Arduino雷达系统:HC-SR04超声波传感器配1.8英寸显示屏
- Arduino 合成乐音:从零实现 88 键钢琴全音域
- TinyML 咳嗽检测:Arduino Nano 33 BLE Sense 实现早期流感筛查
- 使用 Arduino UNO 和 SR04 超声波传感器构建超声波测距仪