Віримо в перемогу ЗСУ!
Працюємо з 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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Светодиод 5мм

Светодиод 5мм

Светодиод диаметром 5мм. LED Максимальный ток 20 мА ..

1.90грн.

Гребенка соединительная 2,54мм папа под пайку 40pin

Гребенка соединительная 2,54мм папа под пайку 40pin

Гребенка стандарта DIP 2,54 мм на 40 пинов под пайкуМожно делить на нужное количество..

5.18грн.

RFID модуль PN532 NFC

RFID модуль PN532 NFC

NFC модуль на базе микросхемы NXP PN532, контроллера для бесконтактной связи на частоте 13,56 МГц на..

267.85грн.

Тестируем WEB-инструмент программирования Arduino на официальном сайте

Тестируем WEB-инструмент программирования Arduino на официальном сайте

Посмотрим поближе на веб-редактор На официальном сайте Arduino в разделе скачки средства програ..

Пружина для натяжения ремня 6мм

Пружина для натяжения ремня 6мм

Стальная пружина для натяжки зубчатого ремня GT2 шириной 6 ммИспользуется в 3d принтерах и CNC-станк..

4.63грн.