Обзор
GSM/GPRS модуль SIM900 — это компактное и надежное устройство для обеспечения сотовой связи в различных проектах. Благодаря поддержке четырех диапазонов частот и широкому набору интерфейсов, он идеально подходит для создания систем удаленного мониторинга, безопасности и IoT-решений.
SIM900 — это полноценный GSM/GPRS модуль, предназначенный для M2M-коммуникаций. Он поддерживает передачу голоса, SMS, данных и факсов в четырех диапазонах GSM (850/900/1800/1900 МГц), что делает его универсальным выбором для встраиваемых систем по всему миру.
Приобретите SIM900
Характеристики SIM900
Модуль SIM900/SIM900A характеризуется отличной энергоэффективностью и широким рабочим диапазоном температур.
Распиновка SIM900
Распиновка включает питание, последовательный порт UART для связи, выводы управления питанием и индикации статуса. На стандартных модулях (shields) обычно выведены основные контакты.
- PWRKEY — для включения модуля (импульс LOW на 1с).
- NETLIGHT — индикация сети.
- GND — общая земля с контроллером.
| Название | Тип | Описание |
|---|---|---|
| VCC / VBAT | Power | Основное питание 3.4В–4.4В |
| GND | Ground | Общий провод |
| TXD | Output | Передача данных UART |
| RXD | Input | Прием данных UART |
| PWRKEY | Control | Запуск модуля (импульс LOW) |
Подключение SIM900 к ESP32
Для работы с SIM900 используется последовательный интерфейс UART (AT-команды). Модуль критичен к качеству питания: используйте мощный внешний источник.
| SIM900 | ESP32 Pin | Описание |
|---|---|---|
| VBAT | External 4V | Внешнее питание (обязательно) |
| GND | GND | Общая земля |
| TXD | GPIO16 (RX2) | TX модуля к RX контроллера |
| RXD | GPIO17 (TX2) | RX модуля к TX контроллера |
Отладка SIM900
Модуль не включается
SIM-карта не распознается
Примеры программирования SIM900
Пример для Arduino (ESP32)
C++
Пример для Arduino (ESP32)
#include <Arduino.h>
// Используем HardwareSerial 2 (GPIO 16/17)
#define SIM900_TX 17
#define SIM900_RX 16
#define PWRKEY 4
HardwareSerial sim900(2);
void setup() {
Serial.begin(115200);
sim900.begin(9600, SERIAL_8N1, SIM900_RX, SIM900_TX);
// Включение модуля импульсом LOW
pinMode(PWRKEY, OUTPUT);
digitalWrite(PWRKEY, LOW);
delay(1000);
digitalWrite(PWRKEY, HIGH);
Serial.println("Инициализация SIM900...");
delay(5000);
sim900.println("AT"); // Проверка связи
}
void loop() {
if (sim900.available()) {
Serial.write(sim900.read());
}
}
Пример для MicroPython
Python
Пример для MicroPython
from machine import UART, Pin
import time
uart = UART(2, baudrate=9600, tx=17, rx=16)
pwr = Pin(4, Pin.OUT)
# Включение модуля
pwr.value(0)
time.sleep(1)
pwr.value(1)
time.sleep(5)
uart.write('AT\r\n')
print(uart.read())
Итоги
Модуль SIM900 — это классическое решение для GSM-связи в DIY-проектах. Несмотря на появление более современных модулей (например, серии SIM800), он до сих пор востребован благодаря своей простоте и надежности.
Рекомендации
Используйте качественные антенны и блоки питания. Пиковый ток при регистрации в сети может вызвать перезагрузку вашего микроконтроллера при неправильной схеме питания.
Питание
Никогда не питайте питание модуля напрямую от пина 5V Arduino или ESP32. Обязательно используйте внешний преобразователь напряжения с током не менее 2А.