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

Bird Feeder Monitor V2.0: 12 βήματα (με εικόνες)
Bird Feeder Monitor V2.0: 12 βήματα (με εικόνες)

Βίντεο: Bird Feeder Monitor V2.0: 12 βήματα (με εικόνες)

Βίντεο: Bird Feeder Monitor V2.0: 12 βήματα (με εικόνες)
Βίντεο: Η συγκλονιστική αλήθεια για τα μη ανθρώπινα UFO: Ο John Greenewald αποκαλύπτει τα πάντα 2024, Ιούλιος
Anonim
Image
Image
Bird Feeder Monitor V2.0
Bird Feeder Monitor V2.0

Αυτό είναι ένα έργο για την παρακολούθηση, τη φωτογραφία και την καταγραφή του αριθμού και του χρόνου που ξοδεύουν τα πουλιά που επισκέπτονται τον τροφοδότη μας. Για αυτό το έργο χρησιμοποιήθηκαν πολλαπλά Raspberry Pi (RPi). Ο ένας χρησιμοποιήθηκε ως χωρητικός αισθητήρας αφής, ο Adafruit CAP1188, για τον εντοπισμό, την καταγραφή και την ενεργοποίηση των φωτογραφιών των θηλαστικών πουλιών. Ένα άλλο RPi διαμορφώθηκε για να ελέγχει τη λειτουργία αυτού του συστήματος παρακολούθησης, καθώς και να αποθηκεύει και να διατηρεί τα δεδομένα για παρακολούθηση και ανάλυση. Το τελευταίο RPi διαμορφώθηκε ως Κάμερα για να φωτογραφίζει κάθε πτηνό που επισκέπτεται τον τροφοδότη.

Προμήθειες

  1. 1 ea - Raspberry Pi W
  2. 1 ea - Raspberry Pi 3 - Model B+ - για διακομιστή MQTT
  3. 1 ea - Raspberry Pi με κάμερα - Προαιρετικό
  4. 2 ea - Αδιάβροχες θήκες για αισθητήρα RPi και CAP1188
  5. 1 ea - Ταινία αλουμινόχαρτου από χαλκό με αγώγιμη κόλλα
  6. Σύρμα - 18-22 AWG
  7. Συγκολλητικό σίδερο και συγκολλητικό
  8. Ροή συγκόλλησης για ηλεκτρονικά
  9. Κάλυψη σιλικόνης*
  10. 8 ea - Βίδες μηχανών M3 x 25*
  11. 8 ea - καρύδια M3*
  12. 1 ea - Proto Board για την τοποθέτηση του CAP1188
  13. 1 ea - 1x8 θηλυκό Dupont Connector
  14. 1 ea - 1x6 Αρσενικός συνδετήρας Dupont
  15. 1 ea - CAP1188 - 8 -Key Capacitive Touch Sensor
  16. 2 ea - PG7 αδιάβροχο IP68 νάυλον καλώδιο αδένα ρυθμιζόμενο Locknut για καλώδιο καλωδίου Dia 3mm -6.5mm
  17. 1 σετ - 2 pin Way αδιάβροχο ηλεκτρικό βύσμα αυτοκινήτου με Wire AWG Marine Pack των 10
  18. 3 ea - Τροφοδοτικό 5VDC - ένα για κάθε RPi
  19. 1 ea - Τροφοδότης πτηνών (CedarWorks Plastic Hopper Bird Feeder), ή οποιοσδήποτε τροφοδότης πτηνών με πλαστική ή ξύλινη κουρτίνα

*για τρισδιάστατες τυπωμένες καιρικές συνθήκες

Βήμα 1: Επισκόπηση του συστήματος παρακολούθησης τροφοδότη πτηνών

Επισκόπηση του συστήματος παρακολούθησης τροφοδότη πτηνών
Επισκόπηση του συστήματος παρακολούθησης τροφοδότη πτηνών

Αυτό είναι ένα σύστημα παρακολούθησης που έχει σχεδιαστεί για να μετράει, να χρονολογεί, να καταγράφει και να φωτογραφίζει τα πουλιά που τρέφονται στον τροφοδότη μας. Η προηγούμενη έκδοση του Bird Feeder Monitor μου χρησιμοποιούσε ένα Arduino Yun και αποθηκεύει τα δεδομένα σε ένα υπολογιστικό φύλλο στο Google Drive μου. Αυτή η έκδοση χρησιμοποιεί πολλαπλές επικοινωνίες Raspberry Pi, MQTT και τοπική αποθήκευση δεδομένων και φωτογραφιών.

Ο τροφοδότης πτηνών είναι εξοπλισμένος με Raspberry Pi Zero W και Capacitive Touch Sensor (CAP1188). Τυχόν πουλιά που ανάβουν στις κουρνιάδες ενεργοποιούν τον αισθητήρα αφής ο οποίος ξεκινά ένα χρονόμετρο για να καθορίσει το χρονικό διάστημα που διαρκεί κάθε συμβάν. Μόλις ενεργοποιηθεί η αφή, το μήνυμα MQTT "παρακολούθησης/τροφοδότη/εικόνας" δημοσιεύεται από το Bird Feeder Monitor. Αυτό το μήνυμα ειδοποιεί την κάμερα Raspberry Pi να τραβήξει μια φωτογραφία. Εάν ο διακομιστής MQTT δημοσιεύσει ένα μήνυμα "monitor/feeder/getcount", το Bird Feeder Monitor θα απαντήσει με ένα μήνυμα "monitor/feeder/count" MQTT το οποίο θα αποθηκεύσει ο διακομιστής.

Ο διακομιστής MQTT εκτελεί διάφορες εργασίες. Ζητά και αποθηκεύει δεδομένα από το Bird Feeder Monitor και ελέγχει τη λειτουργία της οθόνης. Ενεργοποιεί την οθόνη στο Dawn και την κλείνει στο σούρουπο. Ελέγχει επίσης το χρονικό διάστημα για την αίτηση δεδομένων και παρακολουθεί επίσης τις τρέχουσες καιρικές συνθήκες μέσω του DarkSky. Οι καιρικές συνθήκες παρακολουθούνται για δύο λόγους. Πρώτα απ 'όλα, η ποσότητα βροχόπτωσης μπορεί να επηρεάσει τους αισθητήρες. Εάν συμβεί αυτό, οι αισθητήρες επαναβαθμονομούνται σε τακτική βάση ενώ πέφτει βροχή. Ο δεύτερος λόγος, είναι η παρακολούθηση και η καταγραφή των καιρικών συνθηκών για συσχέτιση με τα δεδομένα του αριθμού των πτηνών.

Η κάμερα Raspberry Pi είναι μια μονάδα κάμερας RPi + Raspberry Pi. Το λογισμικό κάμερας που χρησιμοποιείται για αυτό το έργο δεν λειτουργεί με κάμερα Web USB. Η κάμερα RPi είναι εξοπλισμένη με WIFI και λειτουργεί λογισμικό πελάτη MQTT. Συντάσσεται σε μηνύματα MQTT "παρακολούθησης/τροφοδότη/εικόνας" και τραβάει μια φωτογραφία κάθε φορά που λαμβάνεται αυτό το μήνυμα. Οι φωτογραφίες αποθηκεύονται στην κάμερα RPi και διαχειρίζονται από απόσταση.

Βήμα 2: Εγκατάσταση του Raspbian στο Bird Feeder Monitor

Εγκατάσταση του Raspbian στο Bird Feeder Monitor
Εγκατάσταση του Raspbian στο Bird Feeder Monitor

Εγκαταστήστε την πιο πρόσφατη έκδοση του Raspbian Lite στο Raspberry Pi Zero W. Σας προτείνω να ακολουθήσετε τις βήμα προς βήμα οδηγίες που μπορείτε να βρείτε στο Raspberry Pi Zero Headless Quick Start της Adafruit.

Τα παρακάτω βήματα περιλήφθηκαν στις παραπάνω οδηγίες, αλλά αξίζουν επανάληψης:

Συνδεθείτε στο RPi μέσω ssh και εκτελέστε τις ακόλουθες εντολές:

sudo apt-get updatesudo apt-get upgrade

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

Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να διαμορφώσετε το λογισμικό RPi:

sudo raspi-config

Αλλάξτε τον κωδικό πρόσβασής σας, ενεργοποιήστε το SPI και το I2C και επεκτείνετε το σύστημα αρχείων. Μόλις ολοκληρωθούν, τότε βγείτε από το raspi-config.

Βήμα 3: Καλωδίωση RPi και CAP1188

Καλωδίωση RPi και CAP1188
Καλωδίωση RPi και CAP1188

Το Raspberry Pi W (RPi) και το CAP1188 είναι ενσύρματα χρησιμοποιώντας I2C. Υπάρχουν και άλλοι χωρητικοί αισθητήρες αφής διαθέσιμοι με έναν, πέντε ή οκτώ αισθητήρες. Επέλεξα οκτώ επειδή ο τροφοδότης πουλιών μου έχει έξι πλευρές.

Καλωδίωση:

  • CAP1188 SDA == RPi Pin 3
  • CAP1188 SCK == RPi Pin 5
  • CAP1188 VIN == RPi Pin 1 (+3.3VDC)
  • CAP1188 GND == RPi Pin 9 (GND)
  • CAP1188 C1-C8 == Συνδεθείτε σε καλώδια σε κάθε πέρκα μέσω 1x8 θηλυκού συνδετήρα Dupont
  • CAP1188 3Vo == CAP1188 μ. Χ. - Hardwire the I2C Address to 0x28
  • RPi Pin 2 == +5VDC
  • RPi Pin 14 == GND

Η τροφοδοσία για το RPi παρέχεται εξωτερικά, περνώντας ένα καλώδιο υπόγεια από το γκαράζ μου και προς τα πάνω μέσω του σωλήνα που χρησιμοποιείται ως βάση τροφοδοσίας πουλιών. Ένας ακροδέκτης 2 ακίδων στεγανοποιήθηκε στο άκρο του σύρματος για τη σύνδεση της οθόνης τροφοδότη πτηνών RPi. Το άλλο άκρο του καλωδίου συνδέθηκε με ένα λιωμένο τροφοδοτικό 5 VDC στο γκαράζ. Αυτό το έργο πρέπει να λειτουργεί με μπαταρίες, αλλά δεν ήθελα την ταλαιπωρία της αλλαγής μπαταριών σε ρουτίνα.

Κατασκεύασα ένα καλώδιο μήκους 16 για να συνδέσω το Weatherproof Box που περιέχει το RPi στο Weatherproof Box που περιέχει το CAP1188. Ο χωρητικός αισθητήρας πρέπει να βρίσκεται όσο το δυνατόν πιο κοντά στις κούρνιες.

Το RPi Zero και το CAP1188 θα μπορούσαν να έχουν συσκευαστεί σε ένα κουτί ανθεκτικό στις καιρικές συνθήκες, αλλά προτίμησα να τα συσκευάσω ξεχωριστά.

Βήμα 4: Διαμόρφωση της οθόνης τροφοδότη πουλιών

Διαμόρφωση της οθόνης τροφοδότη πουλιών
Διαμόρφωση της οθόνης τροφοδότη πουλιών
Διαμόρφωση της οθόνης τροφοδότη πουλιών
Διαμόρφωση της οθόνης τροφοδότη πουλιών

Συνδεθείτε στο Raspberry Pi Zero W και εκτελέστε τα παρακάτω βήματα.

Εγκατάσταση pip:

sudo apt-get install python3-pip

Εγκατάσταση Adafruit CircuitPython:

sudo pip3 install -αναβάθμιση setuptools

Ελέγξτε για συσκευές I2C και SPI:

ls /dev /i2c* /dev /spi*

Θα πρέπει να δείτε την ακόλουθη απάντηση:

/dev/i2c-1 /dev/spidev0.0 /dev/spidev0.1

Στη συνέχεια, εγκαταστήστε ένα πακέτο GPIO και Adafruit blinka:

pip3 install RPI. GPIOpip3 install adafruit-blinka

Εγκαταστήστε τη μονάδα CAP1188 της Adafruit:

pip3 εγκαταστήστε adafruit-circuitpython-cap1188

Εγκαταστήστε εργαλεία I2C:

sudo apt-get install python-smbussudo apt-get install i2c-tools

Ελέγξτε τις διευθύνσεις I2C με το παραπάνω εργαλείο:

i2cdetect -y 1

Εάν το CAP1188 είναι συνδεδεμένο, θα δείτε την ίδια απάντηση όπως φαίνεται στην παραπάνω φωτογραφία, η οποία δείχνει ότι ο αισθητήρας βρίσκεται στη διεύθυνση I2C 0x28 (ή 0x29 ανάλογα με την επιλογή της διεύθυνσης I2C).

Εγκαταστήστε κουνούπι, κουνούπια-πελάτες και paho-mqtt:

sudo apt-get install mosquitto mosquitto-clients python-mosquitto

sudo pip3 εγκατάσταση paho-mqtt

Σας συνιστώ να χρησιμοποιήσετε το Adafruit's Configuring MQTT στο Raspberry Pi για να διαμορφώσετε και να ρυθμίσετε το MQTT σε αυτό το RPi.

Εγκαταστήστε το λογισμικό Bird Feeder Monitor:

cd

sudo apt-get install git git clone "https://github.com/sbkirby/RPi_bird_feeder_monitor.git"

Δημιουργία καταλόγου αρχείων καταγραφής:

cd

mkdir logs

Συνδέστε τον αισθητήρα CAP1188 στο RPi και εκτελέστε τα ακόλουθα για να δοκιμάσετε το σύστημα μετά τη λειτουργία του διακομιστή MQTT:

cd RPi_bird_feeder_monitor

sudo nano config.json

Αντικαταστήστε τις τιμές για "OIP_HOST", "MQTT_USER", "MQTT_PW" και "MQTT_PORT" για να ταιριάζει με την τοπική σας ρύθμιση. Βγείτε και αποθηκεύστε τις αλλαγές σας.

Εκτέλεση κατά την εκκίνηση

Ενώ εξακολουθείτε να βρίσκεστε στον κατάλογο/home/pi/RPi_bird_feeder_monitor.

nano launcher.sh

Συμπεριλάβετε το ακόλουθο κείμενο στο launcher.sh

#!/bin/sh

# launcher.sh # πλοήγηση στον αρχικό κατάλογο, στη συνέχεια σε αυτόν τον κατάλογο, στη συνέχεια εκτέλεση python script, μετά επιστροφή cd /cd home /pi /RPi_bird_feeder_monitor sudo python3 feeder_mqtt_client.py cd /

Βγείτε και αποθηκεύστε το launcher.sh

Πρέπει να κάνουμε το σενάριο εκτελέσιμο.

chmod 755 launcher.sh

Δοκιμάστε το σενάριο.

sh launcher.sh

Στη συνέχεια, πρέπει να επεξεργαστούμε το crontab (ο διαχειριστής εργασιών linux) για να ξεκινήσει το σενάριο κατά την εκκίνηση. Σημείωση: έχουμε ήδη δημιουργήσει τον κατάλογο /logs στο παρελθόν.

sudo crontab -e

Αυτό θα φέρει το παράθυρο crontab όπως φαίνεται παραπάνω. Μεταβείτε στο τέλος του αρχείου και εισαγάγετε την ακόλουθη γραμμή.

@reboot sh /home/pi/RPi_bird_feeder_monitor/launcher.sh>/home/pi/logs/cronlog 2> & 1

Βγείτε και αποθηκεύστε το αρχείο και επανεκκινήστε το RPi. Το σενάριο πρέπει να ξεκινήσει το σενάριο feeder_mqtt_client.py μετά την επανεκκίνηση του RPi. Η κατάσταση του σεναρίου μπορεί να ελεγχθεί στα αρχεία καταγραφής που βρίσκονται στο φάκελο /logs.

Βήμα 5: Τμήματα εκτυπωμένων 3D

Τρισδιάστατα εκτυπωμένα ανταλλακτικά
Τρισδιάστατα εκτυπωμένα ανταλλακτικά
Τρισδιάστατα εκτυπωμένα ανταλλακτικά
Τρισδιάστατα εκτυπωμένα ανταλλακτικά
Τρισδιάστατα εκτυπωμένα ανταλλακτικά
Τρισδιάστατα εκτυπωμένα ανταλλακτικά

Αυτά τα αρχεία STL είναι για τα τρισδιάστατα τυπωμένα μέρη που δημιούργησα για αυτό το έργο και όλα αυτά τα μέρη είναι προαιρετικά. Αδιάβροχες θήκες μπορούν να κατασκευαστούν ή να αγοραστούν τοπικά. Το "Mounting Wedge" για τον τροφοδότη πτηνών CedarWorks είναι επίσης προαιρετικό. Αυτό το μέρος ήταν απαραίτητο για την τοποθέτηση της θήκης αισθητήρα CAP1188.

Βήμα 6: Συνέλευση παρακολούθησης τροφοδότη πτηνών

Συνέλευση οθόνης τροφοδότη πουλιών
Συνέλευση οθόνης τροφοδότη πουλιών

Μετά την εγκατάσταση του Raspbian, τη διαμόρφωση και τη δοκιμή του αισθητήρα RPi και CAP1188 όπως αναφέρθηκε προηγουμένως, τώρα ήρθε η ώρα να τοποθετήσετε αυτές τις συσκευές στις αδιάβροχες θήκες τους.

Χρησιμοποίησα τις δύο θήκες αδιάβροχες που εκτύπωσα για να τοποθετήσω τον αισθητήρα RPi και CAP1188. Πρώτα απ 'όλα, άνοιξα μια τρύπα 1/2 στο ένα άκρο κάθε θήκης. Τρυπήστε την τρύπα στην θήκη RPi απέναντι από την πλευρά με την κάρτα SD. Τοποθετήστε τον σύνδεσμο Nylon Cable Gland Joint with Adjustable Locknut σε κάθε τρύπα. Τρέξτε τα τέσσερα καλώδιο αγωγού μεταξύ κάθε θήκης. Εγκαταστήστε και συγκολλήστε τον αδιάβροχο ηλεκτρικό συνδετήρα 2 ακροφυσίων αυτοκινήτου στο RPi όπως φαίνεται στην παραπάνω φωτογραφία. Συγκολλήστε το κόκκινο σύρμα στο +5VDC Pin 2 του RPi και το μαύρο καλώδιο στο GND ή τον πείρο 14 Δείτε το διάγραμμα καλωδίωσης για τις άλλες συνδέσεις που χρησιμοποιούνται στο RPi.

Περάστε το άλλο άκρο του τεσσάρου καλωδίου αγωγού μέσω του Gland Joint στην θήκη CAP1188 και συνδέστε τα καλώδια όπως υποδεικνύεται στο διάγραμμα καλωδίωσης. Και οι 8 χωρητικοί αισθητήρες αφής CAP1188 είναι κολλημένοι στο θηλυκό βύσμα Dupont των 8 ακίδων. Αυτός ο σύνδεσμος είναι χωνευτός στο πλάι της θήκης για να επιτρέψει στεγανότητα όταν εφαρμόζεται η κορυφή. Σημείωση: Το επάνω μέρος και στις δύο περιπτώσεις πιθανότατα θα απαιτήσει τροποποιήσεις για να επιτρέψουν τα παξιμάδια στους συνδέσμους Gland Joint.

Πριν από το κλείσιμο, εφαρμόζω στεγανοποίηση σιλικόνης στις άκρες κάθε θήκης και γύρω από τα καλώδια των Gland Joints για να σφραγίσω τις θήκες. Προσθέτω επίσης σιλικόνη στο πίσω μέρος του συνδετήρα Dupont για να σφραγιστεί από τα στοιχεία.

Βήμα 7: Καλωδίωση του τροφοδότη πουλιών

Καλωδίωση του τροφοδότη πουλιών
Καλωδίωση του τροφοδότη πουλιών
Καλωδίωση του τροφοδότη πουλιών
Καλωδίωση του τροφοδότη πουλιών
Καλωδίωση του τροφοδότη πουλιών
Καλωδίωση του τροφοδότη πουλιών

Κάθε μια από τις κούρσες στον τροφοδότη ήταν καλυμμένη με 1/4 ευρεία αυτοκόλλητη ταινία αλουμινόχαρτου. Μια μικρή τρύπα ανοίχτηκε μέσα από την ταινία και πέρκα, και ένα σύρμα συγκολλήθηκε στην ταινία αλουμινόχαρτου και δρομολογήθηκε κάτω από τον τροφοδότη. Κάθε ένα από τα καλώδια συνδέονται με αρσενικό βύσμα 6 ακίδων Dupont.

Σημείωση: Με τον τροφοδότη πουλιών που φαίνεται παραπάνω, συνιστώ ένα κενό μεταξύ των άκρων κάθε λωρίδας φύλλου 1 1/4 " - 1 1/2". Ανακάλυψα ότι τα μεγαλύτερα πουλιά, όπως τα γκρίκια και τα περιστέρια, είναι ικανά να αγγίζουν δύο λωρίδες φύλλου ταυτόχρονα, εάν είναι τοποθετημένα για να κλείνουν μεταξύ τους.

Η "Σφήνα Στήριξης" που αναφέρθηκε προηγουμένως τυπώθηκε και κολλήθηκε στο κάτω μέρος του τροφοδότη για να παρέχει μια επίπεδη περιοχή για την τοποθέτηση του Αδιάβροχου Κουτιού που περιέχει το CAP1188. Η ταινία Velcro εφαρμόστηκε στο κιβώτιο καθώς και το ξύλινο μπλοκ για να παρέχουν ένα μέσο στερέωσης. Αυτό φαίνεται στην παραπάνω φωτογραφία της ολοκληρωμένης συναρμολόγησης. Ένας ιμάντας velcro χρησιμοποιείται για να τυλίγεται γύρω από το σωλήνα και το κουτί RPi για να τα στερεώσετε κάτω από τον τροφοδότη.

Ο τροφοδότης πτηνών ξαναγεμίζει με τον αισθητήρα και το RPi που είναι προσαρτημένα στον τροφοδότη και ενώ είναι ακόμα στη βάση του σωλήνα. Ευτυχώς, είμαι 6'2 ψηλός και φτάνω στο κοντέινερ χωρίς ιδιαίτερη προσπάθεια.

Βήμα 8: Διακομιστής MQTT

Διακομιστής MQTT
Διακομιστής MQTT
Διακομιστής MQTT
Διακομιστής MQTT
Διακομιστής MQTT
Διακομιστής MQTT

Εάν είστε ήδη μπερδεμένοι στον κόσμο του IOT, μπορεί να έχετε ήδη έναν διακομιστή MQTT σε λειτουργία στο δίκτυό σας. Εάν δεν το κάνετε, συνιστώ να χρησιμοποιήσετε ένα Raspberry Pi 3 για τον διακομιστή MQTT και τις οδηγίες και το αρχείο εικόνας IMG που βρίσκονται στον ιστότοπο του Andreas Spiess "Node-Red, InfuxDB & Grafana Installation". Ο Αντρέας έχει επίσης ένα ενημερωτικό βίντεο σχετικά με αυτό το θέμα #255 Node-Red, InfluxDB και Grafana Tutorial στο Raspberry Pi.

Μόλις ο διακομιστής Node-Red είναι σε λειτουργία, μπορείτε να εισαγάγετε τη ροή του Bird Feeder Monitor αντιγράφοντας τα δεδομένα στο ~/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Flow.json και χρησιμοποιώντας Εισαγωγή> Πρόχειρο για να επικολλήσετε το πρόχειρο σε μια νέα ροή.

Αυτή η ροή θα απαιτήσει τους ακόλουθους κόμβους:

  • node-red-node-darksky-Απαιτείται λογαριασμός DarkSky API για να χρησιμοποιήσετε αυτόν τον κόμβο.
  • node-red-contrib-bigtimer-Big Timer από την Scargill Tech
  • node-red-contrib-influxdb-Βάση δεδομένων InfluxDB

Τα δεδομένα καιρού για την τοποθεσία σας παρέχονται μέσω του DarkSky. Και επί του παρόντος παρακολουθώ και καταγράφω τα "precipIntensity", "θερμοκρασία", "υγρασία", "windSpeed", "windBearing", "windGust" και "cloudCover". Η "ταχύτητα έντασης" είναι σημαντική επειδή χρησιμοποιείται για να προσδιοριστεί εάν οι αισθητήρες πρέπει να επαναβαθμονομηθούν ως αποτέλεσμα της βροχής.

Ο κόμβος Big Timer είναι το μαχαίρι του ελβετικού στρατού των χρονόμετρων. Έχει συνηθίσει να ξεκινά και να σταματά την εγγραφή δεδομένων στο Dawn and Dusk κάθε μέρα.

Το InfluxDB είναι μια ελαφριά, εύχρηστη βάση δεδομένων χρονικών σειρών. Η βάση δεδομένων προσθέτει αυτόματα μια χρονική σήμανση κάθε φορά που εισάγουμε δεδομένα. Σε αντίθεση με το SQLite, τα πεδία δεν χρειάζεται να οριστούν. Προστίθενται αυτόματα όταν τα δεδομένα εισάγονται στη βάση δεδομένων.

Διαμόρφωση Κόμβου-Κόκκινου

Το αρχείο JSON που αναφέρθηκε παραπάνω θα φορτώσει μια ροή που απαιτεί μερικές τροποποιήσεις για να ταιριάζει στις απαιτήσεις σας.

  1. Συνδέστε το "MQTT Publish" και το "monitor/feeder/#" στον διακομιστή MQTT.
  2. Ορίστε το Γεωγραφικό πλάτος και Γεωγραφικό μήκος στην τοποθεσία σας στον κόμβο Big Timer "Dawn & Dusk Timer (config)".
  3. Διαμορφώστε τον κόμβο "παρακολούθηση/τροφοδότης/αστρονομία (διαμόρφωση)". Η κάμερα μπορεί να ενεργοποιηθεί/απενεργοποιηθεί για κάθε πέρκα. Για παράδειγμα, δύο από τις κούρνες μου βρίσκονται στην πίσω πλευρά και η κάμερα είναι απενεργοποιημένη για αυτές τις κούρνιες.
  4. Ορίστε τον κόμβο "Counter Timer (config)" στο επιθυμητό χρονικό διάστημα. Προεπιλογή = 5 λεπτά
  5. Ορίστε το Γεωγραφικό πλάτος και Γεωγραφικό μήκος στην τοποθεσία σας στον κόμβο "DarkSky (config)". Δεύτερον, εισαγάγετε το κλειδί API DarkSky στον κόμβο darksky-credentials.
  6. Ορίστε την ένταση της βροχόπτωσης στον κόμβο συνάρτησης "παρακολούθηση/τροφοδότης/επαναβαθμονόμηση (διαμόρφωση)". Προεπιλογή = 0,001 in/hr
  7. Επεξεργαστείτε τον "Θέμα φίλτρου για τον κόμβο εντοπισμού σφαλμάτων δέκτη MQTT (διαμόρφωση)" κόμβος λειτουργίας για να φιλτράρετε τα μηνύματα MQTT που ΔΕΝ θέλετε να δείτε.
  8. Προαιρετικά: Εάν θέλετε να αποθηκεύσετε δεδομένα σε ένα υπολογιστικό φύλλο στο Google Drive σας, θα χρειαστεί να επεξεργαστείτε τον κόμβο συνάρτησης "Δημιουργία εγγράφων Google Εφοδιασμού (διαμόρφωση)" με αναγνωριστικά πεδίου φόρμας.
  9. Προαιρετικό: Προσθέστε τη μοναδική διεύθυνση URL φόρμας στο πεδίο URL του κόμβου αιτήματος HTTP "Έγγραφα Google (διαμόρφωση)".

Node-Red UI Desktop

Το Bird_Feeder_Monitor_Flow περιλαμβάνει μια διεπαφή χρήστη (UI) για πρόσβαση στον διακομιστή MQTT μέσω κινητού τηλεφώνου. Η οθόνη μπορεί να απενεργοποιηθεί ή να ενεργοποιηθεί, να επαναβαθμονομήσετε αισθητήρες ή να τραβήξετε φωτογραφίες χειροκίνητα. Εμφανίζεται επίσης ένα σύνολο "αγγίζει" του αισθητήρα, το οποίο θα σας δώσει μια γενική ιδέα για τον αριθμό των πτηνών που επισκέπτονται τον τροφοδότη.

Βήμα 9: Grafana

Grafana
Grafana
Grafana
Grafana

"Η Grafana είναι μια σουίτα μετρικών αναλύσεων και απεικόνισης ανοιχτού κώδικα. Χρησιμοποιείται συχνότερα για την απεικόνιση δεδομένων χρονικών σειρών για αναλύσεις υποδομής και εφαρμογών, αλλά πολλοί τη χρησιμοποιούν σε άλλους τομείς, συμπεριλαμβανομένων βιομηχανικών αισθητήρων, αυτοματισμού σπιτιού, καιρού και ελέγχου διαδικασιών." refn: Έγγραφα Grafana.

Αυτό το λογισμικό περιλαμβάνεται στο αρχείο εικόνας του Andreas Spiess που χρησιμοποιείται για τη δημιουργία του διακομιστή MQTT. Μετά τη διαμόρφωση της βάσης δεδομένων InfluxDB στον διακομιστή MQTT, το Grafana μπορεί να ρυθμιστεί ώστε να χρησιμοποιεί αυτήν τη βάση δεδομένων όπως φαίνεται στην παραπάνω εικόνα. Στη συνέχεια, ο πίνακας ελέγχου που χρησιμοποιείται από αυτό το έργο μπορεί να φορτωθεί από το αρχείο JSON που βρίσκεται στο ~/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Grafana.json. Συμβουλές για τη διαμόρφωση του Grafana μπορείτε να βρείτε στην ιστοσελίδα του Andreas Spiess "Node-Red, InfuxDB & Grafana Installation".

Βήμα 10: InfluxDB

InfluxDB
InfluxDB
InfluxDB
InfluxDB

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

Πρώτα απ 'όλα, συνδέθηκα στον διακομιστή MQTT μέσω SSH και δημιούργησα έναν ΧΡΗΣΤΗ:

root@MQTTPi: ~#

root@MQTTPi: ~# flux Συνδεδεμένη με την έκδοση "https:// localhost: 8086" 1.7.6 Έκδοση κελύφους InfluxDB: 1.7.6 Εισαγάγετε ένα ερώτημα InfluxQL> ΔΗΜΙΟΥΡΓΗΣΤΕ ΧΡΗΣΤΗ "pi" ΜΕ "βατόμουρο κωδικού πρόσβασης" ΜΕ ΟΛΕΣ ΤΙΣ ΙΔΙΟΤΗΤΕΣ> Εμφάνιση χρηστών διαχειριστής χρήστη ---- ----- πι αλήθεια

Στη συνέχεια, δημιούργησα μια βάση δεδομένων:

ΔΗΜΙΟΥΡΓΙΑ ΔΕΔΟΜΕΝΩΝ BIRD_FEEDER_MONITOR>> ΕΜΦΑΝΙΣΗ βάσεων δεδομένων όνομα: όνομα βάσεων δεδομένων ---- _internal BIRD_FEEDER_MONITOR>

ΑΦΟΥ δημιουργήσετε την παραπάνω βάση δεδομένων, μπορείτε να διαμορφώσετε τον κόμβο InfluxDB σε Κόμβο-Κόκκινο. Όπως φαίνεται στην παραπάνω φωτογραφία, ονομάζω τη μέτρηση "τροφοδότες". Αυτό μπορεί να φανεί στο InfluxDB μετά την αρχικοποίηση των δεδομένων:

ΧΡΗΣΗ BIRD_FEEDER_MONITORΧρήση βάσης δεδομένων BIRD_FEEDER_MONITOR

> ΕΜΦΑΝΙΣΗ ΜΕΤΡΗΣΕΩΝ όνομα: μετρήσεις όνομα ---- τροφοδότες>

Ένα από τα πολλά χαρακτηριστικά του InfluxDB είναι ότι η διαμόρφωση FIELDS δεν απαιτείται. Τα FIELDS προστίθενται και διαμορφώνονται αυτόματα όταν εισάγονται δεδομένα. Ακολουθούν τα FIELDS και FIELDTYPE για αυτήν τη βάση δεδομένων:

ΕΜΦΑΝΙΣΗ ΚΛΕΙΔΙ ΠΕΔΙΟΥ Όνομα: πεδίο τροφοδοτών Κεντρικό πεδίο Τύπος -------- --------- cloudcover float count_1 float count_2 float count_3 float count_4 float count_5 float count_6 float count υγρασία float name string string_Int float temp float time_1 float time_2 float time_3 float time_4 float time_5 float time_6 float winddir float float windgust float windspeed float>

Παρακάτω μπορείτε να δείτε μερικές καταχωρήσεις από τη βάση δεδομένων:

ΕΠΙΛΟΓΗ * ΑΠΟ ΤΡΟΦΟΔΟΤΕΣ LIMIT 10 όνομα: χρόνος τροφοδοσίας cloudcover count_1 count_2 count_3 count_4 count_5 count_6 όνομα υγρασίας precip_Int temp time_1 time_2 time_3 time_4 time_5 time_6 winddir winddust winddpeed ---- ---------- ----- -------- ------- ------- ------- ------- -------- ----- --------- ---- ------ ------ ------ ------ ------ ------ ------- ------ -------- --------- 1550270591000000000 0 0 0 0 0 0 Τροφοδότης1 0 0 0 0 0 0 1550271814000000000 0 0 0 0 0 0 0 Τροφοδότης1 0 0 0 0 0 0 1550272230000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0 155027253000000000000 0 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0 1550272830000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155027313000000000000 0 0 0 0 0 0 Τροφοδότης1 0 0 0 0 0 0 155027343000000000000 0 0 0 0 0 0 Τροφοδότης1 0 0 0 0 0 0 155027373000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155027403000000000000 0 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0 0 0 050 0 0 0 0 0 0 0 0 τροφοδότης1 0 0 0 0 0 0>>

Βήμα 11: Κάμερα Raspberry Pi

Κάμερα Raspberry Pi
Κάμερα Raspberry Pi
Κάμερα Raspberry Pi
Κάμερα Raspberry Pi
Κάμερα Raspberry Pi
Κάμερα Raspberry Pi
Κάμερα Raspberry Pi
Κάμερα Raspberry Pi

Σας συνιστώ να χρησιμοποιήσετε το Instructable, Remote CNC Stop and Monitor, για να συναρμολογήσετε μια κάμερα Raspberry Pi. Εκτελέστε όλα τα βήματα που αναφέρονται εκτός από τα 6 & 8 για να δημιουργήσετε την κάμερα. Παρακαλώ σημειώστε ότι χρησιμοποιώ ένα παλαιότερο Raspberry Pi για την κάμερα μου, αλλά λειτούργησε πολύ καλά από τη βιτρίνα του καταστήματός μου.

Αναβάθμιση Rasbian:

sudo apt-get updatesudo apt-get upgrade

Εγκατάσταση PIP:

sudo apt-get install python3-pip

Εγκατάσταση paho-mqtt:

sudo pip3 εγκατάσταση paho-mqtt

Εγκαταστήστε το λογισμικό παρακολούθησης git and Bird:

cd

sudo apt-get install git git clone "https://github.com/sbkirby/RPi_bird_feeder_monitor.git"

Εάν θέλετε να δημιουργήσετε βίντεο από τις εικόνες που τραβάει η κάμερα, εγκαταστήστε το ffmpeg:

git clone "https://git.ffmpeg.org/ffmpeg.git" ffmpeg

cd ffmpeg./configure make sudo make install

Διαμόρφωση των δικαιωμάτων στο λογισμικό παρακολούθησης τροφοδότη πτηνών:

cd RPi_bird_feeder_monitor

sudo chmod 764 make_movie.sh sudo chmod 764 take_photo.sh sudo chown www-data: www-data make_movie.sh sudo chown www-data: www-data take_photo.sh

Προσωπικά, δεν συνιστώ τη χρήση του make_movie.sh στην κάμερα RPi. Απαιτούνται πολλοί πόροι για να εκτελεστεί στο RPi. Συνιστώ να μεταφέρετε τις εικόνες στον υπολογιστή σας και να εκτελέσετε ffmpeg εκεί.

Εκτέλεση κατά την εκκίνηση

Συνδεθείτε στο RPi και μεταβείτε στον κατάλογο /RPi_bird_feeder_monitor.

cd RPi_bird_feeder_monitor

nano launcher.sh

Συμπεριλάβετε το ακόλουθο κείμενο στο launcher.sh

#!/bin/sh

# launcher.sh # πλοήγηση στον αρχικό κατάλογο, στη συνέχεια σε αυτόν τον κατάλογο, στη συνέχεια εκτέλεση python script, μετά επιστροφή cd /cd home /pi /RPi_bird_feeder_monitor sudo python3 camera_mqtt_client.py cd /

Βγείτε και αποθηκεύστε το launcher.sh

Πρέπει να κάνουμε το σενάριο και εκτελέσιμο.

chmod 755 launcher.sh

Δοκιμάστε το σενάριο.

sh launcher.sh

Δημιουργία καταλόγου καταγραφής:

cd

mkdir logs

Στη συνέχεια, πρέπει να επεξεργαστούμε το crontab (ο διαχειριστής εργασιών linux) για να ξεκινήσει το σενάριο κατά την εκκίνηση.

sudo crontab -e

Αυτό θα φέρει το παράθυρο crontab όπως φαίνεται παραπάνω. Μεταβείτε στο τέλος του αρχείου και εισαγάγετε την ακόλουθη γραμμή.

@reboot sh /home/pi/RPi_bird_feeder_monitor/launcher.sh>/home/pi/logs/cronlog 2> & 1

Βγείτε και αποθηκεύστε το αρχείο και επανεκκινήστε το RPi. Το σενάριο θα πρέπει να ξεκινά το σενάριο camera_mqtt_client.py μετά την επανεκκίνηση του RPi. Η κατάσταση του σεναρίου μπορεί να ελεγχθεί στα αρχεία καταγραφής που βρίσκονται στο φάκελο /logs.

Βήμα 12: Απολαύστε

Απολαμβάνω
Απολαμβάνω

Απολαμβάνουμε να παρακολουθούμε πουλιά, ωστόσο δεν μπορούμε να τοποθετήσουμε τον τροφοδότη σε μια τοποθεσία για μέγιστη απόλαυση. Το μόνο μέρος που οι περισσότεροι από εμάς μπορούν να δουν είναι από το τραπέζι πρωινού και δεν μπορούν όλοι να δουν τον τροφοδότη από εκεί. Ως εκ τούτου, με το Bird Feeder Monitor μπορούμε να θαυμάσουμε τα πουλιά στην ευκολία μας.

Ένα πράγμα που ανακαλύψαμε με την οθόνη είναι η συχνότητα των πτηνών που προσγειώνονται σε μια πέρκα, ακολουθούμενη από χοροπηδήματα στην επόμενη πέρκα μέχρι να περιηγηθούν σε ολόκληρο τον τροφοδότη. Ως αποτέλεσμα, ο αριθμός των πουλιών είναι ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ από τον αριθμό των μεμονωμένων πτηνών που επισκέπτονται τον τροφοδότη μας. Ένας τροφοδότης με μόνο μία ή δύο στενές πέρκες θα ήταν πιθανότατα ο καλύτερος για την «καταμέτρηση» πτηνών.

Διαγωνισμός αισθητήρων
Διαγωνισμός αισθητήρων
Διαγωνισμός αισθητήρων
Διαγωνισμός αισθητήρων

Δεύτερο Βραβείο στον Διαγωνισμό Αισθητήρων

Συνιστάται: