Come collegare e utilizzare un modulo GSM SIM800L con Raspberry Pi (senza batteria).
Commentiⓘ Cet article peut avoir été partiellement ou totalement traduit à l'aide d'outils automatiques. Nous nous excusons des erreurs que cela pourrait engendrer.
Il SIM800L è un modem GSM/GPRS che è ampiamente utilizzato nell'elettronica a causa del suo prezzo molto basso e della sua ampia disponibilità. È un modo conveniente per inviare SMS con un Raspberry Pi o Arduino, connettersi in 3G o implementare un GPS.
Tuttavia, è quasi impossibile trovare spiegazioni soddisfacenti circa il suo uso e soprattutto circa la sua connessione.
Quindi in questo tutorial vedremo come collegare e alimentare una SIM800L da un lampone (si noti che funziona anche per un Arduino), senza alimentazione esterna o batteria!
L'hardware necessario per collegare la SIM800L al raspberry.
Andremo nei dettagli e nelle spiegazioni più avanti in questo tutorial, ma essere consapevoli del fatto che per collegare una SIM800L a un lampone è necessario un po 'di hardware. Quindi avrai bisogno di:
- Da un modulo SIM800L.
- Un ferro da saldatura per assemblare la SIM800L se non lo è già.
- Una tavola da pane, un condensatore 5 V, 100 gradi Fahrenheit o più, un diodi 1N4007, cavi Dupont. Si potrebbe acquistare ogni articolo da solo, ma si dovrebbe effettivamente acquistare decine di condensatori e diodi solo per pagare i costi di spedizione. Quindi penso che la cosa più semplice sia prendere un kit di elettronica come questo che contiene tutto ciò che abbiamo appena menzionato.
Naturalmente, avrai anche bisogno di un lampone con raspbian installato e una scheda SIM con un abbonamento. Si noti che la scheda SIM deve essere in formato micro sim. Se il tuo è di dimensioni più piccole (nano), avrete bisogno di un adattatore.
Passiamo ora alle spiegazioni e alla pratica.
Nessun tempo o desiderio di leggere le spiegazioni? Vai direttamente alla parte "In pratica…".
Teoria, come utilizzare un SIM800L con un Raspberry Pi?
Il SIM800L è un modem. È quello che si registra con la rete del tuo operatore, ecc. Nel complesso si comporta come un telefono che si potrebbe controllare direttamente dal tuo lampone.
Per controllare la SIM800L, dal Lampone, si dovrà fornire energia alla prima e fisicamente e softwaremente collegare sia utilizzando una porta TTL, più spesso chiamato una porta o un'interfaccia seriale.
Da lì è possibile controllare la SIM800L inviando comandi hayes alla porta di serie – infatti più spesso REFERRED a come comandi AT – che sono comandi specifici per le funzioni di un modem. Ad esempio, l'invio di un SMS, l'immissione di un PIN, il controllo dello stato della rete e molto altro ancora!
In teoria, per utilizzare una SIM800L con il Raspberry Pi è quindi necessario fare in questo modo:
- Collegare il VDD SIM800L a un GPIO che fornisce alimentazione sul lampone.
- Collegare il GND SIM800L a un GPIO GND sul lampone.
- Collegare il TXD SIM800L al Raspberry RXD.
- Collegare l'RXD del lampone al TXD SIM800L.
- Inviare e ricevere dati con comandi AT sulla porta seriale.
Solo qui, tutta questa è la teoria, ma vedrete che in pratica le cose sono un po 'più complicate …
La realtà è, perché è difficile collegare un SIM800L?
Se la teoria sembra semplice, in realtà troverete un bel paio di tutorial su internet che spiegano come utilizzare la SIM800L con un lampone. Peggio ancora, troverete essenzialmente tutorial errati che, nella migliore delle ipotesi, renderà la vostra installazione completamente instabile, nel peggiore dei casi, danneggerà il vostro SIM800L.
Ma allora, come è possibile che non ci siano più risorse di qualità disponibili per un modulo così noto? Perché SIM800L è particolarmente difficile da alimentare e sensibile.
Un modulo progettato per telefoni e batterie.
Originariamente il SIM800L è stato progettato per essere utilizzato nei telefoni dai produttori. Il suo uso nell'elettronica di consumo è molto più recente e non è stato affatto considerato dal produttore.
Come risultato del suo utilizzo all'interno dei telefoni, il modulo è progettato per essere alimentato con batterie agli ioni di litio, che offrono tensioni di circa 3,6 a 3,7 volt. Questa caratteristica porrà un primo problema, perché nell'elettronica digitale di solito usiamo 3,3 volt o 5 volt, ma non 3,6 volt.
Un modulo affamato di energia.
Il secondo problema è che la SIM800L esegue operazioni radio che richiedono picchi di corrente grandi e molto puntuali. In genere le operazioni coinvolte sono la registrazione sulla rete dell'operatore, l'invio di messaggi, ecc. Se durante queste fasi il modulo non ottiene la corrente necessaria il suo comportamento diventa completamente imprevedibile, che vanno dal messaggio di errore al riavvio attraverso la perdita di rete.
Purtroppo, si scopre che le forniture in generale e le porte GPIO del Raspberry Pi in particolare hanno difficoltà a rispondere a questo tipo di picchi di consumo.
Infatti, la quantità di energia consumata è così grande e per un periodo di tempo così breve che l'utilizzo di cavi di alimentazione troppo lunghi e sottili può essere sufficiente per anomaloe il modulo! Questo è in genere il caso se si collegano diversi cavi Dupont in serie.
Siate certi, spiegheremo come risolvere questi due problemi!
In pratica, come si fa a alimentare un SIM800L direttamente da un lampone?
Così abbiamo visto che abbiamo due problemi per alimentare una SIM800L da un lampone: tensione incoerente e picchi nel consumo di energia.
In primo luogo, affronteremo il problema della tensione.
Ridurre la tensione fornita dal Raspberry Pi.
Se leggiamo la scheda tecnica, vale a parte la scheda tecnica della SIM800L, vediamo che il produttore indica una tensione di potenza di 3,4 e 4,4 volt, con una tensione ottimale di 4 volt.
Il Raspberry Pi può fornire due tensioni, 3,3 e 5 volt. Quindi dovremmo aumentare un po' la pressione sanguigna o diminuirla.
Eliminiamo la prima possibilità che è troppo complicata da attuare e guardiamo alla seconda. Siamo quindi alla ricerca di un modo affidabile, semplice e molto economico per ridurre una tensione di almeno 0,6 volt, senza diminuire l'intensità della corrente (ampers). Per fortuna, si scopre che c'è un componente elettronico che fa proprio questo, e che in aggiunta questo componente è così diffuso che assolutamente tutta l'elettronica lo sa: il diode.
I diodi sono principalmente noti per lasciare che la corrente passi in una direzione. Ma una delle loro caratteristiche è anche quella di causare un calo di tensione, che è stimato per diodi di silicio a 0,7 volt.
Quindi dobbiamo solo inserire un diode di silicio, prenderemo un 1N4007, tra i 5 volt GPIO del nostro Pi e il PIN VDD (cibo) della nostra SIM800L. E questo è tutto, abbiamo una tensione di 4,3 volt, proprio quello di cui abbiamo bisogno.
Fornire una fonte di alimentazione in grado di rispondere al consumo di picco.
Ora che abbiamo risolto il nostro problema di tensione, rimane il nostro problema di picco di consumo. Questa volta avremmo bisogno di un componente che ci permetta di "immagazzinare energia" e fornirla molto rapidamente quando la SIM800L ne ha bisogno. Ancora una volta per fortuna, esiste e si chiama condensatore!
I condensatori vengono utilizzati in molti casi, ma uno degli usi più noti è la stabilizzazione della potenza. Si caricano quando c'è troppa potenza e scarico quando c'è una carenza.
Quindi stiamo andando a inserire un condensatore elettrolitico (prenderemo almeno un 100-F 5 V, se abbiamo più in F o volt senza problemi) in parallelo ai pini VDD e GND della nostra SIM800L.
L'assemblaggio completo.
Ora che abbiamo risolto i nostri problemi, vediamo come appare la nostra modifica completa prima di testare tutto tramite SMS.
Per mantenere tutti i nostri componenti in posizione e collegarli insieme useremo una breadboard e cavi Dupont.
Quindi ecco il diagramma di connessione finale, il filo rosso va al VDD, il nero al GND.
Alcuni commenti sull'editing:
- Rendere le connessioni Raspberry spento e non collegato, collegarlo solo dopo aver controllato tutto e assicurarsi che la modifica è buona.
- Fare attenzione a collegare il condensatore il più vicino possibile ai pini SIM800L VDD e GND, idealmente come sul diagramma.
- Il condensatore è un componente polarizzato, deve essere collegato in una direzione precisa, anodo sul VDD, catodo sul GND. Il catodo è contrassegnato da una striscia bianca sul lato.
- Come il condensatore, il diodo è una componente polarizzata, ancora una volta il catodo è contrassegnato da una banda bianca.
Una volta completato l'assemblaggio, sarà possibile inserire la scheda SIM nella posizione fornita sulla SIM800L.
Prestare molta attenzione al significato, non è assolutamente intuitivo. Devi infilare i contatti laterali della carta contro il circuito, il taglio d'angolo inclinato verso l'apertura (supera un po '). Se si immette la carta capovolta si avrà un errore tipico SIM not inserted
utilizzando il modulo.
Una volta completato l'assemblaggio, accevolgi il raspberry Pi, saremo in grado di testare inviando un SMS!
Invia il tuo primo SMS dal lampone con una SIM800L.
Per finire questo tutorial, invieremo un primo SMS per verificare che tutto funzioni. Non andremo oltre l'uso della SIM800L, ma sappiamo che offre molte altre caratteristiche. Per un ulteriore utilizzo, consultare la guida ai comandi AT per la SIM800.
Per iniziare, dovrai seguire il nostro tutorial per attivare la porta della serie raspberry Pi. Una volta terminata l'attivazione della porta di serie saremo in grado di connettersi alla SIM800L tramite la porta della serie.
A tale scopo, aprire una connessione /dev/serial0
con minicom utilizzando la riga di comando seguente:
sudo minicom -b 115000 -o -D /dev/serial0
Digitare il comando AT
(spesso la prima riga non viene visualizzata quando si digita, è normale) e quindi tornare alla riga per convalidare. Dovresti avere un messaggio di risposta OK
.
Ora controlliamo che la scheda SIM sia sbloccata (il PIN viene inserito). Per fare questo digitare il comando AT+CPIN?
. Se la carta è sbloccata si dovrebbe avere una risposta:
+CPIN: READY
OK
Se hai una risposta come quella qui sotto è perché devi inserire il PIN della tua carta.
+CPIN: SIM PIN
OK
A tale scopo, utilizzare il comando AT+CPIN=0000
Sostituzione 0000
dal proprio PIN. Si dovrebbe quindi avere una risposta nel modulo:
AT+CPIN=0000
OK
+CPIN: READY
SMS Ready
Call Ready
Va tutto bene, sei connesso alla rete del tuo operatore. Tutto quello che dobbiamo fare è inviare un messaggio di testo. A tale scopo, utilizzare i comandi AT+CMGF=1
per attivare la modalità testo (ci permette di scrivere l'SMS in un formato comprensibile a un essere umano), quindi AT+CMGS="+33612345678"
Sostituzione +33612345678
dal numero a cui si desidera inviare l'SMS.
Un carattere >
apparirà, digitare il vostro sms e poi una volta che hai finito, fare Ctrl+Z
.
Alla fine si dovrebbe avere qualcosa del seguente formato:
AT+CMGF=1
OK
AT+CMGS="+33612345678"
> Mon premier SMS avec un SIM800L
+CMGS: 29
OK
Ed ecco, hai inviato il tuo primo SMS con un Raspberry Pi e un SIM800L!
Come si può vedere l'uso quotidiano direttamente con i comandi AT non è necessariamente molto pratico, ma state certi, il software esiste per semplificare la vostra vita, e ne parleremo molto presto in un altro tutorial!