Πίνακας περιεχομένων:

Συναγερμός νερού IoT: 5 βήματα (με εικόνες)
Συναγερμός νερού IoT: 5 βήματα (με εικόνες)

Βίντεο: Συναγερμός νερού IoT: 5 βήματα (με εικόνες)

Βίντεο: Συναγερμός νερού IoT: 5 βήματα (με εικόνες)
Βίντεο: Ξύλο μεταξύ κάμεραμαν του ΣΚΑΙ και πολίτη 2024, Ιούλιος
Anonim
Συναγερμός νερού IoT
Συναγερμός νερού IoT

Πρόσφατα γνώρισα τη δημιουργία αντιγράφων ασφαλείας της αποχέτευσης κουζίνας. Αν δεν ήμουν σπίτι εκείνη τη στιγμή, θα προκαλούσε ζημιά στο πάτωμα και τις γυψοσανίδες στο διαμέρισμά μου. Ευτυχώς, ήξερα το πρόβλημα και ήμουν έτοιμος να βγάλω το νερό με ένα κουβά. Αυτό με έκανε να σκεφτώ να αγοράσω έναν συναγερμό πλημμύρας. Ανακάλυψα πολλά προσιτά προϊόντα στο Amazon, αλλά αυτά με σύνδεση στο Διαδίκτυο είχαν σημαντικό ποσοστό αρνητικών κριτικών, κυρίως λόγω προβλημάτων με τις ιδιόκτητες υπηρεσίες ειδοποιήσεων. Γι 'αυτό αποφάσισα να κάνω τον δικό μου συναγερμό νερού IoT που θα χρησιμοποιούσε αξιόπιστα μέσα ειδοποίησης της επιλογής μου.

Βήμα 1: Αρχή λειτουργίας

Αρχή Λειτουργίας
Αρχή Λειτουργίας

Ο συναγερμός έχει στον εγκέφαλό του έναν μικροελεγκτή AVR ATtiny85. Παίρνει μετρήσεις τάσης από την μπαταρία και τον αισθητήρα νερού και τις συγκρίνει με προκαθορισμένη τιμή για να ανιχνεύσει την παρουσία νερού ή κατάσταση χαμηλής μπαταρίας.

Ο αισθητήρας νερού είναι απλά δύο σύρματα τοποθετημένα σε απόσταση περίπου 1 mm. Ένα από τα καλώδια συνδέεται με 3,3 V και το άλλο συνδέεται με έναν πείρο ανίχνευσης του μικροελεγκτή, ο οποίος συνδέεται επίσης με τη γείωση μέσω αντίστασης 0,5 MOhm. Κανονικά, η αντίσταση μεταξύ των καλωδίων του αισθητήρα είναι πολύ υψηλή (πολύ πάνω από 10 MOhm), οπότε ο πείρος ανίχνευσης τραβιέται μέχρι τα 0 V. Ωστόσο, όταν υπάρχει νερό μεταξύ των καλωδίων, η αντίσταση πέφτει σε λιγότερο από 1 MOhm, και ο πείρος ανίχνευσης βλέπει κάποια τάση (στην περίπτωσή μου περίπου 1,5 V). Όταν το ATtiny85 ανιχνεύσει αυτήν την τάση στον πείρο ανίχνευσης, ενεργοποιεί ένα MOSFET για ενεργοποίηση ενός βομβητή και στέλνει το σήμα αφύπνισης στη μονάδα ESP8266 η οποία είναι υπεύθυνη για την αποστολή ειδοποιήσεων (email και ειδοποιήσεις push). Μετά από ένα λεπτό βουητό, ο συναγερμός αφοπλίζεται και μπορεί να μηδενιστεί μόνο με ποδηλασία ισχύος.

Αυτή η μονάδα τρέχει από δύο αλκαλικά ή NiMH κύτταρα. Ο μικροελεγκτής κοιμάται τις περισσότερες φορές για να εξοικονομήσει μπαταρίες, ξυπνώντας κατά διαστήματα για να ελέγξει τον αισθητήρα νερού, καθώς και την τάση των μπαταριών. Εάν οι μπαταρίες είναι χαμηλές, ο μικροελεγκτής ξυπνά την μονάδα ESP8266 για να στείλει μια προειδοποίηση χαμηλής μπαταρίας. Μετά την προειδοποίηση, ο συναγερμός αφοπλίζεται για να αποφευχθεί η υπερφόρτιση της μπαταρίας.

Δεδομένου ότι η μονάδα ESP8266 είναι υπεύθυνη για την αποστολή τόσο προειδοποιήσεων χαμηλής μπαταρίας όσο και ειδοποιήσεων πλημμύρας, απαιτεί σήμα ελέγχου από το ATiny85. Λόγω του περιορισμένου αριθμού των διαθέσιμων ακίδων, αυτό το σήμα ελέγχου δημιουργείται από τον ίδιο πείρο που είναι υπεύθυνος για την ένδειξη LED μπαταρίας. Κατά την κανονική λειτουργία (ο συναγερμός είναι οπλισμένος και οι μπαταρίες είναι φορτισμένες), η λυχνία LED αναβοσβήνει κατά διαστήματα. Όταν εντοπιστεί η κατάσταση χαμηλής μπαταρίας, η λυχνία LED ανάβει για να παρέχει υψηλό σήμα στην ακίδα RX της μονάδας ESP. Εάν εντοπιστεί νερό, η λυχνία LED της μπαταρίας θα σβήσει ενώ το ESP8266 είναι ξύπνιο.

Βήμα 2: Σχεδιασμός και συναρμολόγηση

Σχεδιασμός και συναρμολόγηση
Σχεδιασμός και συναρμολόγηση
Σχεδιασμός και συναρμολόγηση
Σχεδιασμός και συναρμολόγηση
Σχεδιασμός και συναρμολόγηση
Σχεδιασμός και συναρμολόγηση

Σχεδίασα το κύκλωμα να είναι χτισμένο σε πρωτόπλακα διπλής όψης 4x6 cm χρησιμοποιώντας ως επί το πλείστον 0805 μέρη SMD. Τα σχήματα που παρουσιάζονται βασίζονται σε αυτήν την κατασκευή, αλλά μπορούν να προσαρμοστούν εύκολα για εξαρτήματα διαμπερών οπών (συμβουλή: για ελαχιστοποίηση του χώρου, συγκόλληση κάθετα αντιστάσεων μέσω οπών).

Απαιτούνται τα ακόλουθα μέρη:

- Αντίσταση: 330 Ω x 1. 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Ένας κεραμικός πυκνωτής 10 μF- Ένα MOSFET καναλιού N λογικού επιπέδου (π.χ. RFP30N06LE ή AO3400)- Ένα κόκκινο και ένα κίτρινο LED (ή άλλα χρώματα αν θέλετε). απολύτως απαραίτητο, αλλά διευκολύνουν τη σύνδεση και την αποσύνδεση της περιφέρειας κατά τη διάρκεια της δοκιμής)- Ένας δυνατός πιεζοηχητικός βομβητής που είναι καλός για 3,3 V- Ένας μικροελεγκτής ATtiny85 (έκδοση PDIP)- Υποδοχή PDIP 8 ακίδων για τον μικροελεγκτή- Μια μονάδα ESP-01 (μπορεί να αντικατασταθεί από μια άλλη μονάδα που βασίζεται σε ESP8266, αλλά θα υπάρξουν πολλές αλλαγές στη διάταξη σε αυτή την περίπτωση)-Μετατροπέας ενίσχυσης DC-DC 3,3 V ικανός να παρέχει ρεύματα 200 mA (500 mA ριπής) στα 2,2 V εισαγωγή. (Σας προτείνω https://www.canton-electronics.com/power-converter… λόγω του εξαιρετικά χαμηλού ηρεμικού ρεύματος)-Μία θηλυκή κεφαλίδα 3 ακίδων-Δύο θηλυκές κεφαλίδες 4 ακίδων ή μία κεφαλίδα 2x4-22 στερεά καλώδια AWG για τον αισθητήρα νερού- καλώδιο 22 AWG (ή άλλο είδος λεπτού εκτεθειμένου σύρματος για τη δημιουργία ιχνών)

Προτείνω τις τιμές αντίστασης που αναφέρονται παραπάνω, αλλά θα μπορούσατε να αντικαταστήσετε τις περισσότερες από αυτές με παρόμοιες τιμές. Ανάλογα με τον τύπο των LED που θέλετε να χρησιμοποιήσετε, μπορεί να χρειαστεί να προσαρμόσετε τις τιμές αντίστασης που περιορίζουν το ρεύμα για να αποκτήσετε την επιθυμητή φωτεινότητα. Το MOSFET μπορεί να είναι είτε μέσω οπής είτε SMT (SOT23). Μόνο ο προσανατολισμός της αντίστασης 330 Ohm επηρεάζεται από τον τύπο του MOSFET. Συνιστάται μια ασφάλεια PTC (π.χ. ονομαστική τιμή 1 Α) εάν σκοπεύετε να χρησιμοποιήσετε αυτό το κύκλωμα με μπαταρίες NiMH. Ωστόσο, δεν χρειάζεται με αλκαλικές μπαταρίες. Συμβουλή: τα εξαρτήματα που απαιτούνται για αυτόν τον συναγερμό μπορούν να αγοραστούν φθηνά από το ebay ή το aliexpress.

Επιπλέον, θα χρειαστείτε ένα breadboard, αρκετές αντιστάσεις 10k, πολλαπλά καλώδια αρσενικού-θηλυκού και θηλυκού-αρσενικού ("dupont") και προσαρμογέα USB-UART για τον προγραμματισμό της μονάδας ESP-01.

Ο αισθητήρας νερού μπορεί να κατασκευαστεί με διάφορους τρόπους, αλλά ο πιο απλός είναι δύο σύρματα 22 AWG με εκτεθειμένα άκρα (1 εκατοστό μήκος) σε απόσταση περίπου 1 mm μεταξύ τους. Ο στόχος είναι να υπάρχει αντίσταση μικρότερη από 5 MΩ μεταξύ των επαφών του αισθητήρα όταν υπάρχει νερό.

Το κύκλωμα έχει σχεδιαστεί για μέγιστη οικονομία μπαταρίας. Αντλεί μόνο 40-60 μA στο καθεστώς παρακολούθησης (με το LED ισχύος αφαιρεμένο στη μονάδα ESP-01). Μόλις ενεργοποιηθεί ο συναγερμός, το κύκλωμα θα τραβήξει 300-500 mA (σε είσοδο 2,4 V) για ένα δευτερόλεπτο ή λιγότερο και μετά από αυτό το ρεύμα θα πέσει κάτω από τα 180 mA. Μόλις ολοκληρωθεί η μονάδα ESP για την αποστολή ειδοποιήσεων, η τρέχουσα κατανάλωση θα πέσει κάτω από τα 70 mA μέχρι να απενεργοποιηθεί ο βομβητής. Στη συνέχεια, ο συναγερμός θα αφοπλιστεί και η τρέχουσα κατανάλωση θα είναι κάτω από 30 μA. Έτσι, ένα σύνολο μπαταριών ΑΑ θα είναι σε θέση να τροφοδοτήσει το κύκλωμα για πολλούς μήνες (πιθανότατα πάνω από ένα χρόνο). Εάν χρησιμοποιείτε διαφορετικό μετατροπέα ώθησης, ας πούμε με ρεύμα ηρεμίας 500 μA, οι μπαταρίες θα πρέπει να αλλάζονται πολύ πιο συχνά.

Συμβουλές συναρμολόγησης:

Χρησιμοποιήστε έναν μόνιμο δείκτη για να επισημάνετε όλα τα ίχνη και τα εξαρτήματα στο πρωτόπλακα για ευκολότερη συγκόλληση. Σας συνιστώ να προχωρήσετε με την ακόλουθη σειρά:

- LED SMT στην επάνω πλευρά και μονωμένες συρμάτινες γέφυρες

-επάνω πλευρά MOSFET (σημείωση: εάν έχετε SOS-23 MOSFET, τοποθετήστε το διαγώνια όπως στη φωτογραφία. Εάν χρησιμοποιείτε MOSFET μέσω οπών, τοποθετήστε το οριζόντια με τον πείρο της πύλης στη θέση I3.)

- πάνω πλευρά από τμήματα οπών (σημείωση: ο βομβητής δεν είναι συγκολλημένος και δεν χρειάζεται καν να τοποθετηθεί στο PCB)

- μέρη και ίχνη SMT ανάστροφης πλευράς (π.χ. μεμονωμένα σκέλη από σύρμα AWG22)

Βήμα 3: Υλικολογισμικό

Κωδικός C για ATtiny85

Το Main.c περιέχει τον κώδικα που πρέπει να μεταγλωττιστεί και να μεταφορτωθεί στον μικροελεγκτή. Εάν πρόκειται να χρησιμοποιήσετε έναν πίνακα Arduino ως προγραμματιστή, μπορείτε να βρείτε το διάγραμμα καλωδίωσης σε αυτό το σεμινάριο. Πρέπει να ακολουθήσετε μόνο τις ακόλουθες ενότητες (αγνοήστε τις υπόλοιπες):

-Διαμόρφωση του Arduino Uno ως ISP (Προγραμματισμός στο σύστημα)

- Σύνδεση ATtiny85 με Arduino Uno.

Για να μεταγλωττίσετε και να ανεβάσετε το υλικολογισμικό, θα χρειαστείτε είτε το CrossPack (για Mac OS) είτε το εργαλείο AVR (για Windows). Η ακόλουθη εντολή πρέπει να εκτελεστεί για τη μεταγλώττιση του κώδικα:

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j.data -O ihex main.elf main.hex

Για να ανεβάσετε το υλικολογισμικό, εκτελέστε τα εξής:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

Αντί για "/dev/cu.usbmodem1411", πιθανότατα θα χρειαστεί να εισαγάγετε τη σειριακή θύρα στην οποία είναι συνδεδεμένο το Arduino (μπορείτε να το βρείτε στο Arduino IDE: Ports Tools).

Ο κώδικας περιέχει πολλές λειτουργίες. deep_sleep () κάνει τον μικροελεγκτή να εισέλθει σε κατάσταση πολύ χαμηλής ισχύος για περίπου 8 δευτερόλεπτα. Το read_volt () χρησιμοποιείται για τη μέτρηση της τάσης της μπαταρίας και του αισθητήρα. Η τάση της μπαταρίας μετριέται έναντι της εσωτερικής αναφοράς τάσης (2,56 V συν ή πλην μερικών τοις εκατό), ενώ η τάση του αισθητήρα μετράται κατά Vcc = 3,3 V. Οι ενδείξεις συγκρίνονται με τις τιμές BATT_THRESHOLD και SENSOR_THRESHOLD που ορίζονται ως 932 και 102 αντίστοιχα, οι οποίες αντιστοιχούν σε ~ 2,3 και 0,3 V. Ενδέχεται να μπορείτε να μειώσετε την τιμή κατωφλίου της μπαταρίας για βελτιωμένη διάρκεια ζωής της μπαταρίας, αλλά δεν συνιστάται (ανατρέξτε στο θέμα της μπαταρίας για λεπτομερείς πληροφορίες).

Το activ_alarm () ειδοποιεί την ενότητα ESP για την ανίχνευση νερού και ακούγεται ο βομβητής. low_batt_notification () ειδοποιεί την μονάδα ESP ότι η μπαταρία είναι χαμηλή και ακούγεται επίσης ο βομβητής. Εάν δεν θέλετε να ξυπνήσετε τα μεσάνυχτα για να αλλάξετε την μπαταρία, αφαιρέστε το "| 1 <" στο low_batt_notification ().

Σκίτσο Arduino για ESP-01

Επέλεξα να προγραμματίσω την ενότητα ESP χρησιμοποιώντας το Arduino HAL (ακολουθήστε τον σύνδεσμο για οδηγίες ρύθμισης). Επιπλέον χρησιμοποίησα τις ακόλουθες δύο βιβλιοθήκες:

ESP8266 Αποστολή email από τον Górász Péter

ESP8266 Pushover από την ομάδα του Arduino Hannover

Η πρώτη βιβλιοθήκη συνδέεται με διακομιστή SMTP και στέλνει μια ειδοποίηση στη διεύθυνση email σας. Απλώς δημιουργήστε έναν λογαριασμό gmail για το ESP σας και προσθέστε τα διαπιστευτήρια στον κώδικα. Η δεύτερη βιβλιοθήκη στέλνει ειδοποιήσεις push μέσω της υπηρεσίας Pushover (οι ειδοποιήσεις είναι δωρεάν, αλλά πρέπει να πληρώσετε μία φορά για να εγκαταστήσετε την εφαρμογή στο τηλέφωνο/tablet σας). Κατεβάστε και τις δύο βιβλιοθήκες. Τοποθετήστε τα περιεχόμενα της βιβλιοθήκης Αποστολή email στο φάκελο σκίτσων (το arduino θα το δημιουργήσει όταν ανοίξετε το σκίτσο arduino για πρώτη φορά). Εγκαταστήστε τη βιβλιοθήκη Pushover μέσω του IDE (Sketch -> Include Library -> Add. ZIP Library).

Για να προγραμματίσετε τη μονάδα ESP-01, μπορείτε να ακολουθήσετε το ακόλουθο σεμινάριο: https://www.allaboutcircuits.com/projects/breadbo… Δεν χρειάζεται να ασχοληθείτε με τη μεταπώληση μιας σειράς καρφιτσών όπως φαίνεται στον οδηγό-απλώς χρησιμοποιήστε θηλυκό-αρσενικό dupont σύρματα για τη σύνδεση των ακίδων της μονάδας στο breadboard. Μην ξεχνάτε ότι ο μετατροπέας ώθησης και ο προσαρμογέας USB-UART πρέπει να μοιράζονται τη γείωση (σημείωση: μπορεί να μπορείτε να χρησιμοποιήσετε την έξοδο 3,3 V του προσαρμογέα USB-UART αντί του μετατροπέα ενίσχυσης, αλλά πιθανότατα δεν θα να είναι σε θέση να παράγει αρκετό ρεύμα).

Βήμα 4: Σκέψεις για την μπαταρία

Ο κωδικός υλικολογισμικού που παρέχεται είναι προκαθορισμένος ώστε να αποστέλλει προειδοποίηση χαμηλής μπαταρίας και να τερματίζεται στα 3 2,3 V. Αυτό το όριο βασίζεται στην υπόθεση ότι χρησιμοποιούνται δύο μπαταρίες NiMH σε σειρά. Δεν συνιστάται η εκφόρτιση μεμονωμένης κυψέλης NiMH κάτω από 1 V. Υποθέτοντας ότι και τα δύο κύτταρα έχουν ίση χωρητικότητα και χαρακτηριστικά εκφόρτισης, και τα δύο θα αποκοπούν σε ~ 1,15 V - καλά εντός του εύρους ασφαλείας. Ωστόσο, τα κύτταρα NiMH που έχουν χρησιμοποιηθεί για πολλούς κύκλους εκκένωσης τείνουν να διαφέρουν σε χωρητικότητα. Διαφορά χωρητικότητας έως και 30% μπορεί να γίνει ανεκτή καθώς θα είχε ακόμη ως αποτέλεσμα το σημείο διακοπής κυψέλης χαμηλότερης τάσης περίπου 1 V.

Ενώ είναι δυνατό να μειωθεί το χαμηλό όριο μπαταρίας στο υλικολογισμικό, κάτι τέτοιο θα αφαιρέσει το περιθώριο ασφαλείας και θα μπορούσε να οδηγήσει σε υπερφόρτιση και ζημιά της μπαταρίας, ενώ αναμένεται μόνο οριακή αύξηση της διάρκειας ζωής της μπαταρίας (μια κυψέλη NiMH είναι> 85% αποφορτίστηκε στα 1,15 V).

Ένας άλλος παράγοντας που πρέπει να ληφθεί υπόψη είναι η ικανότητα του μετατροπέα ώθησης να παρέχει τουλάχιστον 3,0 V (2,5 V σύμφωνα με ανέκδοτα στοιχεία) στα 300-500 mA ρεύμα αιχμής σε χαμηλές μπαταρίες. Η χαμηλή εσωτερική αντίσταση των μπαταριών NiMH προκαλεί μόνο μια αμελητέα πτώση 0,1 V στα ρεύματα αιχμής, έτσι ένα ζεύγος κυψελών NiMH που εκφορτίζονται στα 2,3 V (ανοιχτό κύκλωμα) θα είναι σε θέση να παρέχουν τουλάχιστον 2,2 V στον μετατροπέα ώθησης. Ωστόσο, είναι πιο περίπλοκο με αλκαλικές μπαταρίες. Με ένα ζευγάρι μπαταρίες ΑΑ να κάθονται στα 2,2-2,3 V (ανοιχτό κύκλωμα) αναμένεται πτώση τάσης 0,2-0,4 V στα ρεύματα αιχμής. Παρόλο που έχω επαληθεύσει ότι το κύκλωμα λειτουργεί με τον προτεινόμενο μετατροπέα ώθησης με μόλις 1,8 V που παρέχεται στα ρεύματα αιχμής, αυτό πιθανώς προκαλεί την τάση εξόδου να πέσει στιγμιαία κάτω από την τιμή που προτείνει το Espressiff. Έτσι, το όριο διακοπής των 2,3 V αφήνει μικρό περιθώριο ασφάλειας με αλκαλικές μπαταρίες (λάβετε υπόψη ότι η μέτρηση τάσης που εκτελείται από τον μικροελεγκτή είναι ακριβής μόνο στο συν ή μείον λίγα τοις εκατό). Προκειμένου να διασφαλιστεί ότι η μονάδα ESP δεν γλιστρά όταν οι αλκαλικές μπαταρίες είναι χαμηλές, συνιστώ να αυξήσετε την τάση διακοπής στα 2,4 V (#define BATT_THRESHOLD 973). Στα 1,2 V (ανοιχτό κύκλωμα) ένα αλκαλικό κύτταρο αποφορτίζεται περίπου κατά 70%, το οποίο είναι μόλις 5-10 ποσοστιαίες μονάδες χαμηλότερο από το βαθμό εκφόρτισης στα 1,15 V ανά κύτταρο.

Τόσο το NiMH όσο και τα αλκαλικά κύτταρα έχουν πλεονεκτήματα και μειονεκτήματα για αυτήν την εφαρμογή. Οι αλκαλικές μπαταρίες είναι ασφαλέστερες (δεν παίρνουν φωτιά εάν βραχυκυκλώσουν) και έχουν πολύ χαμηλότερο ποσοστό αυτοεκφόρτισης. Ωστόσο, οι μπαταρίες NiMH εγγυώνται αξιόπιστη λειτουργία του ESP8266 σε χαμηλότερο σημείο διακοπής χάρη στη χαμηλή εσωτερική τους αντίσταση. Αλλά τελικά, οποιοσδήποτε τύπος μπορεί να χρησιμοποιηθεί με κάποιες προφυλάξεις, οπότε είναι απλώς θέμα προσωπικής προτίμησης.

Βήμα 5: Νομική αποποίηση ευθυνών

Αυτό το κύκλωμα σχεδιάστηκε από έναν μη επαγγελματία χομπίστη μόνο για εφαρμογές χόμπι. Αυτός ο σχεδιασμός μοιράζεται με καλή πίστη, αλλά χωρίς καμία εγγύηση. Χρησιμοποιήστε το και μοιραστείτε το με άλλους με δική σας ευθύνη. Με την αναδημιουργία του κυκλώματος συμφωνείτε ότι ο εφευρέτης δεν θα θεωρηθεί υπεύθυνος για οποιαδήποτε ζημία (συμπεριλαμβανομένης, αλλά χωρίς περιορισμό, απομείωσης περιουσιακών στοιχείων και τραυματισμού) που μπορεί να προκύψει άμεσα ή έμμεσα λόγω δυσλειτουργίας ή κανονικής χρήσης αυτού του κυκλώματος. Εάν οι νόμοι της χώρας σας ακυρώνουν ή απαγορεύουν αυτήν την παραίτηση ευθύνης, δεν μπορείτε να χρησιμοποιήσετε αυτό το σχέδιο. Εάν μοιράζεστε αυτό το σχέδιο ή ένα τροποποιημένο κύκλωμα με βάση αυτό το σχέδιο, πρέπει να πιστώσετε τον αρχικό εφευρέτη, υποδεικνύοντας τη διεύθυνση url αυτού του οδηγού.

Συνιστάται: