05.03.2020

Creazione di un allarme di sicurezza con un sensore di movimento basato su Arduino e sensori a infrarossi. Allarme domestico o tramite sensore di movimento e monitor LCD con Arduino Allarme GSM Budget con cervelli di arduino


Questo progetto riguarda lo sviluppo e il miglioramento di un sistema per prevenire/controllare eventuali tentativi di ingresso da parte di ladri. Il dispositivo di sicurezza sviluppato utilizza un sistema embedded (comprende un microcontrollore hardware che utilizza codice open source e un modem GSM) basato su tecnologia GSM (Global System for Mobile Communications).

Il dispositivo di sicurezza può essere installato in casa. Il sensore dell'interfaccia antifurto è anche collegato al sistema di sicurezza basato sul controller.
Quando si tenta un'intrusione, il sistema invia un messaggio di avviso (es. sms) al cellulare del proprietario oa qualsiasi cellulare preconfigurato per un'ulteriore elaborazione.

Il sistema di sicurezza è costituito da un microcontrollore Arduino Uno e da un modem GSM/GPRS standard SIM900A. L'intero sistema può essere alimentato da qualsiasi alimentatore/batteria 12V 2A.

Di seguito è riportato un diagramma di un sistema di sicurezza basato su Arduino.

Il funzionamento del sistema è molto semplice e autoesplicativo. Quando viene applicata l'alimentazione al sistema, va in modalità standby. Quando i pin del connettore J2 sono in cortocircuito, viene inviato un messaggio di avviso preprogrammato al numero di cellulare desiderato. È possibile collegare qualsiasi rilevatore di rilevamento delle intrusioni (ad esempio una barriera fotoelettrica o un rilevatore di movimento) al connettore di ingresso J2. Si noti che un segnale attivo basso (L) sul pin 1 del connettore J2 attiverà l'allarme antifurto.

Inoltre, al sistema è stato aggiunto un dispositivo opzionale di “allarme di chiamata”. Attiva una telefonata quando l'utente preme il pulsante S2 (o quando un'altra unità elettronica avvia un allarme). Dopo aver premuto il pulsante "chiama" (S2), la chiamata può essere annullata premendo un altro pulsante S3, il pulsante "fine". Questa opzione può essere utilizzata per generare un allarme di “chiamata persa” in caso di intrusione.

Il circuito è molto flessibile, quindi può utilizzare qualsiasi modem SIM900A (e ovviamente la scheda Arduino Uno). Leggere attentamente la documentazione del modem prima del montaggio. Ciò faciliterà e renderà piacevole il processo di produzione del sistema.

Elenco di elementi radio

Designazione Tipo di Denominazione Quantità NotaPuntoIl mio taccuino
Scheda Arduino

Arduino Uno

1 Al blocco note
Modem GSM/GPRSSIM900A1 Al blocco note
IC1 Regolatore lineare

LM7805

1 Al blocco note
C1 100uF 25V1 Al blocco note
C2 condensatore elettrolitico10uF 16V1 Al blocco note
R1 Resistore

1 kOhm

1 Al blocco note
LED1 Diodo ad emissione luminosa 1 Al blocco note
S1 PulsanteCon fissazione1

La primavera, come sapete, è accompagnata da ogni sorta di aggravamento, e ora il principale "aggravamento" è strisciato fuori dai suoi buchi nella strada per appropriarsi di ciò che non le appartiene. Ciò significa che il tema della tutela dei propri beni diventa più che mai attuale.
Il sito ha già diverse recensioni su fatti in casa -. Sono certamente funzionali, ma hanno tutti una caratteristica comune: la dipendenza dalla presa. Se questo non è un problema per gli immobili in cui l'elettricità è già collegata, allora che dire degli immobili in cui la presa è lontana o l'ambiente circostante è completamente diseccitato? Ho deciso di andare dall'altra parte: assemblare un dispositivo di lunga durata, il più semplice possibile e indipendente dalla rete elettrica, che dormirà tutto il tempo e quando entrano i ladri, si avvierà e richiamerà al telefono del proprietario, segnalazione con una semplice chiamata di allarme.

Rivedi gli articoli

Acquistato:
1. Tagliere monofacciale 5x7 cm: getinaks- o fibra di vetro
* - la fibra di vetro è molto meglio dei getinak.
2. Modulo Neoway M590 - , con antenna PCB -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Scheda di controllo carica-scarica al litio -

Ottenuto dalle rovine della civiltà:
1. Rack per la scheda, segati dalle custodie dei dispositivi - 6 pz.
2. Batteria scarica al litio da 1300 mAh
3. Graffette utilizzate per fissare il cavo al muro
4. Gomma da cancellare
5. Filo di rame spesso 1,5 mm
6. Custodia per strumenti dal mercato radiofonico locale - 1.5$
7. Una coppia di LED di diversi colori (presi da un lettore VHS)
8. Antenna e pulsante con cappuccio (preso da un router Wi-Fi)
9. Morsettiera a 4 pin (presa da un dimmer)
10. Connettore di alimentazione (preso da un vecchio caricabatterie per 18650)
11. Connettore a 6 pin (preso da un'unità DVD)
12. Barattolo di latta (dal caffè per esempio)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

Specifiche:
Microcontrollore: ATmega168PA
Tensione di esercizio diretta: 0,8 - 5,5 V
Tensione di esercizio tramite lo stabilizzatore LE33: 3,3 V o 5 V (a seconda del modello)
Temperatura di lavoro:-40°C… 105°C
Tensione di ingresso: 3,35-12 V (modello 3,3 V) o 5-12 V (modello 5 V)
Ingressi/uscite digitali: 14 (di cui 6 utilizzabili come uscite PWM: 3, 5, 6, 9, 10 e 11)
Ingressi analogici: 6
Contatemporizzatori: due a 8 bit e uno a 16 bit
Modalità di risparmio energetico: 6
Corrente CC attraverso ingresso/uscita: 40 mA
Memoria flash: 16 KB (2 usati per il bootloader)
RAM: 1 Kb
EEPROM: 512 byte
Risorsa di scrittura/cancellazione della memoria: 10.000 Flash/100.000 EEPROM
Frequenza dell'orologio: 8 MHz (modello 3,3 V) o 16 MHz (modello 5 V)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) e A5 (SCL)
TTL UART: 0 (RX) e 1 (TX)
Scheda dati:

La scelta è caduta su questo atmega quasi per caso. su un forum in cui sono stati discussi progetti di efficienza energetica, nei commenti ho ricevuto consigli per utilizzare esattamente il 168° atmega.
Tuttavia, ho dovuto armeggiare per trovare una scheda del genere, poiché molto spesso tutti i lotti sono stati inondati da 328 atmegas alla frequenza di 16 MHz, operando da 5V. Per il mio progetto tali caratteristiche erano ridondanti e scomode fin dall'inizio, la ricerca si è complicata.
Di conseguenza, mi sono imbattuto in una versione da 3,3 volt di Pro Mini su Atmega 168PA su eBay, e non solo cinese, ma con il marchio RobotDyn di uno sviluppatore russo. Sì, anch'io all'inizio, come te, avevo un gran dubbio. Ma invano. Quando il progetto era già assemblato e AliExpress ha introdotto una consegna obbligatoria a pagamento per merci economiche (dopo di che i pacchi hanno iniziato a perdersi molto più spesso), in seguito ho ordinato un normale Pro Mini Atmega168 (senza PA) 3.3V 8MHz. Ho sperimentato un po' le modalità di risparmio energetico con entrambe le schede, facendo lampeggiare in ciascuna uno schizzo speciale che immergeva il microcontrollore nella modalità di risparmio energetico massimo ed ecco cosa è successo:
1) Arduino Pro Mini "RobotDyn": ~250uA
2) Arduino Pro Mini "NoName": quando viene fornita alimentazione al regolatore di tensione (uscita RAW) e il LED è saldato, il consumo di corrente è ~ 3,92 mA




- come capisci, la differenza nel consumo di energia è quasi 16 volte, tutto perché Mosca Pro Mini di NoName utilizza un mucchio di Atmega168 +, di cui lo stesso MK mangia solo 20uA corrente (l'ho verificato separatamente), tutto il resto della gola ricade sul convertitore di tensione lineare AMS1117 - il foglio dati conferma solo questo:


Nel caso della scheda di RobotDyn, la connessione è già leggermente diversa - questo è Atmega168PA + - qui viene già utilizzato un altro stabilizzatore LDO, le cui caratteristiche in termini di risparmio energetico si sono rivelate più piacevoli:


Non l'ho saldato, quindi non posso dire quanta corrente consuma l'Atmega168PA nella sua forma pura. In questo caso, ho avuto ~250uA se alimentato da una batteria al litio Nokia. Tuttavia, se dissaldi l'AMS1117 con il NoName "della scheda di Mosca, l'ATmega168 è ordinario, nella sua forma pura, come ho detto sopra, consuma 20uA.
I LED di alimentazione possono essere spenti con qualcosa di affilato. Non è un problema. Lo stabilizzatore è stato saldato con un asciugacapelli. Tuttavia, non tutti hanno un asciugacapelli e le capacità per lavorarci, quindi entrambe le opzioni di cui sopra hanno il diritto di esistere.

Modulo Neoway M590E

Specifiche:
Frequenze: EGSM900/DCS1800 Dual-band o GSM850/1900 o Quad-band
Sensibilità:-107dBm
Potenza massima di trasmissione: EGSM900 Classe4(2W), DCS1800 Classe1(1W)
Corrente di picco: 2A
Corrente di lavoro: 210 mA
Corrente di sonno: 2,5 mA
Temperatura di lavoro:-40°C… +85°C
Tensione di esercizio: 3,3 V…4,5 V (consigliato 3,9 V)
Protocolli: GSM/GPRS Fase2/2+, TCP/IP, FTP, UDP ecc.
Internet: GPRS CLASSE 10
Scheda dati:

Il modulo GSM più economico che si possa trovare sul mercato, solitamente di seconda mano, saldato da mani cinesi non sempre abili dall'apparecchiatura. Perché non sempre intelligente? Sì, tutto a causa della saldatura con un asciugacapelli: spesso questi moduli arrivano a persone con un più e un meno in cortocircuito, che è uno dei motivi della loro inoperabilità. Pertanto, il primo passo è far suonare i contatti di alimentazione per un cortocircuito.

Nota. Vorrei sottolineare un punto separato, importante, secondo me: questi moduli possono essere dotati di un connettore coassiale rotondo per l'antenna, che consente di ordinare separatamente un'antenna più seria e collegarla al modulo senza ballare con un tamburello . E possono venire senza questo connettore. Questo se parliamo dei set più economici. Se non vuoi fare affidamento su una fortuna, allora ci sono set un po' più costosi, dove è presente questo connettore + il kit viene fornito con un'antenna esterna su una scheda textolite.

Questo modulo è anche capriccioso prima dell'alimentazione, poiché al suo picco consuma fino a 2A di corrente, e il diodo fornito con il kit sembra progettato per abbassare la tensione da 5V (motivo per cui sulla scheda stessa è scritto 5V ) a 4.2V, ma a giudicare dalle lamentele del popolo crea più guai che benefici.
Supponiamo che tu abbia già assemblato questo modulo e che un ponticello sia saldato al posto di un diodo, poiché non gli forniremo una tensione di 5 V, ma lo alimenteremo direttamente da una batteria al litio, che rientra nella tensione consentita di 3,3-4,2 V.
Sarà necessario collegarlo in qualche modo al computer e verificarne l'operatività. In questo caso, è meglio comprarci in anticipo: attraverso di esso comunicheremo con il modulo e le schede Arduino tramite l'interfaccia seriale UART (USART).
Il collegamento è mostrato sotto nell'immagine (l'ho disegnato come meglio potevo):
Modem TX >>> Convertitore RX
modem RX<<< TX конвертера
Batteria Plus - Modem Plus
Il meno della batteria al litio è combinato con il GND del modem e il GND del convertitore
Per avviare il modem, collegare l'uscita BOOT tramite una resistenza da 4,7 kΩ a GND


Nel frattempo, esegui il programma sul computer. Presta attenzione alle impostazioni:
1) Seleziona la porta COM a cui è collegato il convertitore TTL, nel mio caso è COM4, ​​la tua potrebbe essere diversa.
2) Seleziona la velocità di trasmissione. (C'è una sfumatura qui, perché i moduli stessi possono essere configurati per velocità diverse, il più delle volte 9600 baud o 115200 baud. Qui è necessario selezionare empiricamente, scegliere una certa velocità, connettere e inviare il comando AT, se si verificano delle crepe in risposta , quindi si spegnerà, selezionerà una velocità diversa e ripeterà il comando fino a quando la risposta non sarà OK).
3) Selezionare la lunghezza del pacchetto (in questo caso 8 bit), bit di parità disabilitato (nessuno), bit di stop (1).
4) Assicurati di spuntare +CR, quindi un carattere di ritorno a capo verrà automaticamente aggiunto a ogni comando che inviamo al modulo alla fine: il modulo comprende i comandi solo con questo carattere alla fine.
5) Connessione, qui è tutto chiaro, cliccato e possiamo lavorare con il modulo.

Se si clicca su "Connessione" e poi si avvia il modulo applicando a massa BOOT tramite un resistore da 4.7K, sul terminale verrà visualizzato prima il messaggio "MODEM:STARTUP", poi, dopo un po', il messaggio "+ Verrà visualizzato PBREADY", il che significa che il numero di telefono è stato letto. libro, anche se potrebbe essere vuoto:

Sotto questo spoiler comandi AT con esempi

Stampiamo il comando AT - in risposta, il modulo ci invia il nostro comando, poiché la modalità eco è abilitata e OK:

Controlliamo lo stato del modem con il comando AT + CPAS - in risposta, di nuovo il nostro team, + CPAS: 0 e OK.
0 - significa che il modulo è pronto per funzionare, ma a seconda della situazione potrebbero esserci altri numeri, ad esempio 3 - chiamata in arrivo, 4 - in modalità di connessione, 5 - modalità di sospensione. Non ho trovato informazioni su 1 e 2.

La modifica della velocità di trasferimento dei dati tramite UART avviene con il comando AT + IPR = 9600 - questo è se è necessaria una velocità di 9600. Se un'altra, simile a AT + IPR = 19200 per esempio o AT + IPR = 115200.

Controlliamo il segnale di rete. AT + CSQ, + CSQ viene in risposta: 22.1 - il valore prima del punto decimale ha un intervallo di 0 ... 31 (115 ... 52 dB) - questo è il livello del segnale, maggiore è, meglio è. Ma 99 significa la sua assenza. Il valore dopo il punto decimale - qualità del segnale 0 ... 7 - è l'opposto qui, più piccolo è il numero, meglio è.

Disattiviamo la modalità eco inviando il comando ATE0 in modo che i comandi duplicati non interferiscano. Questa modalità viene riattivata con il comando ATE1.

Visualizza la versione del firmware AT+GETVERS



Questi e molti altri comandi possono essere visualizzati

Combinazione di tavole

Se Pro Mini non è difficile da saldare a una breadboard, allora con un modulo GSM la situazione è un po' più complicata, perché. il suo pettine di contatto si trova solo su un lato e, se solo è saldato, l'altro lato della scheda sarà semplicemente sospeso in aria. Poi, ancora, ad occhio, ho dovuto praticare altri 3 fori vicino a tre angoli della tavola. Le aree intorno a ciascuno dei fori sono state quindi smascherate. Per comodità, ho posizionato i cavi scollegati dal pettine sulla breadboard (bianca) e, dopo aver installato su di essi la scheda del modulo GSM, ho saldato normalmente:

Successivamente ho dovuto fare un altro foro, nel mio caso sulla lettera "I", dove c'è scritto "Made In China", sul bordo del tabellone.


È successo così che il contatto aggiunto, che è essenzialmente GND, si è avvicinato al GND della scheda Pro Mini, ed è stato così possibile combinare la massa del modulo GSM e della Pro Mini con una goccia di saldatura (un lungo cavo al centro ea destra c'è il guinzaglio Pro Mini) - contrassegnati con le frecce. Si è rivelato storto, ovviamente, ma ora tiene saldamente:



C'era ancora un po' di spazio tra le schede: ho posizionato una scheda di controllo della carica a scarica di litio con un connettore microUSB pre-saldato e fili saldati al suo interno.

La sciarpa vi entra molto stretta, mentre il bagliore dei LED laterali sarà ben visibile attraverso un piccolo foro nella custodia.



Scaffali per schede

Per riparare in modo sicuro la scheda all'interno del case, ho dovuto passare un paio di giorni a pensare a come implementarlo. L'opzione con adesivo hot melt non è stata presa in considerazione per diversi motivi: può cadere, deformarsi e, soprattutto, il design risulterebbe difficile da smontare.
Sono giunto alla conclusione che l'opzione più semplice e corretta qui sarebbe quella di utilizzare i rack, che naturalmente non avevo. Tuttavia, c'erano un paio di caricabatterie non funzionanti, da cui è stato ritagliato un lungo rack con una filettatura per viti autofilettanti. Ogni rack è stato segato a metà e rifinito con una lima di circa 9,5 mm - è a questa altezza che la batteria situata sotto la scheda ha un margine sufficiente, circa 2 mm - questo viene fatto in modo che i contatti saldati della scheda non si tocchino con le loro punte e in modo che sia possibile mettere un pezzo tra loro schiuma per il fissaggio.
Per quanto riguarda il fissaggio della scheda direttamente alla custodia, qui ho tagliato quattro strisce da una lattina di caffè, ho praticato un foro alle estremità della quale, quindi le ho fissate sulle stesse viti autofilettanti che si avvitano nei rack. Guarda la foto qui sotto per vedere come appare.
Il passaggio successivo consiste nell'avvitare una coppia di supporti sull'altro lato della scheda, cioè dall'alto, in modo che quando la custodia è chiusa, il coperchio si appoggi leggermente contro questi supporti, creando ulteriore fissaggio. Poco dopo, in questo caso, mi sono imbattuto in un edificio sotto la radio di propaganda sovietica (se fosse stato trovato prima, avrei preso tutti gli scaffali da qui), dove ho trovato un paio di altezze più o meno adatte, ma prima li ho forati al centro con un trapano sotto viti autofilettanti. Poi li ha tagliati e rifiniti anche con una lima, eliminando l'eccesso. Qui ho una sottigliezza: nella foto puoi vedere che un supporto bianco è avvitato alla scheda getinax dal bordo e l'altro supporto bianco è direttamente alla scheda del modulo, perché. da un lato, la scheda modem copre completamente la scheda inferiore e dal bordo opposto, al contrario, quella inferiore guarda fuori. Allo stesso tempo, è stato necessario praticare ulteriori fori in entrambe le schede in modo che le teste delle viti autofilettanti potessero passare liberamente.
E infine, resta da assicurarsi che la scheda sia sempre parallela alla custodia: le staffe utilizzate per fissare fili e cavi sul muro si adattano perfettamente a questa custodia, in precedenza ho rimosso i chiodi da loro. Le staffe aderiscono bene alla scheda con il loro lato concavo senza alcun dispositivo aggiuntivo, l'unica cosa è a destra della scheda SIM, la larghezza della staffa si è rivelata eccessiva e ha dovuto essere carteggiata anche lei.
Tutti i dettagli sono stati regolati ad occhio ed empiricamente, di seguito una foto di tutto quanto sopra:



Connettori. LED. Pulsante.

Dato che ho esaurito il pettine, ho dovuto smontare il connettore a 6 pin dalla scheda dell'unità DVD, che ho poi saldato al Pro Mini, questo è per comodità di eseguire il flashing della scheda. Nelle vicinanze, ho saldato un connettore rotondo (Nokiev 3,5 mm) per caricare il litio.

Il corpo del connettore a 6 pin è stato leggermente rifinito con una lima, perché i suoi bordi sporgevano leggermente sopra il corpo. La presa di ricarica si inserisce perfettamente nella parete della custodia.

Sull'altro lato della scheda ho saldato un pulsante per resettare il dispositivo e due led per il debug del firmware - il led rosso è collegato al modulo GSM, il secondo led verde è collegato alla decima uscita del Pro Mini - è più facile per me eseguire il debug del programma.

Aggiornamento della batteria

Una batteria Nokian scarica dei telefoni Nokia non è meno comune del 18650, ma molti semplicemente si rifiutano di usarla a causa dell'inconveniente di collegare i contatti che sono incassati in profondità nella batteria stessa. Non è desiderabile saldarli, quindi è stato deciso di utilizzare il metodo da questi proposto, ovvero realizzare un blocco di contatti da una gomma per cancelleria e filo di rame (spessore 1,5 mm).
Per prima cosa, ho perforato un pezzo di gomma con due fili con le estremità precedentemente spellate e l'ho calcolato sui contatti della batteria in modo che la distanza tra loro coincidesse,
ha piegato le estremità, le ha stagnate con un saldatore e le ha tirate indietro leggermente per le estremità lunghe in modo che i contatti risultanti fossero affondati nella gomma.



Esempio di batteria:

Puoi fissare la morsettiera con un elastico o avvolgerla con del nastro isolante blu, cosa che ho fatto alla fine.

Assemblea.

La parte principale del lavoro è fatta, resta da raccogliere e sistemare tutto.
Tra la batteria e la scheda, ho messo un pezzo di gommapiuma in modo che non strisciasse all'interno della custodia in seguito. Ho inoltre saldato un condensatore da 2200 uF per alimentare il modulo.

Quando la ricarica è collegata:

Telaio. Morsettiera esterna.

Il caso è arrivato sul mercato radiofonico locale per circa $ 1,5, se tradotto in dollari, di dimensioni 95x60x25 mm, quasi le dimensioni di un pacchetto di sigarette. Ci ho praticato alcuni fori. Innanzitutto per una morsettiera a 4 pin presa da un dimmer non funzionante.
Ho liberato completamente i due contatti estremi da bulloni con guarnizioni, fori praticati per bulloni più lunghi, sui quali verrà trattenuta l'intera morsettiera sulla custodia. Sulla custodia stessa, ovviamente, i due fori estremi saranno grandi e i due al centro saranno più piccoli: avranno contatti infilati attraverso di essi, uno dei quali è collegato al VCC Pro Mini e il secondo contatto a pin 2.

Praticare i fori, anche se a prima vista semplice, non è meno dispendioso in termini di tempo, è molto facile non vederlo, quindi l'ho fatto prima con un trapano di diametro più piccolo, poi con uno più grande.

Per il pulsante dell'orologio, ho preso un cappuccio con una parte superiore leggermente concava, in modo che attraverso un foro stretto nella custodia fosse comodo colpirlo con un fiammifero o una graffetta.

Scheda in una custodia con un cavo convertitore USB-TTL collegato:

A proposito dell'antenna.
L'antenna, come avrete notato nel corso della recensione, cambiava continuamente, mentre sperimentavo diverse antenne fatte in casa. Inizialmente, c'era un connettore coassiale rotondo sulla scheda del modulo, ma la quinta volta che è stato utilizzato per un'antenna esterna, è semplicemente andato in pezzi, quindi tieni presente che è fragile. Di conseguenza, ho strappato l'antenna textolite dal vecchio router e l'ho saldata alla scheda del modulo, perché. cattura la rete un po' meglio della molla e del filo.

Bene, completamente assemblato con la ricarica collegata si presenta così:

Test. Come funziona:

Oltre alle prove con le antenne, ho verificato come si sarebbe comportato l'allarme per strada, con gelo -15. Per fare ciò, ho semplicemente messo l'intero interno in un contenitore e l'ho lasciato sul balcone per la notte, mentre l'allarme non si avviava, il motivo si è rivelato generalmente ovvio: al litio non piace il gelo. Ciò è stato confermato da un altro test, in cui ho lasciato la batteria a casa, ho portato la scheda attraverso lunghi fili in strada e l'ho lasciata così per un giorno nella stessa operazione di gelo, come se nulla fosse accaduto. D'altra parte, sarebbe strano se l'allarme non funzionasse. nelle schede tecniche per atmega, per il modulo, per il quarzo - le temperature di esercizio consentite sono fino a -40 gradi.

Il principio di funzionamento è organizzato da un interrupt esterno, inizialmente il pin 2 è chiuso a VCC e quindi viene mantenuto un 1 logico sull'uscita e il controller è inattivo. Non appena il contatto si interrompe e appare 0 sul pin 2, il microcontrollore si riattiva, abbassa a massa il 3° pin (a cui è collegato il modem BOOT tramite un resistore) - il modulo si avvia, l'MK interroga periodicamente il modulo per prontezza e, non appena rileva la rete, invia immediatamente una chiamata al numero di telefono del proprietario specificato nel codice. Dopo aver rifiutato la chiamata, il dispositivo si spegne senza inviare più infinite chiamate di quante peccamino molti allarmi cinesi.

Informazioni aggiuntive

#includere #includere // Libreria UART software SoftwareSerial gsm(7, 6); // RX(7), TX(6) void wakeUp()() // gestore di interrupt vuoto /////////////////////////// ////////// /////////////// void gsmOFF()( // PORTD|=(1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Schema (senza scheda di controllo carica-scarica)



Conclusioni e pensieri. Piani.

L'allarme è usato nel paese, sono soddisfatto del lavoro, tuttavia, con un ulteriore studio dell'AVR, vengono fuori sempre più idee per una sua ulteriore modifica. Arduino con il suo pseudo-linguaggio Wiring mi ha sconvolto molto, perché. C'è stato un momento spiacevole nel lavoro. Quando ho usato le funzioni per lavorare con digitalWrite();ports; o pinMode(); - quindi il modulo GSM per qualche motivo ha riattaccato molto spesso. Ma valeva la pena sostituirli con trucchi come DDRB|=(1<Solo l'operazione di accesso diretto alle porte ha fatto funzionare il dispositivo, come previsto.

Per il risparmio energetico...
Il dispositivo assemblato ha funzionato per quattro mesi interi senza ricaricarsi e continua a funzionare, anche se è più corretto dire "sonno". Questo viene verificato da un semplice riavvio tramite il pulsante bianco. Con un consumo di 250 μA (tramite lo stabilizzatore LE33) e una batteria di ~1430 mAh, anche se va bene, a causa della non novità della batteria arrotonderemo a 1000 mAh, si scopre che il dispositivo può dormire per circa 5,5 mesi senza ricarica. Se continui a dissaldare lo stabilizzatore, il tempo di funzionamento può essere tranquillamente moltiplicato per 10 volte. Ma nel mio caso non ce n'è bisogno, perché devi comunque spendere il saldo della SIM ogni tre mesi, allo stesso tempo il dispositivo può essere controllato e ricaricato.
L'esempio di risparmio energetico riportato nella recensione è lontano dal limite, perché. a giudicare dalle informazioni della scheda tecnica, è possibile abbassare la frequenza di clock del microcontrollore (e ciò avviene installando dei fusibili) a 1 MHz e, se viene applicata una tensione di 1,8V, il consumo scenderà al di sotto della barra di 1 μA in modalità attiva. Molto sciocco! Ma se l'MK è sincronizzato dal generatore RC interno, apparirà un altro problema: l'etere UART sarà intasato da spazzatura ed errori, specialmente se il controller è riscaldato o raffreddato.

Al completamento...
1) Un filo convenzionale impostato per la rottura non è molto conveniente, ho intenzione di sperimentare un sensore Hall e un interruttore reed, anche se di quest'ultimo dicono che non è molto affidabile, perché i contatti al suo interno possono attaccarsi.
2) Sarebbe bello aggiungere la possibilità di modificare il "numero proprietario" senza la partecipazione di un computer e il flashing. Questo già con EEPROM dovrà funzionare.
3) Prova le interruzioni del timer watchdog, ma non solo per curiosità, ma affinché il microcontrollore si svegli periodicamente da solo, misuri la tensione della batteria e invii il valore risultante tramite SMS per essere consapevole di quanto è scarica la batteria.
4) Un pannello solare può eliminare completamente la necessità di ricaricare il dispositivo, questo sarà particolarmente vero per le batterie a bassa capacità.
5) Per molto tempo volevo acquistare batterie LiFePo4, che, secondo le recensioni, normalmente tollerano il gelo, ma mentre cercavo un lotto adatto, la primavera era già impercettibilmente arrivata.
6) Intervenire sulla componente estetica

Quale Pro Mini dovrei acquistare?
Se non c'è un asciugacapelli, quindi Pro Mini "RobotDyn" Atmega168PA 3.3V, prendi il LED con qualcosa di nitido e hai ~ 250 μA.
Se c'è un asciugacapelli, quindi qualsiasi scheda, saldare lo stabilizzatore e il LED di alimentazione: ottieni ~ 20 μA di consumo di corrente.

Per ora è tutto, spero che la recensione sia stata interessante e utile.

Ho intenzione di acquistare +174 Aggiungi ai preferiti Mi è piaciuta la recensione +143 +278

Buona giornata 🙂 Oggi parleremo di segnalazione. Il mercato dei servizi è pieno di aziende, organizzazioni che installano e mantengono sistemi di sicurezza. Queste aziende offrono all'acquirente un'ampia selezione di sistemi di allarme. Tuttavia, il loro costo è tutt'altro che economico. Ma che dire di una persona che non ha così tanti soldi personali che possono essere spesi per un antifurto? Penso che la conclusione suggerisca da sé - fare allarme i loro mani. Questo articolo è un esempio di come è possibile creare il proprio sistema di sicurezza codificato utilizzando una scheda Arduino uno e alcuni sensori magnetici.

Il sistema può essere disattivato inserendo la password da tastiera e premendo il tasto ‘ * '. Se vuoi cambiare la tua password attuale, puoi farlo premendo il tasto ‘ B', e se vuoi saltare o annullare l'operazione, puoi farlo premendo il tasto ‘#’. Il sistema dispone di un cicalino per riprodurre suoni diversi durante l'esecuzione di una particolare operazione.

Il sistema si attiva premendo il pulsante 'A'. Il sistema concede 10 secondi per lasciare la stanza. Dopo 10 secondi verrà attivato l'allarme. Il numero di sensori magnetici dipenderà dal tuo desiderio. Il progetto ha coinvolto 3 sensori (per due finestre e una porta). All'apertura della finestra si attiva il sistema e si attiva l'allarme acustico. Il sistema può essere disattivato inserendo una password. Quando la porta si apre, l'allarme dà alla persona che entra 20 secondi per inserire la password. Il sistema utilizza un sensore a ultrasuoni in grado di rilevare il movimento.

Video del dispositivo

mestiere Realizzato per scopi informativi/didattici. Se vuoi usarlo a casa, dovrai modificarlo. Racchiudere l'unità di controllo in una custodia metallica e proteggere la linea di alimentazione da possibili danni.

Iniziamo!

Passaggio 1: di cosa avremo bisogno

  • scheda Arduino uno;
  • display LCD ad alto contrasto 16×2;
  • tastiera 4×4;
  • potenziometro 10~20kΩ;
  • 3 sensori magnetici (sono anche interruttori reed);
  • 3 terminali a vite a 2 pin;
  • sensore ad ultrasuoni HC-SR04;

Se vuoi costruire un sistema senza usare un Arduino, avrai bisogno anche di quanto segue:

  • header DIP per atmega328 + microcontrollore atmega328;
  • risonatore al quarzo da 16 MHz;
  • 2 pezzi Ceramica 22pF, 2 pz. condensatore elettrolitico da 0,22 uF;
  • 1 PC. resistenza da 10 kΩ;
  • presa per alimentazione (jack di alimentazione CC);
  • tagliere di pane;
  • alimentazione 5V;

E una scatola per imballare tutto!

Strumenti:

  • Qualcosa che può tagliare una scatola di plastica;
  • pistola per colla a caldo;
  • Trapano/cacciavite.

Passaggio 2: diagramma di allarme

Lo schema di connessione è abbastanza semplice.

Piccola precisazione:

LCD ad alto contrasto:

  • Pin1 - Da Vdd a GND
  • Pin2 - Vss a 5V;
  • Pin3 - Vo (all'uscita centrale del potenziometro);
  • Pin4 - RS ad Arduino pin 8;
  • Pin5 - RW a GND
  • Pin6 - EN su Arduino pin 7;
  • Pin11 - D4 ad Arduino pin 6;
  • Pin12 - D5 ad Arduino pin 5;
  • Pin13 - D6 su Arduino pin 4;
  • Pin14 - D7 ad Arduino pin 3;
  • Pin15 - Vee (all'uscita destra o sinistra del potenziometro).

Tastiera 4×4:

Da sinistra a destra:

  • Pin Arduino da Pin1 a A5;
  • Pin Arduino da Pin2 a A4;
  • Pin3 su Arduino pin A3;
  • Pin4 su Arduino pin A2;
  • Pin5 su Arduino pin 13;
  • Pin6 su Arduino pin 12;
  • Pin7 su Arduino pin 11;
  • Pin8 su Arduino pin 10.

Passaggio 3: firmware

Il passaggio mostra il codice utilizzato dal built-in !

Scarica il plug-in codebender. Fai clic sul pulsante "Esegui" nell'Arduino e fai lampeggiare la tua scheda con questo programma. È tutto. Hai appena programmato Arduino! Se desideri apportare modifiche al codice, fai clic sul pulsante "Modifica".

Nota: se non stai utilizzando Codebender IDE per programmare la scheda Arduino, dovrai installare librerie aggiuntive nell'IDE Arduino.

Passaggio 4: creare la tua scheda di controllo

Dopo aver costruito e testato con successo il tuo nuovo progetto Arduino uno, puoi iniziare a creare la tua scheda.

Alcuni consigli per portare a termine con maggiore successo l'impresa:

  • Tra pin 1 (reset) e pin 7 (Vcc) del microcontrollore Atmega328 deve essere collegata una resistenza da 10kΩ.
  • Un cristallo da 16 MHz dovrebbe essere collegato ai pin 9 e 10 etichettati XTAL1 e XTAL2
  • Collegare ciascun cavo del risonatore a condensatori da 22 pF. Collegare i fili liberi dei condensatori al pin 8 (GND) del microcontrollore.
  • Non dimenticare di collegare la seconda linea di alimentazione dell'ATmega328 all'alimentazione, pin 20-Vcc e 22-GND.
  • Puoi trovare ulteriori informazioni sui pin del microcontrollore nella seconda immagine.
  • Se si prevede di utilizzare un alimentatore con una tensione superiore a 6V, è necessario utilizzare un regolatore lineare LM7805 e due condensatori elettrolitici da 0,22uF, che devono essere montati all'ingresso e all'uscita del regolatore. È importante! Non applicare più di 6V alla scheda!!! In caso contrario, brucerai il tuo microcontrollore Atmega e il display LCD.

Passaggio 5: posizionare il circuito nella custodia

Ciao caro lettore! L'articolo di oggi riguarda la costruzione di un semplice sistema di sicurezza domestica utilizzando componenti prontamente disponibili. Questo dispositivo piccolo ed economico ti aiuterà a proteggere la tua casa dalle intrusioni utilizzando Arduino, sensore di movimento, display e altoparlante. Il dispositivo può essere alimentato da una batteria o da una porta USB su un computer.

Quindi, iniziamo!

Come funziona?

I corpi a sangue caldo si irradiano nella gamma degli infrarossi, che è invisibile agli occhi umani, ma può essere rilevata tramite sensori. Tali sensori sono costituiti da un materiale che, se esposto al calore, può polarizzarsi spontaneamente, il che consente di rilevare la comparsa di sorgenti di calore all'interno della portata del sensore.

Per una gamma più ampia, vengono utilizzate lenti di Fresnel, che raccolgono la radiazione IR da diverse direzioni e la concentrano sul sensore stesso.

La figura mostra come la lente distorce i raggi che cadono su di essa.

Vale la pena notare che i robot senza parti particolarmente riscaldate e quelli a sangue freddo emettono pochissimo nella gamma degli infrarossi, quindi il sensore potrebbe non funzionare se dipendenti o rettiliani di Boston Dynamics decidono di circondarti.

Quando c'è un cambiamento nel livello di radiazione IR nel raggio d'azione, questo verrà elaborato da Arduino, dopodiché lo stato verrà visualizzato sull'LCD, il LED lampeggerà e l'altoparlante emetterà un segnale acustico.

Di cosa avremo bisogno?

  1. (o qualsiasi altra tassa).
  2. (16 caratteri, due righe)
  3. Un connettore per collegare la corona ad Arduino
  4. (anche se puoi usare un normale altoparlante)
  5. Cavo USB - solo programmazione ( ca. trans.: viene sempre fornito con i nostri Arduino!)
  6. Computer (di nuovo, solo per scrivere e scaricare il programma).

A proposito, se non vuoi acquistare tutte queste parti separatamente, ti consigliamo di prestare attenzione alle nostre. Ad esempio, tutto ciò di cui hai bisogno e anche di più è nel nostro kit di base.

Ci colleghiamo!

Il collegamento del sensore di movimento è molto semplice:

  1. Colleghiamo il pin Vcc all'Arduino 5V.
  2. Collega il pin Gnd al GND di Arduino.
  3. Il pin OUT è collegato al pin digitale numero 7 di Arduino

Ora colleghiamo il LED e l'altoparlante. È altrettanto semplice qui:

  1. Colleghiamo la gamba corta (meno) del LED a terra
  2. Colleghiamo la gamba lunga (più) del LED all'uscita numero 13 di Arduino
  3. Cavo rosso dell'altoparlante per l'uscita n. 10
  4. Filo nero a massa

E ora la parte più difficile è collegare il display LCD 1602 ad Arduino. Il display è senza I2C, quindi ci vorranno molte uscite Arduino, ma ne varrà la pena. Il diagramma è mostrato di seguito:

Ci serve solo una parte del circuito (non avremo una regolazione del contrasto con un potenziometro). Pertanto, devi solo fare quanto segue:

Ora sai come collegare il display 1602 ad Arduino UNO R3 (proprio come qualsiasi versione di Arduino da Mini a Mega).

Programmazione

È ora di passare alla programmazione. Di seguito trovi il codice che devi solo compilare e, se hai assemblato tutto correttamente, il dispositivo è pronto!

#includere int ledPin = 13; // LED pin int inputPin = 7; // Pin a cui è collegato il sensore di movimento Out int pirState = LOW; // Stato corrente (nessuna trovata all'inizio) int val = 0; // Variabile per la lettura dello stato degli ingressi digitali int pinSpeaker = 10; // Il pin a cui è collegato l'altoparlante. Necessario per utilizzare il pin PWM LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Inizializza il display LCD void setup() ( // Determina la direzione del trasferimento dei dati sui pin digitali pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Avvia l'output delle informazioni di debug tramite la porta seriale Serial .begin(9600); // Avvia l'output sul display LCD lcd.begin(16, 2); // Imposta l'indice sui display per avviare l'output da // (2 caratteri, 0 righe) lcd. setCursor(2 , 0) ; // Output sul display LCD lcd.print("P.I.R Motion"); // Sposta di nuovo lcd.setCursor(5, 1); // Output lcd.print("Sensor"); // Pausa per leggere , cosa è stato stampato delay(5000); // Cancellazione lcd.clear(); // Come lcd.setCursor(0, 0); lcd.print("Dati in elaborazione."); delay(3000); lcd.clear (); lcd.setCursor(3, 0); lcd.print("In attesa di"); lcd.setCursor(3, 1); lcd.print("Movimento...."); ) void loop() ( // Leggi la lettura del sensore val = digitalRead(inputPin); if (val == HIGH) ( // Se c'è movimento, accendere il LED e accenderlo sirena digitalWrite(ledPin, HIGH); tono di riproduzione(300, 300); ritardo(150); // Se non c'è stato alcun movimento fino a questo punto, stampa un messaggio // che è stato rilevato // Il codice seguente è necessario per scrivere solo un cambio di stato e non stampare il valore ogni volta se (pirState == BASSO) ( Serial.println("Movimento rilevato!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Movimento rilevato!"); pirState = ALTO; ) ) else ( // Se il movimento è terminato digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH)( // Segnaliamo che il movimento era, ma è già terminato Serial.println( "Motion terminato!"); lcd.clear() ; lcd.setCursor(3, 0); lcd.print("Waiting For"); lcd.setCursor(3, 1); lcd.print("Motion... ."); pirState = LOW; ) ) ) // Funzione di riproduzione audio. Duration (durata) - in millisecondi, Freq (frequenza) - in Hz void playTone(long duration, int freq) ( duration *= 1000; int period = (1.0 / freq) * 100000; long elapsed_time = 0; while (elapsed_time< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

Nell'ultimo articolo abbiamo imparato come utilizzare il modulo GSM SIM800L e realizzato un progetto semplice per il controllo del carico da remoto, oggi faremo qualcosa di più interessante, ovvero un allarme di sicurezza GSM sul modulo SIM800L di Aliexpress e Arduino, che può essere utilizzato per proteggere un appartamento, un cottage, un garage e altri oggetti e, quando viene attivato, ti avviserà con una chiamata o un messaggio SMS.

Cosa ci serve per realizzare un allarme GSM:

  • Modulo GSM/GPRS SIM800L;
  • Arduino Nano, UNO o altro Arduino;
  • Convertitore DC-DC step-down;
  • Batteria 3,7 V;
  • Resistori per 10 k - 7 pezzi;
  • Alimentazione elettrica.

Come realizzare un allarme antifurto GSM sul modulo SIM800L e Arduino, descrizione del lavoro:

Colleghiamo il modulo SIM800L, Arduino, sensori, ecc. secondo lo schema sottostante, il tutto è assemblato su una breadboard in modo da poter cambiare qualcosa in qualsiasi momento, lo posizioniamo in una valigetta adatta e portiamo fuori i fili dalla custodia per sensori di sicurezza e alla PSU. Mettiamo anche la batteria nella custodia, è necessaria in modo che quando l'elettricità scompare in casa, il dispositivo vada in modalità standalone alimentato dalla batteria. Sul boost converter, impostiamo l'uscita a 4,2 volt, a questa tensione funziona il modulo SIM GSM e la batteria si ricarica, e questa tensione è sufficiente anche per il funzionamento di Arduino Nano.

Al circuito possono essere collegati 5 sensori qualsiasi, come interruttori reed, umidità, fumo, sensori di movimento, ecc. che supportano il funzionamento del relè, poiché questo circuito è configurato per attivare un allarme per un circuito aperto di uno qualsiasi dei cinque sensori, ma se lo si desidera, lo schizzo può essere convertito in un cortocircuito.

Quando viene attivato il primo sensore, viene effettuata una chiamata al numero specificato, quindi la chiamata viene interrotta e viene effettuata una chiamata al secondo numero, ciò avviene se il primo numero non è al momento disponibile. Quando gli altri 4 sensori di sicurezza vengono attivati, viene inviato solo un messaggio SMS in cui è scritto il numero o il nome della zona attivata, e questo messaggio verrà inviato anche a due numeri di telefono.

Nello schizzo puoi inserire numeri di telefono e dare i tuoi nomi alle aree protette, invece di “Allarme! Zona1", "Allarme! Zona2", "Allarme! Zone3”… Puoi scrivere il nome dell'oggetto in cui hai inserito un sensore specifico, ad esempio “Allarme! Okno, sveglia! Dverj” e altri, scrivono i nomi della zona solo in latino. Sempre nello sketch è impostato il tempo di richiamata al proprietario, ovvero dopo quante ore per informarti che tutto il sistema è funzionante e tutto è in ordine, di default è impostato per richiamare ogni 144 ore.

Ecco fatto, abbiamo realizzato un semplice antifurto GSM sul modulo SIM800L e Arduino, lo schizzo e il circuito possono essere migliorati, ad esempio il modulo SIM800L supporta la possibilità di collegare ad esso un altoparlante e un microfono, che ti permetterà di ascoltare nell'area protetta, oltre a portare la tua voce all'altoparlante.

Scarica lo schizzo per Arduino.