Gør det selv
Life hacks, mesterklasser, nyttige tips, opskrifter.
hjem » Elektronik » Elektronik fra Kina » SMS-controller baseret på SIM800L
SMS-controller baseret på SIM800L

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

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

Karakteristika for SIM800L V.2 GSM/GPRS-modulet


Nedenfor er alle de tekniske karakteristika for SIM800L V.2 GSM/GPRS-modulet:
  • TTL seriel interface kompatibel med 3,3V og 5V Arduino kompatible mikrocontrollere.
  • SIM800L-modulet har en TTL seriel grænseflade.
  • Antennetilslutningsstik.
  • Netværksunderstøttelse: fire bånd 850/900/1800/1900 MHz, i stand til at foretage opkald, SMS og dataoverførsler med væsentligt reduceret batteriforbrug.
  • VDD TTL UART interface, så du direkte kan tilslutte MCU såsom 51MCU, ARM eller MSP430.VDD-stikket bruges til at matche TTL-spændingen.
  • Model: SIMCOM SIM800L
  • Driftsspænding: fra 3,7V til 5V;
  • mål: 40mm x 28mm x 3mm
  • GPRS multislot klasse 12/10
  • GPRS-pakketjeneste klasse B
  • Overholder GSM fase 2/2+
  • Klasse 4 (2 Watt @ 850/900 MHz)
  • Klasse 1 (1 Watt @ 1800/1900MHz)


Nødvendige materialer


SMS-controller baseret på SIM800L


Du skal bruge:


1. SIM800L V.2 GSM/GPRS-modul.
2. Arduino Uno.
3. 4 kanals 5V relæmodul.
4. Ledninger - jumpere.
5. Strømforsyning 5V.
(Links aktive til butikken for køb)

Montering og konfiguration


SMS-controller baseret på SIM800L


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

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


Programkode til Arduino


SMS-controller baseret på SIM800L


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


#omfatte 
#omfatte
#define TIMEOUT 5000
#define AKTIV LAV
#define FRA HØJ

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;

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 >>> Læs automatisk SMS");
gprs.preInit();
forsinkelse(1000);
while (0 != gprs.init()) {
forsinkelse(1000);
Serial.print("init errorrn");
}

// Administrer besked til tilstand ASCII
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {
FEJL("FEJL:CNMI");
Vend tilbage;
}
// Læs indgående SMS
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
FEJL("FEJL:CNMI");
Vend tilbage;
}
int pjg = replyNumber.length() + 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
if (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();

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

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

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

//Relæ 1 controller

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

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

//Relæ 2 controller

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

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

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

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

}
//Ryd char-array for næste læselinje
for ( int i = 0; i < sizeof(currentLine); ++i ) {
nuværendeLine[i] = (char)0;
}
currentLineIndex = 0;
}
andet {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Enhedstjek


SMS-controller baseret på SIM800L


Værktøjet fungerer ved at sende en SMS til SIM800L med en bestemt rækkefølge af tegn. For at tænde for relæ 1 skal du f.eks. bruge kommandoen "Relay 1 ON", og for at slukke for det, brug kommandoen "Relay 1 OFF". For de resterende relæer er kommandoerne næsten de samme, bortset fra sekvensnummeret for hvert relæ, som du ønsker at påvirke. Efter automatisk afsendelse af beskeden, sender SIM800 et svar i form af en besked om status for hvert SIM-kort.

Video af montering, konfiguration og test af enheden



Originalartikel på engelsk
kom tilbage
Kommentar
  • butterflysmilgrinerrødmesmileyafslappet afslappetsmile
    hjerteøjneKyssende hjertekysse_lukkede_øjneskylletlettettilfredsgrin
    blinkestak_ud_tunge_blinkende_øjestak_ud_tunge_lukkede_øjnegrinendekyssestak_ud_tungesover
    bekymretrynker pandenfortvivletåben mundgrimasserforvirrettysset
    udtryksløsuforskammetsved_smilsvedskuffet_lettelsetrættepassiv
    skuffetforvirretbangekoldsvedholde udskrighulke
    glædeforbløffetskrigetræt_ansigtvredraseritriumf
    søvnignammaskesolbrillersvimmel_ansigtimpsmilende_imp
    neutralt_ansigtingen_munduskyldig
3+tre=
Kommentarer (4)
  1. qeeeq
    #1 qeeeq Gæster 26. august 2017 23:50
    0
    Wow! Som de siger, er alt genialt enkelt. Jeg behøvede ikke engang at købe noget, sikkert har alle en bunke sådan noget affald derhjemme
  2. Alexei
    #2 Alexei Gæster 16. december 2017 16:53
    0
    Virker ikke. Ved kompilering står der "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"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. Andrey
    #4 Andrey Gæster 10. februar 2019 11:54
    2
    Der er mange fejl i skitsen. Det vil ikke virke.

DIY topnøgle

Saltning af aromatisk svinefedt derhjemme

påske kage | Gør det selv

En metode til at lære at svejse uden at forbruge elektroder med dine egne hænder

«Gør det selv - med dine egne hænder» - et websted med interessante hjemmelavede produkter lavet af skrotmaterialer og ting derhjemme. Trin-for-trin mesterklasser med fotos og beskrivelser, teknologier, life hacks - alt hvad en rigtig mester eller bare en håndværker har brug for til håndarbejde. Håndværk af enhver kompleksitet, et stort udvalg af retninger og ideer til kreativitet.

Vi anbefaler at læse

Vaskemaskine fejlkoder