DIY gør det selv
Master klasser, instruktioner, nyttige tip, opskrifter.
» » »SMS-controller baseret på SIM800L
SIM800L-baseret SMS-controller

SIM800L V2.0 GSM / GPRS er et quad-bånd GSM / GPRS-modul, der er kompatibelt med Arduino. Modulet bruges til at implementere funktionerne i GSM (opkald og SMS) og GPRS. Fordelen ved dette modul er TTL-interface med en spænding på 5V, som giver dig mulighed for direkte at forbinde det til en Arduino eller ethvert andet system med en 5V strømforsyning. De fleste GSM / GPRS-moduler på markedet kræver regulatorforbindelser eller niveaukonvertering, mens GSM / GPRS i SIM800L V.2 ikke kræver yderligere konverteringskredsløb til interfaceniveau.

Her er et eksempel på et projekt, der bruger SIM800L V.2 GSM / GPRS. Betydningen af ​​projektet er at styre switchene ved hjælp af SMS-controller. Du kan let tænde og slukke for de fleste husholdningsapparater i huset, såsom en lama, en ventilator og så videre.

Egenskaber ved SIM800L V.2 GSM / GPRS-modulet


Nedenfor er alle de tekniske specifikationer for SIM800L V.2 GSM / GPRS-modulet:
  • TTL seriel grænseflade kompatibel med 3.3V og 5V mikrokontrollere kompatible med Arduino
  • SIM800L-modulet har en seriel TTL-interface.
  • Antennestik
  • Netværkssupport: fire bånd 850/900/1800/1900 MHz, der er i stand til at foretage opkald, SMS og dataoverførsel med markant reduceret batteriforbrug.
  • VDD TTL UART-interface, så du kan direkte tilslutte en MCU såsom 51MCU, ARM eller MSP430. VDD-stik bruges til at matche TTL-spænding.
  • Model: SIMCOM SIM800L
  • Arbejdsspænding: fra 3,7V til 5V;
  • dimensioner: 40 mm x 28 mm x 3 mm
  • GPRS multislot klasse 12/10
  • GPRS Batch-serviceklasse B
  • Svarer til GSM fase 2/2 +
  • Klasse 4 (2 watt @ 850/900 MHz)
  • Klasse 1 (1 Wat @ 1800/1900 MHz)


Nødvendige materialer


SIM800L-baseret SMS-controller


Du har brug for:


1. .
2. .
3. .
4. .
5. .
(Aktive links til butikken til køb)

Montering og konfiguration


SIM800L-baseret SMS-controller


Når du har tilsluttet alle komponenterne, skal du oprette et program og derefter downloade det til din Arduino. Men først skal du installere GPRS-biblioteket, som du kan downloade:

[28.02 Kb] (downloads: 481)


Programkode til Arduino


SIM800L-baseret SMS-controller


Når du har tilsluttet dit SIM800L, 4-kanals relæmodul og Arduino til din computer, skal du indtaste koden herunder, og du er færdig.


#include
#include
#definér TIMEOUT 5000
#definer AKTIV LAV
#definer OFF HIGH

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

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

Serial.begin (9600);
mens (! seriel);
Serial.println ("Aktivér SIM800L V2 >>> automatisk læst SMS");
gprs.preInit ();
forsinkelse (1000);
mens (0! = gprs.init ()) {
forsinkelse (1000);
Serial.print ("init errorrn");
}

// Administrer meddelelse til tilstand ASCII
hvis (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {
FEJL ("FEJL: CNMI");
vende tilbage;
}
// Læs indgående SMS
hvis (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
FEJL ("FEJL: CNMI");
vende tilbage;
}
int pjg = svarNummer.længde () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Send svar til nummer =>");
Serial.println (buffNumber);
Serial.println ("Initialisering udført");
Serial.println ("============================================= ================= ");
}

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

// Hvis der er inputdata fra SIM800
hvis (gprs.serialSIM800.available ()) {
char lastCharRead = gprs.serialSIM800.read ();

// Gem alle data på lastCharRead, så hvis der er r eller n, som et endeligt signal på den indgående meddelelse
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String (currentLine);

// Hvis den sidste meddelelse + CMT indikerer, at ny meddelelse ankommer
if (lastLine.startsWith ("+ CMT:")) {
Serial.println (lastLine);
nextLineIsMessage = sandt;
} andet hvis (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);

// ================================================= ================== >> Funktion af relæcontroller

// Relæ 1-controller

if (lastLine.indexOf ("Relæ 1 TIL")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relæ 1 status aktiv");
gprs.sendSMS (buffNumber, "Relæ 1 status aktiv");
}

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

// Relæ 2-controller

if (lastLine.indexOf ("Relæ 2 TIL")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 2 Status Aktiv");
gprs.sendSMS (buffNumber, "Relay 2 Status Aktiv");
}
ellers hvis (lastLine.indexOf ("Relay 2 OFF")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 2 Status Fra");
gprs.sendSMS (buffNumber, "Relay 2 Status Fra");
}

// Relæ 3-controller
if (lastLine.indexOf ("Relæ 3 TIL")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 3 Status Aktiv");
gprs.sendSMS (buffNumber, "Relay 3 Status Active");
}
ellers hvis (lastLine.indexOf ("Relay 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 3 Status Fra");
gprs.sendSMS (buffNumber, "Relay 3 Status Fra");
}

// Relæ 4-controller
if (lastLine.indexOf ("Relæ 4 TIL")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 4 Status Active");
gprs.sendSMS (buffNumber, "Relæ 1 status aktiv");
}
ellers hvis (lastLine.indexOf ("Relay 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 4 Status Off");
gprs.sendSMS (buffNumber, "Relay 4 Status Fra");
}
nextLineIsMessage = falsk;
}

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

}
// Ryd char array for næste læse linje
for (int i = 0; i 


Enhedskontrol


SIM800L-baseret SMS-controller


Værktøjet fungerer ved at sende SMS til SIM800L med en bestemt rækkefølge af tegn. For at aktivere relæ 1 skal du f.eks. Bruge kommandoen "Relæ 1 ON", og for at slå det fra, skal du bruge kommandoen "Relæ 1 FRA". Resten af ​​relæerne har næsten de samme kommandoer, med undtagelse af serienummeret på hvert relæ, som du vil handle på. Når du automatisk har sendt en meddelelse, sender SIM800 et svar i form af en statusmeddelelse for hvert SIM-kort.

Video samling, konfiguration og enhedsverifikation



Gå tilbage
Kommentarer (4)
  1. qeeeq
    #1 qeeeq gæster 26. august 2017 23:50
    0
    Wow! Som de siger, alt genialt er enkelt. Jeg behøvede ikke engang at købe noget, sandsynligvis på hvert sådant skrald derimod i bulk
  2. Alexey
    #2 Alexey gæster 16. december 2017 16:53
    0
    Det fungerer ikke. Når man sammenstiller, skriver den ”Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), bestyrelse:“ Arduino / Genuino Uno ”
    1. Denis
      #3 Denis gæster 17. december 2017, 08:11
      0
      Du skal bruge en sti uden russiske bogstaver til projektet.
  3. Andrew
    #4 Andrew gæster 10. februar 2019 11:54
    0
    Der er mange fejl i skitsen. Vil ikke arbejde.