Gör det själv
Life hacks, mästarklasser, användbara tips, recept.
Hem » Elektronik » Elektronik från Kina » SMS-kontroller baserad på SIM800L
SMS-kontroller baserad på SIM800L

SIM800L V2.0 GSM/GPRS är en fyrbands GSM/GPRS-modul kompatibel med Arduino. Modulen används för att implementera GSM (samtal och SMS) och GPRS-funktioner. Fördelen med denna modul är TTL-gränssnittet, som har en spänning på 5V, vilket gör att du kan ansluta den direkt till Arduino eller något annat system med en 5V matningsspänning. De flesta GSM/GPRS-moduler på marknaden kräver regulatoranslutningar eller nivåkonvertering, medan GSM/GPRS i SIM800L V.2 inte kräver ytterligare gränssnittsnivåkonverteringskretsar.

Låt oss ge ett exempel på ett projekt som använder SIM800L V.2 GSM/GPRS. Poängen med projektet är att styra switchar med en SMS-styrenhet. Du kan enkelt sätta på och stänga av de flesta hushållsapparater i huset, som ett lamadjur, en fläkt och så vidare.

Egenskaper för SIM800L V.2 GSM/GPRS-modulen


Nedan är alla tekniska egenskaper hos SIM800L V.2 GSM/GPRS-modulen:
  • TTL seriellt gränssnitt kompatibelt med 3,3V och 5V Arduino-kompatibla mikrokontroller.
  • SIM800L-modulen har ett TTL seriellt gränssnitt.
  • Antennanslutningskontakt.
  • Nätverksstöd: fyra band 850/900/1800/1900 MHz, kapabel att ringa samtal, SMS och dataöverföringar med avsevärt reducerad batteriförbrukning.
  • VDD TTL UART-gränssnitt, så att du kan ansluta MCU direkt som 51MCU, ARM eller MSP430.VDD-kontakten används för att matcha TTL-spänningen.
  • Modell: SIMCOM SIM800L
  • Driftspänning: från 3,7V till 5V;
  • mått: 40mm x 28mm x 3mm
  • GPRS multislot klass 12/10
  • GPRS-pakettjänst klass B
  • Överensstämmer med GSM fas 2/2+
  • Klass 4 (2 Watt @ 850/900 MHz)
  • Klass 1 (1 Watt @ 1800/1900MHz)


Nödvändigt material


SMS-kontroller baserad på SIM800L


Du kommer att behöva:


1. SIM800L V.2 GSM/GPRS-modul.
2. Arduino Uno.
3. 4-kanals 5V relämodul.
4. Trådar - byglar.
5. Strömförsörjning 5V.
(Länkar aktiva till butiken för köp)

Montering och konfiguration


SMS-kontroller baserad på SIM800L


När du har anslutit alla komponenter, skapa ett program och ladda sedan upp det till din Arduino. Men först måste du installera GPRS-biblioteket, som du kan ladda ner:

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


Programkod för Arduino


SMS-kontroller baserad på SIM800L


När du har anslutit din SIM800L, 4-kanals relämodul och Arduino till din dator, skriv in koden nedan och du är klar.


#omfatta 
#omfatta
#define TIMEOUT 5000
#define ACTIVE LOW
#define AV HÖG

byte Relä[] = {A0,A1,A2,A3};
byte StatRelay[4];
röding buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
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("Aktivera SIM800L V2 >>> Läs SMS automatiskt");
gprs.preInit();
fördröjning(1000);
while (0 != gprs.init()) {
fördröjning(1000);
Serial.print("init errorrn");
}

// Hantera meddelande till läge ASCII
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {
ERROR("FEL:CNMI");
lämna tillbaka;
}
// Läs inkommande SMS
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
ERROR("FEL:CNMI");
lämna tillbaka;
}
int pjg = replyNumber.length() + 1;
buffNumber[pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print("Skicka svar till nummer => ");
Serial.println(buffNumber);
Serial.println("Initiering klar");
Serial.println("============================================== =================================");
}

void loop() {
// Ändra status Relä PÅ / AV
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}

// Om det finns indata från SIM800
if (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();

// Spara all data på lastCharRead, sedan om det finns r eller n, som en slutsignal för inkommande meddelande
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String(currentLine);

// Om det sista meddelandet +CMT indikerar kommer nytt meddelande
if (lastLine.startsWith("+CMT:")) {
Serial.println(lastline);
nextLineIsMessage = sant;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(lastline);

// ================================================ ==== =================>> Funktion för reläkontroller

//Relay 1 Controller

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

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

//Relay 2 Controller

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

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

//Relay 4 Controller
if (lastLine.indexOf("Relay 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Svara====>>>> ");
Serial.println("Relä 4 status aktiv");
gprs.sendSMS(buffNumber, "Relä 1 Status Aktiv");
}
else if (lastLine.indexOf("Relay 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Svara====>>>> ");
Serial.println("Relä 4 Status Av");
gprs.sendSMS(buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}

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

}
//Rensa char array för nästa rad av läsning
for ( int i = 0; i < sizeof(currentLine); ++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
}
annat {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Enhetskontroll


SMS-kontroller baserad på SIM800L


Verktyget fungerar genom att skicka ett SMS till SIM800L med en specifik teckensekvens. Till exempel, för att slå på relä 1, använd kommandot "Relay 1 ON" och för att stänga av det, använd kommandot "Relay 1 OFF". För de återstående reläerna är kommandona nästan desamma, förutom sekvensnumret för varje relä som du vill påverka. Efter att ha skickat meddelandet automatiskt kommer SIM800 att skicka ett svar i form av ett meddelande om status för varje SIM-kort.

Video av montering, konfiguration och testning av enheten



Originalartikel på engelska
Kommentar
  • flugaleendeskrattanderodnasmileyavslappnad avslappnadflin
    hjärtögonkyssande hjärtakyssa stängda ögonspoladelättadnöjdflin
    blinkningstuck_out_tungue_winking_eyestuck_out_tongue_closed_eyesflinandekyssarstuck_out_tonguesovande
    oroligrynkar pannanplågadöppen mungrimaserandeförvirradtystnad
    uttryckslösinte roadsvett_lesvettasbesviken_lättadtröttapassiv
    besvikenförvirradräddkallsvetthålla utgråtasnyfta
    glädjeförvånadskrikatrött_ansikteargrasatriumf
    sömnigmumsmasksolglasögonyr i ansiktetimpleende_imp
    neutralt_ansikteno_mouthoskyldig
3+tre=
Kommentarer (4)
  1. qeeeq
    #1 qeeeq Gäster 26 augusti 2017 23:50
    0
    Wow! Som de säger, allt genialt är enkelt. Jag behövde inte ens köpa något, förmodligen har alla en hög med sådant skräp hemma
  2. Alexei
    #2 Alexei Gäster 16 december 2017 16:53
    0
    Fungerar inte. Vid 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 Gäster 17 december 2017 08:11
      0
      Du måste använda en sökväg utan ryska bokstäver till projektet.
  3. Andrey
    #4 Andrey Gäster 10 februari 2019 11:54
    2
    Det finns många fel i skissen. Det kommer inte att fungera.

DIY hylsnyckel

Salta aromatiskt ister hemma

Påsktårta | Gör det själv

En metod för att lära sig att svetsa utan att förbruka elektroder med egna händer

«Gör det själv - med dina egna händer» - en sida med intressanta hemgjorda produkter gjorda av skrotmaterial och föremål hemma. Steg-för-steg mästarklasser med foton och beskrivningar, teknologier, life hacks - allt en riktig mästare eller bara en hantverkare behöver för handarbete. Hantverk av vilken komplexitet som helst, ett stort urval av vägbeskrivningar och idéer för kreativitet.

Vi rekommenderar läsning

Felkoder för tvättmaskin