SIM800L V2.0 GSM / GPRS er en firebånd GSM / GPRS-modul kompatibel med Arduino. Modulen brukes til å implementere funksjonene til GSM (samtaler og SMS) og GPRS. Fordelen med denne modulen er TTL-grensesnittet med en spenning på 5V, som lar deg koble den direkte til en Arduino eller et hvilket som helst annet system med en 5V strømforsyning. De fleste GSM / GPRS-moduler på markedet krever regulator-tilkoblinger eller nivåkonvertering, mens GSM / GPRS i SIM800L V.2 ikke krever flere konverteringskretser på grensesnittnivå.
Her er et eksempel på et prosjekt som bruker SIM800L V.2 GSM / GPRS. Meningen med prosjektet er å kontrollere bryterne ved hjelp av SMS-kontrolleren. 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 tekniske spesifikasjoner for SIM800L V.2 GSM / GPRS-modul:
- TTL seriell grensesnitt kompatibel med 3,3V og 5V mikrokontrollere kompatible med Arduino.
- SIM800L-modulen har et serielt TTL-grensesnitt.
- Antenneplugg
- Nettverksstøtte: fire bånd 850/900/1800/1900 MHz, som er i stand til å ringe, SMS og dataoverføring med betydelig redusert batteriforbruk.
- VDD TTL UART-grensesnitt, slik at du direkte kan koble til en MCU som 51MCU, ARM eller MSP430. VDD-plugg som brukes til å matche TTL-spenning.
- Modell: SIMCOM SIM800L
- Arbeidsspenning: fra 3,7V til 5V;
- dimensjoner: 40mm x 28mm x 3mm
- GPRS multislot klasse 12/10
- GPRS Batch Service Class B
- Tilsvarer GSM fase 2/2 +
- Klasse 4 (2 watt @ 850/900 MHz)
- Klasse 1 (1 Wat @ 1800/1900 MHz)
Nødvendige materialer
Du trenger:
1. .
2. .
3. .
4. .
5. .
(Aktive lenker til butikken for kjøp)
Montering og konfigurasjon
Når du har koblet til alle komponentene, lager du et program og laster det ned til Arduino. Men først må du installere GPRS-biblioteket, som du kan laste ned:
[28.02 Kb] (nedlastinger: 481)
Programkode for Arduino
Etter at du har koblet SIM800L, 4-kanals relémodul og Arduino til datamaskinen din, skriver du inn koden nedenfor og du er ferdig.
#include
#include
#definere TIMEOUT 5000
#definer AKTIV LAV
#definere AV HØYT
byte relé [] = {A0, A1, A2, A3};
byte StatRelay [4];
røye buffNumber [20];
char currentLine [500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = falsk;
String replyNumber = "089510863958";
GPRS gprs;
ugyldig oppsett () {
for (int i = 0; i <4; i ++) {
pinMode (Relay [i], OUTPUT);
digitalWrite (stafett [i], MATI);
StatRelay [i] = MATI;
}
Serial.begin (9600);
mens (! seriell);
Serial.println ("Aktiver SIM800L V2 >>> Les automatisk SMS");
gprs.preInit ();
forsinkelse (1000);
mens (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");
tilbake;
}
// Les innkommende SMS
if (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {
FEIL ("FEIL: CNMI");
tilbake;
}
int pjg = replyNumber.length () + 1;
buffNumber [pjg];
replyNumber.toCharArray (buffNumber, pjg);
Serial.print ("Send svar til nummer =>");
Serial.println (buffNumber);
Serial.println ("Initialisering gjort");
Serial.println ("============================================= ================= ");
}
void loop () {
// Endre status Relé ON / OFF
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 dataene på lastCharRead, så hvis det er r eller n, som et endelig signal om 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;
} annet hvis (lastLine.length ()> 0) {
if (nextLineIsMessage) {
Serial.println (lastLine);
// ================================================= ================== >> Funksjon av relékontroller
// Relé 1-kontroller
if (lastLine.indexOf ("Relé 1 ON")> = 0) {
StatRelay [0] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 1 Status Active");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}
annet hvis (lastLine.indexOf ("Relé 1 OFF")> = 0) {
StatRelay [0] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 1 Status Off");
gprs.sendSMS (buffNumber, "Relay 1 Status Off");
}
// Relé 2-kontroller
if (lastLine.indexOf ("Relé 2 ON")> = 0) {
StatRelay [1] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 2 Status Active");
gprs.sendSMS (buffNumber, "Relay 2 Status Active");
}
annet hvis (lastLine.indexOf ("Relé 2 OFF")> = 0) {
StatRelay [1] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 2 Status Off");
gprs.sendSMS (buffNumber, "Relay 2 Status Off");
}
// Relé 3-kontroller
if (lastLine.indexOf ("Relé 3 ON")> = 0) {
StatRelay [2] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 3 Status Active");
gprs.sendSMS (buffNumber, "Relay 3 Status Active");
}
annet hvis (lastLine.indexOf ("Relé 3 OFF")> = 0) {
StatRelay [2] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 3 Status Off");
gprs.sendSMS (buffNumber, "Relay 3 Status Off");
}
// Relé 4-kontroller
if (lastLine.indexOf ("Relé 4 ON")> = 0) {
StatRelay [3] = AKTIF;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 4 Status Active");
gprs.sendSMS (buffNumber, "Relay 1 Status Active");
}
annet hvis (lastLine.indexOf ("Relé 4 OFF")> = 0) {
StatRelay [3] = MATI;
Serial.print ("Svar ==== >>>>");
Serial.println ("Relay 4 Status Off");
gprs.sendSMS (buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = falsk;
}
// ================================================= ==================== >>
}
// Tøm char array for neste linje av lest
for (int i = 0; i
Enhetssjekk
Verktøyet fungerer ved å sende SMS til SIM800L med en bestemt sekvens av tegn. For å aktivere stafett 1, bruker du for eksempel kommandoen “Relé 1 ON”, og for å slå den av, bruk kommandoen “Relay 1 OFF”. Resten av stafettene har nesten de samme kommandoene, med unntak av serienummeret til hvert stafett som du vil handle på. Etter å ha sendt en melding automatisk, vil SIM800 sende et svar i form av en statusmelding for hvert SIM-kort.