Віримо в перемогу ЗСУ!
Працюємо з 09:00 до 18:00 Пн-Пт

Привет друзья! Arduino SIM800 тест схемы подключения. С этого блога начнем новую рубрику. За последние несколько лет у меня набралось достаточно опыта работы с SIM800L, чтобы запускать стабильно работающие проекты, за которые можно быть уверенным перед заказчиками. И теперь я хочу предметно разобрать с вами приемы работы с ними.

И чем больше эти видео будут получать от вас поддержки лайко-подписками, тем глубже погружу вас в эту тему и тем больше живых практических проектов опубликую.



Так же от этого будет зависеть и разнообразие используемых контроллеров.

Это вступительное видео, в котором я расскажу о нюансах подключения самого доступного во всех смыслах контроллера Arduino Nano к GSM-модему SIM800L.

А так же покажу простейший ручной способ проверки связи между ними. 

Хоть Arduino Nano - не самый подходящий контроллер для работы с GSM-модулями, но мне кажется начать эту беседу лучше с него.

Так как мы решили разобрать связку SIM800L и контроллера Arduino Nano, то должны иметь ввиду, что у GSM  модуля рекомендуемое напряжение питания 4,2В. 


А у платы контроллера 5В (или можно и от 9В питать через пин VIN).

Уровни логических сигналов тоже сильно отличаются: 5В у Arduino Nano и 3,3В у SIM800.

Это означает, что для долговременной нормальной работы наших проектов, мы должны обеспечить источники питания 5В и 4,2В, а так же согласовать сигналы 5В и 3,3В. 

Для обеспечения питания 4,2В нужно использовать отдельный стабилизатор напряжения.

А для согласования логических уровней 3,3В и 5В нужен преобразователь уровней. Схемы с этими двумя модулями вы сможете в большом количестве найти в интернетах.

Я для простоты монтажа и быстрого перехода к программной части нашей беседы возьму самый удобный шилд для соединения Nano и SIM800.

У него на борту уже стоит стабилизатор 4,2В для питания GSM модуля, а так же два транзистора для согласования сигналов 5В и 3,3В. 

Мы разработали его пару лет назад. Внедрили уже одно усовершенствование по просьбам покупателей – поставили разъем micro-USB для питания платы. Еще один покупатель просил выход на динамик и вход микрофона вывести от SIM800 на плату, но это уже позднее наверно появится.

Но вам не обязательно покупать такой шилд – соберите схему по вашим возможностям и потребностям.

Здесь на схеме мы видим, что SIM800 и другие GSM-модули тоже коммуницируют с контроллером при помощи двухсигнального порта UART. 


Это стандартный так называемый последовательный порт для двухсторонней связи контроллера с внешними устройствами. Он занимает два пина. Одним пином устройство получает данные, а при помощи второго передает. Информация по каждому проводу передается последовательно бит за битом. Количество таких UART портов – это обычная характеристика для каждого отдельного контроллера. Их еще называют физическими UART портами. Если в вашем контроллере их мало, то можно, хотя это не самое лучшее решение, использовать программные порты. То есть коммуникация будет происходить по обычным дискретным входам-выходам, и к программе придется привязать соответствующую библиотеку, которая отъест свой кусок памяти контроллера. 

На схемах устройств выводы UART обозначают RX и TX. Два устройства по UART соединяются перекрестно – RX одного устройства на TX другого.

У Arduino Nano к сожалению на борту имеется только один физический порт UART. При чем он всегда занят, когда мы загружаем новую программу в контроллер или диагностируем его в мониторе порта. 

На этой схеме показано, что мы будем UART GSM – модуля подключать к обычным пинам контроллера, на которых нет физического UART. Но специальная библиотека поможет нам организовать на этих пинах искусственный последовательный порт UART со своими RX и TX.

Теперь переходим к программе. 

#include <SoftwareSerial.h>

SoftwareSerial SIM800serial (2, 3);

void setup() {
  
  Serial.begin(9600);
  SIM800serial.begin(9600);
  
}

void loop() {
  
  if (Serial.available()) {
    SIM800serial.write(Serial.read());
  }
  if (SIM800serial.available()) {
    Serial.write(SIM800serial.read());
  }

}

В общем этот текст программы представляет собой шлюз между SIM800 и монитором порта в Arduino IDE.

Первая строчка – это обращение к библиотеке программного искусственного UART – SoftwareSerial.

Следующая строчка – это создание экземпляра класса программного последовательного порта. Тут же вводятся номера пинов, на которые подключены выводы RX и TX модуля SIM800. 

Дальше в функции setup просто прописаны строки запуска двух последовательных портов – физического и программного. Так же здесь задаются скорости их работы и они не обязательно должны быть равны. 

В цикле loop рабочая часть программы. Здесь прописано двухстороннее перенаправление данных от монитора порта в SIM800 и обратно. Если контроллер Arduino Nano получает данные из монитора порта, то тут же их копию отправляет на программный порт UART. А так же, если данные пришли от SIM800, он тут же отправляет их копию в физический UART и мы их увидим на мониторе порта программы Arduino IDE. 

Теперь перепроверим, что у нас выбран правильный контроллер и порт для программирования, и загрузим эту тестовую прогу.

После загрузки скетча в контроллер, можно открыть монитор порта, выбрать соответствующую скорость обмена и попробовать прокоммуницировать с GSM модулем.

Обычно все подобные инструкции начинаются с того, что авторы учат, какие команды нужно подавать на SIM800 для задания его скорости обмена. Так же они настаивают, что очень важно включить так называемое эхо. Я никогда этим не заморачивался с SIM800,  так как они всегда с завода или магазина приезжают с настройкой автоматического определения скорости обмена, а так же с включенной функцией ответа. Эхо выключено, но это просто дублирование GSM модулем вашей команды вдобавок к информационному ответу. Поэтому таких ненужных прелюдий мы здесь выполнять не будем.

Я выступаю за то, что после покупки желательно прошить SIM800 нормальной прошивкой, собрать схему и просто подавать рабочие команды.

Так вот, для автоматического определения SIM800 скорости обмена, после подачи на неё питания следует отправить несколько любых команд с нужной нам скоростью. В нашем случае это 9600 бод. А самая простая команда для модемов это “AT”. 

Питание включено и я просто пишу с клавиатуры AT. Или маленькими, или большими буквами и нажимаю Enter.

Пропишу эту команду раз 5, чтобы убедиться, что схема живая и модем определил скорость обмена. На корректные команды получаем ответ ОК.

Так же обратите внимание, что у меня в мониторе порта рядом со скоростью выбрана настройка «с новой строки и возврат каретки».

Теперь еще попробуем специально ввести сюда неизвестную команду и, посмотрим, как SIM800 умеет ругаться. 

Вот ввожу команды наугад и, если команда не нравится GSM-модулю, он отвечает ERROR. Если вы не получаете никаких ответов, то или схема неправильно собрана, или что-то еще похуже.

А сейчас отправлю SMS на номер SIM-карты в модеме. Читать мы её пока не будем, но проследим за его реакцией на UART порту.

И вот ответ – так он сообщает о получении новой SMS.

Теперь позвоню на его номер.

И видно, что модем сообщает о каждом гудке.

Вешаю трубку, на что SIM800 пишет уведомление.

Вот так мы научились проверять работоспособность подключения SIM800 к Arduino Nano при помощи простого скетча. Плюс получили начальные навыки общения с GSM-модулем подавая команды вручную в мониторе порта. На следующем этапе подготовим куски кода для автоматического управления SIM800 и подадим пару диагностических запросов в этот модуль.

Прошу поддержать это видео лайками, подпиской и поделитесь им с друзьями.


<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Звуковой сигнализатор 16 Ом

Звуковой сигнализатор 16 Ом

Пассивный звуковой сигнализатор для подключения к дискретному выходу контроллераМиниатюрный размерСо..

7.33грн.

3-осевой акселерометр ADXL346Z

3-осевой акселерометр ADXL346Z

Акселерометр - это датчик ускорения. Данный датчик показывает статическое (гравитацию - наклон к зем..

152.86грн.

Симистор BTA12-600B

Симистор BTA12-600B

Высоковольтный симистор.Максимальный ток нагрузки при полной синусоиде 12 АМаксимальный ток управляю..

14.07грн.

Уроки Arduino для новичков 1.2.1 Схема Arduino

Уроки Arduino для новичков 1.2.1 Схема Arduino

На этом уроке поговорим о принципиальной схеме Arduino. Схема данной платы Arduino - это ко..

Регулирование температуры воздуха окном

Регулирование температуры воздуха окном

Как часто мы попадаем в ситуацию, когда засыпаем теплым летним вечером, а просыпаемся от ночного рез..