Buongiorno,
ho acquistato un modulo SIM 800 L per inviare e ricevere sms. Prima di acquistarlo ho dato un' occhiata su internet ed ho notato che sembrava semplice da usare.
Ad esempio, ho visitato questa pagina:
Però una volta ricevuto il SIM800L mi sono reso conto che i valori delle Resistenze erano tutti sballati, in qualche modo ho ridotto la tensione a 4,2volt e adesso, quanto meno, s accende. Gli sketch d esempio non funzionano, provo ad inviare comandi tipo AT+CPIN? e delle volte mi da READY, altre volte ERROR. quindi non sono neanche sicuro, a questo punto, che la circuiteria da me realizzata sia davvero funzionale. Qualcuno di voi ha una guida, o esiste una libreria decente, o mi può dare una mano passo-passo?
Grazie mille
a buon rendere
All inizio con un partitore, come mostrato sullo schema alla pagina che ho linkato. quando ho visto che non andava e il led non si accendeva, ho usato questo schema:
con una batteria da 3,7v.
Domande: in ogni caso Arduino eroga 5volt, cosi facendo non brucio l ingresso del TX o RX dato che mando 5v?
il led lampeggia all infitino11 e 13 volte, la scheda è inserita correttamente.
ma credo che il mio modulo sia malfunzionate perché (confermatemi o smentitemi)
col tester, suona corto circuito se testo (a modulo spento) il Segnale dell' antenna (quel ferrino microscopico) con la Massa
il led rosso non smette mai di lampeggiare
se collego il Reset al BJT come nello schema, non lampeggia neanche, credo non si avvii proprio, è come se si resettasse anche senza segnale logico 1 erogato dal pin2 dell Arduino.
In ogni caso, mettiamo che funzioni (a patto che scollego il RST).
seguendo lo script della pagina che vi ho linkato, e mandando direttamente i comandi via seriale, ecco le risposte ottenute (la sim inserita è una Tim e la ricezione è alta, se la provo con un cellulare):
AT
OK
Call Ready
SMS Ready
AT+CPIN?
+CPIN: READY
OK
SMS Ready
AT+CREG?
+CREG: 0,2
OK
SMS Ready
ATk
AT+CREG?
+CREG: 0,2
OK
AT+CFUN=1
OK
AT+CREG?
ÿ [già da questa risposta mi viene da credere che sia BRUCIATO]
AT+COPS=?
+COPS: (1,"TELECOM ITALIA MOBILE","TIM","22201"),(3,"Wind Telecom SpA","I WIND","22288"),(3,"vodafone","voda IT","22210"),,(0-4),(0-2)
OK
AT+CMGF=1
OK
AT+CMGS="+39numero del destinatario" [ho provato con e senza \ ]
ERROR
Quindi i casi sono due:
o il modulo va inizializzato agganciandolo alla rete italiana, non ho idea, insomma magari non va in rete perché non sa quale rete scegliere..sto brancolando nel buio..
o è dannatamente bruciato.
Considerate che mentre io digitavo questi comandi, il led rosso lampeggiava a blocchi da 11, 13 oppure 9.
Io potrei anche comprarne un altro, ma siccome non mi va di bruciarlo di nuovo, vorrei sapere da voi che l avete usato, quale schema elettrico avete seguito (cosi, quanto meno non faccio danni sul nuovo!) e poi quali comandi esatti voi usate per inviare un semplice sms.
Grazie a tutti
PS: ho letto in un altro forum in inglese che il modulo NECESSITA di 2ampere per collegarsi alla rete. L ho presa per una bufala, non è mica un martello pneumatico, non può consumare così tanto. confermate?
Il Led deve fare un lampeggio ogni 3 secondi, altrimenti non è agganciato alla cella
Funziona sulla rete italiana e anche con TIM.
al comando AT+CREG?
deve rispondere con
+CREG: 0,1
a te dà +CREG;: 0,X ( per X vedere la seguente tabella )
0 Not registered, MT is not currently searching a new operator to register to
1 Registered, home network
2 Not registered, but MT is currently searching a new operator to register to
3 Registration denied
4 Unknown
5 Registered, roaming
Quindi o è la SIM montata male ( ma dici di no ) o più probabilmente è codesta specie di antennina.
Personalmente, quando provavo la Schedina non sono ma iriusicto a farla funzionare se non con un antenna del genere
(1,"TELECOM ITALIA MOBILE","TIM","22201"),(3,"Wind Telecom SpA","I WIND","22288"),(3,"vodafone","voda IT","22210"),,(0-4),(0-2)
mentre quando digito +CREG: mi esce fuori 0,2
Tenta di agganciarsi ma non si aggancia. ho letto sul datasheet che si può anche agganciare manualmente, proprio per questo ho provato con AT+COPS=1,0,"vodafone" ma niente, o da errore o in pratica continua a non agganciarsi.
Nella paura che sia il modulo danneggiato, io potrei anche comprarne un altro, ma vorrei sapere da chi l ha già usato (non mi fido più dei vari tutorial, hanno schemi elettrici completamente diversi): come l hai collegato? quale script hai usato per inviare un normale sms? hai aggiunto una Libreria oppure con i comandi "diretti" come i miei?
Qualche dritta, tutto qui.
Grazie
PS: puoi testare se nel tuo, il tester suona MASSA tra il Segnale dell Antenna e il Negativo? secondo me non si aggancia xké ha proprio l uscita antenna bruciata, ma non mi spiego perché allora "vede" le reti vodafone, tim, wind.
konig87:
PS: ho letto in un altro forum in inglese che il modulo NECESSITA di 2ampere per collegarsi alla rete. L ho presa per una bufala, non è mica un martello pneumatico, non può consumare così tanto. confermate?
NO, non confermiamo e, se avessi letto il datasheet, sapresti che è esatto ... nel momento della connessione (... ma NON solo), necessita di picchi di 2A e se non glie li dai NON si connette e spesso si resetta e ricomincia.
Se ne è parlato una infinità di volte qui sul forum ... magari bastava fare una piccola ricerca ... :
gpb01: NO, non confermiamo e, se avessi letto il datasheet, sapresti che è esatto ... nel momento della connessione (... ma NON solo), necessita di picchi di 2A e se non glie li dai NON si connette e spesso si resetta e ricomincia.
Se ne è parlato una infinità di volte qui sul forum ... magari bastava fare una piccola ricerca ... :
Guglielmo
e allora come mai molti tutorial su internet usano la 5v dell arduino, che non arriva di sicuro a 2amp, e (a loro dire) funziona? a questo punto sono obbligato a mettere un LM317 come regolatore di tensione ed alimentare il tutto con un buon alimentatore da 12v-3amp?
inoltre, è normale che l uscita dell antenna sia a massa?
Grazie mille!
esatto, internet è pieno di idiozie sgamabili anche "ad occhio".
Ho configurato il tutto con un LM317, siamo a 4,13volt, ho reimpostato at+cops=0 in modo che ricerchi in automatico, eppure continua a lampeggiare. Ho anche cambiato SIM.
Temo di averlo danneggiato a causa dei numerosi tentativi hardware che ho fatto (partitore all alimentazione, poi batteria..)
se qualcuno di voi ne possiede uno, per favore mi testa se il Segnale dell antenna e la Massa, con l integrato disalimentato, suonano col tester?
Inoltre, se ne dovessi acquistare un altro, qualche anima pia mi potrebbe disegnare il suo schema circuitale, così almeno sull Hardware sono sicuro?
Grazie per la disponibilità!
PS= se non ricordo male, all inizio-inizio il led dopo un po' si spegneva, ma in ogni caso non sono mai riuscito ad inviare alcun messaggio e il +CREG: era sempre: 0,2
Grazie Brunello dello schema!!!
Siccome non riesco ad agganciarmi alla rete, ho provato a scrivere AT+COPS=1,0,"vodafone", per l aggancio manuale alla rete . Questo comando viene memorizzato sulla RAM dell 800L quindi quando spengo mi ritorna di default in aggancio automatico, oppure viene memorizzato sulla ROM? vorrei ripartire dall' inizio con lo schema tuo, c è un modo per resettare un' eventuale memoria interna dell 800L e ripartire da zero?
Oggi cercherò un' antenna migliore, tipo una delle centrali d allarme (che usano guarda caso lo stesso 800L).
Cortesemente, potresti anche postarmi uno script dell 800L che usi tu e che funziona? ad esempio un invio sms con la "chiusura" del messaggio?
Così una volta trovata l antenna e incollando uno sketch funzionante, beh se continua a non volerne mi sento autorizzato a comprarne uno nuovo!
Ho fatto un po' di prove ed effettivamente si possono usare i 5V di Arduino, basta aggiungere un Diodo ( per abbassare la tensione ) e un condensatore elettrolitico di almeno 330 µF (con 220µF non partiva )
ecco uno sketch di esempio
/*
Test Sim800L
*/
#include <SoftwareSerial.h>
SoftwareSerial Myserial(10, 11);
void setup() {
// Reset del Modulo
pinMode(2, OUTPUT); // Pin collegato al Reset del modulo
digitalWrite(2, LOW); // invertire se si usa un NPN
delay(100);
digitalWrite(2, HIGH); // invertire se si usa un NPN
Serial.begin(9600); // inizializza seriale per Arduino
Myserial.begin(9600); // Inizializza SoftwareSerial
delay (1500);
Serial.println();
Serial.println("Test seriale");
Serial.println("il carattere PUNTO ESCLAMATIVO e' per fare CTRL-Z");
Serial.println("il carattere LIRA resetta il modulo");
Serial.println("il carattere DOLLARO invia un SMS");
Serial.println("il carattere PERCENTUALE legge gli SMS");
Serial.println();
delay(2000);
Myserial.write("AT\r\n");
}
void loop()
{
if (Myserial.available() > 0) Serial.write(Myserial.read());
if (Serial.available() > 0) {
bool stato = 0;
char a = Serial.read();
if (a == '!') {
a = 26; // invia codice CTRL-Z
}
else if (a == '£') {
digitalWrite(2, LOW); // invertire se si usa un NPN
delay(100);
digitalWrite(2, HIGH); // invertire se si usa un NPN
stato = 1;
}
else if (a == '
) {
invia_SMS(); // invia un SMS
stato = 1;
}
else if (a == '%') {
leggi_SMS(); // Legge gli SMS
stato = 1;
}
if (stato == 0) {
Myserial.write(a);
}
}
}
void invia_SMS() {
Myserial.print("AT+CMGF=1\r");
delay(1000);
Myserial.print("AT+CMGS="+39338xxxxxxx"\r");
delay(1000);
Myserial.println("Prova invio di un SMS" );
Myserial.println((char)26);
Myserial.println();
}
niente... lampeggia all' infinito. Ho comprato anche questo modulo seguendo questo video:
ma continua a lampeggiare all infinito. Questo addirittura non risponde ai comandi AT via seriale.
Ho alimentato con un 12v 5amp esterno.
Sto impazzendo
Ho provato con sim TIM e VODAFONE. credo siano le più affidabili, tutte e due relativamente nuove e con credito.
Non c è storia
Altre idee?
Aggiorno, e scusatemi se spammo:
adesso il led è acceso correttamente, è agganciato ma a differenza di prima quando lo interrogo mi risponde con caratteri un po' latini, un po' particolari "£)!(£%=@.
Però adesso è agganciato, perché quando faccio AT+COPS=? Tim me lo da sul 2, è agganciato, ma non posso inviare comandi di invio sms non li riceve bene perché come io ricevo male ciò che lui ha da dirmi, lui riceve male i miei comandi. credo.
ho cambiato la baudrate, ma nulla.
Help, sembra che stiamo per farcela!
si, ho provato tante combinazioni.potrebbe essere un problema di trasmissione DAL modulo VERSO arduino: lui i comandi miei li riceve, altrimenti darebbe errore di sintassi. però io ricevo male le sue risposte.
Una domanda: perché non posso utilizzare i pin 0 e 1, che su arduino sono contrassegnate come RX e TX?
I pin 0 ed 1 sono quelli usati dalla classe Serial e collegati al convertitore seriale <-> USB ... ovvero quelli che usi per fare debug ed inviare/ricevere dati verso/da monitor seriale.
NON è mai il caso di usarli dato che poi non pottresti più fare "debug" usando la seriale ... :