Sommario:
- Passaggio 1: alimentazione
- Passaggio 2: ingressi digitali
- Passaggio 3: uscite digitali
- Passaggio 4: oscillatore del microcontrollore
- Passaggio 5: LED di indicazione
- Passaggio 6: circuito di ripristino del micro processore
- Passaggio 7: modulo SIM800L
- Passaggio 8: il microcontrollore
- Passaggio 9: ottimizzazione della memoria SRAM
- Passaggio 10: dimensione del buffer seriale del software
- Passaggio 11: realizzare la scheda PC
- Passaggio 12: assemblaggio della scheda PC
- Passaggio 13: Programmazione dell'AtMega328p
- Passaggio 14: collegamento dell'unità
- Passaggio 15: configurazione iniziale
- Passaggio 16: comandi SMS
Video: Unità di controllo remoto GSM/SMS basata su Arduino: 16 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
! ! ! AVVISO !
A causa dell'aggiornamento della torre del cellulare locale nella mia zona, non sono più in grado di utilizzare questo modulo GSM. La torre più recente non supporta più i dispositivi 2G. Pertanto, non posso più fornire alcun supporto per questo progetto.
Con una gamma così ampia di moduli GSM disponibili per l'hobbista, la maggior parte di noi ha finito per acquistarne uno. Ho acquistato un modulo SIM800L localmente e ho finito per giocare con i diversi comandi del modulo.
Usando Arduino Uno e Arduino IDE, sono stato in grado di trasformare le mie idee in realtà. Questo non è stato facile, con il SINGOLO GRANDE PROBLEMA che è la limitazione di soli 2 KB di SRAM. Dopo molte ricerche su Internet e diversi forum, sono riuscito a superare questa limitazione.
Diverse tecniche di programmazione, una comprensione molto migliore del compilatore Arduino e l'utilizzo della scheda SIM e dell'EEPROM per memoria aggiuntiva, hanno salvato questo progetto. Dopo alcune modifiche al codice, è stato realizzato e testato un prototipo stabile per un periodo di una settimana.
Uno svantaggio della SRAM limitata era che l'unità non poteva essere dotata di display e tasti utente. Ciò ha comportato una riscrittura completa del codice. Senza interfaccia utente, l'unica opzione rimasta per continuare con il progetto era utilizzare i messaggi SMS per configurare l'unità, così come gli utenti.
Questo si è rivelato un progetto entusiasmante e sono stati aggiunti altri futuri mentre lo sviluppo continuava.
Il mio obiettivo principale era quello di attaccare con Arduino Uno, o in questo caso, l'ATMEGA328p, e non utilizzare alcun componente a montaggio superficiale. Ciò renderà più facile per il pubblico in generale copiare e costruire l'unità.
Specifiche dell'unità:
- È possibile programmare un massimo di 250 utenti sull'unità
- Quattro uscite digitali
- Quattro ingressi digitali
- Ogni uscita può essere configurata come uscita IMPULSO o ON/OFF
- La durata dell'impulso di uscita può essere impostata tra 0,5.. 10 secondi
- Ciascun ingresso può essere configurato per attivare le modifiche da OFF a ON.
- Ciascun ingresso può essere configurato per attivare le modifiche da ON a OFF
- Ogni tempo di ritardo di ingresso può essere impostato tra 0 secondi e 1 ora
- Gli SMS di modifica degli Ingressi possono essere inviati a 5 diversi utenti
- I nomi e il testo di stato per ogni ingresso possono essere impostati dall'utente
- I nomi e il testo di stato per ogni uscita possono essere impostati dall'utente
- L'unità può essere configurata per ricevere messaggi di saldo della carta SIM tramite messaggistica USSD.
- Tutti gli utenti possono richiedere aggiornamenti sullo stato degli I/O dell'unità
- Tutti gli utenti possono controllare le singole uscite tramite messaggi SMS
- Tutti gli utenti possono controllare le singole uscite chiamando l'unità
Caratteristiche di sicurezza
- La configurazione iniziale dell'unità può essere eseguita solo mentre si è nell'unità.
- La configurazione iniziale può essere eseguita solo dall'UTENTE MASTER
- I comandi di configurazione iniziale vengono disabilitati automaticamente dopo dieci minuti.
- Solo le chiamate e gli SMS inviati da utenti conosciuti possono controllare l'unità
- Gli utenti possono azionare solo le uscite loro assegnate dall'UTENTE MASTER
Altre caratteristiche
- Le chiamate a questa unità sono gratuite, poiché la chiamata non riceve mai risposta.
- Quando l'unità viene chiamata, la chiamata verrà interrotta solo dopo 2 secondi. Questa è la conferma al chiamante che l'unità ha risposto alla chiamata.
- Se il fornitore di servizi della carta SIM supporta i messaggi USSD, le richieste di saldo possono essere effettuate dall'UTENTE PRINCIPALE. Il messaggio USSD contenente il saldo, verrà quindi inoltrato all'UTENTE MASTER.
Passaggio 1: alimentazione
Affinché l'unità possa essere collegata a sistemi di sicurezza standard (sistemi di allarme, porte da garage elettriche, motori per cancelli elettrici), l'unità sarà alimentata da 12V DC che è normalmente disponibile su tali sistemi.
L'alimentazione viene applicata sui terminali 12V IN e 0V ed è protetta da un fusibile da 1A. Sono disponibili ulteriori terminali 12V OUT, anch'essi protetti dal fusibile.
Il diodo D1 protegge l'unità dai collegamenti di polarità inversa sulle linee a 12V.
I condensatori C1 e C2 filtrano eventuali disturbi presenti sulle linee di alimentazione a 12V. L'alimentazione a 12V viene utilizzata per alimentare i relè dell'unità.
L'alimentazione a 5 V è costituita da un regolatore di tensione LM7805L e fornisce un +5 V stabile necessario per il modulo GSM SIM800L e per il microprocessore. I condensatori C3 e C4 filtrano qualsiasi rumore che potrebbe essere presente sulla linea di alimentazione +5V. Sono stati utilizzati condensatori elettrolitici di dimensioni relativamente grandi, poiché il modulo GSM SIM800L utilizza un po' di energia durante la trasmissione.
Non è richiesto alcun dissipatore di calore sul regolatore di tensione.
Passaggio 2: ingressi digitali
I segnali di ingresso digitale sono tutti a 12V, e devono essere interfacciati con il microcontrollore 5V. Per questo, vengono utilizzati accoppiatori ottici per isolare i segnali a 12V dal sistema a 5V.
Il resistore di ingresso da 1K limita la corrente di ingresso all'accoppiatore ottico a circa 10 mA.
A causa delle limitazioni di spazio, sulla scheda PC non era disponibile spazio per i resistori pull-up da 5V. Il micro controller è impostato per abilitare i pull-up deboli dei pin di input.
Senza segnale presente sull'ingresso (LOW) dell'accoppiatore ottico, nessuna corrente scorrerà attraverso il LED dell'accoppiatore ottico. Quindi il transistor dell'accoppiatore ottico è spento. Il debole pull-up del microcontrollore tirerà su il collettore a quasi 5V, e sarà visto come un ALTO logico dal microcontrollore.
Con 12 V applicati (HIGH) all'ingresso dell'accoppiatore ottico, circa 10 mA fluiranno attraverso il LED dell'accoppiatore ottico. Quindi il transistor dell'accoppiatore ottico sarà acceso. Questo abbasserà il collettore a quasi 0V e sarà visto come un LOW logico dal microcontrollore.
Si noti che l'ingresso visto dal microcontrollore è invertito rispetto all'ingresso a 12V.
Il codice normale per leggere il pin di input è il seguente:
Input booleano = digitalRead(pin input);
Per correggere il segnale invertito, utilizzare il seguente codice:
Input booleano = !digitalRead(pin input); // Notare la ! davanti alla lettura
Ora, l'ingresso visto dal microcontrollore corrisponderà all'ingresso sull'ingresso 12V.
Il circuito di ingresso finale è costituito da 4 ingressi digitali. Ciascun ingresso è collegato ai terminali sulla scheda PC.
Passaggio 3: uscite digitali
Normalmente, con un circuito che pilota solo un numero minimo di relè, il modo migliore è utilizzare un circuito di pilotaggio a transistor come mostrato. È semplice, economico ed efficace.
I resistori forniscono il pull-down a terra e la limitazione della corrente di base del transistor. Il transistor viene utilizzato per aumentare la corrente disponibile per pilotare un relè. Con solo 1 mA prelevato dal pin del microcontrollore, il transistor può commutare un carico di 100 mA. Più che sufficienti per la maggior parte dei tipi di relè. Il diodo è un diodo fly-back, che protegge il circuito dai picchi di alta tensione durante la commutazione del relè. Il vantaggio aggiuntivo dell'utilizzo di questo circuito è che la tensione operativa del relè può essere diversa dalla tensione del microcontrollore. Pertanto, invece di utilizzare un relè da 5 V, è possibile utilizzare qualsiasi tensione CC fino a 48 V.
Presentazione dell'ULN2803
Più relè richiede un progetto, maggiore è il numero di componenti. Ciò renderà più difficile la progettazione del PCB e potrebbe utilizzare prezioso spazio sul PCB. Ma l'utilizzo di un array di transistor, come l'ULN2803, aiuterà sicuramente a mantenere piccole le dimensioni del PCB. L'ULN2803 è ideale per ingressi da 3,3 V e 5 V da un microcontrollore e può pilotare relè fino a 48 V CC. Questo ULN2803 ha 8 circuiti a transistor individuali, ogni circuito dotato di tutti i componenti necessari per commutare un relè.
Il circuito di uscita finale è costituito da un ULN3803, che pilota 4 relè di uscita da 12 V CC. Ogni contatto del relè è disponibile sui terminali della scheda elettronica.
Passaggio 4: oscillatore del microcontrollore
Circuito dell'oscillatore
Il microcontrollore necessita di un oscillatore per funzionare correttamente. Per mantenere il design di Arduino Uno, il circuito utilizzerà l'oscillatore standard da 16 MHz. Sono disponibili due opzioni:
Cristallo
Questo metodo utilizza un cristallo collegato a due condensatori di carico. Questa è l'opzione più comune.
Risonatore
Un risonatore è fondamentalmente un cristallo e due condensatori di caricamento in un unico contenitore a 3 pin. Ciò riduce la quantità di componenti e aumenta lo spazio disponibile sulla scheda PC.
Per mantenere il conteggio dei componenti il più basso possibile, ho scelto di utilizzare un risonatore da 16 MHz.
Passaggio 5: LED di indicazione
Cosa sarebbe un circuito senza alcuni LED? Sulla scheda PC sono stati predisposti LED da 3 mm.
I resistori da 1K vengono utilizzati per limitare la corrente attraverso il LED a meno di 5 mA, quando si utilizzano LED ad alta luminosità da 3 mm, la luminosità è eccellente.
Per una facile interpretazione dei LED di stato, vengono utilizzati due colori. Combinando i due LED con indicazioni lampeggianti, è possibile ottenere molte informazioni da soli due LED.
LED rosso
Il LED rosso viene utilizzato per indicare condizioni di guasto, lunghi ritardi, eventuali comandi errati.
LED verde
Il LED verde viene utilizzato per indicare ingressi e comandi sani e/o corretti.
Passaggio 6: circuito di ripristino del micro processore
Per motivi di sicurezza, alcune delle funzioni dell'unità sono disponibili solo nei primi 10 minuti dopo l'accensione dell'unità.
Con un pulsante di ripristino, non è necessario spegnere l'unità per ripristinare l'unità.
Come funziona
Il resistore da 10K manterrà la linea di RESET vicino a 5V. Quando si preme il pulsante, la linea di RESET verrà portata a 0V, mantenendo così il microcontrollore in reset. Quando il pulsante viene rilasciato, la riga RESET torna a %v, riavviando il microcontrollore.
Passaggio 7: modulo SIM800L
Il cuore dell'unità è il modulo GSM SIM800L. Questo modulo utilizza solo 3 pin I/O sul microcontrollore.
Il modulo si interfaccia al microcontrollore tramite una porta seriale standard.
- Tutti i comandi all'unità vengono inviati tramite la porta seriale utilizzando i comandi AT standard.
- All'arrivo di una chiamata, o alla ricezione di un SMS, le informazioni vengono inviate al microcontrollore tramite la porta seriale utilizzando il testo ASCII.
Per risparmiare spazio, il modulo GSM è collegato alla scheda PC tramite un connettore a 7 pin. Ciò facilita la rimozione del modulo GSM. Ciò consente inoltre all'utente di inserire/rimuovere facilmente la scheda SIM nella parte inferiore del modulo.
È necessaria una carta SIM attiva e la carta SIM deve essere in grado di inviare e ricevere messaggi SMS.
Configurazione del modulo GSM SIM800L
All'accensione dell'unità, il pin di ripristino del modulo GSM viene abbassato per un secondo. Ciò garantisce che il modulo GSM si avvii solo dopo che l'alimentazione si è stabilizzata. Il modulo GSM impiega un paio di secondi per riavviarsi, quindi attendere 5 secondi prima di inviare comandi AT al modulo.
Per garantire che il modulo GSM sia configurato per comunicare correttamente con il microcontrollore, durante l'avvio vengono utilizzati i seguenti comandi AT:
A
utilizzato per determinare se un modulo GSM è disponibile
AT+CREG?
Polling di questo comando fino alla registrazione del modulo GSM sulla rete cellulare
AT+CMGF=1
Imposta la modalità messaggio SMS su ASCII
AT+CNMI=1, 2, 0, 0, 0
Se SMS disponibile, inviare i dettagli dell'SMS alla porta seriale del modulo GSM
AT+CMGD=1, 4
Elimina tutti i messaggi SMS memorizzati sulla carta SIM
AT+CPBS=\"SM
Imposta la rubrica del modulo GSM sulla scheda SIM
AT+COPS=2, poi AT+CLTS=1, poi AT+COPS=0
Imposta l'ora del modulo GSM sull'ora della rete del cellulare
Attendere 5 secondi per l'impostazione dell'ora
AT+CUSD=1
Abilita la funzione di messaggistica USSD
Passaggio 8: il microcontrollore
Il micro controller è un AtMega328p standard, lo stesso utilizzato su Arduino Uno. Il codice è quindi confrontabile con entrambi. Per consentire una facile programmazione integrata, sulla scheda PC è disponibile un'intestazione di programmazione a 6 pin.
Le diverse sezioni dell'unità sono collegate al microprocessore e includono quanto segue:
- Quattro ingressi digitali
- Quattro uscite digitali
- L'oscillatore
- Due LED di indicazione
- Circuito di ripristino
- Modulo GSM SIM800L
Tutte le comunicazioni da e verso il modulo GSM vengono eseguite utilizzando la funzione SoftwareSerial(). Questo metodo è stato utilizzato per liberare la porta seriale principale per l'IDE Arduino durante la fase di sviluppo.
Con solo 2 KB di SRAM e 1 KB di EEPROM, non c'è memoria sufficiente per memorizzare più di un paio di utenti che possono essere collegati all'unità. Per liberare la SRAM, tutte le informazioni dell'utente vengono memorizzate sulla carta SIM del modulo GSM. Con questa disposizione, l'unità può ospitare fino a 250 utenti diversi.
I dati di configurazione dell'unità sono memorizzati nella EEPROM, separando così i dati utente ei dati di sistema l'uno dall'altro.
Sono ancora disponibili diversi pin I/O di riserva, tuttavia, l'opzione di aggiungere un display LCD e/o una tastiera non è stata possibile a causa della grande quantità di SRAM utilizzata dai buffer di ricezione e trasmissione di SoftWareSerial(), A causa della mancanza di qualsiasi tipo di interfaccia utente sull'unità, tutte le impostazioni e gli utenti vengono programmati tramite messaggi SMS.
Passaggio 9: ottimizzazione della memoria SRAM
Abbastanza presto nella fase di sviluppo, l'IDE Arduino ha segnalato una memoria SRAM bassa durante la compilazione del codice. Diversi metodi sono stati utilizzati per superare questo.
Limita i dati ricevuti sulla porta seriale
Il modulo GSM riporterà tutti i messaggi al microcontrollore della porta seriale. Quando si ricevono alcuni messaggi SMS, la lunghezza totale del messaggio ricevuto può superare i 200 caratteri. Questo può consumare rapidamente tutta la SRAM disponibile sul chip AtMega e causerà problemi di stabilità.
per evitare ciò verranno utilizzati solo i primi 200 caratteri di QUALSIASI messaggio ricevuto dal modulo GSM. L'esempio seguente mostra come farlo contando i caratteri ricevuti nella variabile Counter.
// scansiona i dati dalla porta seriale del software
//------------------ RxString = ""; Contatore = 0; while(SSerial.available()){ ritardo(1); // breve ritardo per dare il tempo di inserire nuovi dati nel buffer // ottenere un nuovo carattere RxChar = char(SSerial.read()); //aggiunge i primi 200 caratteri alla stringa if (Counter < 200) { RxString.concat(RxChar); Contatore = Contatore + 1; } }
Ridurre il codice Serial.print()
Sebbene sia utile durante lo sviluppo, Arduino Serial Monitor può utilizzare molta SRAM. Il codice è stato sviluppato utilizzando il minor numero possibile di codice Serial.print(). Una volta che una sezione di codice è stata testata per funzionare, tutto il codice Serial.print() è stato rimosso da quella parte del codice.
Utilizzo del codice Serial.print(F((""))
Molte informazioni normalmente visualizzate sul monitor seriale Arduino hanno più senso quando vengono aggiunte le descrizioni. Prendi il seguente esempio:
Serial.println("In attesa di azioni specifiche");
La stringa "In attesa di azioni specifiche" è fissa e non può cambiare.
Durante la compilazione del codice, il compilatore includerà nella memoria FLASH la stringa "In attesa di azioni specifiche".
Inoltre, il compilatore vede che la stringa è una costante, utilizzata dall'istruzione "Serial.print" o "Serial.println". Durante l'avvio del micro, questa costante viene inserita anche nella memoria SRAM.
Usando il prefisso "F" nelle funzioni Serial.print(), dice al compilatore che questa stringa è disponibile solo nella memoria FLASH. Per questo esempio, la stringa contiene 28 caratteri. Si tratta di 28 byte che possono essere liberati in SRAM.
Serial.println(F("In attesa di azioni specifiche"));
Questo metodo si applica anche ai comandi SoftwareSerial.print(). Poiché il modulo GSM funziona con i comandi AT, il codice contiene numerosi comandi SoftwareSerial.print("xxxx"). L'utilizzo del prefisso "F" ha liberato quasi 300 byte di SRAM.
Non utilizzare la porta seriale hardware
Dopo il debug del codice, la porta seriale hardware è stata disabilitata rimuovendo TUTTI i comandi Serial.print(). Questo ha liberato alcuni byte extra di SRAM.
Senza alcun comando Serial.print() rimasto nel codice, sono stati resi disponibili ulteriori 128 byte di SRAM. Questo è stato fatto rimuovendo la porta seriale hardware dal codice. Questo ha liberato i 64 byte di trasmissione e 64 byte di ricezione dei buffer.
// Serial.begin(9600); // porta seriale hardware disabilitata
Utilizzo di EEPROM per le stringhe
Per ogni input e output occorreva salvare tre stringhe. Sono il nome del canale, la stringa quando il canale è attivo e la stringa quando il canale è disattivato.
Con un totale di 8 canali I/O, il loro sarà
- 8 stringhe contenenti i nomi dei canali, ciascuna lunga 10 caratteri
- 8 stringhe contenenti il canale Sulla descrizione, ciascuna lunga 10 caratteri
- 8 stringhe contenenti la descrizione del canale Off, ciascuna lunga 10 caratteri
Questo annunci fino a 240 byte di SRAM. Invece di memorizzare queste stringhe in SRAM, vengono archiviate in EEPROM. Questo ha liberato altri 240 byte di SRAM.
Dichiarare una stringa con le lunghezze corrette
Le variabili sono normalmente dichiarate all'inizio del codice. Un errore comune quando si dichiara una variabile stringa è che non dichiariamo la stringa con il numero corretto di caratteri.
Stringa GSM_Nr = "";
Stringa GSM_Name = ""; String GSM_Msg = "";
Durante l'avvio, il microcontrollore non allocherà memoria nella SRAM per queste variabili. Ciò può causare in seguito instabilità quando vengono utilizzate queste stringhe.
Per evitare ciò, dichiarare le stringhe con il numero corretto di caratteri che la stringa utilizzerà nel software.
Stringa GSM_Nr = "1000000000";
Stringa GSM_Name = "2000000000"; Stringa GSM_Msg = "3000000000";
Nota come non ho dichiarato le stringhe con gli stessi caratteri. Se dichiari tutte queste stringhe con ad esempio "1234567890", il compilatore vedrà la stessa stringa nelle tre variabili e allocherà memoria sufficiente nella SRAM solo per una delle stringhe.
Passaggio 10: dimensione del buffer seriale del software
Nel codice seguente, noterai che possono essere letti fino a 200 caratteri dalla porta seriale del software.
// scansiona i dati dalla porta seriale del software
//------------------ RxString = ""; Contatore = 0; while(SSerial.available()){ ritardo(1); // breve ritardo per dare il tempo di inserire nuovi dati nel buffer // ottenere un nuovo carattere RxChar = char(SSerial.read()); //aggiunge i primi 200 caratteri alla stringa if (Counter < 200) { RxString.concat(RxChar); Contatore = Contatore + 1; } }
Ciò richiede un buffer di almeno 200 byte anche per la porta seriale del software. per impostazione predefinita, il buffer della porta seriale del software è di soli 64 byte. Per aumentare questo buffer, cerca il seguente file:
SoftwareSerial.h
Apri il file con un editor di testo e modifica la dimensione del buffer a 200.
/******************************************************************************
* Definizioni ********************************************* ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // Dimensione buffer RX #endif
Passaggio 11: realizzare la scheda PC
La scheda PC è stata progettata utilizzando la versione freeware di Cadsoft Eagle (credo che il nome sia cambiato).
- La scheda PC è un design a lato singolo.
- Non vengono utilizzati componenti a montaggio superficiale.
- Tutti i componenti sono montati sulla scheda PC, compreso il modulo SIM800L.
- Non sono necessari componenti o collegamenti esterni
- I ponticelli sono nascosti sotto i componenti per un aspetto più pulito.
Uso il seguente metodo per creare schede PC:
- L'immagine della scheda PC viene stampata su Press-n-Peel utilizzando una stampante laser.
- Il Press-n-Peel viene quindi posizionato sopra un pezzo pulito di scheda PC e fissato con del nastro adesivo.
- L'immagine della scheda PC viene quindi trasferita dal Press-n-Peel alla scheda PC vuota facendo passare la scheda attraverso un laminatore. Per me, 10 passaggi funzionano meglio.
- Dopo che la scheda PC si è raffreddata a temperatura ambiente, il Press-n-Peel viene sollevato lentamente dalla scheda.
- La scheda PC viene quindi incisa utilizzando cristalli di persolfato di ammonio disciolti in acqua calda.
- Dopo l'incisione, il blu Press-n-Peel e il toner nero vengono rimossi pulendo la scheda PC incisa con un po' di acetone.
- La tavola viene quindi tagliata a misura con un Dremel
- I fori per tutti i componenti con foro passante vengono praticati utilizzando una punta da 1 mm.
- I connettori a vite dei terminali vengono forati utilizzando una punta da trapano da 1,2 mm.
Passaggio 12: assemblaggio della scheda PC
L'assemblaggio viene effettuato aggiungendo prima i componenti più piccoli e procedendo fino ai componenti più grandi.
Tutti i componenti utilizzati in questo Instructable, escluso il modulo SIM800, sono stati acquistati dal mio fornitore locale. Pensa a loro per avere sempre scorte. Si prega di dare un'occhiata al loro sito web sudafricano:
www.shop.rabtron.co.za/catalog/index.php
NOTA! Prima saldare i due ponticelli situati sotto l'IC ATMEGA328p
L'ordine è il seguente:
- Resistori e diodo
- Tasto reset
- Prese CI
- Regolatore di tensione
- Perni di intestazione
- Piccoli condensatori
- LED
- Portafusibili
- Blocchi terminali
- relè
- Condensatori elettrolitici
Prima di inserire i circuiti integrati, collegare l'unità a 12V e verificare che tutte le tensioni siano corrette.
Infine, usando un po' di vernice trasparente, copri il lato in rame della scheda PC per proteggerlo dagli elementi.
Quando la vernice si è asciugata, inserire i circuiti integrati, ma lasciare il modulo GSM fino a quando l'AtMega non è stato programmato.
Passaggio 13: Programmazione dell'AtMega328p
# # Aggiornamento del firmware alla versione 3.02 # #
Abilitato l'invio di SMS all'UTENTE MASTER al ripristino dell'alimentazione del dispositivo
Sto usando un Arduino Uno con uno scudo di programmazione per programmare l'unità. Per ulteriori informazioni su come utilizzare un Arduino Uno come programmatore, fare riferimento a questo Instructable:
Arduino UNO come programmatore AtMega328P
Il modulo GSM deve essere rimosso dalla scheda PC per accedere all'intestazione di programmazione. Fare attenzione a non danneggiare il cavo dell'antenna durante la rimozione del modulo GSM.
Collegare il cavo di programmazione tra il programmatore e l'unità utilizzando l'intestazione di programmazione sulla scheda PC e caricare lo schizzo sull'unità.
L'alimentazione esterna a 12V non è necessaria per programmare l'unità. La scheda PC sarà alimentata da Arduino tramite il cavo di programmazione.
Aprire il file allegato nell'IDE di Arduino e programmarlo sull'unità.
Dopo la programmazione, rimuovere il cavo di programmazione e inserire il modulo GSM.
L'unità è ora pronta per l'uso.
Passaggio 14: collegamento dell'unità
Tutti i collegamenti all'unità vengono effettuati tramite i morsetti a vite.
Alimentazione dell'unità
Assicurati di aver inserito una scheda SIM registrata nel modulo GSM e che la scheda SIM sia in grado di inviare e ricevere messaggi SMS.
Collegare un alimentatore da 12 V CC a 12 V IN e a uno qualsiasi dei terminali 0 V. Una volta acceso, il LED rosso sulla scheda PC si accenderà. In circa un minuto il modulo GSM dovrebbe essersi connesso alla rete del cellulare. Il LED rosso si spegnerà e un LED rosso sul modulo GSM lampeggerà rapidamente.
Una volta raggiunta questa fase, l'unità è pronta per essere configurata.
Connessioni di ingresso
Gli ingressi digitali funzionano a 12V. Per attivare un ingresso, è necessario applicare 12V all'ingresso. La rimozione del 12V disattiverà l'ingresso.
Collegamenti di uscita
Ogni uscita è costituita da un contatto in scambio. Cablare ogni contatto come richiesto.
Passaggio 15: configurazione iniziale
La configurazione iniziale dell'unità deve essere eseguita per garantire che tutti i parametri siano impostati sui valori predefiniti di fabbrica e la scheda SIM configurata per accettare le informazioni dell'utente nel formato corretto.
Poiché tutti i comandi sono basati su SMS, avrai bisogno di un altro telefono per eseguire la configurazione.
Per la configurazione iniziale, è necessario essere presso l'unità.
Impostare il numero di telefono dell'UTENTE PRINCIPALE
Poiché solo l'UTENTE MASTER può configurare l'unità, questo passaggio deve essere eseguito prima.
- L'unità deve essere alimentata.
- Premere e rilasciare il pulsante Reset e attendere che il LED rosso sulla scheda PC si spenga.
- Il LED NET sul modulo GSM lampeggerà rapidamente.
- L'unità è ora pronta per accettare i comandi di configurazione iniziale. Questa operazione deve essere eseguita entro 10 minuti.
- Inviare un messaggio SMS contenente MASTER, descrizione al numero di telefono dell'unità.
- Se ricevuto, il LED verde sulla scheda PC lampeggerà due volte.
- L'UTENTE MASTER è ora programmato.
Ripristinare l'unità alle impostazioni di fabbrica
Dopo aver programmato l'UTENTE MASTER, le impostazioni dell'unità devono essere riportate ai valori di fabbrica.
- Inviare un SMS con il solo CLEARALL al numero di telefono dell'unità.
- Se ricevuti, i LED verde e rosso sulla scheda PC lampeggeranno alternativamente una volta al secondo. L'unità è stata ripristinata con le impostazioni predefinite di fabbrica.
- Tutte le impostazioni sono state ripristinate ai valori predefiniti di fabbrica.
- Premere e rilasciare il pulsante Reset per riavviare l'unità.
Formattazione della carta SIM
L'ultimo passaggio consiste nel cancellare tutte le informazioni memorizzate sulla carta SIM e configurarle per l'uso in questa unità.
- Premere e rilasciare il pulsante Reset e attendere che il LED rosso sulla scheda PC si spenga.
- Il LED NET sul modulo GSM lampeggerà rapidamente.
- L'unità è ora pronta per accettare i comandi di configurazione iniziale. Questa operazione deve essere eseguita entro 10 minuti.
- Inviare un SMS con solo ERASESIM al numero di telefono dell'unità.
- Se ricevuto, il LED verde sulla scheda PC lampeggerà tre volte.
L'unità è stata ora configurata ed è pronta per l'uso.
Passaggio 16: comandi SMS
Ci sono tre diversi tipi di comandi usati dall'unità. Tutti i comandi vengono inviati tramite SMS e sono tutti nel seguente formato:
COMANDO,,,,,
- Tutti i comandi, ad eccezione dei comandi NORMAL USER, fanno distinzione tra maiuscole e minuscole.
- I parametri non fanno distinzione tra maiuscole e minuscole.
Comandi di configurazione iniziale
MAESTRO, nome
Il numero di telefono del mittente dell'SMS viene utilizzato come numero di telefono dell'UTENTE PRINCIPALE. una descrizione per l'unità può essere aggiunta qui.
CANCELLA TUTTO
Ripristinare l'unità alle impostazioni di fabbrica
CLEARSIM
Cancella tutti i dati dalla carta SIM
RIPRISTINA
Riavviare l'unità
MASTER USER Comandi per la configurazione dell'unità
OUTMODE, c, m, t NOTA ! ! ! NON ANCORA IMPLEMENTATO
Impostare canali specifici per avere uscite PULSATE, TEMPORIZZATE o LATCHING. t è la durata in minuti delle uscite TEMPORIZZATE
IMPULSO, cccc
Imposta canali specifici su uscite PULSATE. Se non è impostato, i canali verranno impostati come uscite LATCHING.
PULSETIME, tImposta la durata dell'uscita impulsiva in secondi (0.. 10s)
INPUTON, cccc
Imposta i canali che devono attivarsi e invia un messaggio SMS quando lo stato cambia da OFF a ON
INPUTOFF, cccc
Imposta i canali che devono attivarsi e invia un messaggio SMS quando lo stato cambia da ON a OFF
INTIME, c, t
Imposta il tempo di ritardo dell'ingresso per rilevare i cambiamenti di stato in secondi
INTEXT, ch, nome, on, off
Imposta il nome di ogni canale di ingresso, su testo e su testo fuori testo
OUTTEXT, ch, nome, acceso, spento
Imposta il nome di ogni canale di uscita, su testo e su testo fuori testo
Aggiungi, posizione, numero, Uscite chiamate, Uscite SMS, Ingressi
Aggiungi l'utente alla scheda SIM nella "posizione" di memoria, con i canali di uscita e di ingresso assegnati all'utente
Del, posizione
Elimina utente dalla "posizione" di memoria della carta SIM
Nome del canale
Emetterà impulsi con il nome NomeCanale
NomeCanale, onText o NomeCanale, offText
Attiva/disattiva l'output con il nome di ChannelName e onText/offText
Comandi utente normali per il controllo dell'unità
????Richiedi aggiornamento stato I/O. L'SMS di stato verrà inviato al mittente.
Nome del canale
Emetterà impulsi con il nome NomeCanale
Nome canale, su testo
Attiva l'output con il nome di ChannelName e il testo di stato onText
ChannelName, offText Disattiva l'output con il nome di ChannelName e il testo di stato offText
Per una descrizione più dettagliata dei comandi, fare riferimento al documento PDF allegato.
Consigliato:
Come realizzare l'automazione domestica basata su IoT con il relè di controllo dei sensori NodeMCU: 14 passaggi (con immagini)
Come realizzare l'automazione domestica basata sull'IoT con il relè di controllo dei sensori NodeMCU: in questo progetto basato sull'IoT, ho realizzato l'automazione domestica con Blynk e il modulo relè di controllo NodeMCU con feedback in tempo reale. Nella modalità manuale, questo modulo relè può essere controllato da cellulare o smartphone e, interruttore manuale. In modalità automatica, questo smart
Laptop con un budget: un'opzione potente a basso costo (due unità interne, basata su Lenovo): 3 passaggi
Laptop con un budget: un'opzione Powerhouse a basso costo (due unità interne, basata su Lenovo): questa istruzione si concentrerà su una configurazione aggiornata del laptop Lenovo T540p come macchina driver quotidiana per la navigazione web, l'elaborazione di testi, i giochi leggeri e l'audio . È configurato con memoria a stato solido e meccanica per velocità e capacità
ARUPI - un'unità di registrazione automatizzata a basso costo/unità di registrazione autonoma (ARU) per ecologisti del paesaggio sonoro: 8 passaggi (con immagini)
ARUPI - un'unità di registrazione automatizzata a basso costo/unità di registrazione autonoma (ARU) per ecologisti del paesaggio sonoro: questa istruzione è stata scritta da Anthony Turner. Il progetto è stato sviluppato con molto aiuto dallo Shed in the School of Computing, University of Kent (il signor Daniel Knox è stato di grande aiuto!). Ti mostrerà come costruire un sistema di registrazione audio automatizzato
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: 13 passaggi (con immagini)
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: Gesture Hawk è stato presentato in TechEvince 4.0 come una semplice interfaccia uomo-macchina basata sull'elaborazione delle immagini. La sua utilità sta nel fatto che non sono necessari sensori aggiuntivi o indossabili tranne un guanto per controllare l'auto robotica che funziona su diversi
Automazione domestica basata su SMS Android e Arduino: 5 passaggi (con immagini)
Automazione domestica basata su SMS Android e Arduino: ! ! ! AVVISO ! ! !A causa dell'aggiornamento del ripetitore telefonico locale nella mia zona, non sono più in grado di utilizzare questo modulo GSM. La torre più recente non supporta più i dispositivi 2G. Pertanto, non posso più dare alcun supporto a questo progetto. Di recente, ho ri