Yongnuo flash compatibility. An overview of all Yongnuo flashes. Which is better to choose in the current model range. Built-in radio support in Yongnuo

Yongnuo flash compatibility.  An overview of all Yongnuo flashes.  Which is better to choose in the current model range.  Built-in radio support in Yongnuo
Yongnuo flash compatibility. An overview of all Yongnuo flashes. Which is better to choose in the current model range. Built-in radio support in Yongnuo

SIM900 is a quad-band GSM/GPRS module, part of a family of modules for surface mount SMT (Surface Mount Technology), which allows you to take full advantage of miniature and effective solutions. Thanks to the small overall dimensions SIM900 is perfect for M2M applications.

Main characteristics of SIM900 GSM module:

  • GSM: 850/900/1800/1900 MHz
  • GPRS multi-slot class 10/8
  • GSM Phase 2/2+ Compliant
    • Power class 4 (2 W on 850/900 MHz)
    • Power class 1 (1 W on 1800/1900 MHz bands)
  • AT command management (GSM 07.07, 07.05 and proprietary AT commands SIMCOM)
  • Embedded AT - work with user applications *
  • Audio codecs HR, FR, EFR, AMR, echo cancellation
  • CSD up to 14.4kbps
  • PPP stack
  • Built-in TCP/IP, UDP/IP stack
  • MUX (07.10)
  • HTTP and FTP protocols*
  • Decode DTMF tones*
  • FOTA*
  • Supply voltage 3.2 ... 4.8 V
  • Operating temperature range: -40 °C ... +85 °C
  • Dimensions: 24*24*3mm
  • Weight: 6.2 g

* - special software version

SIM900 is a new solution from SIMCom, one of the new generation models inexpensive modules GSM/GPRS. SIM900 has been designed with user feedback in mind previous versions modules. Special attention SIM900 developers paid attention to the issue of increasing software reliability, added modes of operation with minimal power consumption, and significantly reduced the size of SIM900.

At the same time, SIM900 developers have retained the main advantages of previous versions:

  • budget cost;
  • convenient built-in stack with TCP / IP;
  • Popular end-contact design, which can be used for SIM900 available technologies soldering and mounting.

All this allows the SIM900 to be used in various products, including security systems, personal and car navigators, industrial automation and other equipment. It should be noted that the extended functionality of SIM900, available in the ENHANCE firmware - DTMF decoding, creating and sending letters to eMail thanks to AT commands, executing commands received via SMS, etc. SIM900 also has a firmware supporting Embedded AT technology, which makes it possible to write to memory of the user code module in C language. This allows (in certain cases) to refuse the use of an external microcontroller.

Shield GPRS/GSM SIM900 with antenna
SIM900 GPRS/GSM Shield Development Board Quad-Band Kit For Arduino Compatible

Module for the operation of Arduino and similar microcontroller devices in cellular networks according to GSM and GPRS standards. Oriented for use in automation and control systems. Data exchange with other modules occurs through the UART interface. Shield GPRS/GSM SIM900 with antenna can interface directly with the microcontroller via UART interface or work in conjunction with personal computer when using a portPC-UART interface converter. This is possible due to software compatibility at the level of the class of commands used to control modems - AT commands.
Objects are monitored and managed by sharing data within reach mobile communications. Voice communication, sending SMS, MMS and many other functions and services are provided. The operation of the module is based on the SIM900 component.

Article in Russian from a magazine about the SIM900 component. The component was developed by SIMCom Wireless Solutions. The SIMCom website has a Russian version. The GSM module board on the component side contains connectors for connecting an antenna, headphones and a microphone. On the soldering side of the board, there is a 3-volt CR1220 battery holder that supports the operation of the module's clock and a container for installing a SIM card.
One of the applications of the device is a vehicle tracking system in conjunction with a GLONASS or GPS device. Sending SMS messages allows you to use the module in dispatching, wireless alarm and in security systems. As a result of the events taking place, various SMS can be sent: “Emergency stop of elevator 2 at house No. 34”, “Car door open”, “Basement open”, “220 V voltage off”, “ Entrance door dacha is open”, “Lighting on”, “The temperature in the greenhouse is below critical”. The module is indispensable for the control and management of moving objects moving over long distances. Or in case of deleting the operator on long distance from a stationary object.

Shield GPRS/GSM SIM900 with antenna gives wide opportunities studying the operation of the SIM900 component. The installation of the SIM900 component is carried out according to the most modern technologies because of what to solder to printed circuit board SIM900 in the laboratory is very difficult. Having a module with SIM900 installed, it is possible to conduct experiments on the use of the SIM900 component. When using the SIM900 component in your own developments, it becomes possible to debug software and verification of circuit solutions.

Characteristics

Nutrition
voltage, V
nominal 5
range 4.8-5.2
current
normal mode 50-450 mA
in sleep mode 1.5 mA
limit impulse 2 A
Supports 1.8V and 3V SIM cards
Communication bands 850, 900, 1800, 1900 MHz
Supports 2G network
Transmission power in various bands
1 W 1800 and 1900 MHz
2 W 850 and 900 MHz
Complies with GSM phase 2/2+ standard
Built-in TCP and UDP protocols
Transfer class GPRS data multi-slot class 10/8
Audio codecs HR, FR, EFR, AMR, echo cancellation
CSD up to 14.4kbps
PPP stack
MUX (07.10)
HTTP and FTP protocols
It is possible to send DTMF signals and play recordings as on an answering machine
RTC real time clock support
Temperature, ℃
air during operation -30...75
storage -45...90
dimensions 86 x 58 x 19 mm

Control Components

The Power select switch sets the power source: external, connected to the coaxial connector or the power source of the Arduino microcontroller module.

The Power key turns the power on or off when pressed and held for 2 seconds.

Indication

The status of the module is reported by 3 LEDs:
PWR (green) - module power indicator,
Status (red) - SIM900 component power indicator,
Net Light (green) - connection to the network.
Net Light LED messages.
Off - SIM900 is not working.
Flashing at intervals, indicated in seconds:
0.064 on and 0.8 off - no network detected,
0.064 on and 0.3 off - network detected,
0.064 enabled, 0.03 disabled - GPRS is connected.

Contacts

The SIM900 component contains a UART port, its signals are routed to the component pins and connected to jumpers that determine which pins of the Shield GPRS/GSM SIM900 module will be connected to the UART port of the SIM900 component with D0, D1 or D7, D8.
UART Shield GPRS/GSM can be connected: to the MK hardware interface via the TXD and RXD pins of the Shield GPRS/GSM module, D0, D1 are used for this. Or to software emulated by means of arduino, for this, pins D7 and D8 of the Shield GPRS / GSM module are used. The full UART interface has 10 signals output to pins in the corner of the board: R1, DCD, DSR, CTS, RTS, GND, 2V8, TX, RX, DTR.
The 12 signed pins of the GPIO digital I/O lines are located in the corner of the board. There are 2 output pins with pulse width modulation PWM1, PWM2. ADC input ADC contact. The built-in time counter interface has 4 pins. Pin designations: DISP_CLK, DISP_DATA, DISP_D/C, DISP_CS.
Pin D9 is used to programmatically control whether the SIM900 is turned on or off.
The board has a connector for connecting the antenna.

Pin assignment of the SIM900 component.

External power on and off

The power supply of the module can be switched on or off by means of a signal at the control input D9. To change the state, a pulse with a duration of 1 s is applied to D9. The state change occurs 3.2 s after the start of the pulse.

Enable the module. Graphs of module supply voltage, external control pulse and STATUS power indicator.

When the module is controlled by the control device, switching on must occur without using the Power key button, i.e. immediately after power is applied. To do this, several commands should be added to the MK program.

Void powerUpOrDown()
{
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
}

This group of commands in the program can also be used to turn off the module. You can also turn off the GSM module by sending an AT command.

GSM and GPRS module in Arduino projects allows you to connect to remote standalone devices through a regular cellular communication. We can send commands to devices and receive information from them using SMS commands or through an Internet connection open via GPRS. In this article, we will look at the most popular modules for Arduino, understand the connection and look at programming examples.

Modules GSM GPRS

The GSM module is used to expand the capabilities of conventional Arduino boards - sending SMS, making calls, exchanging data via GPRS. Exist different kinds modules, the most commonly used are SIM900, SIM800L, A6, A7.

Description of the SIM900 module

The SIM900 module is used in various automated systems. Using the UART interface, data is exchanged with other devices. The module provides the ability to make calls, exchange text messages. The operation of the module is based on the SIM900 component developed by SIMCom Wireless Solution.

Specifications:

  • Voltage range 4.8-5.2V;
  • AT normal mode the current reaches 450 mA, the maximum current in the pulsed mode is 2 A;
  • Support 2G;
  • Transmission power: 1 W 1800 and 1900 MHz, 2 W 850 and 900 MHz;
  • There are built-in TCP and UDP protocols;
  • GPRS multi-slot class 10/8;
  • Operating temperature from -30C to 75C.

Using the device, you can track the route of transport together with a GLONASS or GPS device. The ability to send SMS messages is used in wireless alarms and various security systems.

Description of the SIM800L module

The module is based on the SIM800L component and is used to send SMS, make calls and exchange data via GPRS. A micro SIM card is installed in the module. The device has a built-in antenna and a connector to which you can connect an external antenna. Power is supplied to the module from an external source or through a DC-DC converter. Control is carried out using a computer via UART, Arduino, Raspberry Pi or similar devices.

Specifications:

  • Voltage range 3.7V - 4.2V;
  • Support for 4-band network 900/1800/1900 MHz;
  • GPRS class 12 (85.6 kB/s);
  • Maximum current 500 mA;
  • Support 2G;
  • Automatic search in four frequency bands;
  • Operating temperature from -30C to 75C.

Description of module A6

The A6 module was developed by AI-THINKER in 2016. The device is used for SMS messaging and data exchange via GPRS. The fee is different low consumption energy and small size. The device is fully compatible with Russian mobile operators.

Specifications:

  • Voltage range 4.5 - 5.5V;
  • Power supply 5V;
  • Operating temperature range from -30C to 80C;
  • Maximum current consumption 900mA;
  • GPRS Class 10;
  • Support for PPP, TCP, UDP, MUX protocols.

The module supports microsim cards.

Description of A7 module

A7 is latest module from AI-THINKER. Compared to its predecessor, the A6 has a built-in GPS to simplify the design of the device.

Specifications:

  • Operating voltage range 3.3V-4.6V;
  • Supply voltage 5V;
  • Frequencies 850/900/1800/1900 MHz;
  • GPRS Class 10: Max. 85.6 kbps;
  • Echo and noise suppression.

The device supports micro SIM cards. The module supports the exchange of calls, exchange of SMS messages, data transmission via GPRS, reception of signals via GPS.

Where to buy GSM modules for arduino

Traditionally, before you start, a few tips and useful links on Aliexpress sellers.

Very high quality KEYES SIM900 GSM GPRS module SIM800C module for arduino from a trusted supplier
Arduino compatible development shield based on SIM900 GPRS/GSM module Inexpensive mini A6 GPRS GSM module

Connecting GSM GPRS Shield to Arduino

In this section, we will consider the issues of connecting GSM modules to the Aduino board. Almost all examples are based on Arduino Uno, but most of the examples will also work for Mega, Nano, etc. boards.

Connecting the SIM800 module

To connect, you need an Arduino board, a SIM800L module, a step-down voltage converter, wires for connection and a 12V battery. The SIM800L module requires a non-standard voltage of 3.7V for Arduino, for this you need a step-down voltage converter.

The pinout of the SIM800 module is shown in the figure.

The Arduino board must be connected to the computer via USB cable. Connect a 12V battery through the converter: -12V to Arduino ground, from ground to converter to minus, +12V to converter to plus. The outputs from the TX and RX module must be connected to pins 2 and 3 on the Arduino. Several modules can be connected to any digital pins.

Connecting the A6 module

The A6 module costs less than the SIM900 and is very easy to connect to the Arduino. The module is powered by 5V, so additional voltage-lowering elements are not needed for connection.

An Arduino board is required for connection. this case considered Arduino UNO), GSM module A6, connecting wires. The connection diagram is shown in the figure.

The RX output from the GSM module must be connected to the TX on the Arduino board, the TX output must be connected to the RX pin on the Arduino. The ground from the module is connected to the ground on the microcontroller. The Vcc pin on the GSM module must be connected to PWR_KEY.

Connection using GSM-GPRS shield

Before connecting, it is important to pay attention to the power supply voltage of the shield. The current at the time of a call or sending data can reach values ​​​​of 15-2 A, so you should not power the shield directly from Arduino.

Before connecting to Arduino, you need to install a SIM card on the GSM-GPRS shield. You also need to set the TX and RX jumpers as shown in the figure.

The connection is made as follows - the first contact (yellow wire in the figure) from the shield must be connected to TX on the Arduino. The second pin (green wire) connects to RX on the Arduino. The ground from the shield connects to the ground from the aruino. Power is supplied to the microcontroller via a USB cable.

The layout of the connection between the shield and the Arduino board is shown in the figure.

To work, you will need to install the GPRS_Shield_Arduino library.

To check the correctness assembled circuit you need to do the following: connect RESET and GND to the Arduino (this will cause the data to be transferred directly from the shield to the computer), insert the SIM card into the shield and turn on the power to the shield. You need to connect the Arduino board to the computer and press the power button. If everything is connected correctly, the red LED will light up and green will flash.

Brief description of interaction via AT commands

AT commands are a set of special commands for the modem, consisting of short text lines. In order for the modem to recognize the command given to it, the lines must begin with the letters at. The string will be accepted when the modem is in command mode. AT commands can be sent either via communication software or manually from the keyboard. Practically all commands can be divided into 3 modes - test, in which the module answers whether the command is supported; reading - issuing the current command parameters; write - new values ​​will be written.

List of the most used AT commands:

  • AT - to check the correct connection of the module. If everything is OK, OK is returned.
  • A/ - repeat the previous command.
  • AT+IPR? – getting information about the port speed. The response will be +IPR: 0 OK (0 in this case automatically).
  • AT+ICF? – transmission setting. The response will be +ICF: bit, parity.
  • AT+IFC? – transmission control. The answer will be +IFC: terminal from the module, module from the terminal (0 - no control, 1 - software control, 2 - hardware).
  • AT+GCAP - shows the capabilities of the module. An example of a response is +GCAP:+FCLASS,+CGSM.
  • AT+GSN - get module IMEI. Sample response 01322600XXXXXXX.
  • AT+COPS? – shows available operators.
  • AT+CPAS – module status. Answer +CPAS: 0. 0 - ready to work, 3 - incoming call, 4 - voice connection, 2 - unknown.
  • AT+CCLK? – information about the current time and date.
  • AT+CLIP=1 – enable/disable caller ID. 1 - enabled, 0 - disabled.
  • AT+CSCB=0 – receive special SMS messages. 0 - allowed, 1 - prohibited.
  • AT+CSCS= “GSM” – SMS message coding. You can select one of the following encodings: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – get error information.
  • AT+CPIN=XXXX - Enter the PIN code of the SIM card.
  • AT&F - reset to factory settings.
  • AT+CPOWD=1 – urgent(0) or normal(1) module shutdown.
  • ATD+790XXXXXXXX – call to the number +790XXXXXXXX.
  • ATA - call answer.
  • AT+CMGS=”+790XXXXXXXX”>Test sms – send an SMS message to +790XXXXXXXX.

In this case, considered basic commands for SIM900 module. Commands may differ slightly for different modules. The data for the module will be fed through special program"terminal" that you need to install on your computer. You can also send commands to the module through the port monitor in the Arduino IDE.

Sketches for working with the GSM module

Sending SMS on the example of SIM900

Before sending a message, you need to configure the module. First of all, you need to convert to text format transmitted message. To do this, there is a command AT+CMGF=1. It is necessary to transfer the encoding to GSM with the command AT + CSCS \u003d "GSM". This encoding is the most convenient, since there characters are represented in ASCII code, which is easily understood by the compiler.

Then you need to dial an SMS message. To do this, a command is sent with the subscriber's number AT + CMGS = "+79XXXXXXXXX" r, in response it is proposed to dial an SMS text. You need to send a message. Upon completion, you need to send the Ctrl + Z combination code, the module will allow sending the text to the addressee. When the message is sent, OK will be returned.

The interaction with the module is based on the indexes that are assigned to each new message. By this index, you can specify which of the messages to delete or read.

Receiving SMS. To read an SMS message, use the AT + CNMI = 2,2,0,0,0 command. When a text message arrives at the module, it will send to the +CMTI serial port: "SM",2 (in this case, 2 is the serial number of the message). To read it, you need to send the command AT+CMGR=2.

Receiving a voice call. First of all, for a conversation, you need to connect a speaker and a microphone to the module. When a call is received, the number from which it was made will be shown. To work, you need to enable the GSM library:

#include

If the SIM card is blocked, you need to enter its pin code. If a PIN is not required, this field should be left blank.

#define PINNUMBER ""

In setup(), the initialization of data transfer to the computer must be performed. The next step is to create a local variable to keep track of the network connection status. The sketch will not run until the SIM card is connected to the network.

boolean notConnected = true;

The gsmAccess.begin() function is used to connect to the network. When a connection is established, the GSM_READY value will be returned.

vcs.hangCall(); – a function indicating that the modem is ready to receive calls.

getvoiceCallStatus() - Gets the status of the sketch. If someone calls, it returns RECEIVINGCALL. To record the number, you need to use the retrieveCallingNumber() function. When the call is answered, TALKING will be returned. The sketch will then wait for a character new line to end the conversation.

Establish a GPRS connection and send data to a remote server

First you need to install the SoftwareSerial library, which allows you to provide serial information transfer and connect the GSM module and the Arduino microcontroller.

To send data to the server, you need to send the following commands:

AT+SAPBR=1,1 – Carrier opening.

The next three commands are related to setting network connection settings.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – select mts operator, access point name.

AT+SAPBR=3,1,\”USER\”,\” mts \” – user selection mts.

AT+SAPBR=3,1,\”PWD\”,\” mts \”

AT+SAPBR=1,1 – connection establishment.

AT+HTTPINIT - http initialization.

AT+HTTPPARA=”URL”, – URL address.

AT+HTTPREAD - waiting for a response.

AT+HTTPTERM stop http.

If everything is done correctly, lines with AT commands will appear in the port monitor. If there is no connection with the modem, it will show one line at a time. If the GPRS connection is successfully established, the LED on the module will start flashing.

Consider how to connect Adruino with GSM module SIM800L. There are GSM shields specifically for Arduino, but they are quite expensive for the price, so I decided to purchase a budget option. The article may also be useful for connecting the SIM900 module, NEOWAY M590, and some cell phones. An inconvenient nuance is that this module requires a non-standard 3.7V power supply for Arduino, so it had to be powered separately through a step-down voltage converter.

Connection

To connect, I used the following components:

  1. Arduino UNO R3 controller + USB cable
  2. GSM module SIM800L (power supply from 3.7V to 4.2V)
  3. Step-down voltage converter (DC-DC step-down converter)
  4. 12V battery (or any power source from 6V to 20V)
  5. Connecting wires

Connect Arduino to computer via USB cable.

We give power to the GSM module from a 12V battery through a converter:

  • from 12V "minus" goes to arduino in "GND", from "GND" to the voltage converter to "incoming minus".
  • from 12V "plus" goes to the voltage converter to "incoming plus".

The question arises: is it possible to supply power from the Arduino itself from 5V? I wouldn't risk it directly. But you can pick up a diode or voltage regulator.

Before connecting to a voltage converter, it must be configured by setting output voltage to any in the range of 3.7V - 4.2V. From the voltage converter, we connect the output contacts to the GSM module, observing the polarity.

TX and RX pins on the GSM module are connected to 2 and 3 digital pins on the Arduino. If you need to connect several GSM modules to Arduino, then use other pins and register in the sketch via SoftwareSerial.

Sketch

#include<SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX void setup() ( Serial.begin(19200); // Port speed for Arduino communication with the computer Serial.println("Goodnight moon!"); mySerial.begin(19200); //Speed ​​of port for communication between Arduino and GSM module mySerial.println("AT" ); ) void loop() (if(mySerial.available()) Serial.write(mySerial.read()); if ( Serial.available()) mySerial.write( Serial.read()); )

Procedure for sending SMS

void sms (String text , String phone ) ( Serial. println("SMS send started" ); mySerial. println ("AT+CMGS=\"" + phone + "\"" ) ; delay(1000) ; mySerial. print(text); delay(300) ; mySerial. print ((char ) 26 ) ; delay(300) ; Serial. println("SMS send finish" ) ; delay(3000) ; )

Add the procedure to the end of the sketch and call it from the main loop like this: sms(String("SMS text in English."),String("+791212345678"));

Examination

We turn on the power then through the port monitor, setting the speed to 19200 and the "new line" option is required.

Enter the command "ATI" and press ENTER. Information from the module model should appear.

I tried to send SMS to the module via free service from Tele2, incomprehensible lines come. Tried to change encodings in the module. The issue has not yet been resolved.

Video