Серия «Учебные проекты». Учимся подключать к Ардуино различные датчики и модули. Часть 3.

Подключение модуля GSM GPRS SIM800

Миниатюрный модуль GSM/GPRS сотовой связи на основе компонента SIM800L, разработан компанией SIMCom Wireless Solutions. Стандартный интерфейс управления компонента SIM800L предоставляет доступ к сервисам сетей GSM/GPRS 850/900/1800/1900МГц для отправки звонков, СМС сообщений и обмена цифровыми данными GPRS. Поставляется с встроенной антенной, также можно подключить дополнительные антенны для улучшения качества сигнала. Управлять модулем можно при помощи персонального компьютера через преобразователь интерфейса USB-UART или непосредственно через UART модулем микроконтроллера самостоятельной разработки или Arduino, Raspberry Pi и аналогичными. Компонент SIM800L имеет реализованный стек протокола TCP/IP. Содержит микросхему MT6260SA компании MediaTek и микросхему приемопередатчика RFMD RF7176.


МОДУЛЬ GSM GPRS SIM800

К модулю GSM GPRS SIM800 MicroSIM подключаются динамик и микрофон. С модуля можно совершать звонки и принимать. Модуль имеет следующие характеристики:

  • напряжение питания: 3.7 В ~ 4.4 В;
  • потребляемый ток режима ожидания: 0,7 мА;
  • пиковый ток: 2 А ;
  • скорость UART: 1200 – 115200 бод;
  • формат SIM карты: microSIM;
  • рабочий диапазон: EGSM900, DCS1800, GSM850, PCS1900;
  • мощность передачи DCS1800, PCS1900: 1 Вт;
  • мощность передачи GSM850, EGSM900: 2 Вт;
  • режим сети: 2G;
  • габариты: 25 мм х 24 мм х 4 мм;
    • четыре диапазона EGSM900, DCS1800, GSM850, PCS1900
    • мощность передачи в различных диапазонах:
      • DCS1800, PCS1900 1 Вт;
      • GSM850, EGSM900 2 Вт.
    • автоматически выполняет поиск в четырех частотных диапазонах;
    • поддерживает сеть 2G;
    • сопротивление подключаемого динамика 8 Ом;
    • микрофон электретный;
    • управляется командами AT через UART (3GPP TS 27.007, 27.005 SIMCOM enhanced AT Commands);
    • автоматическое определение скорости передачи управляющих АТ команд;
    • отправка и получение GPRS данных (TCP/IP, HTTP, и т.д.)
    • макс скорость передачи GPRS данных 85,6 Кбод;
    • кодирование CS-1, CS-2, CS-3 и CS-4;
    • поддерживает GSM 07.10 протокол;
    • поддержка пакетной передачи широковещательного канала управления (PBCCH) CSD на скоростях 2.4, 4.8, 9.6 и 14.4 Кбод;
    • поддержка неструктурированных данных дополнительных услуг USSD;
    • поддерживает PAP ( протокол идентификации пароля);
    • поддержка часов реального времени RTC;
    • поддерживает симкарт питанием 3 и 1,8 В;
    • температура, ℃ :
      • воздуха при работе –30…75;
      • хранения –45…

Для подключения нужны плата Arduino, модуль SIM800L, провода для соединения и батарея на 12В. Модуль SIM800L требует нестандартное для Arduino напряжение в 3,7В, для этого нужен понижающий преобразователь напряжения, но в нашей программе это учитывается и подключать преобразователь при проектирование необязательно, поэтому в данной работе мы пренебрежем им. Схема контактов модуля SIM800 приведена на рисунке.

Плату Arduino нужно подключить, следующем образом. Выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Arduino. Несколько модулей можно подключать к любым цифровым пинам выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Arduino, землю на плате  к земле на модуле, 5.5В также подключить к плате Arduino при помощи проводов.

Подключаем GSM модуль SIM800L

Подключение модуля освещенности LM393

Модуль освещенности на LM393 используется для измерения интенсивности света в различных устройствах, таких как, автоматизация света (включении света ночью), роботах (определения дня или ночи) и приборов, контролирующих уровень освещенности. Измерения осуществляется с помощью светочувствительного элемента (фоторезистора), который меняет сопротивление в зависимости от освещенности.

Технические параметры:

  • напряжение питания: 3.3 В ~ 5.5 В;
  • потребляемый ток: 10 мА;
  • цифрового выход: TTL (лог 1 или лог 0);
  • аналогового выход: 0 В … Vcc;
  • диаметр монтажного отверстия: 2.5 мм;
  • выходной ток: 15 мА;
  • габариты: 42мм х 15мм х 8мм.

Существует два модуля, визуально отличие только в количестве выводов (3 pin и 4 pin), дополнительный вывод добавлен, для снятие прямых показаний с фоторезистора (аналоговый выход), в статье пойдет речь о четырех контактом варианте модуля. В этих двух модулей, измерение осуществляется с помощью фоторезистора, который изменяет напряжение в цепи в зависимости от количества света, попадающего на него. Чтобы представить, как свет будет влиять на фоторезистор, краткая таблица приведена на рисунке

Модуль освещенности с четырьмя выводами содержит два выходных контакты, аналоговый и цифровой и два контакта для подключения питания. Для считывания аналогового сигнала предусмотрен отдельный вывод «AO», с которого можно считать показания напряжения с 0 В … 3.3 В или 5 В в зависимости от используемого источника питания. Цифровой вывод DO, устанавливается в лог «0» или лог «1», в зависимости от яркости, чувствительность выхода, можно регулировать с помощью поворотного потенциометра. Выходной ток цифрового выхода, способен выдать более 15 мА, что очень упрощает использования модуля и дает возможность использовать его минуя контроллер Arduino и подключая его напрямую ко входу однокональному реле или одному из входов двухконального реле. Основная микросхема модулей, это компаратор LM393 (U1), который производит сравнение уровней напряжений на входах INA- и INA+. Чувствительность порога срабатывания задается с помощью потенциометром R2 и в результате сравнений на выходе D0 микросхемы U1, формируется лог «0» или лог «2», который поступает на контакт D0 разъема J1.

Назначение J1 (в исполнении 4 pin)

  • VCC: «+» питание модуля
  • GND: «-» питание модуля
  • D0: цифровой выход
  • A0: аналоговый выход

Назначение J1 (в исполнении 3 pin)

  • VCC: «+» питание модуля
  • GND: «-» питание модуля
  • D0: цифровой выход

Небольшая управляющая программка:

  • Определяем уровень сигнала с аналогового пина.
  • Сравниваем уровень с пороговым значением. Максимально значение будет соответствовать темноте, минимальное – максимальной освещенности. Пороговое значение выберем равное 300.
  • Если уровень меньше порогового – темно, нужно включать светодиод.
  • Иначе – выключаем светодиод.

#define PIN_LED 13

#define PIN_PHOTO_SENSOR A0

void setup() {

Serial.begin(9600);

pinMode(PIN_LED, OUTPUT);

}

void loop() {

int val = analogRead(PIN_PHOTO_SENSOR);

Serial.println(val);

if (val < 300) {

digitalWrite(PIN_LED, LOW);

} else {

digitalWrite(PIN_LED, HIGH);

}

}