Привет друзья! 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 и подадим пару диагностических запросов в этот модуль.
Прошу поддержать это видео лайками, подпиской и поделитесь им с друзьями.
Изготовление печатных плат при помощи лазерного принтера
Можно существенно облегчить себе процесс изготовления печатных плат, рисуя дорожки при помощи тоне..
ЧТО ТАКОЕ ТРАНЗИСТОР?
Термин «биполярный транзистор» связан с тем, что в этих транзисторах используются носители зарядов д..
Модуль реле 5В HIGH высокий уровень срабатывания
Одноканальный модуль реле с питанием катушки 5 В и прямой логикой срабатывания.Максимальная ко..
72.20грн.
Электрозамок 12В 2А
Очень функциональный надёжный и удобный в использовании замокТакие замки используются в электронных ..
480.87грн.
Модуль расширения входов-выходов PCF8574A
Расширитель портов на основе специализированной микросхемы PCF8574AКоммуникационный интерфейс I..
77.58грн.