Tee se itse
Mestarikurssit, ohjeet, hyödyllisiä vinkkejä, reseptejä.
» » »SMS-ohjain perustuu SIM800L: ään
SIM800L-pohjainen SMS-ohjain

SIM800L V2.0 GSM / GPRS on nelikaistainen GSM / GPRS-moduuli, joka on yhteensopiva Arduinon kanssa. Moduulia käytetään toteuttamaan GSM (puhelut ja SMS) ja GPRS toiminnot. Tämän moduulin etuna on TTL-liitäntä, jonka jännite on 5 V, jonka avulla voit kytkeä sen suoraan Arduinoon tai muuhun järjestelmään, jossa on 5 V: n virtalähde. Suurin osa markkinoilla olevista GSM / GPRS-moduuleista vaatii säädinyhteyksiä tai tasonmuuntamista, kun taas SIM800L V.2: ssa GSM / GPRS ei vaadi lisärajapintatason muuntamispiirejä.

Tässä on esimerkkihankkeesta, jossa käytetään SIM800L V.2 GSM / GPRS. Projektin tarkoituksena on ohjata kytkimiä SMS-ohjaimella. Voit helposti kytkeä päälle ja pois päältä useimmat talon kodinkoneet, kuten esimerkiksi laama, tuuletin ja niin edelleen.

GSM / GPRS-moduulin SIM800L V.2 ominaisuudet


Alla on kaikki SIM800L V.2 GSM / GPRS-moduulin tekniset tiedot:
  • TTL-sarjaliitäntä yhteensopiva 3,3 V: n ja 5 V: n mikro-ohjaimien kanssa, jotka ovat yhteensopivia Arduinon kanssa.
  • SIM800L-moduulissa on TTL-sarjaliitäntä.
  • Antenniliitin
  • Verkkotuki: neljä taajuusaluetta 850/900/1800/1900 MHz, jotka voivat soittaa puheluita, tekstiviestejä ja tiedonsiirtoa vähentämällä merkittävästi akun kulutusta.
  • VDD TTL UART -liitäntä, joten voit kytkeä suoraan MCU: n, kuten 51MCU, ARM tai MSP430. VDD-pistoke, jota käytetään TTL-jännitteen sovittamiseen.
  • Malli: SIMCOM SIM800L
  • Käyttöjännite: 3,7 V - 5 V;
  • mitat: 40mm x 28mm x 3mm
  • GPRS-monivälin luokka 12/10
  • GPRS-eräpalveluluokka B
  • Vastaa GSM-vaihetta 2/2 +
  • Luokka 4 (2 wattia @ 850/900 MHz)
  • Luokka 1 (1 watti @ 1800/1900 MHz)


Vaadittavat materiaalit


SIM800L-pohjainen SMS-ohjain


Tarvitset:


1. .
2. .
3. .
4. .
5. .
(Aktiiviset linkit myymälään ostettavaksi)

Kokoonpano ja kokoonpano


SIM800L-pohjainen SMS-ohjain


Kun olet kytkenyt kaikki komponentit, luo ohjelma ja lataa se sitten Arduinoon. Mutta ensin on asennettava GPRS-kirjasto, jonka voit ladata:

[28,02 kt] (lataukset: 481)


Ohjelman koodi Arduinolle


SIM800L-pohjainen SMS-ohjain


Kun olet kytkenyt SIM800L, 4-kanavainen relemoduuli ja Arduino tietokoneeseen, kirjoita alla oleva koodi ja olet valmis.


#include
#include
#define TIMEOUT 5000
#define ACTIVE LOW
#define OFF HIGH

tavurele [] = {A0, A1, A2, A3};
tavu StatRelay [4];
char buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Merkkijonon vastausnumero = "089510863958";
GPRS-GPRS: t;

tyhjä asennus () {
varten (int i = 0; i <4; i ++) {
pinMode (rele [i], OUTPUT);
digitalWrite (rele [i], MATI);
StatRelay [i] = MATI;
}

Sarja-aloitus (9600);
kun taas (! sarja);
Serial.println ("Aktivoi SIM800L V2 >>> Lue tekstiviestit automaattisesti");
gprs.preInit ();
viive (1000);
kun taas (0! = gprs.init ()) {
viive (1000);
Serial.print ("init errorrn");
}

// Hallitse viestiä tilaan ASCII
if (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
VIRHE ("VIRHE: CNMI");
palata;
}
// Lue saapuvat tekstiviestit
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
VIRHE ("VIRHE: CNMI");
palata;
}
int pjg = vastausnumero.pituus () + 1;
buffNumber [pjg];
vastausnumero.toCharArray (buffNumber, pjg);
Serial.print ("Lähetä vastaus numeroon =>");
Serial.println (buffNumber);
Serial.println ("Alustus valmis");
Serial.println ("=============================================== ================= ");
}

tyhjä silmukka () {
// Vaihda tilan rele päälle / pois
varten (int i = 0; i <4; i ++) {
digitalWrite (rele [i], StatRelay [i]);
}

// Jos SIM800: sta on tulotietoja
if (gprs.serialSIM800.a available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Tallenna kaikki tiedot lastCharReadiin, sitten jos r tai n on, tulevan viestin lopullisena signaalina
if (lastCharRead == 'r' || lastCharRead == 'n') {
Merkkijono lastLine = merkkijono (currentLine);

// Jos viimeinen viesti + CMT ilmaisee, että uusi viesti saapuu
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
seuraavaLineIsMessage = totta;
} else if (lastLine.length ()> 0) {
if (seuraavaLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Releohjaimen toiminta

// Rele 1 -ohjain

if (lastLine.indexOf ("Rele 1 ON")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Rele 1 tila aktiivinen");
gprs.sendSMS (buffNumber, "Rele 1 tila aktiivinen");
}

else if (lastLine.indexOf ("Relay 1 OFF")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 1 Status Off");
gprs.sendSMS (buffNumber, "Relay 1 Status Off");
}

// Rele 2 -ohjain

if (lastLine.indexOf ("Rele 2 ON")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 2 Status Active");
gprs.sendSMS (buffNumber, "Relay 2 Status Active");
}
else if (lastLine.indexOf ("Relay 2 OFF")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 2 Status Off");
gprs.sendSMS (buffNumber, "Relay 2 Status Off");
}

// Rele 3 -ohjain
if (lastLine.indexOf ("Rele 3 ON")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 3 Status Active");
gprs.sendSMS (buffNumber, "Relay 3 Status Active");
}
else if (lastLine.indexOf ("Relay 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 3 Status Off");
gprs.sendSMS (buffNumber, "Relay 3 Status Off");
}

// Rele 4 -ohjain
if (lastLine.indexOf ("Rele 4 ON")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 4 Status Active");
gprs.sendSMS (buffNumber, "Rele 1 tila aktiivinen");
}
else if (lastLine.indexOf ("Relay 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Vastaa ==== >>>>");
Serial.println ("Relay 4 Status Off");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
seuraavaLineIsMessage = false;
}

// ================================================= ==================== >>

}
// Tyhjennä char-ryhmä seuraavalle riville
varten (int i = 0; i 


Laitteen tarkistus


SIM800L-pohjainen SMS-ohjain


Työkalu toimii lähettämällä tekstiviestejä SIM800L: lle tietyllä merkkijonolla. Jos haluat ottaa releen 1 käyttöön esimerkiksi “Relay 1 ON” -komennolla ja kytke se pois päältä, käytä “Relay 1 OFF” -komentoa. Muilla releillä on melkein samat komennot, lukuun ottamatta kunkin releen sarjanumeroa, jonka kanssa haluat toimia. Kun viesti on lähetetty automaattisesti, SIM800 lähettää vastauksen tilaviestin muodossa jokaiselle SIM-kortille.

Videon kokoonpano, kokoonpano ja laitteen varmennus



Kommentit (4)
  1. qeeeq
    #1 qeeeq vieraita 26. elokuuta 2017 23:50
    0
    Vau! Kuten sanotaan, kaikki nerokkaat ovat yksinkertaisia. Minun ei tarvinnut edes ostaa mitään, luultavasti jokaisesta sellaisesta roskasta kotona irtotavarana
  2. alexey
    #2 alexey vieraita 16. joulukuuta 2017 16:53
    0
    Se ei toimi. Kokoonpanossaan se kirjoittaa "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Hallitus:" Arduino / Genuino Uno "
    1. Denis
      #3 Denis vieraita 17. joulukuuta 2017 08:11
      0
      Sinun on käytettävä polkua ilman venäläisiä kirjaimia projektiin.
  3. Andrew
    #4 Andrew vieraita 10. helmikuuta 2019 11:54
    0
    Luonnoksessa on paljon virheitä. Ei toimi.