DIY gjør det selv
Mesterklasser, instruksjoner, nyttige tips, oppskrifter.
» » »SMS-kontroller basert på SIM800L
SIM800L-basert SMS-kontroller

SIM800L V2.0 GSM / GPRS er en firebånd GSM / GPRS-modul kompatibel med Arduino. Modulen brukes til å implementere funksjonene til GSM (samtaler og SMS) og GPRS. Fordelen med denne modulen er TTL-grensesnittet med en spenning på 5V, som lar deg koble den direkte til en Arduino eller et hvilket som helst annet system med en 5V strømforsyning. De fleste GSM / GPRS-moduler på markedet krever regulator-tilkoblinger eller nivåkonvertering, mens GSM / GPRS i SIM800L V.2 ikke krever flere konverteringskretser på grensesnittnivå.

Her er et eksempel på et prosjekt som bruker SIM800L V.2 GSM / GPRS. Meningen med prosjektet er å kontrollere bryterne ved hjelp av SMS-kontrolleren. Du kan enkelt slå av og på de fleste husholdningsapparater i huset, for eksempel en lama, en vifte og så videre.

Kjennetegn på SIM800L V.2 GSM / GPRS-modulen


Nedenfor er alle tekniske spesifikasjoner for SIM800L V.2 GSM / GPRS-modul:
  • TTL seriell grensesnitt kompatibel med 3,3V og 5V mikrokontrollere kompatible med Arduino.
  • SIM800L-modulen har et serielt TTL-grensesnitt.
  • Antenneplugg
  • Nettverksstøtte: fire bånd 850/900/1800/1900 MHz, som er i stand til å ringe, SMS og dataoverføring med betydelig redusert batteriforbruk.
  • VDD TTL UART-grensesnitt, slik at du direkte kan koble til en MCU som 51MCU, ARM eller MSP430. VDD-plugg som brukes til å matche TTL-spenning.
  • Modell: SIMCOM SIM800L
  • Arbeidsspenning: fra 3,7V til 5V;
  • dimensjoner: 40mm x 28mm x 3mm
  • GPRS multislot klasse 12/10
  • GPRS Batch Service Class B
  • Tilsvarer GSM fase 2/2 +
  • Klasse 4 (2 watt @ 850/900 MHz)
  • Klasse 1 (1 Wat @ 1800/1900 MHz)


Nødvendige materialer


SIM800L-basert SMS-kontroller


Du trenger:


1. .
2. .
3. .
4. .
5. .
(Aktive lenker til butikken for kjøp)

Montering og konfigurasjon


SIM800L-basert SMS-kontroller


Når du har koblet til alle komponentene, lager du et program og laster det ned til Arduino. Men først må du installere GPRS-biblioteket, som du kan laste ned:

[28.02 Kb] (nedlastinger: 481)


Programkode for Arduino


SIM800L-basert SMS-kontroller


Etter at du har koblet SIM800L, 4-kanals relémodul og Arduino til datamaskinen din, skriver du inn koden nedenfor og du er ferdig.


#include
#include
#definere TIMEOUT 5000
#definer AKTIV LAV
#definere AV HØYT

byte relé [] = {A0, A1, A2, A3};
byte StatRelay [4];
røye buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = falsk;
String replyNumber = "089510863958";
GPRS gprs;

ugyldig oppsett () {
for (int i = 0; i <4; i ++) {
pinMode (Relay [i], OUTPUT);
digitalWrite (stafett [i], MATI);
StatRelay [i] = MATI;
}

Serial.begin (9600);
mens (! seriell);
Serial.println ("Aktiver SIM800L V2 >>> Les automatisk SMS");
gprs.preInit ();
forsinkelse (1000);
mens (0! = gprs.init ()) {
forsinkelse (1000);
Serial.print ("init errorrn");
}

// Administrer melding til modus ASCII
if (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
FEIL ("FEIL: CNMI");
tilbake;
}
// Les innkommende SMS
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
FEIL ("FEIL: CNMI");
tilbake;
}
int pjg = replyNumber.length () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Send svar til nummer =>");
Serial.println (buffNumber);
Serial.println ("Initialisering gjort");
Serial.println ("============================================= ================= ");
}

void loop () {
// Endre status Relé ON / OFF
for (int i = 0; i <4; i ++) {
digitalWrite (Relay [i], StatRelay [i]);
}

// Hvis det er inndata fra SIM800
if (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Lagre alle dataene på lastCharRead, så hvis det er r eller n, som et endelig signal om innkommende melding
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);

// Hvis den siste meldingen + CMT indikerer at ny melding kommer
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = sant;
} annet hvis (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Funksjon av relékontroller

// Relé 1-kontroller

if (lastLine.indexOf ("Relé 1 ON")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 1 Status Active");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}

annet hvis (lastLine.indexOf ("Relé 1 OFF")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 1 Status Off");
gprs.sendSMS (buffNumber, "Relay 1 Status Off");
}

// Relé 2-kontroller

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

// Relé 3-kontroller
if (lastLine.indexOf ("Relé 3 ON")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 3 Status Active");
gprs.sendSMS (buffNumber, "Relay 3 Status Active");
}
annet hvis (lastLine.indexOf ("Relé 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 3 Status Off");
gprs.sendSMS (buffNumber, "Relay 3 Status Off");
}

// Relé 4-kontroller
if (lastLine.indexOf ("Relé 4 ON")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 4 Status Active");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}
annet hvis (lastLine.indexOf ("Relé 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 4 Status Off");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = falsk;
}

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

}
// Tøm char array for neste linje av lest
for (int i = 0; i 


Enhetssjekk


SIM800L-basert SMS-kontroller


Verktøyet fungerer ved å sende SMS til SIM800L med en bestemt sekvens av tegn. For å aktivere stafett 1, bruker du for eksempel kommandoen “Relé 1 ON”, og for å slå den av, bruk kommandoen “Relay 1 OFF”. Resten av stafettene har nesten de samme kommandoene, med unntak av serienummeret til hvert stafett som du vil handle på. Etter å ha sendt en melding automatisk, vil SIM800 sende et svar i form av en statusmelding for hvert SIM-kort.

Videoenhet, konfigurasjon og verifisering av enheter



Gå tilbake
Kommentarer (4)
  1. qeeeq
    #1 qeeeq gjester 26. august 2017 23:50
    0
    Wow! Som de sier, alt genialt er enkelt. Jeg trengte ikke engang å kjøpe noe, sannsynligvis til hvert slikt søppel hjemme i bulk
  2. Alexey
    #2 Alexey gjester 16. desember 2017 16:53
    0
    Det ordner seg ikke. Ved sammenstilling skriver den "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:" Arduino / Genuino Uno "
    1. Denis
      #3 Denis gjester 17. desember 2017 08:11
      0
      Du må bruke en bane uten russiske bokstaver til prosjektet.
  3. Andrew
    #4 Andrew gjester 10. februar 2019 11:54
    0
    Det er mange feil i skissen. Vil ikke fungere.