Gjør det selv
Life hacks, mesterklasser, nyttige tips, oppskrifter.
hjem » Elektronikk » Elektronikk fra Kina » SMS-kontroller basert på SIM800L
SMS-kontroller basert på SIM800L

SIM800L V2.0 GSM/GPRS er en quad-band GSM/GPRS-modul som er kompatibel med Arduino. Modulen brukes til å implementere GSM (samtaler og SMS) og GPRS-funksjoner. Fordelen med denne modulen er TTL-grensesnittet, som har en spenning på 5V, som lar deg koble den direkte til Arduino eller et hvilket som helst annet system med 5V forsyningsspenning. De fleste GSM/GPRS-moduler på markedet krever regulatortilkoblinger eller nivåkonvertering, mens GSM/GPRS i SIM800L V.2 ikke krever ekstra grensesnittnivåkonverteringskretser.

La oss gi et eksempel på et prosjekt som bruker SIM800L V.2 GSM/GPRS. Poenget med prosjektet er å styre brytere ved hjelp av en SMS-kontroller. 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 de tekniske egenskapene til SIM800L V.2 GSM/GPRS-modulen:
  • TTL seriell grensesnitt kompatibel med 3,3V og 5V Arduino-kompatible mikrokontrollere.
  • SIM800L-modulen har et TTL seriell grensesnitt.
  • Antennetilkoblingsplugg.
  • Nettverksstøtte: fire bånd 850/900/1800/1900 MHz, i stand til å ringe, SMS og dataoverføring med betydelig redusert batteriforbruk.
  • VDD TTL UART-grensesnitt, slik at du kan koble direkte til MCU som 51MCU, ARM eller MSP430.VDD-pluggen brukes til å matche TTL-spenningen.
  • Modell: SIMCOM SIM800L
  • Driftsspenning: fra 3,7V til 5V;
  • dimensjoner: 40mm x 28mm x 3mm
  • GPRS multislot klasse 12/10
  • GPRS-pakketjeneste klasse B
  • Samsvarer med GSM fase 2/2+
  • Klasse 4 (2 Watt @ 850/900 MHz)
  • Klasse 1 (1 Watt @ 1800/1900MHz)


Nødvendige materialer


SMS-kontroller basert på SIM800L


Du vil trenge:


1. SIM800L V.2 GSM/GPRS-modul.
2. Arduino Uno.
3. 4-kanals 5V relémodul.
4. Ledninger - jumpere.
5. Strømforsyning 5V.
(Lenker aktive til butikken for kjøp)

Montering og konfigurasjon


SMS-kontroller basert på SIM800L


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

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


Programkode for Arduino


SMS-kontroller basert på SIM800L


Når du har koblet SIM800L, 4-kanals relémodul og Arduino til datamaskinen, skriv inn koden nedenfor og du er ferdig.


#inkludere 
#inkludere
#define TIMEOUT 5000
#define AKTIV LAV
#define AV HØY

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

void setup() {
for(int i=0; i < 4; i++) {
pinMode(Relé[i], OUTPUT);
digitalWrite(Relé[i], MATI);
StatRelay[i] = MATI;
}

Serial.begin(9600);
while(!Serial);
Serial.println("Aktiver SIM800L V2 >>> Les SMS automatisk");
gprs.preInit();
forsinkelse(1000);
while (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");
komme tilbake;
}
// Les innkommende SMS
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
FEIL("FEIL:CNMI");
komme tilbake;
}
int pjg = replyNumber.length() + 1;
buffNummer[pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print("Send svar til nummer => ");
Serial.println(buffNumber);
Serial.println("Initialisering ferdig");
Serial.println("============================================== =================================");
}

void loop() {
// Endre status Relé PÅ / AV
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 data på lastCharRead, hvis det er r eller n, som et sluttsignal for 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;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(lastLine);

// ================================================ ==== =================>> Funksjon til relékontrolleren

//Relé 1-kontroller

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

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

//Relé 2-kontroller

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

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

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

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

}
//Tøm char array for neste leselinje
for ( int i = 0; i < sizeof(currentLine); ++i ) {
gjeldendeLine[i] = (char)0;
}
currentLineIndex = 0;
}
annet {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Enhetssjekk


SMS-kontroller basert på SIM800L


Verktøyet fungerer ved å sende en SMS til SIM800L med en bestemt sekvens av tegn. For å slå på relé 1, bruk for eksempel kommandoen "Relé 1 PÅ", og for å slå den av, bruk kommandoen "Relé 1 AV". For de resterende reléene er kommandoene nesten de samme, bortsett fra sekvensnummeret til hvert relé du ønsker å påvirke. Etter automatisk sending av meldingen vil SIM800 sende et svar i form av en melding om statusen til hvert SIM-kort.

Video av montering, konfigurasjon og testing av enheten



Originalartikkel på engelsk
kom tilbake
Kommentar
  • sløyfesmillerrødmesmileyavslappet avslappettåpelig flir
    hjerteøynekyssende hjertekysser_lukkede_øynespyltlettetfornøydglise
    blunkestakk_ut_tunge_blinkende_øyestakk_ut_tunge_lukkede_øynegliserkyssingstakk_ut_tungesover
    bekymretrynker pannenfortviletåpne munnengrimasererforvirretstille
    uttrykksløstuforskammetsvette_smilsvetteskuffet_lettslitenpassiv
    skuffetforvirretengsteligkaldsvetteholde utgråtehulke
    gledeoverraskethylesliten_ansiktsintraseritriumf
    søvnignammaskesolbrillersvimmel_ansiktimpsmiling_imp
    nøytralt_ansiktno_mouthuskyldig
3+tre=
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 har alle en haug med slikt søppel hjemme
  2. Alexei
    #2 Alexei Gjester 16. desember 2017 16:53
    0
    Virker ikke. Ved kompilering står det "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 sti uten russiske bokstaver til prosjektet.
  3. Andrey
    #4 Andrey Gjester 10. februar 2019 11:54
    2
    Det er mange feil i skissen. Det vil ikke fungere.

DIY pipenøkkel

Salte aromatisk smult hjemme

Påskekake | Gjør det selv

En metode for å lære å sveise uten å bruke elektroder med egne hender

«Gjør det selv - med egne hender» - et nettsted med interessante hjemmelagde produkter laget av skrapmaterialer og gjenstander hjemme. Trinn-for-trinn mesterklasser med bilder og beskrivelser, teknologier, life hacks - alt en ekte mester eller bare en håndverker trenger for håndarbeid. Håndverk av enhver kompleksitet, et stort utvalg av retninger og ideer for kreativitet.

Vi anbefaler å lese

Vaskemaskin feilkoder