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

Έξυπνος τροφοδότης κατοικίδιων: 9 βήματα
Έξυπνος τροφοδότης κατοικίδιων: 9 βήματα

Βίντεο: Έξυπνος τροφοδότης κατοικίδιων: 9 βήματα

Βίντεο: Έξυπνος τροφοδότης κατοικίδιων: 9 βήματα
Βίντεο: ΚΙΒΩΤΟΣ 100 Ημέρες ΑΛΛΑ Οι εχθρικοί πυργίσκοι είναι παντού! - Το νησί 2024, Νοέμβριος
Anonim
Image
Image
Έξυπνος τροφοδότης κατοικίδιων
Έξυπνος τροφοδότης κατοικίδιων

Εχετε ένα κατοικίδιο ζώο?

  • Όχι: υιοθετήστε ένα! (και επιστρέψτε σε αυτό το διδακτικό).
  • Ναι: καλή δουλειά!

Δεν θα ήταν υπέροχο αν μπορούσατε να ταΐσετε και να δώσετε νερό στο αγαπημένο σας πρόσωπο χωρίς να ακυρώσετε σχέδια για να επιστρέψετε έγκαιρα στο σπίτι; Λέμε να μην ανησυχείτε άλλο.

Σε αυτό το έργο έχουμε φτιάξει έναν τηλεχειριζόμενο (μέσω διαδικτύου) διανομείς τροφίμων και νερού.

Μέσω του διαδικτυακού πίνακα ελέγχου μπορείτε να δείτε δεδομένα και να ελέγξετε τους διανομείς:

  • Δείτε τα επίπεδα τροφίμων και νερού στις δεξαμενές.
  • Δείτε τα επίπεδα φαγητού και νερού στα μπολ.
  • Τρώει ή πίνει το ζώο αυτή τη στιγμή;
  • Προγραμματίστε τροφοδοσίες (η συσκευή δεν θα διανέμει τρόφιμα εάν υπάρχει αρκετό φαγητό στο μπολ).
  • Διανέμει αυτόματα νερό όταν το μπολ αδειάζει.
  • Διανείμετε φαγητό/νερό με το πάτημα ενός κουμπιού.
  • Λάβετε ειδοποιήσεις push στο τηλέφωνό σας (μέσω εφαρμογής Telegram).

Ποιοι είμαστε?

Δημιουργήθηκε από τους Tom Kaufman και Katya Fichman, φοιτητές Πληροφορικής στο IDC Herzliya.

Αυτό το έργο δημιουργήθηκε για ένα μάθημα IOT.

Προμήθειες

ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ

  • 2 X ESP8266 (Wemos d1 mini).
  • Καλώδια βραχυκυκλωτήρων.
  • 2 Χ Breadboard.
  • 4 Χ Υπερηχητικός αισθητήρας.
  • 2 X Στοιχείο φόρτωσης.
  • 2 X Ενισχυτής κυψέλης φόρτωσης (HX711).
  • Servo (180 °).
  • Servo (συνεχής περιστροφή).
  • Τροφοδοσία 2 Χ 6V.

Ανταλλακτικά

  • Διανομέας Cornflakes (σύνδεσμος Amazon).
  • Τρισδιάστατη εκτύπωση χοάνης διανομής τροφίμων (https://www.thingiverse.com/thing:3998805).
  • Servo συνημμένο τρισδιάστατης εκτύπωσης διανομέα τροφίμων (https://www.thingiverse.com/thing:3269637).
  • Τρισδιάστατη εκτύπωση διανομέα τροφίμων (σχεδιασμένη για αυτό το έργο:
  • 3D εκτυπωμένη βάση και πλάκα κυψέλης φορτίου (σχεδιασμένη για αυτό το έργο:
  • Διανομέας νερού (σύνδεσμος Amazon σε κάτι παρόμοιο).
  • Σύρμα (για να συνδέσετε το κουμπί του διανομέα νερού στο σερβιτόρο).
  • 3 X Βάση υπερηχητικού αισθητήρα.

Βήμα 1: Πώς λειτουργεί;

Πώς λειτουργεί?
Πώς λειτουργεί?

Οι πίνακες ESP8266 στέλνουν τις ενδείξεις των αισθητήρων στο Node-RED μέσω Mosquitto (μεσίτης MQTT).

Το Node-RED επεξεργάζεται τα δεδομένα, κάνοντας ενέργειες ανάλογα (στείλτε επίσης εντολές διανομής στους πίνακες ESP8266 μέσω Mosquitto) και εμφανίζοντας πληροφορίες στον πίνακα ελέγχου.

Όλοι οι υπολογισμοί εκτελούνται στο Node-RED, οπότε θα ήταν εύκολο να αναπαραγάγετε αυτό το έργο και να αλλάξετε την επεξεργασία των δεδομένων σύμφωνα με τις ρυθμίσεις και τις προτιμήσεις σας χωρίς να λερώσετε τα χέρια σας με την κωδικοποίηση.

Βήμα 2: Λογισμικά

Λογισμικά
Λογισμικά

Arduino IDE

Λήψη και εγκατάσταση (σύνδεσμος:

Κουνούπι

Λήψη και εγκατάσταση (σύνδεσμος:

Node.js

Λήψη και εγκατάσταση (σύνδεσμος:

Κόμβος-ΚΟΚΚΙΝΟ

Ακολουθήστε τις οδηγίες:

θερμ

Λήψη:

Τηλεγράφημα

Εγκαταστήστε την εφαρμογή στο smartphone σας.

Βήμα 3: Διάταξη κυκλώματος

Διάταξη κυκλώματος
Διάταξη κυκλώματος

* Και οι δύο συσκευές έχουν πανομοιότυπα κυκλώματα

Διανομέας νερού

  • Αισθητήρας υπερήχων (για τη δεξαμενή νερού)

    • GND - G
    • VCC - 5V
    • ECHO - D5
    • TRIGGER - D0
  • Αισθητήρας υπερήχων (για την απόσταση του κατοικίδιου από το μπολ)

    • GND - G
    • VCC - 5V
    • ECHO - D6
    • TRIGGER - D7
  • Φόρτωση κελιού

    • ΠΡΑΣΙΝΟ - A+ (HX711)
    • ΛΕΥΚΟ - Α- (HX711)
    • ΜΑΥΡΟ - Ε- (HX711)
    • ΚΟΚΚΙΝΟ - Ε+ (HX711)
  • HX711 (ενισχυτής κυψέλης φορτίου)

    • GND - G
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (180 °)

    • GND - G
    • VCC - 5V

Διανομέας τροφίμων

  • Αισθητήρας υπερήχων (για τη δεξαμενή τροφίμων)

    • GND - G
    • VCC - 5V
    • ECHO - D5
    • TRIGGER - D0
  • Αισθητήρας υπερήχων (για την απόσταση του κατοικίδιου από το μπολ)

    • GND - G
    • VCC - 5V
    • ECHO - D6
    • TRIGGER - D7
  • Φόρτωση κελιού

    • ΠΡΑΣΙΝΟ - A+ (HX711)
    • ΛΕΥΚΟ - Α- (HX711)
    • ΜΑΥΡΟ - Ε- (HX711)
    • ΚΟΚΚΙΝΟ - Ε+ (HX711)
  • HX711 (ενισχυτής κυψέλης φορτίου)

    • GND - G
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (συνεχής περιστροφή)

    • GND - G
    • VCC - 5V
    • ΕΛΕΓΧΟΣ - D8

Βήμα 4: Χειροτεχνία

Σκάφος
Σκάφος
Σκάφος
Σκάφος
Σκάφος
Σκάφος

Διανομέας νερού

  1. Κολλήστε το servo στο επάνω μέρος του κάτω μέρους του διανομέα (όπως φαίνεται στη φωτογραφία).
  2. Τρυπήστε μια μικρή τρύπα στο πόμολο του διανομέα νερού.
  3. Συνδέστε την κεφαλή σερβο στη λαβή με ένα σύρμα (βεβαιωθείτε ότι η κεφαλή σερβο είναι στη θέση 0 και βεβαιωθείτε ότι το καλώδιο είναι σφιγμένο).
  4. Κολλήστε έναν αισθητήρα υπερήχων στην εσωτερική πλευρά της δεξαμενής, κοντά στην κορυφή της (ο αισθητήρας στραμμένος προς τα κάτω).
  5. Κολλήστε έναν αισθητήρα υπερήχων κάτω από το πόμολο προς τα έξω (βεβαιωθείτε ότι είναι αρκετά ψηλός ώστε το δοχείο νερού να μην επηρεάζει τις ενδείξεις του).

Διανομέας τροφίμων

  1. Βιδώστε το σερβο στη θήκη του (τρισδιάστατο τμήμα εκτύπωσης).
  2. Κολλήστε τη χοάνη (τρισδιάστατο τυπωμένο μέρος) στη θήκη της δεξαμενής (τρισδιάστατο τμήμα εκτύπωσης).
  3. Συνδέστε τη θήκη της δεξαμενής στη βάση του διανομέα (τρισδιάστατο τμήμα εκτύπωσης) και τοποθετήστε τη δεξαμενή στη θέση της.
  4. Τοποθετήστε το περιστρεφόμενο μέρος (εκτυπωμένο 3D) στη θέση του και μέσω του περιστρεφόμενου ελαστικού τμήματος του διανομέα.
  5. Βιδώστε το εξάρτημα συγκράτησης σερβο στη βάση του διανομέα.
  6. Κολλήστε έναν αισθητήρα υπερήχων στην εσωτερική πλευρά του καπακιού της δεξαμενής (ο αισθητήρας στραμμένος προς τα κάτω).
  7. Κολλήστε έναν αισθητήρα υπερήχων στο πλάι της θήκης της δεξαμενής με κατεύθυνση προς το μέρος όπου θα φάει το κατοικίδιο ζώο σας.

Φόρτωση κελιών

Κολλήστε κάθε κυψέλη φορτίου στην τρισδιάστατη εκτυπωμένη βάση και πλάκα (το βέλος του κελιού φόρτωσης προς τα κάτω)

Βήμα 5: Κουνουπιέρα

Κουνούπι
Κουνούπι

Ανοίξτε το Mosquitto (χρήστες των Windows: μεταβείτε στο φάκελο Mosquitto, ανοίξτε το cmd και εισαγάγετε: "mosquitto -v").

* Για να λάβετε την εσωτερική διεύθυνση IP του υπολογιστή, εκτελέστε cmd και πληκτρολογήστε "ipconfig".

Βήμα 6: Arduino IDE

Arduino IDE
Arduino IDE
Arduino IDE
Arduino IDE

Ανοίξτε το Arduino IDE και ακολουθήστε το τμήμα "Εγκατάσταση πρόσθετου ESP8266 στο Arduino IDE" αυτού του οδηγού:

Μεταβείτε στα Εργαλεία-> Πίνακας και επιλέξτε "LOLIN (WEMOS) D1 R2 & mini".

Μεταβείτε στο Sketch-> Include Library-> Add. ZIP Library… και προσθέστε τις 3 βιβλιοθήκες στο αρχείο "Libraries.rar".

Ανοίξτε το σκίτσο "HX711Calibration", ανεβάστε το και στα δύο ESP8266, εκτελέστε το και ακολουθήστε τις οδηγίες (στην αρχή του κώδικα και στη σειριακή οθόνη) για να βαθμονομήσετε τις κυψέλες φορτίου (βεβαιωθείτε ότι ο ρυθμός baud της σειριακής οθόνης έχει οριστεί σε 115200 baud).

* Γράψτε τον συντελεστή βαθμονόμησης και τη μηδενική μετατόπιση (για μεταγενέστερη χρήση).

Ανοίξτε τα σκίτσα "FoodDispenser" και "WaterDispenser" μέσω του IDE και αλλάξτε τις ακόλουθες μεταβλητές με τις ρυθμίσεις σας (στο αρχείο "Settings.h"):

  • WIFI_SSID
  • WIFI_PASSWORD
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* Στο MQTT_SERVER εισαγάγετε την εσωτερική διεύθυνση IP από το βήμα "Mosquitto".

Ανεβάστε τα σκίτσα στα δύο ESP8266 (ένας κωδικός σε κάθε πίνακα).

* Παρατηρήστε ότι χρησιμοποιήσαμε τη βιβλιοθήκη "AsyncMqttClient" και όχι τη συνηθέστερη βιβλιοθήκη "pubsubclient", αφού το esp8266 διακόπτεται όταν συνδυάζεται με τη βιβλιοθήκη "HX711".

* Εάν επιλέξετε να κάνετε αλλαγές στον κώδικα, βεβαιωθείτε ότι δεν χρησιμοποιείτε τις λειτουργίες "καθυστέρηση" και "απόδοση" μέσα στις λειτουργίες επανάκλησης, καθώς θα προκαλέσει σφάλματα.

Βήμα 7: Ngrok

Ngrok
Ngrok
Νγκροκ
Νγκροκ

Αποσυμπιέστε το ληφθέν αρχείο (από το σύνδεσμο στο βήμα "Λογισμικά").

Ανοίξτε το "ngrok.exe" και εκτελέστε την εντολή "ngrok http 1880".

* Μπορείτε να επιλέξετε την περιοχή που βρίσκεται πιο κοντά σας (au, eu, ap, us, jp, in, sa). Η προεπιλογή είμαστε εμείς.

Για παράδειγμα, εκτελέστε την εντολή: "ngrok http --region = eu 1880" (ορίστε την περιοχή στην Ευρώπη).

Τώρα θα δείτε τη διεύθυνση ιστού σας για εξωτερική χρήση (θα αναφερθούμε σε αυτήν τη διεύθυνση ως YOUR_NGROK_ADDRESS).

Βήμα 8: Κόμβος-ΚΟΚΚΙΝΟ

Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ

Ανοίξτε το Node-RED (χρήστες των Windows: ανοίξτε cmd και πληκτρολογήστε "node-red") και μεταβείτε στη διεύθυνση https:// localhost: 1880 (αν δεν λειτουργεί, αναζητήστε τη διεύθυνση στο παράθυρο cmd όπου αναγράφεται "Διακομιστής τώρα τρέχει στο ").

Ανοίξτε το μενού (στην επάνω δεξιά γωνία) και πατήστε "Διαχείριση παλέτας".

Μεταβείτε στην καρτέλα "Εγκατάσταση", αναζητήστε και εγκαταστήστε αυτές τις ενότητες:

  • κόμβος-κόκκινος-συνεισφέρει-επιμένει.
  • κόμβος-κόκκινο-συνεισφορά-cron-plus.
  • node-red-contrib-ui-led.
  • κόμβος-κόκκινο-ταμπλό.
  • node-red-contrib-telegrambot.

Μεταβείτε στο μενού-> Εισαγάγετε και ανεβάστε το αρχείο ροής (εξαγάγετε το συνημμένο αρχείο RAR και ανεβάστε το αρχείο json).

Δείτε τις συνημμένες εικόνες για εξηγήσεις σχετικά με τη ροή.

Θα χρειαστεί να τροποποιήσετε αυτούς τους κόμβους με τις ρυθμίσεις σας:

  • Ενημερώστε το προφίλ του κόμβου "Αποστολέας Telegram" με το όνομα χρήστη και το διακριτικό του bot σας (χρησιμοποιήστε αυτόν τον οδηγό:
  • Στο κάτω μέρος της ροής αλλάξτε τα ωφέλιμα φορτία των κόμβων "Διεύθυνση Ngrok" και "Telegram Chat Id" (λάβετε το αναγνωριστικό συνομιλίας σας χρησιμοποιώντας τον οδηγό Telegram στον παραπάνω σύνδεσμο).
  • Στο κάτω μέρος της ροής υπάρχουν κόμβοι ρυθμίσεων - τροποποιήστε τους ανάλογα με τις ανάγκες σας:

    • Ενεργοποίηση ειδοποιήσεων για κατοικίδιο που τρώει/πίνει.
    • Καθορίστε ποια είναι η απόσταση για την ενεργοποίηση της ειδοποίησης για φαγητό/πόσιμο.
    • Ορισμός επεξεργασίας δεδομένων σε κύπελλα και δεξαμενές.
    • Τροποποιήστε τους χρόνους διανομής (για πόσο χρονικό διάστημα συμβαίνουν οι διανομές - αυτόματη λειτουργία και πάτημα κουμπιού).
    • Ορίστε το ποσοστό κατωφλίου υπερχείλισης του μπολ φαγητού (ματαιώστε την αυτόματη διανομή τροφίμων εάν υπάρχει αρκετό φαγητό στο μπολ).

Αναπτύξτε τη ροή (πάνω δεξιά).

* Μόνο κατά την πρώτη ανάπτυξη, θα δείτε μια προειδοποίηση στο παράθυρο εντοπισμού σφαλμάτων σχετικά με το αρχείο "persistance.json" που λείπει. Μην ανησυχείτε για αυτό, δεδομένου ότι τη στιγμή που θα ορίσετε τους χρόνους τροφοδοσίας ή θα αλλάξετε τον αυτόματο διακόπτη νερού, θα αρχικοποιήσει αυτό το αρχείο και δεν θα έχετε πλέον αυτήν την προειδοποίηση.

Μπορείτε να δείτε τον πίνακα ελέγχου στο https:// NODE-RED_PC'S_INTERNAL_IP_ADDRESS: 1880/ui (εάν είστε συνδεδεμένοι στο ίδιο LAN με τον διακομιστή) ή YOUR_NGROK_ADDRESS/ui (από παντού).

Βήμα 9: Ολοκληρώστε

Τύλιξε
Τύλιξε

Ελπίζουμε ότι αυτό το σεμινάριο ήταν ενημερωτικό και εύκολο στην ανάγνωση, κατανόηση και εφαρμογή.

Μη διστάσετε να μας ρωτήσετε οτιδήποτε.

Συνιστάται: