SIM800L-baserad SMS-controller

Pin
Send
Share
Send


SIM800L V2.0 GSM / GPRS är en fyrbands GSM / GPRS-modul kompatibel med Arduino. Modulen används för att implementera funktionerna för GSM (samtal och SMS) och GPRS. Fördelen med denna modul är TTL-gränssnittet med en spänning på 5V, vilket gör att du direkt kan ansluta den till en Arduino eller något annat system med en 5V-strömförsörjning. De flesta GSM / GPRS-moduler på marknaden kräver regulatoranslutningar eller nivåkonvertering, medan GSM / GPRS i SIM800L V.2 inte kräver ytterligare konverteringskretsar för gränssnitt.
Här är ett exempelprojekt med SIM800L V.2 GSM / GPRS. Projektets betydelse är att styra omkopplarna med SMS-styrenheten. Du kan enkelt slå av och på de flesta hushållsapparater i huset, till exempel en lama, en fläkt och så vidare.

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


Nedan visas alla tekniska specifikationer för SIM800L V.2 GSM / GPRS-modulen:
  • TTL seriellt gränssnitt kompatibelt med 3,3V och 5V mikrokontroller kompatibelt med Arduino.
  • SIM800L-modulen har ett seriellt TTL-gränssnitt.
  • Antennkontakt
  • Nätverksstöd: fyra band 850/900/1800/1900 MHz, som kan ringa samtal, SMS och dataöverföring med betydligt reducerad batteriförbrukning.
  • VDD TTL UART-gränssnitt, så att du direkt kan ansluta en MCU som 51MCU, ARM eller MSP430. VDD-plugg som används för att matcha TTL-spänning.
  • Modell: SIMCOM SIM800L
  • Arbetsspänning: från 3,7V till 5V;
  • mått: 40 mm x 28 mm x 3 mm
  • GPRS multislot klass 12/10
  • GPRS Batch Service Class B
  • Motsvarar GSM-fas 2/2 +
  • Klass 4 (2 watt @ 850/900 MHz)
  • Klass 1 (1 Wat @ 1800/1900 MHz)

Nödvändigt material


Du behöver:


1. SIM800L V.2 GSM / GPRS-modul.
2. Arduino Uno.
3. 4-kanals 5-volt relämodul.
4. Ledningar - hoppare.
5. Strömförsörjning 5 V.
(Aktiva länkar till butiken för köp)

Montering och konfiguration


När du har anslutit alla komponenter skapar du ett program och laddar ner det till din Arduino. Men först måste du installera GPRS-biblioteket, som du kan ladda ner:
gprs.zip 28.02 Kb (nedladdningar: 509)

Programkod för Arduino


När du har anslutit din SIM800L, 4-kanals relämodul och Arduino till din dator, ange koden nedan så är du klar.
#include #include #define TIMEOUT 5000 #define ACTIVE LOW #define OFF HIGH byte Relay = {A0, A1, A2, A3}; byte StatRelay4; char buffNumber20; char currentLine500 = ""; int currentLineIndex = 0; bool nextLineIsMessage = falsk; String replyNumber = "089510863958"; GPRS gprs; tom inställning () {för (int i = 0; i >> Läser automatiskt SMS "); gprs.preInit (); fördröjning (1000); medan (0! = gprs.init ()) {fördröjning (1000); Seriell .print ("init errorrn");} // Hantera meddelande till läge ASCII om (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {FEL ("FEL: CNMI") ; return;} // Läs inkommande SMS om (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {ERROR ("ERROR: CNMI") ; return;} int pjg = replyNumber.length () + 1; buffNumberpjg; replyNumber.toCharArray (buffNumber, pjg); Serial.print ("Skicka svar till nummer =>"); Serial.println (buffNumber); Serial.println ("Initialisering klar"); Serial.println ("====================================== ========================))} void loop () {// Ändra status Relä ON / OFF för (int i = 0; i 0) {if (nextLineIsMessage) {Serial.println (lastLine); // =================================== ============================== >> Funktion för Reläkontroller // Relä 1 Controller if (lastLine.indexOf ("Relä 1 ON) ")> = 0) {StatRelay0 = Aktif; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 1 Status Active"); gprs.sendSMS (buffNumber, "Relay 1 Status Active"); } annat om (lastLine.indexOf ("Relä 1 AV")> = 0) {StatRelay0 = MATI; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 1 Status Off"); gprs.sendSMS (buffNumber, "Relay 1 Status Off"); } // Relay 2 Controller if (lastLine.indexOf ("Relay 2 ON")> = 0) {StatRelay1 = AKTIF; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 2 Status Active"); gprs.sendSMS (buffNumber, "Relay 2 Status Active"); } annat om (lastLine.indexOf ("Relä 2 AV")> = 0) {StatRelay1 = MATI; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 2 Status Off"); gprs.sendSMS (buffNumber, "Relay 2 Status Off"); } // Relä 3 Controller if (lastLine.indexOf ("Relä 3 ON")> = 0) {StatRelay2 = AKTIF; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 3 Status Active"); gprs.sendSMS (buffNumber, "Relay 3 Status Active"); } annat om (lastLine.indexOf ("Relä 3 AV")> = 0) {StatRelay2 = MATI; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 3 Status Off"); gprs.sendSMS (buffNumber, "Relay 3 Status Off"); } // Relay 4 Controller if (lastLine.indexOf ("Relay 4 ON")> = 0) {StatRelay3 = AKTIF; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 4 Status Active"); gprs.sendSMS (buffNumber, "Relay 1 Status Active"); } annars om (lastLine.indexOf ("Relä 4 AV")> = 0) {StatRelay3 = MATI; Serial.print ("Svar ==== >>>>"); Serial.println ("Relay 4 Status Off"); gprs.sendSMS (buffNumber, "Relay 4 Status Off"); } nextLineIsMessage = falsk; } // ================================================ =================== >>} // Rensa char-array för nästa rad för läsning för (int i = 0; i <sizeof (currentLine); ++ i) {currentLinei = (char) 0; } currentLineIndex = 0; } annat {currentLinecurcurrentLineIndex ++ = lastCharRead; }}}

Enhetskontroll


Verktyget fungerar genom att skicka SMS till SIM800L med en specifik sekvens av tecken. Till exempel, för att aktivera relä 1, använd kommandot "Relä 1 PÅ", och för att stänga av det, använd kommandot "Relä 1 AV". Resten av reläerna har nästan samma kommandon, med undantag för serienumret för varje relä som du vill agera på. När du automatiskt har skickat ett meddelande skickar SIM800 ett svar i form av ett statusmeddelande för varje SIM-kort.

Videomontering, konfiguration och verifiering av enheter



Originalartikel på engelska

Pin
Send
Share
Send