Skip to content

YYx00xZZ/sim800a

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sim800a

working with sim800a module

Като цяло работата с GSM модул и ардуино е сравнително лесна, освен тогава когато не е...

На пазара има няколко разновидности модеми (TODO>списък), но по-интересен е броя на различните дизайни (PCB Designs) които се предлагат от различните производители (които също са безброи). Това което имам впредвид е, че два продукта базирани на един и същ модем (например SIM800), и именувани по сходен начин, са до-голяма степен различни в съшността си. (съответно и начина по който можем да ги използваме. )

Тези различия често са достатъчно осезаеми и напълно достатъчни, че да провалят проекта ни, в случай, че не знаем за тях и не ги предвидим в първоначалното планиране на цялостната работа.

Следващите редове се базират изцяло на наблюденията ми през последните три години на работа с различни "IoT" устройства (2018-2021).

Въпросните различния се дължат на това, че: първо - различните производители имплементират (задължителната) периферията на модема по (достатъчно) различен начин, че това да промени крайното(по-нататъшЧното!?!?!?) действеи и/или начин на работа на/със въпросния продукт (за нас-девелопърите), второ - често биват добавяни различни функционалности към крайния (за developer-а е междинен...) продукт, които не са предвидени по начало в основния такъв (в случея това е GSM модема). Най-вероятно си мислите "какво от това? нали това е смисъла на развоините платки, пък и преди да излязат на пазара минават регулационен процес от съответните органи"...; трето-прекалено често крайният продукт съдържа критични грешки в дизайна на схемата (напр. LED в esp8266 платки), съответно и в начина на работа след това и четвърто, но не на последно място - много често липсва каквато и да е документация на продукта (било то схема на I/O или описание на наличните функционалности за следващия разработчик)

Модемът с който ще работим е един от най-известните (най-често срещаните) - SIM800 и по-точно SIM800A, а модула (до колкото е възможно да бъде идентифициран) е по дизайн на UNV, конкретно този с който разполагаме е версия V3.9.3 от 26-08-2016г. (предполагам, че годината се отнася към версията, а не дата на производство)

значението на буквата в края (как се нарича?индекс може би?), и какви други възможности има, ще разгледаме по-късно.

Предстой да разгледаме основни

Тестване на модула

Нужни

  • USB Type Mini B
  • SIM Card with atleast GPRS data
  • Few jumper wires
  • Putty
  • КОНВЕРТОР USB КЪМ UART converter-USB-to-UART

Свързване

  SIM800A                            USB TO UART CONVERTER
 ──────────────────────────         ──────────────────────────

┌──────────────┬───────┐
│              ├──────┼│                USB
│              │sim   ││                 ┌────┐
│              │card  ││             ┌───┼┼┼┼┼┼──┐
│              │      ││             │   └────┘  │
│              │      ││             │           ├┐
│     ┌──┐     └──────┴┤             │        GND├┘ ──────┐
│     │┼┼│             │             │           │        │
│   SR│┼┼│ST ──────────┼────────┐    │           │        │
│   │ │┼┼│             │        │    │           │        │
│   │ │┼┼│             │        │    │           │        │
│   └─┴──┴─────────────┼───┐    │    │           │        │
│                      │   │    │   ┌┤           │        │
│ ┌──┐                 │   │    └──►└┤RX         │        │
└─┼┼┼┼─────────────────┘   │         │           │        │
  └──┘                     │        ┌┤           │        │
  PWR                      └───────►└┤TX         │        │
   ▲ ▲                               │           │        │
   │ │                               │         5V├┐       │
   │ │                               │           ├┴───┐   │
   │ │                               └───────────┘    │   │
   │ │                                                │   │
   │ └────────────────────────────────────────────────┘   │
   │                                                      │
   └──────────────────────────────────────────────────────┘

PINS-USED-ON-CONVERTER module-connected-to-converter

След като модулът е свързан чрез конвертора към компютъра, сме готови да тестваме изправността и функционалността му. За целта отваряме Device Manager и проверяваме номера на COM порта. За връзка ще използваме програмата Putty

Putty-Settings-Annotation_2021-12-15

Натискаме Open. Трябва да изчакаме няколко секунди докато се осъществи връзка към модула. Разбираме, че връзката е осъществена когато въведем някакъв символ и той се визуализира в командния ред.

Основни АТ команди за тестване на изправността и функционалността.

В таблицата са събрани основните команди чрез които ще съберем основна информация за версията на фирмуера на устройството и други.

Команда Използва се за
AT handshake test
AT+CSQ Signal Quality
AT+CCID Read SIM Information to confirm its plugged in
AT+CREG? Check if SIM is registered in the network

AT - Това е най-основната AT команда. Тя също така инициализира Auto-baudrate. Ако тя работи, трябва да видите ехото на AT символите и след това OK, което ви казва, че всичко е наред и тя ви разбира правилно! След това можете да изпратите някои команди за запитване към модула и да получите информация за него, като например:

AT+CSQ - Проверете "силата на сигнала" - първото # е силата на сигнала в dB, тя трябва да е по-висока от около 5. По-високата стойност е по-добра. Разбира се, това зависи от вашата антена и местоположение.

AT+CCID - получаване на номера на SIM картата - с тази функция се проверява дали SIM картата е поставена правилно и можете да проверите дали номерът е записан на картата.

AT+CREG? Проверява дали сте регистрирани в мрежата. Вторият # трябва да бъде 1 или 5. 1 означава, че сте регистрирани в домашната мрежа, а 5 - че сте регистрирани в роуминг мрежа. Другите две числа освен тези показват, че не сте регистрирани в никаква мрежа.

AT-TEST-CMDS-OUTPUT_Annotation_2021-12-15

Интегриране на модула към IoT контролер

Тоест ще използваме GSM модула за да контролираме I/O на Arduino UNO например.

Нужни

  • Всичко от предишната точка.
  • Arduino UNO, може и клонинг. ( не забравяйте да дарите някой лев в този случай :) )
  • Още няколко джъмпера.
  • Нисковолтово реле.

niskovoltovo-rele-modul

1. AT test commands from Arduino

За начало ще изпълним тестовите АТ команди, които коментирахме по-горе, но ще ги изпратим от Ардуино към модула. Освен, че ще изпратим командите искаме и да прочетем отговора на модула, които да се изпише в серийния монитор на Arduino IDE.

Стъпка 1

Качваме следния код на Arduino UNO.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800A
SoftwareSerial mySerial(3, 2); //SIM800A Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);

  //Begin serial communication with Arduino and SIM800А
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();
  mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println("AT+CREG?"); //Check whether it has registered in the network
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available())
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while (mySerial.available())
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

!!! Серийният монитор трябва да бъде настроен по следния начин: край на реда Both NL & CR, 9600 Baudrate

Към момента можете да пуснете сериен монитор, но това което ще видите е просто ред който гласи Initializing . . . и нищо повече. Трябва да свържем контролера към модула и релето.

Стъпка 2

Дали можем да захранваме модула от ардуиното е спорен въпрос, който се обсъжда из форумите в интернет от години и няма ясен отговор. Според документацията на компонентите - НЕ! Според практиката - да .. Това което ще направим ние е да свържем модула директно към контролера, при мен няма никакви проблеми ползвайки го по този начин, постъпете по ваше усмотрение. Другият вариянт (който е и по-добрия, в случай, че имате възможност - направете го) е да осигурим отделно захранване за GSM модула и контролера. Следва ASCII диаграма на свързването между отделните компоненти. GSM модул към Arduino UNO.

ASCII-GSM-Arduino_Annotation_2021-12-15

!!! Преди да започнете да свързвате каквото и да е, моля изключете всичко от захранването. Пазете си компонентите! Въпреки, че цената им е сравнително ниска, няма нужда да разхищаваме ресурси. След като свържем GSM модула към Aduino UNO и захраним установката, наблюдаваме следния резултат в серийния монитор (това е успешен резултат):

ArduinoIDE-SerialMonitor-OUTPUT-v1_Annotation_2021-12-15

Стъпка 3

Добавяме Реле модула към установката

диаграма на свързването ArdunoGSM-Relay_Annotation_2021-12-15

About

working with sim800a module

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages