Fes-ho tu
Life hacks, classes magistrals, consells útils, receptes.
casa » Electrònica » Electrònica de la Xina » Controlador SMS basat en SIM800L
Controlador SMS basat en SIM800L

SIM800L V2.0 GSM/GPRS és un mòdul GSM/GPRS de quatre bandes compatible amb Arduino. El mòdul s'utilitza per implementar funcions GSM (trucades i SMS) i GPRS. L'avantatge d'aquest mòdul és la interfície TTL, que té una tensió de 5V, que permet connectar-lo directament a Arduino o qualsevol altre sistema amb una tensió d'alimentació de 5V. La majoria dels mòduls GSM/GPRS del mercat requereixen connexions de regulador o conversió de nivell, mentre que a SIM800L V.2 GSM/GPRS no requereix circuits de conversió de nivell d'interfície addicionals.

Donem un exemple d'un projecte que utilitza SIM800L V.2 GSM/GPRS. L'objectiu del projecte és controlar els interruptors mitjançant un controlador SMS. Podeu encendre i apagar fàcilment la majoria dels electrodomèstics de la casa, com ara una llama, un ventilador, etc.

Característiques del mòdul SIM800L V.2 GSM/GPRS


A continuació es mostren totes les característiques tècniques del mòdul SIM800L V.2 GSM/GPRS:
  • Interfície sèrie TTL compatible amb microcontroladors compatibles amb Arduino de 3,3 V i 5 V.
  • El mòdul SIM800L té una interfície sèrie TTL.
  • Endoll de connexió d'antena.
  • Suport a la xarxa: quatre bandes 850/900/1800/1900 MHz, capaços de fer trucades, SMS i transferències de dades amb un consum de bateria molt reduït.
  • Interfície VDD TTL UART, de manera que podeu connectar directament MCU com ara 51MCU, ARM o MSP430.El connector VDD s'utilitza per fer coincidir la tensió TTL.
  • Model: SIMCOM SIM800L
  • Tensió de funcionament: de 3,7 V a 5 V;
  • mides: 40mm x 28mm x 3mm
  • GPRS multislot classe 12/10
  • Servei de paquets GPRS classe B
  • Compleix amb GSM fase 2/2+
  • Classe 4 (2 watts a 850/900 MHz)
  • Classe 1 (1 watt @ 1800/1900 MHz)


Materials necessaris


Controlador SMS basat en SIM800L


Necessitareu:


1. Mòdul SIM800L V.2 GSM/GPRS.
2. Arduino Uno.
3. Mòdul de relé de 4 canals 5V.
4. Cables - ponts.
5. Alimentació 5V.
(Enllaços actius a la botiga per comprar)

Muntatge i configuració


Controlador SMS basat en SIM800L


Un cop hàgiu connectat tots els components, creeu un programa i després pengeu-lo al vostre Arduino. Però primer, heu d'instal·lar la biblioteca GPRS, que podeu descarregar:

gprs.zip [28,02 Kb] (descàrregues: 887)


Codi de programa per a Arduino


Controlador SMS basat en SIM800L


Un cop hàgiu connectat el vostre SIM800L, el mòdul de relé de 4 canals i l'Arduino al vostre ordinador, introduïu el codi següent i ja heu acabat.


#incloure 
#incloure
#definir TIMEOUT 5000
#definir ACTIVE BAIX
#definir OFF ALTA

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

void setup() {
for(int i=0; i <4; i++) {
pinMode(Relé[i], SORTIDA);
digitalWrite(Relé[i], MATI);
StatRelay[i] = MATI;
}

Serial.begin(9600);
mentre(!Serial);
Serial.println("Activa SIM800L V2 >>> Llegeix SMS automàticament");
gprs.preInit();
retard (1000);
mentre que (0 != gprs.init()) {
retard (1000);
Serial.print ("error d'inici");
}

// Gestiona el missatge al mode ASCII
si (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "D'acord", TEMPS D'EXPLICAT)) {
ERROR ("ERROR:CNMI");
tornar;
}
// Llegeix els SMS entrants
si (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "D'acord", TEMPS D'EXPLICAT)) {
ERROR ("ERROR:CNMI");
tornar;
}
int pjg = replyNumber.length() + 1;
buffNumber[pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print("Envia la resposta al número => ");
Serial.println(buffNumber);
Serial.println("Inicialització feta");
Serial.println ("================================================ =============== =================");
}

bucle buit() {
// Canvia l'estat Relé ON / OFF
for(int i=0; i <4; i++) {
digitalWrite(Relé[i], StatRelay[i]);
}

// Si hi ha dades d'entrada de SIM800
si (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();

// Desa totes les dades a lastCharRead, llavors si hi ha r o n, com a senyal final del missatge entrant
if (últimCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String(currentLine);

// Si l'últim missatge +CMT indica que arriba un missatge nou
if (lastLine.startsWith("+CMT:")) {
Serial.println (última línia);
nextLineIsMessage = cert;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println (última línia);

// =================================================== ==== ================>> Funció del controlador de relé

//Relé 1 Controlador

if (lastLine.indexOf("Relé 1 ON") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 1 actiu");
gprs.sendSMS(buffNumber, "Estat del relé 1 actiu");
}

else if (lastLine.indexOf("Relé 1 OFF") >= 0) {
StatRelay[0] = MATI;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 1 desactivat");
gprs.sendSMS(buffNumber, "Estat del relé 1 desactivat");
}

//Controlador de relé 2

if (lastLine.indexOf("Relé 2 ON") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 2 actiu");
gprs.sendSMS(buffNumber, "Estat actiu del relé 2");
}
else if (lastLine.indexOf("Relé 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 2 desactivat");
gprs.sendSMS(buffNumber, "Estat del relé 2 desactivat");
}

//Controlador de relé 3
if (lastLine.indexOf("Relé 3 ON") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 3 actiu");
gprs.sendSMS(buffNumber, "Estat del relé 3 actiu");
}
else if (lastLine.indexOf("Relé 3 OFF") >= 0) {
StatRelay[2] = MATI;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 3 desactivat");
gprs.sendSMS(buffNumber, "Estat del relé 3 desactivat");
}

//Controlador de relé 4
if (lastLine.indexOf("Relé 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 4 actiu");
gprs.sendSMS(buffNumber, "Estat del relé 1 actiu");
}
else if (lastLine.indexOf("Relé 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Resposta====>>>> ");
Serial.println("Estat del relé 4 desactivat");
gprs.sendSMS(buffNumber, "Estat del relé 4 desactivat");
}
nextLineIsMessage = fals;
}

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

}
//Esborra la matriu de caràcters per a la següent línia de lectura
for ( int i = 0; i < sizeof (currentLine); ++i ) {
currentLine[i] = (car)0;
}
currentLineIndex = 0;
}
altrament {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Comprovació del dispositiu


Controlador SMS basat en SIM800L


L'eina funciona enviant un SMS al SIM800L amb una seqüència específica de caràcters. Per exemple, per activar el relé 1, utilitzeu l'ordre "Relé 1 ON" i per desactivar-lo, utilitzeu l'ordre "Relé 1 OFF". Per a la resta de relés, les ordres són gairebé les mateixes, excepte el número de seqüència de cada relé en què voleu influir. Després d'enviar el missatge automàticament, SIM800 enviarà una resposta en forma de missatge sobre l'estat de cada targeta SIM.

Vídeo de muntatge, configuració i prova del dispositiu



Article original en anglès
Torna
Comenta
  • corbatísomriurerientruborsomrientrelaxat relaxatsomriure
    cor_ullscor_petonantbesant_els_ulls_tancatsenrojecidaalleujatsatisfetsomriure
    fer l'ulletla llengua_tallada_fora_l'ullllença_fora_els_ulls_tancatssomrientbesantllengua_talladadorment
    preocupatarrugant el frontangoixatboca_obertafent ganyotesconfóscallat
    sense expressiósense gràciasuor_somriuresuardecebut_alleujatcansatpassiu
    decebutconfóstemoróssuor fredaperseverarplorarplorar
    alegriasorprèscridarcara_cansadaenfadatràbiatriomf
    endormiscatñammàscaraulleres de solcara_vertidaimpsomrient_imp
    cara_neutrano_bocainnocent
3+tres=
Comentaris (4)
  1. qeeeq
    #1 qeeeq Convidats 26 d'agost de 2017 23:50
    0
    Vaja! Com diuen, tot enginyós és senzill. Ni tan sols vaig haver de comprar res, probablement tothom té un munt d'escombraries a casa
  2. Alexei
    #2 Alexei Convidats 16 de desembre de 2017 16:53
    0
    No funciona. Quan es compila, diu "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"Arduino/Genuino Uno"
    1. Denis
      #3 Denis Convidats 17 de desembre de 2017 08:11
      0
      Heu d'utilitzar un camí sense lletres russes al projecte.
  3. Andrei
    #4 Andrei Convidats 10 de febrer de 2019 11:54
    2
    Hi ha molts errors en l'esbós. No funcionarà.

Clau d'endoll de bricolatge

Salar llard aromàtic a casa

pastís de Pasqua | Fes-ho tu

Un mètode per aprendre a soldar sense consumir elèctrodes amb les teves pròpies mans

«Fes-ho tu mateix, amb les teves pròpies mans» - un lloc de productes casolans interessants fets amb materials de ferralla i articles a casa. Classes magistrals pas a pas amb fotos i descripcions, tecnologies, trucs de la vida: tot el que un veritable mestre o només un artesà necessita per a la costura. Manualitats de qualsevol complexitat, una gran selecció d'orientacions i idees per a la creativitat.

Recomanem la lectura

Codis d'error de la rentadora