TinyGSM
TinyGSM
智能家居, ESP32
🧩 软硬件结合
已发布
项目简介
A small Arduino library for GSM modules, that just works
TinyGSM 是一个专为 Arduino 设计的轻量级 GSM 模块库,其核心理念是“小而精”,旨在解决传统 GSM 库占用资源过多、兼容性差的问题。它提供了一套简洁统一的 Arduino Client 接口,让开发者能够像操作以太网或 WiFi 一样轻松地使用 GSM 模块进行网络通信。
标签
项目特点
**极小的资源占用**:在 Arduino Uno 上,完整的 WebClient 示例仅使用 15KB Flash 和 574 字节 RAM,比官方 GSM 库更省资源。
**广泛的模块支持**:支持 SIMCom、AI-Thinker、u-blox、Quectel、Sequans、Digi XBee 等数十种 2G/3G/4G/LTE-M/NB-IoT 模块。
**统一的 Arduino Client 接口**:兼容 Ethernet 和 WiFi 库的编程模式,易于集成到现有项目中。
**丰富的功能**:支持 TCP/SSL 多连接、SMS 发送、USSD 解码、语音通话(DTMF)、GPS/GNSS 定位和 GSM 基站定位。
**活跃的社区支持**:提供 Gitter 聊天室、详细的 Wiki 文档和丰富的示例代码。
技术规格
| 支持的模块类型 | |
|---|---|
| 数据连接 | |
| 最大并发连接数 | |
| SMS | |
| USSD | |
| 语音通话 | |
| 定位 | |
| 资源占用 (Arduino Uno) | |
| 许可证 |
项目资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| Arduino 开发板 (Uno/Mega/ESP32 等) | 1 | — | 作为主控 |
| GSM/蜂窝模块 (如 SIM800L, SIM7000, BG96) | 1 | — | 根据需求选择 |
| SIM 卡 | 1 | — | 需禁用 PIN 码并开通数据服务 |
| GSM 天线 | 1 | — | 确保牢固连接 |
| 电源 | 1 | — | 至少 2A 稳定供电 |
| 跳线 | 若干 | — | 用于连接模块和 Arduino |
| GPS 天线 | 1 | — | 用于支持 GPS 的模块 |
所需工具
电烙铁与焊接工具
必需
树莓派/开发板
必需
电池/电源
能力画像
⚪ 记忆与知识检索: 2/5
🔵 逻辑推演: 3/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 2/5
⚪ 数理与计算: 2/5
🔵 动手与操作: 3/5
⚪ 狂热与坚持: 3/5
⚪ 创造与创新: 3/5
项目图库
所需技能
🔧 **动手能力**:需要能够正确连接 GSM 模块和 Arduino 开发板,包括电源、天线和串口连接。可能需要焊接排针。
💻 **编程能力**:需要具备 Arduino 编程基础,理解串口通信、TCP/IP 网络概念。能够阅读和修改示例代码。
⚡ **电子电路**:了解基本的电路知识,如电源供电、电平转换(如果模块是 3.3V 而 Arduino 是 5V),以及 SIM 卡接口。
适用场景
**物联网 (IoT) 原型开发**:快速为 Arduino 项目添加蜂窝网络连接,用于远程传感器数据采集、设备控制等。
**远程监控与报警**:通过 GSM 网络发送 SMS 报警或通过 MQTT/HTTP 将数据上传到云平台。
**移动通信实验**:学习和实验 GSM/GPRS/LTE 通信协议,了解 AT 命令和网络注册流程。
**低功耗应用**:结合低功耗 Arduino 板和蜂窝模块,构建电池供电的远程设备。