Come configurare smartphone e PC. Portale informativo
  • casa
  • Recensioni
  • Esperienza con modem GSM SIM900. Controllo remoto dei dispositivi tramite SMS

Esperienza con modem GSM SIM900. Controllo remoto dei dispositivi tramite SMS

Di recente, sono apparse molte varianti diverse di schemi di dispositivi di segnalazione GSM. Se in questo schema viene utilizzato un modulo GSM, nella maggior parte dei casi si tratta di un modulo diffuso prodotto dalla società cinese SimCom SIM300. Questo modulo si è dimostrato positivo, sia in termini di affidabilità che di costo contenuto.
Viene presentata la descrizione del dispositivo di segnalazione GSM basato sul modulo SIM300, sviluppato dall'autore. Contiene anche disegni di circuiti stampati e una versione completamente funzionale del firmware del microcontrollore. Anche per questo sistema di allarme sono stati sviluppati vari moduli di espansione, telecomandi, centraline a tastiera, alimentatori...
Ma il produttore ha annunciato che dalla fine del 2010 verrà interrotta la produzione dei moduli GSM della linea SIM3xx. Si consiglia invece di utilizzare un nuovo modulo dello stesso produttore: SIM900. Inoltre, come è stato annunciato, SIM900 sarà molto più funzionale del suo "antenato" e, che è uno dei criteri più importanti per noi, sarà più economico.

Qualcosa su SIM900 ...

Quindi cos'è esattamente il modulo SIM900? Prendiamo tra le mani una scheda tecnica e proviamo a leggerla.
Il modulo SIM900 è un dispositivo GSM/GPRS quad-band operante a frequenze di 850/900/950/1900 MHz, progettato per trasmettere voce, dati, messaggi SMS, ecc.
Principali caratteristiche tecniche del modulo:
Intervallo di frequenze:
GSM850, EGSM900, DCS1800, PCS1900
insieme a Compatibile con GSM fase 2/2+.
Potenza irradiata:
classe 4 (2W / 900 MHz)
classe 1 (1W / 1800 MHz)

Controllo: Comandi AT (GSM 07.10)
Tensione di alimentazione del modulo: 3,4 - 4,5 V
Consumo di corrente:
in modalità di sospensione - 1,5 mA
in modalità di trasmissione - fino a 500 mA
massimo - 1,8 A
Temperatura di lavoro: -30 ... +80
Dimensioni: 24x24x3 mm
Il peso: 3,4 g
Come puoi vedere, questo modulo differisce nelle dimensioni dal suo predecessore, il modulo SIM3xx, di circa una volta e mezza. Ma in termini di parametri e funzionalità, è anche un ordine di grandezza superiore.


Figura 1 - Vista esterna del modulo GSM SIM900



Figura 2 - Assegnazione dei pin del modulo SIM900

L'aspetto del modulo è mostrato in Fig. 1, e l'assegnazione dei pin è in Fig. 2. Dalle figure si evince che oltre al set di interfacce standard inerente ai modelli precedenti (porte UART per scambio dati, uscita stato modulo STATUS, uscite interfaccia SIM card, ecc.), ne sono state aggiunto (uscite di connessione tastiera KBR / KBC, uscita PWM PWM, pin di reset del modulo NRESET).
A causa del fatto che questo modulo al momento della stesura di questo documento non è stato ancora completamente "testato" nella vastità dell'Ucraina, vengono costantemente apportati miglioramenti al software, sono possibili modifiche alla descrizione che non peggiorano il lavoro nel suo insieme.

Parametri di base del dispositivo

Questo dispositivo è una continuazione della linea di dispositivi di allarme GSM sviluppata dall'autore. Pertanto, i parametri sono in gran parte identici.
Monitoraggio dello stato di quattro spire di allarme (AL) in tutte le modalità di funzionamento, ad eccezione della modalità "Programmazione", e visualizzazione dello stato delle spire tramite indicatori LED posti sul pannello frontale del dispositivo (spia luminosa - "loop in normale stato", altrimenti è presente l'apertura o il cortocircuito della spira di allarme).
I loop di allarme possono includere:
> dispositivi di segnalazione a contatto magnetico (interruttori reed SMK, SOMK);
> rivelatori come "Foil", "Window";
> rivelatori d'incendio (IP-104, IP-105);
> sensori di movimento, volume, battito;
> altri sensori con uscita chiusa in stato normale e contatti aperti in caso di violazione.
La centrale supporta i seguenti tipi di zone di allarme (loop):
"Normale" (il segnale "Allarme" viene generato immediatamente alla ricezione di un segnale di violazione dell'integrità del loop di allarme, il loop non viene ripristinato dopo l'attivazione);
“Con ritardo” (l'utente ha tempo di uscire ed entrare, in modo da avere il tempo di accendere il dispositivo e uscire dalla struttura, oppure aprire la struttura e spegnere il dispositivo);
“Corridoio” (quando una zona si attiva e poi ritorna al suo stato normale, questo tipo di zona viene nuovamente inserita);
"Giorno dell'orologio, fuoco" (il circuito di allarme è costantemente inserito, il disinserimento e l'inserimento vengono eseguiti utilizzando uno speciale comando SMS);
"Giorno dell'orologio, pulsante antipanico" (il loop di allarme è costantemente inserito, il disinserimento e l'inserimento vengono eseguiti utilizzando uno speciale comando SMS, quando viene attivato il loop, viene effettuata solo una chiamata, viene inviato un messaggio SMS sul sabotaggio, la sirena non si accende);
"Disabilitato" (il sistema non reagisce a nessuna modifica all'ingresso AL).
Abilitare la modalità "Sicurezza" tramite un pulsante "nascosto" o "segreto", un interruttore "segreto" (al posto di una tastiera con contatti di chiusura, tipo "Satel"), un telecomando, un tasto TouchMemory (Dallas) o è possibile utilizzare una tastiera aggiuntiva, a seconda del firmware del controller. Il firmware qui descritto utilizza solo uno switch "segreto", altre versioni verranno discusse in seguito.
Sono supportate due modalità operative del dispositivo:
Segnalazione GSM (il terminale GSM è collegato e con esso viene effettuato lo scambio di dati);
sistema di allarme autonomo (il terminale GSM non partecipa al funzionamento del sistema, il dispositivo funziona come un sistema di allarme autonomo).
Disinserimento e inserimento tramite chiamata da apposito telefono (disabilitabile) con invio di un corrispondente SMS sullo stato del sistema.
Invio di un messaggio sms di conferma quando l'oggetto è inserito (può essere disabilitato).
Formazione del segnale di "Allarme" (accensione della sirena, trasmissione dei dati di "allarme" al telefono cellulare) in caso di violazione dell'integrità ("aperto" o "cortocircuito") di almeno una delle spire di allarme.
Invio di messaggi SMS e selezione automatica a tre numeri di telefono mobili o fissi (se l'operatore supporta le funzioni SMS).
Passare il dispositivo alla modalità "Disinserito" utilizzando solo il telecomando, la tastiera, ricevendo un messaggio SMS dal numero di cellulare 1 e (o) componendo da questo numero (può essere disabilitato), nonché un interruttore "segreto", a seconda acceso dal firmware del controller.
Possibilità di controllo remoto del dispositivo tramite l'invio di messaggi SMS di determinati contenuti (disabilitabile).
Programmazione delle principali funzioni e parametri del dispositivo (numeri di telefono, tempo di ritardo, tempo di funzionamento della sirena, ecc.) utilizzando il programma per computer Lite Programmer nella modalità "Programmazione" del dispositivo. In questo caso, l'uscita della porta COM del computer (pin RxD e TxD) è collegata al connettore corrispondente del dispositivo di allarme tramite un cavo speciale.
Il dispositivo invia un segnale specifico all'utente sulla mancanza di fondi sul conto della carta mobile.
Il dispositivo invia un certo segnale all'utente sull'assenza di un segnale di comunicazione con la stazione mobile.
Trasmissione di un segnale SMS in caso di mancanza di alimentazione (220V) in modalità "Guardia" (disattivabile).
L'uso del modem GSM integrato consente di fare a meno di blocchi e connessioni non necessari, nonché di aumentare la compatibilità e la stabilità della connessione del canale GSM.
Reazione programmata dell'uscita di potenza: attivazione dell'uscita solo in modalità "Allarme" per un tempo impostato dall'utente (da 60 a 240 secondi).
L'uso del protocollo originale per la trasmissione dei dati della radiazione infrarossa dal telecomando per controllare il dispositivo e il telecomando dell'emissione radio, nonché la codifica originale dei dati ricevuti dalla tastiera.
È possibile monitorare la tensione di rete e la tensione di batteria da parte del dispositivo, mentre in caso di mancanza e comparsa della tensione di rete vengono inviati i corrispondenti messaggi SMS. Inoltre, quando la tensione di alimentazione della sorgente di backup (batteria) scende al di sotto di un livello predeterminato (8-9V), viene inviato un messaggio, dopodiché il dispositivo passa in modalità "sleep", la cui uscita è possibile solo quando il viene ripristinata l'alimentazione (rete o batteria).
Invio di un messaggio SMS al numero di cellulare 1 alla ricezione di chiamate in arrivo, indicando il numero in arrivo (disattivabile).
Il dispositivo consente la commutazione di segnalatori acustici o luminosi esterni (campanello, sirena, lampada) con una tensione di esercizio di 12V e un consumo di corrente fino a 1,25A.
Il firmware del microcontrollore descritto in questo articolo è progettato per azionare il dispositivo insieme a un interruttore "segreto", nonché abilitare / disabilitare il dispositivo componendo e inviando messaggi SMS. Altre versioni del dispositivo saranno descritte nei seguenti materiali, se c'è, ovviamente, l'interesse del lettore.

Specifiche

Il numero di loop di allarme è 4.
Resistenza dell'elemento remoto (terminale), kOhm - 2,7.
Resistenza massima del circuito di sicurezza senza tenere conto della resistenza dell'elemento remoto, Ohm - 750.
Consumo di corrente da una sorgente di corrente continua (senza sensori di allarme attivi collegati), a una tensione di 12,6 V, nelle seguenti modalità di funzionamento, non superiore a:
- "ufficiale di servizio", senza utilizzare un modulo GSM - 0,16 A;
- "ufficiale di servizio", quando si utilizza un modulo GSM - 0,23 A;
- "sicurezza", quando si utilizza un modulo GSM - 0,28 A;
- "allarme", quando si utilizza un modulo GSM e una sirena disabilitata - 0,34 A;
- consumo di picco (impulso) - 1,8 A.
Standard GSM supportati: 850/900/1800/1900 MHz.
Limiti di impostazione del tempo:
- Tempo di ritardo ingresso - 0 ... 150 secondi;
- Tempo ritardo uscita - 0 ... 250 secondi;
- Il tempo di funzionamento della sirena è di 30 ... 250 secondi.

Descrizione del circuito

Lo schema elettrico dell'unità principale è mostrato in Fig. 3. Preciso - "l'unità principale", perché per questi sistemi di allarme è stata inoltre sviluppata una vasta gamma di periferiche: qui ci sono varie centrali, unità di espansione, ecc.
Rispetto alla versione precedente, il circuito ha subito modifiche qualitative: inoltre, come accennato in precedenza, è escluso l'uso di un altro modulo GSM, anche il relè (al suo posto viene utilizzato un IC - un set di potenti tasti a transistor), e l'unità convertitore RS232-UART è esclusa (come ha dimostrato la pratica, la programmazione non viene eseguita molto spesso e per questo utilizzano principalmente un laptop, in cui spesso la porta RS232 è semplicemente assente).



Figura 3 - Schema elettrico

L'elemento di controllo principale del dispositivo è un microcontrollore ATmega168 prodotto da Atmel. Il microcontrollore monitora gli stati delle spire di allarme collegate agli ingressi dell'ADC e, a seconda della modalità di funzionamento, esegue ulteriori azioni, come la composizione e l'invio di messaggi SMS, l'accensione della sirena, ecc.
Gli ingressi ADC PC0-PC3 sono progettati per monitorare lo stato dei loop di allarme, l'MC misura la tensione su questi terminali e, a seconda della tensione, genera un segnale "aperto", "normale" o "cortocircuito". PC5, PC6 sono alimentati con tensioni dall'uscita dell'alimentatore per controllare i loro valori. A proposito, se questi pin non sono collegati, il dispositivo non si avvia!
Il circuito utilizza i led di controllo: LED1 - controllo del modulo GSM (se c'è comunicazione e il modulo è funzionante lampeggia con frequenza di 1 lampeggio per 2-3 secondi, negli altri casi ci sono problemi di comunicazione o con il modulo stesso), LED2 - controllo del sistema ( nelle modalità di funzionamento lampeggia con una frequenza di 3-5 volte al secondo, in modalità di programmazione si accende con luce fissa). Inoltre, ai pin IND1... IND4 sono collegati i LED per il monitoraggio dello stato dei loop di segnalazione LED4… LED7. KEY_S è in realtà il pulsante "segreto" o l'interruttore stesso. SPEAKER è un connettore per il collegamento di un altoparlante, può essere di qualsiasi resistenza, la potenza non è inferiore a 0,25 W.

Informazioni sull'alimentazione del dispositivo. Questo dispositivo richiede una tensione di alimentazione nell'intervallo 10 - 18 V, con una corrente fino a 2 A. Si consiglia di costruire un alimentatore in modo tale che la tensione di alimentazione non scompaia anche in caso di interruzione della rete, cioè, fornire una batteria. Si consiglia di utilizzare l'alimentatore utilizzato nelle versioni precedenti del dispositivo descritto. Descrive anche il collegamento dell'alimentazione al dispositivo di allarme.

Programmazione delle funzioni di base del dispositivo

La programmazione delle funzioni principali del dispositivo viene eseguita utilizzando un programma speciale - Lite Programmer. L'ultima versione del programma può sempre essere scaricata dal sito web dell'autore. In linea di principio, invece di un computer per programmare il dispositivo, è possibile utilizzare un telefono cellulare collegato al dispositivo tramite una porta dati o una porta a infrarossi, ma per questo è necessario scrivere almeno una midlet java e, a causa della mancanza di tempo libero, l'autore semplicemente non ha tempo per farlo e la programmazione con un laptop va ancora bene. Se c'è chi è disposto ad affrontare questo problema - scriva all'autore via e-mail, verrà presentata tutta la documentazione.
Il dispositivo è collegato ad una porta COM libera di un computer tramite uno speciale convertitore RS232-UART, oppure ad una porta USB tramite un adattatore USB-UART. Basta non provare a connettersi direttamente, senza un adattatore (ora ci sono tali artigiani)! Questo minaccia la morte del microcontrollore o della porta del computer!
Come passare alla modalità di programmazione:
1. Premere il pulsante S1 per almeno 2 secondi e attendere che l'indicatore di stato di funzionamento del modulo 2HL1 smetta di lampeggiare (di solito non più di 10 secondi)
2. Diseccitare il dispositivo.
3. Impostare il jumper J1 portando il dispositivo in modalità “Programmazione”.
4. Collegare il cavo per collegare il dispositivo al computer.
5. Stabilire la comunicazione con il dispositivo e il programma (descritto di seguito).
6. Diseccitare il dispositivo.
7. Scollegare il cavo di collegamento al PC e rimuovere il ponticello J1.
8. La programmazione è completa, è possibile accendere l'alimentazione e utilizzare il dispositivo.
La forma principale del programma è standard, senza fronzoli e "campane e fischietti". Nella parte destra del modulo è impostato il numero della porta COM, nonché la velocità di trasmissione e ricezione dei dati (nel nostro caso - 115200 baud), per portare il dispositivo in modalità di programmazione, selezionare nel riquadro "Azione" ( nell'angolo in basso a destra) - “stabilisci connessione”, in questo caso il LED 1LED1 si accenderà con luce fissa. Puoi programmare!



Figura 4 - La forma principale del Programmatore Lite

Lavorare con il programma per un utente, almeno una volta nella vita, non presenta particolari difficoltà. Inoltre, tutto è descritto in dettaglio nelle più volte richiamate Istruzioni per l'uso e la programmazione. In breve: imposta i parametri di cui hai bisogno, assicurati che la scritta "Cambia" appaia nella terza colonna in rosso, seleziona la voce "Programmazione" nel riquadro "Azione", premi il pulsante "Esegui" e il gioco è fatto. Se il parametro è programmato, allora nella quinta colonna apparirà il messaggio “Programmato”; in caso di errori il programma visualizzerà anche un messaggio corrispondente.

Alcune sfumature di programmazione.

Particolare attenzione dovrebbe essere prestata al processo di programmazione, poiché il funzionamento del dispositivo nel suo insieme dipende da esso. Come ha dimostrato la pratica, l'errore principale viene commesso durante l'impostazione del numero del centro SMS dell'operatore di telefonia mobile. Se non conosci questo numero o non sei sicuro, allora è meglio non programmarlo affatto. In questo caso, il software del modulo GSM determinerà autonomamente il numero.
Inoltre, fai attenzione all'impostazione del numero di richiesta USSD per il saldo dei fondi, se prevedi di utilizzarlo. Inizialmente, il dispositivo è stato sviluppato per gli utenti ucraini, quindi il saldo minimo è compreso tra uno e nove rubli grivna. Sono disponibili due opzioni per la scelta di un'installazione. Il primo è selezionare l'operatore richiesto e il programma imposterà automaticamente il numero richiesto e l'importo minimo del saldo pari a due grivna. La seconda opzione è selezionare la voce TUNE USSD dal menu a discesa per la selezione dell'operatore di richiesta USSD, quindi compilare i parametri richiesti nel modulo che appare: l'importo minimo (da uno a nove rubli), il rublo -kopeck separatore (alcuni operatori utilizzano segni di separazione diversi, ad esempio punto , virgola, due punti).
Il programma finora supporta solo l'alfabeto latino quando si immettono messaggi di testo SMS, poiché questa funzione è supportata anche dal programma del microcontrollore. Attualmente, sono in corso i lavori per includere l'alfabeto cirillico.

Breve guida operativa.

Prima di installarlo nel dispositivo di allarme, dovresti "preparare" la scheda SIM in qualche modo, vale a dire: disabilitare la password. Si consiglia di utilizzare la carta SIM dello stesso operatore di telefonia mobile dei telefoni dialer nel dispositivo. Per lo meno, la probabilità di consegna degli SMS aumenterà molte volte.
Dopo l'alimentazione e l'accensione, il dispositivo emetterà un lungo beep dall'altoparlante interno, quindi verrà stabilita la comunicazione con il modulo, al termine della quale verranno emessi tre brevi beep. Il dispositivo è pronto per l'uso.
Successivamente, parleremo dell'utilizzo del dispositivo come dispositivo antifurto per edifici, ecc. Per utilizzare il dispositivo come antifurto per auto o altre funzioni, prima di tutto è necessario un altro firmware del microcontrollore, e questo esula dallo scopo di questo articolo . Questo è l'argomento delle pubblicazioni successive.
Per armare il dispositivo, chiudere l'interruttore KEY_S. A proposito, invece di questo interruttore, puoi usare qualsiasi tastiera con contatti di chiusura, ad esempio Satel SW02. Dopodiché la centrale inizierà il conteggio del tempo di uscita (il tempo viene impostato in fase di programmazione), durante il quale è necessario lasciare l'oggetto presidiato. Se allo scadere del tempo di uscita tutte le spire sono assemblate, la centrale passa in modalità armata. Nel caso in cui, allo scadere del tempo di ingresso, almeno una delle spire sia aperta o in corto, la centrale emette un suono intermittente per 100-140 secondi, viene inviato al numero 1 un messaggio di oggetto non inserito (se programmato), dopodiché si passa alla modalità sveglia con invio di tutti i messaggi e selezione. È inoltre possibile inserire la centrale componendo dal numero programmato per primo, oppure inviando un messaggio SMS con il testo “AVVIA” dallo stesso numero. Va ricordato che in questa versione del firmware non è consigliabile utilizzare l'interruttore "segreto" e le funzioni GSM insieme durante l'inserimento per escludere la loro reciproca influenza. Se usati insieme, la priorità sarà sul lato dell'interruttore, le funzioni GSM non funzioneranno!
In modalità armata, il dispositivo monitora costantemente lo stato di tutti i loop di allarme, nonché lo stato del modulo GSM. In questo caso, se il loop viene attivato, vengono inviati messaggi SMS e viene effettuata una chiamata, in accordo con la scheda di programmazione. La chiamata viene effettuata fino a quando l'abbonato non solleva il ricevitore, ma non più di otto volte. Inoltre, in modalità di sicurezza, viene monitorata l'alimentazione della rete 220V e la batteria di backup. Contemporaneamente, ad ogni mancanza di 220V e alla sua successiva comparsa, viene trasmesso il corrispondente messaggio SMS (questa funzione può essere disabilitata in fase di programmazione).
Per disinserire il dispositivo è necessario aprire l'oggetto e aprire i contatti dell'interruttore durante il tempo di uscita. In caso contrario, il dispositivo va in modalità di allarme. Oppure disinserire l'oggetto prima di aprirlo chiamando telefonicamente o inviando un messaggio SMS “STOP” dal primo numero.
In modalità standby, il dispositivo monitora anche lo stato delle spire di allarme, oltre che del modulo GSM. Se si perde la comunicazione con il modulo o la rete, vengono emessi cinque brevi segnali acustici ogni 2-4 minuti. Inoltre, ogni 30-40 minuti viene effettuato un rilevamento dello stato dell'account del numero di cellulare. In questo caso, si sentono dieci segnali sonori a breve termine ("trillo") e un messaggio SMS ("NO MONEY !!") viene inviato al numero 1.
Nella tabella sono riportati i messaggi di servizio che il dispositivo può inviare al verificarsi di determinati eventi (quando la funzione di invio è disabilitata, in fase di programmazione, questi messaggi non vengono inviati!):

SMS

Descrizione

Nota

Ferma la guardia!

Conferma disinserimento del sistema

Modalità standby

SPEGNI !!!

Malfunzionamento o assenza della tensione di rete 220V

Solo in modalità armata

Accensione

L'aspetto della tensione di rete 220V (dopo l'assenza)

TUTTI I POTERI OFF!!!

Tutte le tensioni di alimentazione sono al di sotto del normale. Dopo un po', il dispositivo entrerà in modalità di sospensione.

In tutte le modalità operative

Inizia dopo aver dormito

Riavvio del dispositivo dopo un'interruzione di corrente

SENZA SOLDI !!!

L'importo minimo dei fondi sul conto. Devi ricaricare il tuo account!

Questo dispositivo ha grandi potenzialità in termini di miglioramento e ammodernamento, può essere utilizzato non solo come allarme, ma anche come qualsiasi dispositivo di acquisizione e trasmissione dati, configurando il programma del microcontrollore per ogni caso specifico.

Conclusione

Il dispositivo descritto ha superato i test iniziali nel laboratorio dell'autore e ha mostrato buoni risultati. Il modulo SIM900 ha mostrato un funzionamento stabile durante il controllo dei comandi AT standard, non sono stati osservati reclami speciali. Presto verranno sviluppati i circuiti stampati di questo dispositivo e preparata la relativa documentazione. Una versione demo del firmware del microcontrollore è allegata a questo articolo. Una versione completamente funzionante del firmware del microcontrollore del dispositivo viene fornita gratuitamente a chiunque. Per fare ciò, è necessario inviare un'apposita richiesta all'e-mail dell'autore o tramite ICQ. Vengono inoltre prese in considerazione eventuali proposte per organizzare la produzione del dispositivo di allarme e dei dispositivi periferici descritti.
In futuro, si prevede di garantire la compatibilità del dispositivo con tutti i dispositivi periferici destinati alla versione precedente del dispositivo di allarme GSM di D. Dmitrenko. Ecco le integrazioni all'articolo per varie applicazioni private.

Tutti i firmware sono attualmente completamente funzionanti, ad eccezione dei firmware che supportano le chiavi iButton, ci sono restrizioni sul numero massimo di chiavi utilizzate, da uno a tre.

1. Utilizzo del tasto TouchMemory per controllare il dispositivo

Attualmente, il firmware del microcontrollore è stato sviluppato per funzionare con i tasti TouchMemory. Per fare ciò, è necessario integrare il dispositivo con un semplice dispositivo costituito da due resistori, una capacità e un diodo zener. E, naturalmente, usa il firmware per questo tipo di dispositivo.
Un esempio di utilizzo di un tale dispositivo è chiaramente descritto nell'articolo Segnalazione GSM tramite chiavi iButton. Nello stesso punto, sullo schema elettrico, viene mostrata la connessione di un dispositivo aggiuntivo, vengono mostrati i disegni del circuito stampato.
Il firmware può essere scaricato [cercando un dispositivo DDN Research HG45Q]


Ciao!
Qui è nato il compito di gestire una casa di campagna, monitorare la temperatura, le porte, le finestre. E poi è sorta la domanda sul mezzo di trasmissione dei dati. Bene, i fili e il canale radio scompaiono a causa del costo elevato, FOCL è solo un sogno, ma il GSM è ciò di cui hai bisogno. In primo luogo, l'occhio è caduto sui vecchi telefoni "Motorola", "Nokia", "SonyEricsson". Guardò, lo girò e cambiò idea. Innanzitutto, non volevo essere saldato ai contatti dei pulsanti e non c'era nemmeno un feedback. In secondo luogo, per gestire il software del telefono, beh, non è affatto nella cassa. In generale, nei pensieri creativi e fluttuando nella vastità del world wide web, catturando un paio di virus, è stato trovato un compromesso. E funziona con il software e senza pulsanti. Tutto questo è offerto dal modulo SIM900D... Di quanto gli piacessi.
- Il primo è la facilità di installazione. Lo vedrai più tardi. - Il secondo è la comunicazione tramite UART. (Ciò significa MK + SIM900D = comunicazione normale) - Il terzo è l'alimentazione del modulo da 3 a 4,8 volt. Hosh AVR, Hosh ARM. Gusto. Bene, i testi sono sufficienti, è ora di lavorare.
Questo modulo ha questo aspetto.

Informazioni sull'installazione. Come puoi vedere, il modulo è affilato per il montaggio in superficie. Le dimensioni dei pad di contatto sono abbastanza grandi anche per LUT. Di seguito una foto del mio dispositivo.

Come puoi vedere, niente di complicato. Ora parliamo dello schema elettrico di questo miracolo. Guardiamo il manuale. E vediamo il pinout.

Sì, ci sono molte cose, ma non le useremo tutte. La prima cosa che dobbiamo fare è legare tutti i pin "GND". Se guardi nell'angolo in alto a destra, noterai tre pin separati. Due "GND" e "ANT". Questi pin sono posizionati in questo modo per un motivo. Diamo un'occhiata alla documentazione per un'immagine della connessione dell'antenna.

I pin 59 e 61 dovrebbero essere il più vicino possibile al cavo dell'antenna. Per collegare le antenne con un cavo sono necessari circuiti aggiuntivi evidenziati da una linea tratteggiata. Pertanto, ho saldato il connettore SMA il più vicino possibile ai pin 59, 60, 61 e non mi sono preoccupato del circuito di adattamento, mentre con l'antenna su un cavo di 3 metri e al posto di una ricezione molto scarsa, ho schiacciato 13 punti dal modulo su 31. Il connettore è visibile nella foto sopra. Più precisamente, le gambe da esso)) Il connettore stesso è dall'altra parte. In questo caso, i contatti 59 e 61, per così dire, abbracciano l'antenna. Bene, qualcosa del genere. Quindi, parliamo della carta SIM. Per installarlo ho utilizzato questo connettore (SIM ICA-501-006-01-F7)

La cosa più interessante è che ho trovato 3 opzioni per il pinout delle schede SIM. Quale usare? Non introdurrò intrighi, ma per semplicità, presento il pinout di questo connettore. Vista dall'alto.

Ma non è tutto. Se guardi lo schema di connessione della carta SIM nel manuale, puoi vedere un certo microcircuito chiamato SMF05C... Questo microcircuito contiene fino a 5 diodi protettivi. Necessario per proteggere i contatti della carta SIM. Certo, non puoi metterlo, ma poi fai attenzione e non toccare i contatti con le dita !!! Essendo una persona peccatrice, non posso garantire per me stesso, quindi ho saldato il mikruhu. Ed ecco il circuito stesso.

Ovviamente è disponibile per una scheda SIM a 8 pin, ma per una scheda a 6 pin sarà lo stesso. Ci sono davvero due imboscate con questo microcircuito. Il primo è quello dove troverai il suo inferno. E il secondo è che le sue dimensioni ... Quando ho ricevuto l'ordine e l'ho messo sul tavolo ... In breve, nella seconda immagine sopra, è saldato tra la scheda SIM e la batteria. Per confronto, resistori 0805. Bene, sulla destra c'è un transistor in un pacchetto SOT-23. Quindi bene, una sorta di capito con la carta SIM, andiamo avanti. E poi illuminotecnica. In generale, questo non è per tutti. Dal momento che tutti questi segnali possono essere portati direttamente nel MK e lasciarlo capire da solo. Li ho portati tutti fuori da un senso di bellezza. Quindi decidi tu stesso.
- Il primo è il segnale se il modulo è acceso o meno (STATUS) log 1 - Il secondo è il segnale di registrazione in rete (NETLIGHT) log 1/0 (lampeggiante) Se lampeggia con la stessa frequenza significa che non ha registrato in rete Se c'è molto tempo, significa che c'è una connessione alla rete ... - Il terzo è un registro del segnale di chiamata/sms (RING) 0 Si illumina se c'è una chiamata in arrivo e lampeggia quando si riceve un messaggio SMS. I primi due segnali devono essere collegati tramite un transistor NPN in modalità chiave.

E il terzo segnale (RING) deve essere collegato tramite un transistor PNP. Un altro segnale importante è il pulsante per accendere e spegnere il modulo. (dove senza di lei). Questo è ciò che ci offre il manuale.

Cioè, il log 1 è stato applicato alla base del transistor per 1 secondo e il modulo si è acceso.
Parliamo ora di nutrizione. Sì, non mi dispiacerebbe un buon piatto da wrestling, vero? Ok, andiamo avanti. Il modulo è alimentato da una molla da 3 a 4,8 volt. Sembra che tutto sia semplice, ma non è così. Al momento di una chiamata, trasmissione sms, ricerca rete, il modulo può richiedere fino a 2A. Come. Quindi i fan di LM7805 e KRENok potrebbero essere sconvolti. Fortunatamente il manuale contiene due circuiti sui microcircuiti MIC29302 (non l'ho mai trovato in vendita) e LM2596 (questo lo potete acquistare). Ma sono pigro e non volevo raccogliere il mangime con così tante reggette. Ho curiosato su internet e l'ho trovato. C'è un ottimo stabilizzatore per processori come "Stump", "AMD" per 3,3 V e fino a 7,5 A. In, penso che sia ciò di cui hai bisogno e ARM può essere alimentato e il modulo. Ecco un diagramma di questo miracolo.

Ed ecco come appare una volta assemblato.

Ho messo il radiatore per paura, in linea di principio, il microcircuito non si riscalda nemmeno durante una chiamata. E l'ultima cosa a cui prestare attenzione è la batteria. È necessario per mantenere attivo l'orologio in tempo reale. La cosa più importante è che non puoi lasciare questa conclusione nell'aria. Personalmente, ho acconsentito a collegare la batteria, che è quello che auguro a te. Ovviamente puoi attaccare due AA)) ma in qualche modo un po 'grandi, ma sotto forma di tablet 2032 3v, è quello che ti serve. Fortunatamente non sono costosi e puoi saldare gli scomparti direttamente alla scheda. Secondo me questa è la soluzione più semplice. Tu decidi. Bene, questo è tutto. Ecco come appare tutto questo casino insieme e in condizioni di lavoro.

Nel prossimo articolo ti dirò come ho rotto questo modulo ma già a livello di codice tramite il terminale usando i comandi AT.
Disposizione dei diagrammi in PCAD-2006
Archivia con i file del modulo GSM.
Archivio con i file dell'unità di stabilizzazione.
Continuazione della serie di articoli sul modulo GSM.
Comandi AT.
Comunicazione del modulo con l'ATmega8515.
Scheda di debug basata su SIM900D


Foli 14/03/13

Vorrei saperne di più sui comandi AT, UART e lavorare direttamente con questo in CodeVision

Alessio 15/03/13

Mi occupo di comandi AT. Non voglio esporre metà del lavoro, poiché ci sono alcune domande. E con UART e CVAVR tutto è semplice. Non appena mi occuperò dei comandi AT, esporrò immediatamente quali comandi e come inviarli da CVAVR.

Anatok 04.11.13

Tutto questo è bellissimo. Ma se l'allarme funzionasse almeno a meno 30 gradi e fosse caricato con pannelli solari nascosti, soprattutto in inverno, allora ci sarebbero molte persone che vorrebbero avere un tale apparato.

Alexey 04/11/13

Il modulo GSM consuma fino a 2A quando si registra nella rete o si effettua una chiamata o una comunicazione GPRS. Per tali risorse è necessaria una buona batteria e a -30 la batteria non durerà a lungo. Anche nelle stazioni meteorologiche si consiglia di utilizzare batterie semplici sui sensori esterni.

Orsacchiotto 11/11/13

Se è ancora rilevante e interessante... dai un'occhiata a EAT per SIM900. All'interno di ARM è presente un SDK in cui è possibile scaricare applicazioni sul SIM900 da cui si possono fare molte cose... ad esempio inviare gli stessi comandi AT... + tastiera + display SPI... + 2 ADC :) Serata non noiosa :)

Orsacchiotto 11/11/13

E dopotutto, è molto bello per lui creare potenza per lui sull'L5973D. Sì, nel datasheet c'è scritto circa 2A... ma in pratica si tratta di impulsi a brevissimo termine. Funziona benissimo per me, ad esempio, con Arduino Mega, che a sua volta è alimentato dalla porta USB (che ha una corrente di 0,5 A)

Alexey 11.11.13

Questo è il trucco. Ho anche alimentato da 7805 all'inizio, tutto ha funzionato, e poi bam ... E quando è collegato alla rete, tutto si spegne, e poi va a riavviarsi. A quanto pare il cane da guardia si riavvia dopo un sequestro di cibo. E con L7953D sarà bellissimo, ma dove trovarlo e osprey costerà :) Quindi sono passato a IRU1075

Alexey 11.11.13

Mi scuso per gli errori, questo maledetto GUDROYD scolpisce schiavi per me. Pensa più intelligente. Non modificherò, lascerò che Google si vergogni del loro lavoro.

zio Misha 24/12/13

Quando mi registro nella rete atmega, riavvio. Anche se c'è un impulso dcdc. Condensatori per 200 microfarad. A volte funziona stabilmente. Ero già sfinito.

Alexey 25/12/13

Schema in studio. Dalle parole è piuttosto difficile capire il problema.

zio Misha 25/12/13
zio Misha 25/12/13

Http://ybex.com/d/tk7kgiefpklpeujb1zbl4lo5 mrkf7ayvci04ouq3.html MK è alimentato da 2.8 (anche provato 3.7) Volt, per non bloccare il convertitore di livello.

Alexey 25/12/13
sergey 19/07/14

Ciao Alessio! avete schede già pronte con sim900, posso acquistarle?

Alexey 19/07/14

In che senso sono pronti? Il modulo stesso è già stato assemblato e spetta ad un dispositivo specifico realizzare una scheda con le uscite e gli ingressi richiesti. Quello in questo articolo è solo una scheda demo per il debug dei programmi. Per un particolare dispositivo, sono richieste le dimensioni, la posizione dei connettori, le uscite per cuffie e microfono. Dove sarà il connettore dell'antenna. Fornisci informazioni più dettagliate su ciò di cui hai bisogno.

Andrey 28/09/14

A quanto ho capito, questo è un prototipo della sciarpa che non vedo l'ora. Solo nella versione commerciale era sposata con un alimentatore e nobilitata con uscite audio. Che grande ronzio.

Alexey 28/09/14

In realtà lo è. Ho appena preso alcuni piccioni con una fava. Risolto l'annoso problema con la corrispondenza di potenza e livello sull'UART. E ha aggiunto l'audio in entrata e in uscita per l'eleganza. Un cellulare davvero finito.

Andrey 28/09/14

Vorrei introdurre Ratsuha per il futuro. infatti, questa scheda è un'unità completa. E può essere praticamente utilizzato in un prodotto finito. tuttavia, c'è un MA. Con un baldacchino di mesone, è meglio metterlo sopra (connettore d'antenna, accesso alla sim card), quindi è abbastanza consigliabile lasciare fori per gli stessi pin paralleli a tutti i pin per la "periferia" con la possibilità di saldandoli nella direzione "verso il basso". Quelli. Volevo mettere questo dispositivo sulla scheda del microcontrollore, stenderlo sotto il tuo, saldarvi i connettori di accoppiamento e agganciarlo. anche con

Andrey 28/09/14

Divorato mezzo messaggio, ma spero che tu capisca l'idea-)

Alexey 28/09/14
Sergey 02/01/15

Dimmi perché il modulo si sta riscaldando e non rileva la rete?

Alexey 02/01/15

Ci sono diverse ragioni per questo. Innanzitutto, il cibo è stato superato. In secondo luogo, il vantaggio non ha colpito quello generale. Devi dare un'occhiata da vicino alle gambe del potere. Terzo, se la pancia sta toccando le linee di alimentazione del modulo. Ci sono diversi contatti di processo sulla pancia che devono essere isolati da eventuali conduttori. In quarto luogo, il cavo dell'antenna è in cortocircuito con il cavo comune. Per essere più precisi, è necessario guardare il tabellone. Mandami una tassa sulla posta e vedrò se c'è qualcosa che non va.

Sergey 02/01/15

Ho schede di fabbrica, MasterKit BM8039 ed entrambe hanno lo stesso problema.. si inserisce la SIM, il modulo inizia a scaldarsi e non c'è rete.

Alexey 02/01/15

Abbastanza difficile da dire. Circuito di fabbrica, devi scalare il tabellone. Si può vedere dalla documentazione che la scheda non ha i diodi di protezione consigliati per la scheda SIM. La scheda stessa e il connettore sui pin coincidono? Il modulo 300 è vecchio e secondo me funziona solo con sim da 5 volt, ma adesso sono tutte a 3v. Ma potrei sbagliarmi. Devi guardare il tabellone stesso, è così difficile dire qualcosa. Se il sintomo su entrambi è lo stesso, allora sarei saltato nella direzione del connettore e della tensione delle carte SIM. Ancora una volta, moderne schede SIM per 3 volt.

Sergey 02/01/15

Costa sim900D ... non ci sono diodi, quando inserisco la scheda appare l'alimentazione sul modulo e inizia a scaldarsi, ma sulla scheda SIM, ad esempio. con 9 piedi non va..

Sergey 02/01/15

Inizialmente funzionavano bene...poi qualcosa è andato storto...non riesco a capire cosa..

Sergey 02/01/15

Come posso controllare il modulo senza dissaldare?

Alexey 02/01/15

E cosa era esattamente breve? Se la carta SIM non si alimenta, temo che la linea per la carta SIM sia morta. E quante gambe? 6 o 8? Per verificare, è possibile comunicare con il modulo tramite il bus UART 3,4 piedi senza inserire una scheda SIM. Se si rifiuta di accettare i comandi AT, allora penso che tu possa seppellirlo.

ANONIMO 02/01/15

Non so esattamente cosa fosse corto.. gamba 8 .. ma come comunicare allora?

Alexey 02/01/15

C'è anche 8 sul connettore? Prendiamo il microcircuito FT232RL, assembliamo l'adattatore USB<->TTL, saldato all'UART del modulo, lancia un terminale, ad esempio Putty, scrivi AT e premi invio. Se restituisce OK, non tutto è perduto. Se il silenzio... Nella spazzatura. E sì, quali sono i LED sulla scheda? Come viene determinata la registrazione nella rete?

Sergey 02.02.15 03:12

Ce ne sono anche 8 sul connettore.. sulla scheda ci sono due led verde e rosso, la presenza della rete è determinata dal lampeggio verde una volta ogni tre secondi... posso inserire in qualche modo una foto della scheda?

Alessio 02.02.15 07:42

È più facile andare al forum.

Sergey 02.02.15 14:02

Se non si inserisce una scheda SIM, è necessario alimentare il modulo?

Alexey 02.02.15 15:48

Non riesco a leggere i fondi di caffè. Ho bisogno di uno schema o di una scheda. E dove c'entra l'alimentazione del modulo e della SIM? Lì, molto probabilmente, si interseca anche con una sorta di microcontrollore. Fornisce energia. In generale, è necessario un diagramma. E quindi è come fare una diagnosi al telefono.

Sergey 02.02.15 15:56

Dove posso pubblicare uno schema sul forum?

Sergey 02.02.15 15:57

L'alimentazione al modulo arriva solo quando si inserisce una carta SIM

Alexey 02.02.15 19:27

Bene, non esiste una cosa del genere per il modulo SIM900D. Per accendere il modulo, è necessario mantenere il livello basso sul pin 12, quindi sollevarlo. Una carta SIM non può essere inserita o rimossa affatto quando il modulo è acceso, c'è la possibilità di bruciare la porta. Se guardi la documentazione, puoi trovare consigli per l'installazione di diodi protettivi sulla linea della porta della carta SIM. Sul forum. Crea un tema e carica una foto.

Evgeniy 15/09/15 12:04

Quando applico la tensione al modulo, c'è un potenziale positivo sulla 12a gamba e anche sulla 5a gamba è positivo (a condizione che queste gambe siano sospese in aria). Puoi dirmi per favore, dopo tutto, dovrebbe esserci zero sulla 5a tappa? In caso contrario, per favore correggimi.

Alexey 15/09/15 13:21

La 12a tappa è l'inclusione del modulo. Quando viene applicata l'alimentazione, si blocca 1. Per accendere il modulo, premere la 12a gamba sul filo comune per un paio di secondi, ovvero fornire 0. Quando viene applicata l'alimentazione al modulo 5, la gamba deve essere sollevata al filo comune con due resistori (questo può essere visto dallo schema elettrico del transistor in modalità chiave) e dovrebbe essere 0, poiché la base deve essere portata a zero per chiudere completamente il transistor. Dopo aver premuto 12 gambe a zero, dovrebbe apparire 1 sulla 5a gamba e dopo un po 'un meandro che indica lo stato di disponibilità e connessione alla rete.

Vassilis serasidis

Il dispositivo è predisposto per il controllo remoto dell'alimentazione di vari dispositivi (ad esempio modem ADSL, personal computer, illuminazione ambienti, elettrodomestici vari), e può anche monitorare lo stato di otto linee digitali per poi informare l'utente sullo stato di queste linee , cioè può essere utilizzato come una sorta di sistema di sicurezza. L'utente è controllato e informato tramite SMS.

Caratteristiche principali del dispositivo:

  • controllo di 4 relè (on/off);
  • la possibilità di monitorare lo stato del relè e 8 ingressi digitali per l'ulteriore invio di SMS all'utente per informare sullo stato attuale;
  • circuito semplice, pochi componenti utilizzati;
  • controllo tramite SMS. I comandi di controllo sono protetti da password (possono essere modificati dall'utente) per evitare false attivazioni.

Il diagramma schematico del dispositivo è mostrato in Fig. 1.

La base del dispositivo è un microcontrollore ATtiny2313 società e un modulo GSM prodotto dalla società.

Il microcontrollore IC2 opera a 4 MHz, che è impostato dal cristallo esterno X1.



Fig. 2 Vista esterna del modulo GSM GM-47

Per il funzionamento del modulo GSM è necessaria una scheda SIM, che viene collegata direttamente al modulo tramite un apposito supporto. Il microcontrollore e il modulo GSM sono alimentati dal regolatore IC1 LM1117T 3.3 con una tensione di uscita di 3,3 V. In generale, il microcontrollore rimane operativo entro 2,7 V - 5,5 V (a una frequenza operativa fino a 10 MHz), quindi per assicurarsi che i livelli logici del modulo GSM e del microcontrollore siano abbinati alimentarlo da IC1.

La comunicazione con il modulo GSM avviene ad una velocità di 9600 bps tramite comandi AT. Vale la pena notare che i livelli di tensione per questa comunicazione sono 3,3 V dal microcontrollore AVR e 2,75 V dal modulo GSM. Pertanto, è stato utilizzato un transistor T5 BC547 per adattare i livelli.

Il modulo è collegato tramite un connettore PCB.



Fig. 3 Circuito stampato con connettore installato per modulo GM-47

La connessione della carta SIM avviene tramite lo slot K15, che dispone di un finecorsa SW integrato per il rilevamento della presenza di una carta nell'alloggiamento.

Il relè è comandato tramite tasti realizzati sui transistor BC547


Fig. 4 Vista esterna del circuito stampato con il modulo installato

Il LED D6 è progettato per indicare lo stato della connessione alla rete e, se lampeggia, indica l'avvenuta connessione alla rete cellulare GSM, supportata dalla scheda SIM. Se il LED è costantemente acceso, significa che il modulo non può connettersi alla rete cellulare.

Il modulo GSM dispone di ingressi/uscite digitali e analogici, ma in questo progetto l'autore non li ha utilizzati per escludere il pericolo di danneggiare il modulo.

Quali compiti svolge il microcontrollore AVR?

Dopo aver alimentato la scheda, il microcontrollore attende che avvenga l'inizializzazione del modulo GSM, ad es. il modulo deve leggere la carta SIM e connettersi alla rete GSM che supporta.

Dopo l'inizializzazione riuscita, il microcontrollore invia un comando AT, il che significa che la memoria del modulo è selezionata come memoria SMS. Deve esserci una risposta dal modulo a questo comando, altrimenti il ​​comando viene inviato di nuovo.

Dopo aver selezionato la memoria, il microcontrollore invia il comando successivo. Questo comando dice al modulo che i messaggi verranno letti in formato testo (non in formato PDU, anch'esso supportato dal modulo).

Segue quindi un comando, grazie al quale verranno rimosse alcune informazioni dal testo del messaggio SMS, ad esempio il numero del server SMS, la data e l'ora. Questo viene fatto al fine di ridurre gli SMS e semplificare il lavoro del microcontrollore con essi.

Il seguente comando è destinato alla lettura degli SMS memorizzati al primo indirizzo nella memoria del modulo.

Se è presente un testo SMS, il microcontrollore lo legge e verifica la password corretta. La password predefinita è 1234, che può essere modificata dall'utente. Dopo aver verificato la password, viene verificata la presenza del simbolo “*”, che significa che la password è stata modificata in 4 numeri (lettere) dopo il simbolo “*”.

Successivamente, l'SMS viene ulteriormente elaborato per rilevare un comando riservato dove X- indica il numero del relè (1-4), - comando di accensione/spegnimento. relè, può assumere i valori 1 (on) o 0 (off). Ad esempio, il comando Relè2 = 1 significa abilitare il relè n. 2.

Successivamente, il microcontrollore elabora ulteriormente l'SMS per la presenza del comando Stato e, se disponibile, legge lo stato di otto linee digitali e lo stato di tutti i relè e invia un SMS con un messaggio di testo sullo stato delle linee monitorate al numero da cui è stato inviato il comando SMS. Allo stesso tempo, non dimenticare che devono esserci fondi sulla carta SIM per inviare SMS.

Dopo tutte queste operazioni, il microcontrollore cancella il messaggio SMS che si trova al primo indirizzo nella memoria del modulo e passa all'attesa del messaggio SMS successivo.

L'invio di comandi tramite SMS da un telefono cellulare viene effettuato nel rispetto di una certa sintassi. Consideriamolo usando l'esempio dei comandi:

  1. Comando:1234 * 5678 Relè1 = 1 Relè2 = 0 Relè3 = 1 Relè4 = 1 Stato
    Abbiamo la squadra più ricca qui. Innanzitutto, inviamo la password (1234) e indichiamo che verrà modificata (*) in 5678. Quindi accendiamo i relè n. 1, 3, 4 e spegniamo il relè n. 2. Inoltre, poi inviando un comando, richiediamo informazioni sullo stato di 8 sensori e di tutti i relè.
  2. Comando:1234 Relè1 = 1 Relè2 = 0 Relè3 = 1 Relè4 = 1 Stato
    In questo comando SMS, accendiamo i relè n. 1, 3, 4, disattiviamo il relè n. 2 e richiediamo informazioni sullo stato dei sensori e dei relè.
  3. Comando: 1234 1 = 1 2 = 0 3 = 1 4 = 1 Stato
    Questo comando è simile al comando considerato 2), qui abbiamo omesso le parole.
  4. Comando:1234 Stato
    Con l'aiuto, richiediamo solo informazioni sullo stato di sensori e relè.
  5. Comando:1234 Relè2 = 0
    In questo comando, come puoi vedere, disattiviamo solo il relè n. 2

Schema schematico, disegno PCB, codice sorgente (assemblatore AVR) -.

Per commentare i materiali dal sito e ottenere l'accesso completo al nostro forum, è necessario Registrati .

  • è possibile utilizzare un telefono cellulare al posto del modulo GM-47, secondo me un telefono cellulare è più facile da ottenere ed è più economico
  • Non ci sono tali moduli in vendita. E quindi un dispositivo interessante. In generale, qui vengono stampate molte cose interessanti, se tutto questo fosse a nostra disposizione ...
  • Il controllo tramite SMS è possibile utilizzando un modem GSM o un telefono utilizzato come modem collegato ad un computer. Sei interessato ai dettagli di implementazione? O questa opzione che utilizza un computer è troppo ingombrante per te!? È possibile utilizzare un micro PC o un controller di tipo compatibile con un modulo GSM, questa opzione è più compatta. Quindi i suddetti dispositivi specializzati, si tratta essenzialmente di un modem GSM + computer, possono essere implementati indipendentemente dai componenti più ampiamente disponibili.
  • Puoi, penso, usare moduli compatibili, che hanno lo stesso sistema di comando ...
  • Nei moduli GSM e nei telefoni cellulari vengono utilizzati comandi AT specializzati per il controllo e il monitoraggio, il cui set è sostanzialmente lo stesso per diversi produttori e vari dispositivi simili e, a seconda della specializzazione del dispositivo e delle caratteristiche del set di comandi, sono inclusi ulteriori comandi speciali. Questo dispositivo può essere convertito in quasi tutti i moduli GSM o telefoni cellulari. Realizziamo un connettore di controllo sulla scheda, che viene eseguito tramite un'interfaccia UART a 2 fili, invece di 20 - 40 piedi per un modem, e correggiamo leggermente il codice sorgente ASM, che è a nostra disposizione (che potrebbe anche non essere necessario!) Beh, ovviamente, per un nuovo progetto un nuovo layout PCB. E otteniamo un dispositivo di controllo e monitoraggio universale.
  • Ecco un'opzione di implementazione per il controllo remoto su un modulo GSM accessibile SIM300D - http://electromost.com/index/mnogofu...kontrolja/0-35 Quando si utilizza SMS, c'è un punto: la consegna di SMS da parte dell'operatore non è standardizzato nel tempo. Pertanto, non è consigliabile gestire i dispositivi critici in questo modo. Inoltre, è imperativo tenere traccia della conferma del comando eseguito, altrimenti l'SMS è stato "sparato" e non è noto se il comando sia stato eseguito o meno :). Pertanto, quando si utilizza la comunicazione cellulare, è necessario gestire i carichi in "tempo reale" con conferma dei comandi eseguiti. Ad esempio, usa GPRS. O almeno DTMF - come nel dispositivo, il cui collegamento è stato fornito sopra.
  • Signori, tutto il buon momento della giornata! Qualcuno ha provato a montare questo dispositivo? I miei tentativi con il modulo Neoway M590 non hanno avuto successo. Dopo aver letto l'SMS ricevuto, il microcontrollore fa una pausa di un paio di secondi, quindi lo cancella dalla memoria e continua a inviare il comando AT al modulo in un ciclo. In questo caso non si verifica né la modifica dello stato del relè, né l'invio di un messaggio da parte del comando "Status". Qualcuno ha qualche idea su questo?
  • La cucitura del dispositivo non è operativa. Ho anche assemblato un dispositivo del genere su una scheda con il cablaggio originale e con il GR-47. La reazione è la tua. Ho anche letto su un forum occidentale di un problema simile con questo dispositivo. Per non selezionare l'elenco su ASM, ho riscritto AVR su CodeVision, allo stesso tempo ho introdotto l'ottimizzazione: non guidare costantemente il ciclo di polling, ma all'inizio del lavoro con il modem, inviare un comando per inviare un messaggio SMS al terminale, quindi analizzare l'SMS dopo la ricezione del messaggio.
  • Quindi ho rovistato in quasi tutta Internet alla ricerca della verità, e ho persino scritto all'autore Serasidis Vasilis con una richiesta di aiuto per capirlo (in inglese, ovviamente), ma non ho mai ottenuto nulla. Mi sembra che qui l'agguato stia nella differenza tra i nostri numeri di telefono e quelli stranieri. Dall'elenco del programma puoi vedere che hanno questo numero una cifra in più, rispettivamente, è necessario regolare il parametro del registro "No_Of_ignore_bytes" (R25) ovunque. Anche se potrei sbagliarmi. Su uno dei siti specializzati, questo problema è stato sollevato esattamente come il nostro, e sembra che sia stato risolto con successo lì, ma in che modo, sfortunatamente, tace. È anche impossibile registrarsi su questo sito per comunicare con i partecipanti all'argomento: iniziano senza spiegazioni, proprio nella fase di registrazione. Ecco il link: http://www.edaboard.com/thread290544.html Caro max7780, se il tuo dispositivo funziona, puoi condividere il programma? Ti sarei molto grato, perché la mia conoscenza della programmazione non mi permette di scrivere da zero un programma così complesso né in ASM né in SI, e mi sono semplicemente rotto il cervello per scegliere quello esistente in due mesi.
  • Ho ritirato il dispositivo 5 anni fa, se lo trovo, probabilmente posterò la fonte domani. Ma non tutte le funzioni sono implementate lì, ad esempio non ho fatto il comando status, che legge gli stati degli ingressi, e non c'è alcuna garanzia che il programma funzionerà con il tuo modem, forse ci sono alcune differenze nelle risposte a comandi o nei comandi stessi. Inoltre, nel codice sorgente originale non c'è analisi della risposta del modulo, il modem potrebbe segnalare un errore e il programma continuerà a emettere comandi, oppure il modem potrebbe bloccarsi e il microcontrollore semplicemente non può riavviarlo, poiché l'originale la scheda non ha il controllo PowerPin del modulo. Analizzerò il foglio dati per il tuo modulo e ti aiuterò il più possibile. Vorrei anche dire che il 590th è una rara spazzatura, ho comprato tre moduli, solo uno ha funzionato bene senza difetti. Durante la rielaborazione del software, il compito non era garantire il funzionamento senza errori del dispositivo per lungo tempo, ma semplicemente avviare il pezzo di hardware, c'è anche un sacco di codice non ottimale, farei meglio a inviarti questo programma via e-mail.
  • Dei due modem acquistati del 590, solo uno dei due modem acquistati del 590 ha funzionato bene anche per me, il secondo manda in onda tutta la spazzatura che si vede sul terminale. Ho cercato di aumentare la velocità: è inutile. E il secondo funziona chiaramente a una velocità di 9600, ma per qualche motivo non vuole essere amico del microcontrollore, anche se qui abbiamo già scoperto che il punto è molto probabilmente nel programma stesso. Tuttavia, per me rimane ancora un mistero perché funzioni per alcuni e non per altri. Sembra che GM47 e NEOWAY abbiano gli stessi protocolli di comando AT, l'unica differenza è che Neoway non ha una porta per microfono, quindi è impossibile implementare una chiamata vocale. Hai lo stesso circuito e controller o sono cambiati? Sì, sarò lieto di qualsiasi soluzione, anche "grezza", perché poi può già essere finalizzata come previsto. La cosa principale è la fondazione. Quindi sarò immensamente grato se invii il programma all'indirizzo [e-mail protetta], allora sarà già possibile andare avanti in questa direzione, perché ormai sono appena arrivato a un vicolo cieco...

Può essere utilizzato in dispositivi in ​​cui è richiesta la comunicazione a lunga distanza. Ad esempio, un uomo controlla un robot a Mosca mentre è seduto a Krasnodar! Oppure un agricoltore accende una pompa dell'acqua in una risaia da casa sua a pochi chilometri dal campo! Sono disponibili diverse opzioni per comunicare con il dispositivo:

Comunicazione semplice basata su messaggi SMS:
Accendi/spegni il dispositivo tramite semplici comandi SMS. Qualsiasi telefono cellulare può essere utilizzato per controllare il dispositivo.
Allarme antifurto/incendio che informa il proprietario di un'emergenza in casa tramite SMS.

Comunicazione basata sulle chiamate:
Allarmi antifurto/incendio intelligenti che chiamano la polizia o i vigili del fuoco e segnalano un'emergenza utilizzando messaggi vocali preregistrati.

Comunicazione Internet (GPRS):
L'utente può controllare il dispositivo da qualsiasi PC/tablet/cellulare connesso a Internet. Ad esempio, i display informativi installati sulle autostrade sono controllati da una sala di controllo centrale.
Robot controllato da Internet. Tale robot è accessibile da qualsiasi dispositivo connesso a Internet da qualsiasi parte del mondo.
Dispositivi portatili installati nei veicoli che si collegano a Internet tramite il modulo SIM300 GPRS e aggiungono la posizione corrente (tramite GPS (Global Positioning System)) al server. Questi dati vengono salvati con un database sul server insieme all'ID del veicolo. Per visualizzare il percorso del veicolo, puoi connetterti al server dal tuo computer utilizzando il World Wide Web.

Vantaggi dell'utilizzo del modulo SIM300

Il kit SIM300 è un modulo completamente indipendente con uno slot per schede SIM, alimentatore, ecc. Questo modulo può essere facilmente interfacciato con microcontrollori AVR / PIC / 8051 economici. La comunicazione con il microcontrollore avviene tramite una porta seriale asincrona. Questo è il tipo di comunicazione seriale di base supportato nell'hardware dalla maggior parte dei microcontrollori. I dati vengono trasferiti bit per bit e raccolti in byte. Ad un livello elevato, sembra un semplice flusso di testo. Ci sono due flussi in totale: uno dal microcontrollore al SIM300 e l'altro dal SIM300 al microcontrollore. I comandi vengono inviati come testo normale.

Se non hai mai usato la trasmissione dati seriale o ne hai sentito parlare, allora è consigliabile capire come funziona e fare pratica con esempi più semplici.

Comunicazione con il modulo SIM300 tramite AVR UART

La parte hardware del microcontrollore utilizzata per la comunicazione seriale si chiama UART e la utilizziamo per comunicare con il modulo SIM300 (può essere utilizzato anche per comunicare con altri dispositivi come lettori RFID, moduli GPS, scanner di impronte digitali, ecc.). UART è un metodo di comunicazione molto comune nel mondo dell'elettronica, per questo abbiamo scritto una libreria pulita e semplice, che usiamo in tutti i nostri progetti che utilizzano UART.

Dato che un byte della SIM300 può arrivare in qualsiasi momento al microcontrollore, cosa succede se il microcontrollore è impegnato con qualcos'altro? Per risolvere questo problema, abbiamo implementato il buffering basato su interrupt dei dati in entrata. Il buffer si trova nella RAM del microcontrollore. Ha una funzione per determinare il numero di byte nella coda.

Le seguenti sono le funzioni della libreria AVR USART:

void USARTInit (uint16_t ubrrvalue)

Inizializzazione hardware AVR USART. Valore del parametro ubrrvalue viene impostata la velocità di trasmissione desiderata. La velocità di trasmissione predefinita per SIM300 è 9600 bps. Per un microcontrollore AVR operante a 16 MHz, il valore ubrrvalue per questa velocità dovrebbe esserci 103 .

char UReadData()

Lettura di un carattere dalla coda. Se non c'è nulla in coda, la risposta è 0.

void UWriteData (dati char)

Scrive un byte di dati sulla riga Tx utilizzando la funzione UWriteString().

uint8_t UDataAvailable ()

Riporta la quantità di dati nella coda FIFO.

void UWriteString (char * str)

Scrive una stringa in stile C con terminazione null nella riga Tx.
Esempio 1: UWriteString ("Ciao mondo!");
Esempio 2: char name = "Avinash!"; UWriteString (nome);

void UReadBuffer (void * buff, uint16_t len)

Copia il contenuto della FIFO nella memoria specificata da buff, la quantità di dati copiati è determinata dal parametro len. Se sono arrivati ​​meno dati nel buffer FIFO tramite UART (in accordo con il parametro len), lo spazio rimanente verrà riempito con zeri.

char gsm_buffer;
UReadBuffer (gsm_buffer, 16);

L'esempio sopra leggerà 16 byte di dati (se presenti) dalla FIFO in una variabile gsm_buffer... notare che gsm_buffer allocato un array di 128 byte poiché potremmo aver bisogno di più di 16 byte in seguito. Pertanto, questo buffer può essere utilizzato per leggere fino a 128 byte in futuro.

La funzione di cui sopra viene solitamente utilizzata insieme a UDataAvailable().

mentre (UDataAvailable ()<16)
{
// Fare niente
}

char gsm_buffer;
UReadBuffer (gsm_buffer, 16);

Il frammento di codice mostrato sopra attende che 16 byte di dati si accumulino nel buffer, quindi li legge.

void UFlushBuffer ()

Annulla l'attesa dei dati da parte del buffer FIFO. Prima di inviare un nuovo comando al modulo GSM, annullare prima l'attesa dei dati da parte del buffer FIFO.

Le funzioni di cui sopra vengono utilizzate per inviare e ricevere comandi di testo dal modulo GSM SIM300.

Set di comandi AT per SIM300

Ora che hai familiarità con le basi della libreria AVR USART e il suo utilizzo per inizializzare USART, inviare e ricevere dati, è tempo di imparare i comandi del modulo SIM300 e come inviare e ricevere risposte. SIM300 ha diverse funzioni: inviare un messaggio di testo, effettuare una chiamata, ecc. Ognuna di queste funzioni viene eseguita dopo un comando specifico e il SIM300 ha il proprio set di comandi.

Tutti i comandi SIM300 iniziano con un prefisso A + e fine Ritorno a capo(abbreviato come ritorno a capo). Codice ASCII CR - 0x0D (decimale 13). Tutti i comandi che invii a SIM300 verranno restituiti sulla linea TX di SIM300. Cioè, se invii un comando 7 byte (incluso il CR di terminazione), riceverai immediatamente questi 7 byte nel buffer tramite UART. Se non l'hai ricevuto, allora c'è qualcosa che non va!

La prima funzione che impareremo sarà SIM300Cmd (const carattere * cmd), fa quanto segue:

  • Scrive i comandi dati dal parametro cmd.
  • aggiunge CR dopo il comando.
  • Attende il ritorno del comando e, se arriva prima del timeout, risponde SIM300_OK(costante definita in sim300.h). Se hanno aspettato troppo a lungo per un ritorno, ma non c'era ritorno, lei risponde SIM300_TIMEOUT.

Nota: tutte le funzioni dipendenti da SIM300 sono memorizzate nel file sim300.c. Campioni e costanti sono memorizzati in sim300.h

Lavorare con SIM300Cmd ()

Int8_t SIM300Cmd (const char * cmd) (UWriteString (cmd); // Invia comando UWriteData (0x0D); // CR uint8_t len ​​​​= strlen (cmd); len ++; // Aggiungi 1 per il CR finale aggiunto a tutti comandi uint16_t i = 0; // Attendi echo while (i< 10*len) { if(UDataAvailable() < len) { i++; _delay_ms(10); continue; } else { //We got an echo //Now check it UReadBuffer(sim300_buffer,len); //Read serial Data return SIM300_OK; } } return SIM300_TIMEOUT; }

Il comando è solitamente seguito da una risposta. La forma della risposta è la seguente:
LF- Line Feed, il suo codice ASCII 0x0A (10 in decimale)

Quindi, in attesa di una risposta dopo aver inviato un comando, possono accadere tre cose:

  • Nessuna risposta per molto tempo. La probabile ragione potrebbe essere che il SIM300 non è connesso al microcontrollore.
  • Risposta ricevuta, ma non come previsto. Ciò potrebbe essere dovuto a una linea seriale errata, a una velocità di trasmissione errata o a un microcontrollore che funziona alla frequenza errata.
  • Risposta corretta ricevuta.

Ad esempio, il comando Ottieni la registrazione alla rete(Registrazione di rete) viene eseguita come segue: Stringa di comando: " AT + CREG?"

Risposta(Risposta): + CREG:, ok

Vedete, la risposta corretta è 20 byte. Cioè, dopo aver inviato il comando "AT + CREG?" è necessario attendere la ricezione di 20 byte o che sia trascorso un certo tempo. La seconda condizione è soddisfatta per evitare il congelamento se il SIM300 è difettoso. Cioè, invece di aspettare per sempre una risposta, verrà emesso un errore se la SIM300 risponde troppo a lungo (questo è chiamato timeout)

Se viene ricevuta la risposta corretta, analizziamo la variabile per ottenere informazioni sulla registrazione nella rete.

A seconda dello stato attuale della registrazione in rete, il valore può essere: 0 - Non registrato, ora SIM300 non cerca un nuovo operatore da registrare. 1 - Registrato nella rete domestica. 2 - Non registrato, ora SIM300 cerca un nuovo operatore da registrare. 3 - Registrazione negata. 4 - Sconosciuto. 5 - Registrato, in roaming.

Lavorare con SIM300GetNetStat ()

Int8_t SIM300GetNetStat () (// Invia comando SIM300Cmd ("AT + CREG?"); // Ora attendi la risposta uint16_t i = 0; // la risposta corretta è lunga 20 byte // Quindi aspetta fino a quando non abbiamo 20 byte // nel buffer mentre (i<10) { if(UDataAvailable()<20) { i++; _delay_ms(10); continue; } else { //We got a response that is 20 bytes long //Now check it UReadBuffer(sim300_buffer,20); //Read serial Data if(sim300_buffer=="1") return SIM300_NW_REGISTERED_HOME; else if(sim300_buffer=="2") return SIM300_NW_SEARCHING; else if(sim300_buffer=="5") return SIM300_NW_REGISTED_ROAMING; else return SIM300_NW_ERROR; } } //We waited so long but got no response //So tell caller that we timed out return SIM300_TIMEOUT; }

La funzione è implementata allo stesso modo: int8_t SIM300IsSIMInserted ()

Per altri tipi di risposte, non conosciamo in anticipo la dimensione esatta della risposta come nel comando precedente. Ad esempio, questo è il comando Ottieni nome provider di servizi, in cui la lunghezza del nome dell'operatore non è nota in anticipo. Può essere MTS, Beeline, ecc. Per risolvere questo problema, usiamo il fatto che prima e dopo la risposta è CR LF... Quindi, scriviamo semplicemente nel buffer tutti i caratteri finché non ci incontriamo CR, che significa la fine della risposta.

Per semplificare l'elaborazione di tali comandi, abbiamo creato la funzione
SIM300WaitForResponse (timeout uint16_t)

Questa funzione attende una risposta da SIM300 (la fine della risposta è indicata da CR) e riporta la dimensione della risposta, mentre la risposta stessa viene copiata in una variabile globale sim300_buffer.

Se non viene ricevuta alcuna risposta prima del timeout, la risposta è 0. Il tempo di timeout in millisecondi può essere impostato con il parametro tempo scaduto... Non conta gli LF in ritardo o gli ultimi OK, rimangono nel buffer FIFO UART. Pertanto, prima di tornare, usiamo il comando UFlushBuffer () per rimuoverli dagli appunti.

Lavorare con SIM300WaitForResponse (uint16_t timeout)

Int8_t SIM300WaitForResponse (uint16_t timeout) (uint8_t i = 0; uint16_t n = 0; while (1) (while (UDataAvailable () == 0 && n

Lavorare con SIM300GetProviderName (char * nome) La funzione esegue le seguenti operazioni:

  1. Cancella il buffer USART per rimuovere eventuali errori o risposte.
  2. Invia il comando "AT + CSPN?" utilizzando la funzione SIM300Cmd ("AT + CSPN?");
  3. Quindi attende una risposta utilizzando la funzione SIM300WaitForResponse()
  4. Se otteniamo una risposta diversa da zero, la analizza per ottenere il nome dell'operatore.

Le seguenti funzioni sono implementate in modo simile:

  • uint8_t SIM300GetProviderName (char * nome)
  • int8_t SIM300GetIMEI (char * emei)
  • int8_t SIM300GetManufacturer (char * man_id)
  • int8_t SIM300GetModel (carattere * modello)
uint8_t SIM300GetProviderName (char * name) (UFlushBuffer (); // Send Command SIM300Cmd ("AT + CSPN?"); uint8_t len ​​= SIM300WaitForResponse (1000); if (len == 0) return SIM300_TIMEOUT; char * start, * end ; start = strchr (sim300_buffer, "" "); start ++; end = strchr (start," ""); * end = "\ 0"; strcpy (nome, inizio); return strlen (nome); )

SIM300 e ATmega32. Parte hardware

Per dimostrare la comunicazione con un SIM300 utilizzando un ATmega32 AVR, abbiamo bisogno dei seguenti componenti:
- ATmega32 con registro binding - reset, pin ISP, quarzo 16 MHz.
- Alimentazione +5V per alimentazione ATmega32 e LCD.
- LCD a caratteri 16x2 per l'indicazione dei risultati.
- Modulo SIM300.

Abbiamo usato la scheda di debug Xboard in quanto ha un ATmega32 cablato, alimentazione + 5V e un display LCD.

Codice sorgente demo per AVR e SIM300

Il codice sorgente della demo è scritto in C e compilato utilizzando il compilatore gratuito AVR-GCC, utilizzando quest'ultimo. Il progetto si articola nei seguenti moduli:

  • Libreria LCD
    - File lcd.c, lcd.h, myutils.h, custom_char.h
    - Il suo compito è controllare un LCD standard 16x2.
    - Maggiori informazioni possono essere trovate al link.
  • Biblioteca USART
    - File usart.c, usart.h
    - Il suo compito è controllare l'hardware del microcontrollore USART AVR. Include funzioni per l'inizializzazione di USART, l'invio/ricezione di caratteri, l'invio/ricezione di stringhe.
  • Libreria SIM300
    - File sim300.c, sim300.h

Configurazione di un progetto AS6 passo dopo passo

Crea un nuovo progetto AS6 chiamato "Sim300Demo".
Utilizzando l'esploratore della soluzione (albero del progetto) creare una cartella denominata "lib" nella cartella corrente.
All'interno della cartella "lib", creare le cartelle "LCD", "USART" e "SIM300".
Copia i file (usando Windows Explorer) lcd.c, lcd.h, myutils.h, custom_char.h nella cartella lcd.
Copia i file (usando Windows Explorer) usart.c, usart.h nella cartella USART
Copiare i file (usando Windows Explorer) sim300.c, sim300.h nella cartella SIM300.
Aggiungi i file lcd.c, lcd.h, myutils.h, custom_char.h al progetto usando Solution Explorer (albero del progetto).
Aggiungi filesusart.c, usart.h al tuo progetto usando Solution Explorer (albero del progetto).
Aggiungi i file sim300.c, sim300.h al progetto usando Solution Explorer (albero del progetto).
Definire il valore F_CPU = 16.000.000 utilizzando AS6.
Copia e incolla il file principale Sim300Demo.c nel programma.
Compila il progetto per ottenere un file esadecimale.
Flasha la Xboard usando un programmatore USB.
Se stai usando un nuovo microcontrollore ATmega32, imposta LOW FUSE su 0xFF e FUSIBILE ALTO acceso 0xC9.

Cosa fa la demo?

Inizializza il modulo LCD e SIM300.
Verifica che il modulo SIM300 sia connesso alla USART e risponda come previsto.
Visualizza l'IMEI del modulo SIM300.
Visualizza l'ID del produttore
Verifica la presenza di una carta SIM.
Cerca una rete GSM e stabilisce una connessione. Ciò richiede una carta SIM attiva.
Mostra il nome dell'operatore, ad esempio MTS o Megafon.

Possibili problemi

Nessuna immagine sul display LCD

Assicurati che il tuo progetto AVR Studio sia impostato su 16 MHz (16000000Hz)
Regolare il contrasto con il potenziometro.
Premere più volte il pulsante di ripristino.
Accendere/spegnere il dispositivo più volte.
Collegare l'LCD solo come mostrato nello schema.

Durante l'inizializzazione di SIM300, viene visualizzato l'errore "Nessuna risposta"

Verificare l'integrità delle linee Rx, Tx e GND tra SIM300 e Xboard.
Assicurati che il microcontrollore funzioni a 16 MHz.
Installare i fusibili esattamente come descritto sopra.

Errori del compilatore

Molte persone usano programmi già scritti e compilati. Sono inesperti e non hanno familiarità con le basi della programmazione e della compilazione. Familiarizzare con i compilatori e come funzionano su piattaforme diverse (PC/MAC/Linux) è un ottimo inizio. I sistemi embedded non sono adatti per l'apprendimento delle basi. Sono destinati a coloro che hanno queste abilità e semplicemente le usano.
Assicurati che tutti i file della libreria LCD siano aggiunti al progetto.
Assicurati che AVR-GCC sia installato. (La distribuzione di Windows si chiama WinAVR)
Assicurati che AVR GCC sia elencato nel progetto AVR Studio.

Suggerimenti generali per i principianti

Usa schede di sviluppo e programmatori già pronti.
Cerca di imparare da articoli e tutorial.

Elenco dei radioelementi

Designazione Tipo di Denominazione Quantità NotaNegozioIl mio blocco note
U1 MK AVR 8 bit

ATmega32

1 nel blocco note
U2 Regolatore lineare

LM7805

1 nel blocco note
D1 Diodo raddrizzatore

1N4007

1 nel blocco note
re2 Diodo ad emissione luminosa 1 nel blocco note
DO1, DO2 Condensatore22 pF2 nel blocco note
DO3, DO4, DO6 Condensatore0.1 uF3

Quindi, dopo aver acceso a lungo la complessità del lavoro con il modulo GSM SIM900D, annunciamo il primo progetto di lavoro che combina un sistema di sicurezza con la possibilità di controllare da remoto. In sintesi, il dispositivo è in grado di inviare SMS informativi in ​​caso di intervento di un sensore di penetrazione, effettuare una chiamata per abilitare il monitoraggio audio della stanza, monitorare la temperatura e inviarla tramite SMS su richiesta, nonché gestire l'eventuale carico su un comando inviato tramite SMS.

Chi ha seguito questo argomento sa che ho un modulo GSM e un modulo di controllo per esso - due schede diverse collegate da un sandwich (vedi scheda con SIM900D e scheda di controllo).Sulla scheda di controllo, oltre al microcontrollore ATmega32a, è presente un modulo di potenza realizzato sul convertitore LM2596, che alimenta il circuito con una tensione costante di 3,5 volt. In linea di principio, qualsiasi altra fonte di alimentazione è adatta, l'importante è che sia in grado di prelevare brevemente fino a 2 ampere (questo è esattamente il consumo del modulo GSM al momento della registrazione).

Per comodità, un display di un telefono Nokia3310 è collegato alla scheda di controllo, i cui metodi di lavoro sono già stati descritti più di una volta su questo sito. Grazie al display è possibile determinare rapidamente lo stato del dispositivo e il valore dei sensori.

Di conseguenza, lo schema di connessione risultante è uscito così (cliccabile):

La numerazione dei pin del microcontrollore nel diagramma è fornita per un pacchetto DIP, quindi se si ripete il circuito utilizzando i micron in un pacchetto TQFP, fare attenzione, la numerazione dei pin è diversa per questo. Il microcontrollore ha un clock da un cristallo esterno a 16 MHz.

Linea Controllo andando dal collettore del transistor Q2 al pin PortD.4 del microcontrollore viene aggiunto per la riassicurazione ed è necessario per monitorare se il modulo è acceso. Poiché la soglia di spegnimento per il SIM900 è di 3,2 volt, anche con una leggera caduta di tensione, il modulo si spegnerà automaticamente, mentre il microcontrollore continuerà a funzionare ed eseguire il programma (la soglia di ripristino per l'ATmega32a è a 2,7 volt). In condizioni di lavoro, questa linea è bassa. Se il microcontrollore rileva un livello alto su questa linea, verrà eseguita la funzione di riavvio del modulo GSM.

Ed è così che sembra al lavoro in questo momento.

Dopo il sorpasso finale del programma, tutto questo verrà inserito nella custodia e nelle connessioni staccabili per affidabilità saranno sigillati.

Il display mostra le informazioni di base sullo stato del dispositivo: il nome dell'operatore, la qualità del segnale di comunicazione, il valore della temperatura del sensore 18b20, lo stato dell'uscita del carico e del sensore di intrusione, nonché l'ora e la data.

Video di attivazione del modulo

L'ora e la data sono ricavate dall'orologio integrato nel modulo GSM. Per il loro funzionamento è necessaria una batteria da 3 volt collegata al morsetto 15 (VRTC). Si consiglia di installare il diodo D1 con una bassa caduta di tensione, ad esempio Schottky. L'impostazione dell'orologio e della data viene eseguita manualmente, i comandi sono stati descritti in precedenza

La data viene visualizzata sul display nello stesso formato ottenuto dal modulo, cioè prima l'anno, poi il mese e la data. Non ho ancora cambiato nulla qui.

Il sensore DS18B20 è responsabile della misurazione della temperatura ed è collegato al pin PortD.3 del microcontrollore.

Puoi collegare qualsiasi carico a PortD.6 e controllarlo tramite comandi SMS. Ora ho un LED - D4 sul diagramma. Ma nulla ti impedisce di appendere qui un affidamento o un triac e gestire qualcosa di più serio.

Per motivi di sicurezza, è previsto l'utilizzo del sensore di movimento HC-SR501 acquistato su E-bay. In caso di attivazione, viene visualizzata un'unità logica all'uscita del sensore. Dopo averlo catturato, il microcontrollore darà un comando per inviare un messaggio SMS al numero di telefono specificato nel programma.

L'uscita del sensore è collegata al pin PortD.7 del microcontrollore, nello schema il sensore è convenzionalmente sostituito con un pulsante.

Al posto del sensore di movimento, puoi mettere qualsiasi altro mezzo per rilevare l'intrusione: sensori per l'apertura di finestre e porte, sensori di rottura vetri, sensori fotoelettrici, ecc., In generale, tutto ciò di cui l'immaginazione è capace.

Al fine di evitare l'invio multiplo di SMS di avviso in caso di intervento di un sensore, è stata introdotta una limitazione nel programma: dopo il primo SMS inviato viene posto il divieto di invio successivo. Per riabilitare l'invio dei messaggi di notifica all'intervento del sensore è necessario inviare al modulo un SMS con un comando specifico. Quando l'invio di SMS è vietato sul display vicino allo stato del sensore, verrà visualizzato un punto esclamativo.

Elenco dei comandi

Ed ecco un elenco di comandi in SMS che il modulo elabora. Per comodità e semplicità i comandi sono digitali, forse nelle prossime versioni firmware ci saranno nomi di comando più significativi :)

0 - Disconnettere il carico (Logic 0 è impostato sul pin PortD.6)

1 - Accensione del carico (Logico 1 è impostato sul pin PortD.6)

2 - Accettato questo comando, il modulo richiamerà al numero di telefono specificato nel programma

3 - Richiesta di saldo e invio tramite SMS al numero specificato. C'è una sfumatura importante qui: le risposte alle richieste USSD devono essere inviate in alfabeto latino. In caso contrario, invece di un testo significativo, verrà inviato in risposta un messaggio in codifica esadecimale. Come tradurre USSD in latino, è necessario verificare con il proprio operatore. Ad esempio, sulla scheda SIM che utilizzo da Smarts, devi inserire * 102 * 1 # (nel megafono * 105 * 0 #)

4 - Richiesta temperatura. Il valore della temperatura ci verrà inviato tramite SMS.

5 - Consentire l'invio di messaggi in caso di attivazione del sensore di intrusione.

6 - Divieto di inviare SMS di notifica dal sensore antintrusione.

? - A questo comando il modulo ci invierà un SMS, che contiene informazioni generali sul dispositivo, come il valore del sensore di temperatura, se il carico è acceso, lo stato all'ingresso del sensore di intrusione e se è consentito per inviare SMS di notifica da esso.Ad esempio, ecco come potrebbe apparire un messaggio del genere: la temperatura è +24, il carico è spento, l'uscita del sensore di movimento è 0, l'invio di SMS in caso di attivazione è vietato.

Ora come configurare il modulo per inviare sms al tuo numero. Nell'archivio con il programma, troviamo il file del programma principale, si chiama "programma" :) e troviamo una costante in esso:

Const Numero di telefono = "+ 7908390xxxx"

sostituiamo qui il nostro numero di telefono, compiliamo il programma e otteniamo il file esadecimale del firmware.

Il programma, come sempre, è scritto in Bascom-AVR, quindi è abbastanza facile capire l'algoritmo per lavorare con il modulo GSM. Buona fortuna!

E infine, una dimostrazione di come il modulo elabora i comandi.

Un ringraziamento speciale a Sergey RD3AVJ, un vecchio amico del sito, per la tua partecipazione e aiuto nello sviluppo!

UPD: dal 31/10/12

Ho leggermente modificato il firmware, ora per poter impostare il numero a cui inviare l'SMS di notifica non è necessario ricompilare il programma. È sufficiente inviare un SMS con un messaggio al modulo "Primo numero" (senza virgolette) e il numero da cui è stato inviato questo comando viene registrato nella memoria non volatile del microcontrollore.

Principali articoli correlati