Віримо в перемогу ЗСУ!
Магазин у відпустці до 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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Модуль PS/2

Модуль PS/2

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

43.93грн.

Збільшуючий перетворювач напруги 0,9...5В у 5В

Збільшуючий перетворювач напруги 0,9...5В у 5В

Мініатюрний перетворювач напруги до 5ВВхідна напруга постійного струму 0,9 ... 5 ВНа виході USB-порт..

20.63грн.

Парсер температури та вологості на WiFi-контролері

Парсер температури та вологості на WiFi-контролері

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

Драйвер крокового двигуна RAMPS 1.4 для CNC або 3D-принтера

Драйвер крокового двигуна RAMPS 1.4 для CNC або 3D-принтера

Драйвер A4988 під шилд RAMPS 1.4Є можливість налаштовувати робочий струм двигуна за допомогою з..

43.49грн.

Arduino Nano I2C двохсторонній зв'язок між контролерами

Arduino Nano I2C двохсторонній зв'язок між контролерами

Продолжаем разбор технологии обмена данными по коммуникации I2CВ попередній статті розглядався ..