GSM/GPRS модуль SIM900 / SIM900A

Подробное руководство по GSM/GPRS модулю SIM900/SIM900A: технические характеристики, распиновка, схемы подключения к ESP32, даташит и примеры кода.

Связь и SIM UART

Обзор

GSM/GPRS модуль SIM900 — это компактное и надежное устройство для обеспечения сотовой связи в различных проектах. Благодаря поддержке четырех диапазонов частот и широкому набору интерфейсов, он идеально подходит для создания систем удаленного мониторинга, безопасности и IoT-решений.

SIM900 — это полноценный GSM/GPRS модуль, предназначенный для M2M-коммуникаций. Он поддерживает передачу голоса, SMS, данных и факсов в четырех диапазонах GSM (850/900/1800/1900 МГц), что делает его универсальным выбором для встраиваемых систем по всему миру.

Модуль SIM900
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы
Где купить

Приобретите SIM900

Технические характеристики

Характеристики SIM900

Модуль SIM900/SIM900A характеризуется отличной энергоэффективностью и широким рабочим диапазоном температур.

Диапазоны
850/900/1800/1900 МГц
Питание
3.4В ... 4.4В (Пик 2А)
GPRS
Class 10 (85.6 кбит/с)
Интерфейсы
UART, SIM, GPIO, ADC
Скачать полный Datasheet
Конфигурация пинов

Распиновка SIM900

Распиновка включает питание, последовательный порт UART для связи, выводы управления питанием и индикации статуса. На стандартных модулях (shields) обычно выведены основные контакты.

Диаграмма распиновки
Основные выводы
Распиновка SIM900
Питание
Интерфейс
UART
Управление
  • 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-команды). Модуль критичен к качеству питания: используйте мощный внешний источник.

Схема подключения
UART соединение
Подключение SIM900 к ESP32
Важное примечание
Используйте внешний блок питания 4В / 2А!
Протокол
UART (AT commands)
Подключения пинов
SIM900 ESP32 Pin Описание
VBAT External 4V Внешнее питание (обязательно)
GND GND Общая земля
TXD GPIO16 (RX2) TX модуля к RX контроллера
RXD GPIO17 (TX2) RX модуля к TX контроллера
Устранение неполадок

Отладка SIM900

Модуль не включается
Проверьте напряжение питания (должно быть 3.8В - 4.2В). Убедитесь, что вы удерживали PWRKEY в низком состоянии не менее 1 секунды. Модуль потребляет до 2А в пике при связи с вышкой.
SIM-карта не распознается
Удалите PIN-код с SIM-карты. Проверьте поддержку GSM-сетей (2G) вашим оператором — это устаревший протокол.
Примеры кода

Примеры программирования SIM900

Пример для Arduino (ESP32)

C++
#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
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А.