Fallo da solo
Trucchi di vita, master class, consigli utili, ricette.
casa » Elettronica » Elettronica dalla Cina » Controller SMS basato su SIM800L
Controller SMS basato su SIM800L

SIM800L V2.0 GSM/GPRS è un modulo GSM/GPRS quad-band compatibile con Arduino. Il modulo consente di implementare le funzioni GSM (chiamate e SMS) e GPRS. Il vantaggio di questo modulo è l'interfaccia TTL, che ha una tensione di 5V, che permette di collegarlo direttamente ad Arduino o qualsiasi altro sistema con tensione di alimentazione di 5V. La maggior parte dei moduli GSM/GPRS presenti sul mercato richiedono connessioni al regolatore o conversione di livello, mentre nel SIM800L V.2 GSM/GPRS non richiede circuiti aggiuntivi di conversione di livello di interfaccia.

Diamo un esempio di progetto utilizzando SIM800L V.2 GSM/GPRS. Lo scopo del progetto è controllare gli interruttori utilizzando un controller SMS. Puoi accendere e spegnere facilmente la maggior parte degli elettrodomestici della casa, come un lama, un ventilatore e così via.

Caratteristiche del modulo SIM800L V.2 GSM/GPRS


Di seguito tutte le caratteristiche tecniche del modulo SIM800L V.2 GSM/GPRS:
  • Interfaccia seriale TTL compatibile con microcontrollori compatibili Arduino da 3,3 V e 5 V.
  • Il modulo SIM800L dispone di un'interfaccia seriale TTL.
  • Spina di collegamento dell'antenna.
  • Supporto di rete: quattro bande 850/900/1800/1900 MHz, in grado di effettuare chiamate, SMS e trasferimenti dati con un consumo della batteria notevolmente ridotto.
  • Interfaccia VDD TTL UART, in modo da poter collegare direttamente MCU come 51MCU, ARM o MSP430.La spina VDD viene utilizzata per adattare la tensione TTL.
  • Modello: SIMCOM SIM800L
  • Tensione di funzionamento: da 3,7V a 5V;
  • dimensioni: 40 mm x 28 mm x 3 mm
  • Multislot GPRS classe 12/10
  • Servizio a pacchetto GPRS classe B
  • Conforme alla fase GSM 2/2+
  • Classe 4 (2 Watt a 850/900 MHz)
  • Classe 1 (1 Watt @ 1800/1900 MHz)


Materiali necessari


Controller SMS basato su SIM800L


Avrai bisogno:


1. Modulo GSM/GPRS SIM800L V.2.
2. ArduinoUno.
3. Modulo relè a 4 canali 5V.
4. Fili - ponticelli.
5. Alimentazione 5V.
(Link attivi allo store per l'acquisto)

Assemblaggio e configurazione


Controller SMS basato su SIM800L


Una volta collegati tutti i componenti, crea un programma e poi caricalo sul tuo Arduino. Ma prima devi installare la libreria GPRS, che puoi scaricare:

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


Codice del programma per Arduino


Controller SMS basato su SIM800L


Una volta collegato il SIM800L, il modulo relè a 4 canali e Arduino al computer, inserisci il codice seguente e il gioco è fatto.


#includere 
#includere
#define TIMEOUT 5000
#define ATTIVO BASSO
#define SPENTO ALTO

byte Relè[] = {A0,A1,A2,A3};
byteStatRelay[4];
charbuffNumero[20];
char rigacorrente[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Stringa numerorisposta = "089510863958";
GPRS;

impostazione nulla() {
for(int i=0; i < 4; i++) {
pinMode(Relè[i], USCITA);
digitalWrite(Relè[i], MATI);
StatRelay[i] = MATI;
}

Serial.begin(9600);
while(!Seriale);
Serial.println("Attiva SIM800L V2 >>> Leggi automaticamente gli SMS");
gprs.preInit();
ritardo(1000);
mentre (0!= gprs.init()) {
ritardo(1000);
Serial.print("errore di inizializzazionern");
}

// Gestisci il messaggio in modalità ASCII
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {
ERRORE("ERRORE:CNMI");
ritorno;
}
// Leggi gli SMS in arrivo
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
ERRORE("ERRORE:CNMI");
ritorno;
}
int pjg = numerorisposta.lunghezza() + 1;
buffNumero[pjg];
numerorisposta.toCharArray(buffNumero,pjg);
Serial.print("Invia risposta al numero => ");
Serial.println(buffNumero);
Serial.println("Inizializzazione completata");
Serial.println("============================================= =============== ================");
}

ciclo vuoto() {
// Cambia stato Relè ON / OFF
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}

// Se sono presenti dati di input da SIM800
se (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();

// Salva tutti i dati su lastCharRead, quindi se c'è r o n, come segnale finale del messaggio in arrivo
if (lastCharRead == 'r' || lastCharRead == 'n') {
String ultimaRiga = String(rigacorrente);

// Se l'ultimo messaggio +CMT indica l'arrivo di un nuovo messaggio
if (lastLine.startsWith("+CMT:")) {
Serial.println(ultimaRiga);
nextLineIsMessage = vero;
} altrimenti se (lastLine.length() > 0) {
se (nextLineIsMessage) {
Serial.println(ultimaRiga);

// ================================================ ==== ================>> Funzione del controller relè

//Relè 1 Controller

if (lastLine.indexOf("Relè 1 ON") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 1 attivo");
gprs.sendSMS(buffNumber, "Stato relè 1 attivo");
}

else if (lastLine.indexOf("Relè 1 OFF") >= 0) {
StatRelay[0] = MATI;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 1 disattivato");
gprs.sendSMS(buffNumber, "Stato relè 1 disattivato");
}

//Relè 2 Controller

if (lastLine.indexOf("Relè 2 ON") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 2 attivo");
gprs.sendSMS(buffNumber, "Stato relè 2 attivo");
}
else if (lastLine.indexOf("Relè 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 2 disattivato");
gprs.sendSMS(buffNumber, "Stato relè 2 disattivato");
}

//Relè 3 Controller
if (lastLine.indexOf("Relè 3 ON") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 3 attivo");
gprs.sendSMS(buffNumber, "Stato relè 3 attivo");
}
else if (lastLine.indexOf("Relè 3 OFF") >= 0) {
StatRelè[2] = MATI;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 3 disattivato");
gprs.sendSMS(buffNumber, "Stato relè 3 disattivato");
}

//Relè 4 Controller
if (lastLine.indexOf("Relè 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 4 attivo");
gprs.sendSMS(buffNumber, "Stato relè 1 attivo");
}
else if (lastLine.indexOf("Relè 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Rispondi====>>>> ");
Serial.println("Stato relè 4 disattivato");
gprs.sendSMS(buffNumber, "Stato relè 4 disattivato");
}
nextLineIsMessage = falso;
}

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

}
//Cancella l'array di caratteri per la riga di lettura successiva
for ( int i = 0; i < sizeof(currentLine); ++i ) {
currentLine[i] = (car)0;
}
indiceLineacorrente = 0;
}
altro {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


Controllo del dispositivo


Controller SMS basato su SIM800L


Lo strumento funziona inviando un SMS al SIM800L con una sequenza specifica di caratteri. Ad esempio, per attivare il relè 1, utilizzare il comando "Relè 1 ON" e per disattivarlo, utilizzare il comando "Relè 1 OFF". Per i restanti relè i comandi sono quasi gli stessi, ad eccezione del numero progressivo di ciascun relè che si desidera influenzare. Dopo aver inviato automaticamente il messaggio, SIM800 invierà una risposta sotto forma di messaggio sullo stato di ciascuna carta SIM.

Video di montaggio, configurazione e collaudo del dispositivo



Articolo originale in inglese
ritorno
Commento
  • Papillonsorrisoridendoarrossirefaccinarilassato rilassatosorridi
    cuore_occhibaciare_cuorebaciare_occhi_chiusiarrossatosollevatosoddisfattolargo sorriso
    ammiccamentobloccato_fuori_lingua_occhio_ammiccantelingua_bloccata_occhi_chiusisorridendobaciarsilingua_bloccatadormire
    preoccupatoaccigliatoangosciatobocca apertafacendo una smorfiaconfusosilenzioso
    inespressivosenza divertimentosudore_sorrisosudoredeluso_sollevatostancopassivo
    delusoconfusopaurosodolce freddoperseveraregridaresinghiozzare
    gioiastupitogridostanco_facciaarrabbiatorabbiatrionfo
    assonnatognammascheraocchiali da solevertigini_facciadiavolettosorridente_imp
    faccia_neutraniente_boccainnocente
3+tre=
Commenti (4)
  1. qeeeq
    #1 qeeeq Ospiti 26 agosto 2017 23:50
    0
    Oh! Come si suol dire, tutto ciò che è geniale è semplice. Non ho nemmeno dovuto comprare nulla, probabilmente tutti hanno un mucchio di spazzatura del genere a casa
  2. Alessio
    #2 Alessio Ospiti 16 dicembre 2017 16:53
    0
    Non funziona. Durante la compilazione, viene visualizzato il messaggio "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"Arduino/Genuino Uno"
    1. Denis
      #3 Denis Ospiti 17 dicembre 2017 08:11
      0
      È necessario utilizzare un percorso senza lettere russe per il progetto.
  3. Andrej
    #4 Andrej Ospiti 10 febbraio 2019 11:54
    2
    Ci sono molti errori nello schizzo. Non funzionerà.

Chiave a bussola fai da te

Salare il lardo aromatico a casa

Torta pasquale | Fallo da solo

Un metodo per imparare a saldare senza consumare elettrodi con le proprie mani

«Fallo da solo - con le tue mani» - un sito di interessanti prodotti fatti in casa realizzati con materiali di scarto e oggetti di casa. Corsi di perfezionamento passo passo con foto e descrizioni, tecnologie, hack di vita: tutto ciò di cui un vero maestro o semplicemente un artigiano ha bisogno per il ricamo. Artigianato di qualsiasi complessità, un'ampia selezione di indicazioni e idee per la creatività.

Consigliamo la lettura

Codici errore lavatrice