Σύστημα συναγερμού με arduino

Φτιάξε το δικό σου σύστημα συναγερμού με arduino

Θα κατασκευάσουμε μαζί ένα σύστημα συναγερμού με arduino. Η ανίχνευση κίνησης είναι ένα συναρπαστικό project το οποίο θα σας δείξω πως μπορείτε να πετύχετε.

Με ελάχιστα υλικά μπορείτε να υλοποιήσετε το project και εσείς για να φτιάξετε το δικό σας σύστημα συναγερμού /  ανίχνευσης!

Ανίχνευση κίνησης με arduino

Με ποιο τρόπο θα πετύχουμε την ανίχνευση κίνησης; Μα φυσικά με έναν πυροηλεκτρικό αισθητήρα κίνησης (PIR sensor) ο οποίος λειτουργεί με έναν αισθητήρα υπερύθρων. Στον αισθητήρα υπάρχουν 2 ποτενσιόμετρα, ένα για να ρυθμίζει την ευαισθησία (απόσταση στόχου από τον αισθητήρα) και ένα την διάρκεια της εξόδου σε περίπτωση που αυτή ενεργοποιηθεί από κάποια κίνηση.

Αισθητήρας υπερύθρων

Το βασικό εξάρτημα για το project μας είναι ο αισθητήρας κίνησης (PIR). Στην παρακάτω φωτογραφία βλέπετε τον αισθητήρα με το πλαστικό κάλυμμα.

αισθητήρας κίνησης

Κάτω από το λευκό πλαστικό κάλυμμα, υπάρχει ένας αισθητήρας υπερύθρων, ο οποίος φαίνεται στην παρακάτω εικόνα.

αισθητήρας κίνησης με arduino

Ο αισθητήρας λειτουργεί με το να λαμβάνει την εκπέμπουσα υπέρυθρη ακτινοβολία που εκπέμπει ένας άνθρωπος ή ζώο και να ελέγχει αν υπάρχει κάποια διακύμανση στην τιμή. Σε περίπτωση που εντοπίσει διακύμανση, μέσω του pin OUT που διαθέτει στέλνει την τιμή HIGH (5v) στο arduino η το υπόλοιπο κύκλωμα.

Στον αισθητήρα υπάρχουν και δύο ποτενσιόμετρα με τα οποία μπορούμε να ρυθμίσουμε την ευαισθησία αλλά και τον χρόνο που θα δίνει την έξοδο.

Υπάρχει και ένα Jumper το οποίο χρησιμοποιείται όταν θέλουμε να έχουμε έναν παλμό εξόδου σε περίπτωση ενεργοποίησης ή πολλαπλούς για όσο διαρκεί η κατάσταση HIGH στην έξοδο.

Το project

Το project είναι αρκετά απλό αλλά θα μας μάθει πως να χρησιμοποιούμε τον συγκεκριμένο αισθητήρα. Σε συνδυασμό με ένα GSM module το οποίο διαθέτω και θα σας δείξω σε επόμενο Project, μπορούμε να κάνουμε ένα σύστημα το οποίο θα μας στέλνει sms όταν εντοπίζει κίνηση. Επίσης θα κάνουμε χρήση της εντολής digitalRead() αλλά και της digitalWrite() γιατί θα χειριστούμε εισόδους και εξόδους με ψηφιακό τρόπο.

Παρακάτω η λίστα των υλικών που θα χρειαστούμε.

  1. Arduino (οποιαδήποτε έκδοση)
  2. Αισθητήρας κίνησης PIR
  3. LED
  4. Bread Board
  5. Wires
  6. GSM module (οποιοδήποτε αρκεί να υποστηρίζει ένα Ελληνικό δίκτυο κινητής τηλεφωνίας)*

*Όσον αφορά το GSM module, έμαθα (με τον δύσκολο τρόπο) ότι θα πρέπει να υποστηρίζει ένα Ελληνικό δίκτυο. Προσπαθώντας να βρω ένα οικονομικό από το ebay, διαπίστωσα ότι τα κινέζικα GSM modules της τάξης των 10€ ΔΕΝ υποστηρίζουν κανένα από τα Ελληνικά δίκτυα.

Δεν το έβαλα κάτω όμως (και αφού ήδη είχα αγοράσει ένα κινέζικο δεν μπορούσα να κάνω και διαφορετικά), χρησιμοποιώντας το GSM module με το chip SIM900, έκανα μία αναβάθμιση με firmware που χρησιμοποιούν στο SIM900A (ναι! το Α κάνει μεγάλη διαφορά) και κατάφερα να το δουλέψω μόνο με την Vodafone ( καλύτερο από το τίποτα).

Για να μην έχετε προβλήματα, δοκιμάστε ένα GSM module από Ευρωπαϊκή αγορά π.χ. ένα shield από την Grobotronics ή την HellasDigital (δεν σας λέω ποιο για να μην σας πάρω στο λαιμό μου, ρωτήστε και οι δύο εταιρείες είναι πολύ εξυπηρετικές)

Για την αναβάθμιση χρησιμοποίησα ένα module serial to usb FTDI.

αισθητήρας κίνησης με arduino
FTDI Serial to USB

 Το GSM module

To gsm module θα το βρείτε σε πολλές παραλλαγές. Για να προβείτε σε αγορά, θα έλεγα να μην προτιμήσετε τα “κινέζικα” από το ebay καθώς αν και 5 φορές (τουλάχιστον) φθηνότερα, δεν λειτουργούν με τα δικά μας δίκτυα. Θα πρέπει να τα αναβαθμίσετε αλλά για να το κάνετε αυτό θα πρέπει να είστε έμπειροι/ες.

gsm module arduino

Το θετικό είναι ότι δεν χρειάζεται να ενσωματώσετε κάποια επιπλέον βιβλιοθήκη μιας και χρησιμοποιούμε μόνο την σειριακή επικοινωνία μεταξύ του gsm και του arduino. Χρησιμοποιούμε το set εντολών AT τις οποίες παρουσιάζουμε παρακάτω.

Εντολές ΑΤ

Υπάρχει ένα set εντολών το οποίο χρησιμοποιούμε για να επικοινωνήσουμε με το gsm modem. Το gsm δεν έχει μνήμη, έτσι τις εντολές θα πρέπει να τις γράψουμε τόσο στην Setup του arduino (γιατί πρέπει να σετάρουμε το Μόντεμ κάθε φορά που ανοίγουμε το arduino όσο και στην loop όταν θέλουμε να στείλουμε / διαβάσουμε sms ή να κάνουμε / λάβουμε κλήση.

AT –> OK
Δίνοντας την εντολή AT θα πρέπει να λάβουμε ΟΚ ώστε να βεβαιωθούμε ότι η επικοινωνία μέσω σειριακής μεταξύ modem και arduino είναι οκ.

AT+CMGF=(Mode) (όπου Mode 1 ή 0)
Με αυτή την εντολή ορίζουμε το mode του Modem όσον αφορά τον τύπο των SMS. το 0 σημαίνει PDU και το text 1. Για παράδειγμα AT+CMGF=1 θα πρέπει να μας επιστρέψει OK.

AT+CMGW είναι η εντολή όπου αποθηκεύει το μήνυμα προς αποστολή. Όταν δώσουμε αυτή την εντολή στην σειριακή, ακολουθεί ο χαρακτήρας > όπου ξεκινάμε να γράφουμε ένα μήνυμα (sms). Το μήνυμα τερματίζεται όταν δώσουμε τον χαρακτήρα Ctrl+Z. Το αποτέλεσμα μετά θα είναι ένας αριθμός στον οποίο έχει αποθηκευτεί το μήνυμα.

Για να στείλουμε το παραπάνω μήνυμα το οποίο μπορεί να αποθηκεύτηκε στην θέση 1 θα δώσουμε την εντολή:

AT+CMGS=1


Για να κάνουμε / απαντήσουμε κλήσεις

Θα πρέπει να χρησιμοποιήσουμε την εντολή:

ATD<αριθμός προς κλήση>

π.χ. ATD6999999999, θα καλέσει το κινητό 6999999999

Για να απαντήσουμε μία κλήση που έρχεται, χρησιμοποιούμε την εντολή

ATA. Όταν χτυπάει το modem επειδή το καλούμε, δίνουμε την εντολή ΑΤΑ και το μόντεμ απαντά.

Για περισσότερες εντολές ΑΤ κάντε κλικ εδώ

Περιγραφή λειτουργίας

Μόλις ο αισθητήρας κίνησης εντοπίσει κίνηση, Ανάβει ένα LED το οποίο είναι ενδεικτικό της ενεργοποίησης του συναγερμού. Στην συνέχεια ενεργοποιεί το GSM module το οποίο με την σειρά του στέλνει ένα SMS σε επιλεγμένο αριθμό. Το ενδεικτικό LED σβήνει στον προκαθορισμένο χρόνο. Η λογική είναι ότι μπορεί εκτός από το SMS, ο χρήστης να θέλει να ανάψει και μία λάμπα για κάποιο χρονικό διάστημα.

Το κύκλωμα

Το GSM module (αριστερά) μπορεί να διαφέρει λίγο από το πραγματικό (παιδιά αυτό βρήκα δεν έχει άλλο 🙂 ) αλλά τα pin συνδέονται ακριβώς το ίδιο.

Σημείωση! Υπάρχει η πιθανότητα να μην δουλέψει σωστά ακόμα και αν κάνετε το κύκλωμα.

Αυτό συμβαίνει διότι όταν το GSM στέλνει μήνυμα,  “τραβάει” αρκετό ρεύμα (μέχρι και 1Α σε ορισμένες περιπτώσεις), οπότε αν τροφοδοτείτε το κύκλωμα μέσω USB, να ξέρετε ότι μία θύρα USB βγάζει 1 ή 1,5A max.

Στην αρχή του βίντεο επίτηδες τροφοδοτώ το GSM μόνο του με το τροφοδοτικό που έχω ώστε να σας δείξω ότι το ρεύμα που τραβάει είναι αρκετό. Αν θέλετε, μπορείτε να συνδέσετε το GSM μόνο του με εξωτερική τροφοδοσία, δουλεύει εξίσου καλά.

Μπορείτε να κατεβάσετε το κύκλωμα για να το ανοίξετε με το πρόγραμμα Fritzing, από εδώ (χρειάζεται αποσυμπίεση)

Το κύκλωμα σε Fritzing

Ο κώδικας του κυκλώματος

Παρακάτω είναι ο κώδικας που υλοποιεί το κύκλωμα. Το σύστημα μπορεί να δουλέψει με περισσότερες εισόδους από μία που έχουμε. Η μετατροπή θα είναι μία προσθήκη OR στην if που ελέγχει αν υπάρχει σε κάποια είσοδο HIGH (αν είσοδος1==HIGH ή είσοδος2==HIGH κλπ…)

int PIRValue, flag; // to ensure only one sms
int PIRSensorPin = 6;
int ledPin = 13;
 
void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  pinMode(PIRSensorPin, INPUT);
}
 
void loop() {
  PIRValue = digitalRead(6);
  if(PIRValue==1 && flag==0)
  {
    sendMessage();
  }
  if (PIRValue == 0)
  {
    digitalWrite(13, LOW);
    flag=0;
  }
}
 
void sendMessage()
{
  digitalWrite(13, HIGH);
  Serial.println("AT + CMGS =\"+300000000000\"");
  Serial.println("Alarm is triggered!");
  Serial.write(0x1a); // Sends a Ctrl+Z characted to declare end of sms
  Serial.println(); // sends enter
  flag=1;
}
Φεβρουάριος 2, 2019

10 Απαντήσεις στο "Σύστημα συναγερμού με arduino"

  1. Κ. Χατζηγεωργίου είδα τη κατασκευή σου ,το σύστημα συναγερμού με arduino . πολύ ενδιαφέρον και ολοκληρωμένο. Είχα κάνει και εγώ ένα παρόμοιο project με arduino για τα μελίσσια πριν 3 χρονιά ,άλλα δεν το εκμεταλλεύτηκα πότε εμπορικά. Συμφωνώ με την επιλογή για το module sum900, όντως είναι το μόνο αξιόπιστο και συμβατό με τα ελληνικά gsm δίκτυα . Αν θέλεις μιλάμε από κοντά .Το τηλέφωνο μου είναι 2310328600.Στρατής. info@infoproject.gr

  2. Σας ευχαριστώ πολύ κύριε Χατζηράλλη. Η αλήθεια είναι ότι και εγώ για τον ίδιο λόγο ανέπτυξα ένα παρόμοιο σύστημα, στο οποίο είχα ενσωματώσει και ένα GPS module+ αισθητήρες θερμοκρασίας/υγρασίας. Χαίρομαι που υπάρχουν και άλλοι που μοιράζονται τις ίδιες ανησυχίες μαζί μου. Θα χαρώ να τα πούμε και τηλεφωνικά..

  3. Καλησπέρα βλέποντας το project σας μου άρεσε ιδιαίτερα και έχω ξεκινήσει να το υλοποιώ και εγώ ωστόσο αντιμετωπίζω το εξής πρόβλημα στο gsm SIM900 το led που σε εσάς αναβοσβήνει με αργούς ρυθμούς σε εμένα αναβοσβήνει με πιο γρήγορο ρυθμό από κάποια άλλα forums που το έψαξα παρατήρησα ότι αν και SIM900 θα χρειαστεί update firmware εσάς ποια είναι η άποψη σας;

  4. Καλησπέρα σας!
    Σας ευχαριστώ για το σχόλιο!.
    Αν έχετε το SIM900Α όπως εγώ στο βίντεο, θα χρειαστεί να κάνετε μία αναβάθμιση του Firmware με κάποιο που είναι για το SIM900. Ένας λόγος που δεν δουλεύει ίσως είναι αυτός.
    Αρχικά βεβαιωθείτε ότι η κάρτα SIM έχει απενεργοποιημένο το PIN (βάλτε την πρώτα σε ένα κινητό και από τις ρυθμίσεις απενεργοποιήστε το. Στην συνέχεια κουμπώστε το πάλι στο GSM Module)
    Η μπορεί να συμβαίνει το πιο απλό όλων… να μην έχετε σήμα εκεί που είστε.
    Ξεκινήστε με την απενεργοποίηση του PIN. Ως τελευταία λύση αναβαθμίστε το Firmware.

  5. Σας ευχαριστώ πολύ για τον χρόνο σας. Τα έχω ελέγξει έχει μπει σε συσκευή η κάρτα sim (cosmote) και έχει αφαιρεθεί το pin είναι gsm sim900 το μοναδικό που βρήκα σε Eλλάδα από hellas digital και σήμα κανονικά έχω για αυτό ρωτάω πριν προχωρήσω στην αγορά ενός ftdi Serial to USB.

  6. Αν θέλετε δοκιμάστε και με μία Vodafone αν είναι εφικτό(ίσως δεν είναι αυτό αλλά ποτέ δεν ξέρεις…) να είστε 100% σίγουρος ότι δεν είναι θέμα παρόχου πριν προβείτε σε αγορά επιπλέον εξοπλισμού.

  7. Σας ευχαριστώ πολύ θα το δοκιμάσω

  8. Αναμένω νεότερα και -γιατί όχι- φωτογραφίες από το έργο σας μόλις ολοκληρωθεί! θα κάνω ειδική ενότητα στο Forum με σχετικό θέμα! για να μπορείτε να αναρτήσετε.

  9. Ναι φυσικά ελπίζω μέχρι αύριο να έχω νεότερα μόλις το ολοκληρώσω θα βγάλω φωτογραφίες μόλις το ολοκληρώσω ναι σας ευχαριστώ πολύ

  10. Καλησπέρα ξανά δυστυχώς και με κάρτα vodafone αν και gsm SIM900 που θεωρητικά πιστεύω ότι δεν θα έπρεπε να είχε θέμα δεν στέλνει μήνυμα στο κινητό και ο ρυθμός που αναβοσβήνει το led είναι το ίδιο γρήγορος οπότε θα προβώ αύριο που ανοίγουν πάλι τα μαγαζιά σε αγορά ενός FTDI Serial to USB για αναβάθμιση του firmware .

Αφήστε ένα μήνυμα

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Σχεδιασμός © GetCert. Με επιφύλαξη παντός δικαιώματος.