Віримо в перемогу ЗСУ!
Магазин у відпустці до 01.06.2022

Привет друзья! 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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Мотор шилд для Arduino UNO MEGA

Мотор шилд для Arduino UNO MEGA

Шилд под платы контроллеров Arduino UNO, Arduino MEGA с четырёхканальным драйвером дв..

86.12грн.

Модуль PS/2

Модуль PS/2

Модуль порта PS2 для подключения компьютерной клавиатуры или мыши к плате контроллераПитающее напряж..

43.93грн.

Генератор импульсов на NE555

Генератор импульсов на NE555

Генератор прямоугольных импульсов на микросхеме NE555 с плавной подстройкой частоты и заполненияНапр..

30.20грн.

Модуль расширения входов-выходов PCF8574A

Модуль расширения входов-выходов PCF8574A

Расширитель портов на основе специализированной микросхемы PCF8574AКоммуникационный интерфейс I..

61.20грн.

Ультразвуковой датчик расстояния HC-SR04

Ультразвуковой датчик расстояния HC-SR04

Напряжение питания 5 ВРабочий угол отраженной волны не больше 15 градусов ардуино юа Диапазон и..

44.31грн.