SMS-ohjain perustuu SIM800L

SMS-ohjain perustuu SIM800L

SIM800L V2.0 GSM/GPRS on Arduinon kanssa yhteensopiva nelikaistainen GSM/GPRS-moduuli. Moduulia käytetään GSM- (puhelut ja SMS) ja GPRS-toimintojen toteuttamiseen. Tämän moduulin etuna on TTL-liitäntä, jonka jännite on 5 V, jonka avulla voit kytkeä sen suoraan Arduinoon tai mihin tahansa muuhun järjestelmään, jossa on 5 V syöttöjännite. Useimmat markkinoilla olevat GSM/GPRS-moduulit vaativat säädinliitäntöjä tai tasonmuunnoksia, kun taas SIM800L V.2:ssa GSM/GPRS ei vaadi ylimääräisiä rajapintatason muunnospiirejä.

Otetaan esimerkki projektista, jossa käytetään SIM800L V.2 GSM/GPRS:ää. Projektin tarkoitus on ohjata kytkimiä SMS-ohjaimella. Voit helposti kytkeä päälle ja pois päältä useimmat kodin kodinkoneet, kuten laama, tuuletin ja niin edelleen.

SIM800L V.2 GSM/GPRS-moduulin ominaisuudet


Alla on kaikki SIM800L V.2 GSM/GPRS -moduulin tekniset ominaisuudet:
  • TTL-sarjaliitäntä, joka on yhteensopiva 3,3 V:n ja 5 V:n Arduino-yhteensopivien mikro-ohjainten kanssa.
  • SIM800L-moduulissa on TTL-sarjaliitäntä.
  • Antenniliitäntäpistoke.
  • Verkkotuki: neljä taajuutta 850/900/1800/1900 MHz, pystyvät soittamaan puheluita, tekstiviestejä ja tiedonsiirtoja huomattavasti pienemmällä akun kulutuksella.
  • VDD TTL UART -liitäntä, joten voit liittää suoraan MCU:n, kuten 51MCU, ARM tai MSP430.VDD-pistoketta käytetään sovittamaan TTL-jännite.
  • Malli: SIMCOM SIM800L
  • Käyttöjännite: 3,7 V - 5 V;
  • mitat: 40mm x 28mm x 3mm
  • GPRS-monipaikkaluokka 12/10
  • GPRS-pakettipalveluluokka B
  • Yhteensopiva GSM-vaiheen 2/2+ kanssa
  • Luokka 4 (2 wattia @ 850/900 MHz)
  • Luokka 1 (1 watti @ 1800/1900 MHz)


Tarvittavat materiaalit


SMS-ohjain perustuu SIM800L


Sinä tulet tarvitsemaan:


1. SIM800L V.2 GSM/GPRS-moduuli.
2. Arduino Uno.
3. 4-kanavainen 5V relemoduuli.
4. Johdot - jumpperit.
5. Virtalähde 5V.
(Aktiiviset linkit kauppaan ostettavaksi)

Kokoonpano ja konfigurointi


SMS-ohjain perustuu SIM800L


Kun olet yhdistänyt kaikki komponentit, luo ohjelma ja lataa se sitten Arduinoosi. Mutta ensin sinun on asennettava GPRS-kirjasto, jonka voit ladata:

gprs.zip [28,02 Kb] (lataukset: 887)


Ohjelmakoodi Arduinolle


SMS-ohjain perustuu SIM800L


Kun olet liittänyt SIM800L:n, 4-kanavaisen relemoduulin ja Arduinon tietokoneeseen, syötä alla oleva koodi ja olet valmis.



#sisältää 

#sisältää

#define TIMEOUT 5000

#define ACTIVE LOW

#define OFF HIGH



tavuvälitys[] = {A0,A1,A2,A3};

tavu StatRelay[4];

char buffNumber[20];

char currentLine[500] = "";

int currentLineIndex = 0;

bool nextLineIsMessage = false;

Merkkijono replyNumber = "089510863958";

GPRS gprs;



void setup() {

for(int i=0; i < 4; i++) {

pinMode(Relay[i] , OUTPUT);

digitalWrite(Relay[i], MATI);

StatRelay[i] = MATI;

}



Serial.begin(9600);

while(!Serial);

Serial.println("Aktivoi SIM800L V2 >>> Lue tekstiviestit automaattisesti");

gprs.preInit();

viive (1000);

while (0 != gprs.init()) {

viive (1000);

Serial.print("init errorrn");

}



// Hallitse viestiä ASCII-tilaan

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 = vastausNumber.length() + 1;

buffNumber[pjg];

vastausNumber.toCharArray(buffNumber,pjg);

Serial.print("Lähetä vastaus numeroon => ");

Serial.println(buffNumber);

Serial.println("Alustus valmis");

Serial.println("============================================== =============== =================");

}



void loop() {

// Muuta tilaa Rele ON / OFF

for(int i=0; i < 4; i++) {

digitalWrite(Relay[i], StatRelay[i]);

}



// Jos SIM800:lta on syöttödataa

if (gprs.serialSIM800.available()) {

char lastCharRead = gprs.serialSIM800.read();



// Tallenna kaikki tiedot lastCharReadiin ja jos on r tai n, saapuvan viestin viimeisenä signaalina

if (lastCharRead == 'r' || lastCharRead == 'n') {

String lastLine = Merkkijono(nykyinen rivi);



// Jos viimeinen viesti +CMT osoittaa uuden viestin saapuvan

if (lastLine.startsWith("+CMT:")) {

Serial.println(lastLine);

nextLineIsMessage = tosi;

} else if (lastLine.length() > 0) {

if (nextLineIsMessage) {

Serial.println(lastLine);



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



//Rele 1 -ohjain



if (lastLine.indexOf("Rele 1 PÄÄLLÄ") >= 0) {

StatRelay[0] = AKTIF;

Serial.print("Vastaa====>>>> ");

Serial.println("Relay 1 Status Active");

gprs.sendSMS(buffNumber, "Relay 1 Status Active");

}



else if (lastLine.indexOf("Relay 1 OFF") >= 0) {

StatRelay[0] = MATI;

Serial.print("Vastaa====>>>> ");

Serial.println("Rele 1 Status Off");

gprs.sendSMS(buffNumber, "Relay 1 Status Off");

}



//Rele 2 -ohjain



if (lastLine.indexOf("Rele 2 PÄÄLLÄ") >= 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 PÄÄLLÄ") >= 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 PÄÄLLÄ") >= 0) {

StatRelay[3] = AKTIF;

Serial.print("Vastaa====>>>> ");

Serial.println("Relay 4 Status Active");

gprs.sendSMS(buffNumber, "Relay 1 Status Active");

}

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");

}

nextLineIsMessage = false;

}



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



}

//Tyhjennä char-taulukko seuraavaa lukuriviä varten

for ( int i = 0; i < koko(nykyisen rivin); ++i ) {

nykyinen rivi[i] = (merkki)0;

}

nykyinenLineIndex = 0;

}

else {

nykyinenLine[nykyinenLineIndex++] = lastCharRead;

}

}

}



Laitteen tarkistus


SMS-ohjain perustuu SIM800L


Työkalu toimii lähettämällä SMS-viestin SIM800L:lle tietyllä merkkijonolla. Esimerkiksi kytkeäksesi releen 1 päälle, käytä "Relay 1 ON" -komentoa ja sammuttaaksesi sen käyttämällä "Relay 1 OFF" -komentoa. Muiden releiden komennot ovat lähes samat, lukuun ottamatta kunkin releen järjestysnumeroa, johon haluat vaikuttaa. Viestin automaattisen lähettämisen jälkeen SIM800 lähettää vastauksen viestin muodossa kunkin SIM-kortin tilasta.

Video laitteen kokoamisesta, konfiguroinnista ja testauksesta



Alkuperäinen artikkeli englanniksi
Kommentti
  • rusettihymynauraenpunastuahymiörento rentovirnistää
    sydän_silmätsuuteleva sydänsuudella suljettuja silmiäpunastuneenahelpottunuttyytyväinenvirne
    silmäniskujumissa_kielen_silmäysjumissa_kielen_suljetut_silmätvirnisteleesuudellajumissa_kielinukkumassa
    huolestunutrypistää kulmiaanahdistunutavaa suuirvistäähämmentynythiljaa
    ilmeetönhuvittumatonhiki_hymyhikipettynyt_ helpottunutväsynytpassiivinen
    pettynythämmentynytpelottavakylmä hikisinnikkäästiitkeänyyhkyttää
    ilohämmästynythuutaaväsynyt_naamavihainenraivoavoitto
    uneliasnamnaamioaurinkolasitdizzy_faceimphymyilevä_imp
    neutraali_kasvotno_mouthviaton
3+kolme=
Kommentit (4)
  1. qeeeq
    #1 qeeeq Vieraita 26. elokuuta 2017 klo 23.50
    0
    Vau! Kuten he sanovat, kaikki nerokas on yksinkertaista. Minun ei tarvinnut edes ostaa mitään, luultavasti jokaisella on kasa sellaista roskaa kotona
  2. Aleksei
    #2 Aleksei Vieraita 16. joulukuuta 2017 klo 16.53
    0
    Ei toimi. Käänteessä lukee "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"Arduino/Genuino Uno"
    1. Denis
      #3 Denis Vieraita 17. joulukuuta 2017 klo 8.11
      0
      Sinun on käytettävä projektiin polkua ilman venäläisiä kirjaimia.
  3. Andrei
    #4 Andrei Vieraita 10. helmikuuta 2019 klo 11.54
    2
    Sketsissä on paljon virheitä. Se ei toimi.