Πίνακας περιεχομένων:
- Βήμα 1: Πράγματα που χρησιμοποιούνται σε αυτό το έργο
- Βήμα 2: Ιστορία
- Βήμα 3: Σύνδεση υλικού
- Βήμα 4: Προγραμματισμός λογισμικού
- Βήμα 5: Λειτουργία
Βίντεο: Είδα τη Λύση IoTea LoRa (Ενημέρωση 1811): 5 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Το Internet+ είναι μια δημοφιλής έννοια τώρα. Αυτή τη φορά δοκιμάσαμε το Διαδίκτυο και τη γεωργία για να κάνουμε τον κήπο τσαγιού να μεγαλώνει το Τσάι του Διαδικτύου.
Βήμα 1: Πράγματα που χρησιμοποιούνται σε αυτό το έργο
Συστατικά υλικού
- Grove - Αισθητήρας διοξειδίου του άνθρακα (MH -Z16)
- Grove - Lightηφιακός αισθητήρας φωτός
- Grove - Dust Sensor (PPD42NS)
- Grove-Oxygen Sensor (ME2-O2-Ф20)
- Αισθητήρας υγρασίας & θερμοκρασίας εδάφους
- LoRa LoRaWAN Gateway - κιτ 868MHz με Raspberry Pi 3
- Grove - Temp & Humi & Barometer Sensor (BME280)
Εφαρμογές λογισμικού και διαδικτυακές υπηρεσίες
Microsoft Visual Studio 2015
Βήμα 2: Ιστορία
Στο βουνό Mengding βορειοανατολικά του Ya'an, Sichuan, η κορυφογραμμή του βουνού τρέχει δυτικά προς ανατολικά σε μια πράσινη θάλασσα. Αυτό είναι ένα πολύ γνωστό θέαμα για τον 36χρονο Ντενγκ, έναν από τους λίγους παρασκευαστές τσαγιού Mengding της γενιάς του, με μια φυτεία 50mu (= 3,3 εκτάρια) που βρίσκεται στα 1100μ πάνω από την επιφάνεια της θάλασσας. Ο Ντενγκ προέρχεται από μια οικογένεια παρασκευαστών τσαγιού, αλλά η συνέχιση της οικογενειακής κληρονομιάς δεν είναι εύκολη υπόθεση. «Τα τσάγια μας καλλιεργούνται σε μεγάλο υψόμετρο σε οργανικό περιβάλλον για να εξασφαλίσουν την εξαιρετική τους ποιότητα. Αλλά ταυτόχρονα, η πυκνότητα ανάπτυξης είναι χαμηλή, το κόστος είναι υψηλό και η εκκολαπτόμενη είναι άνιση, καθιστώντας το τσάι δύσκολο στη συγκομιδή. Αυτός είναι ο λόγος για τον οποίο τα τσάι από ψηλά βουνά είναι συνήθως μικρές σοδειές και οι αξίες τους δεν αντικατοπτρίζονται στην αγορά. Και όταν γνώρισε τον Fan, ο οποίος αναζητούσε μια φυτεία για να εφαρμόσει την τεχνολογία IoTea της Seeed, έγινε ο τέλειος συνδυασμός για μια λύση.
Βήμα 3: Σύνδεση υλικού
Το υλικό αυτού του έργου μπορεί να χωριστεί σε 4 μέρη: Power, Sensors, Node και Gateway. Το παρακάτω άρθρο θα σας δείξει πώς να το ολοκληρώσετε βήμα προς βήμα.
Μέρος ισχύος
Το Power Part περιέχει κυρίως έναν ηλιακό πίνακα και μια μπαταρία λιθίου, αν απλώς δημιουργήσετε αυτό το έργο για επίδειξη, μπορείτε να τα αγνοήσετε. Or μπορείτε να ακολουθήσετε το προηγούμενο σεμινάριο για να εγκαταστήσετε ισχύ κόμβου.
Αισθητήρες Μέρος
Στο τμήμα αισθητήρων, λόγω των πολλών αισθητήρων, χρησιμοποιήσαμε έναν μετεωρολογικό σταθμό και φτιάξαμε επίσης ένα ακρυλικό στήριγμα για να τα εγκαταστήσουμε.
Όπως βλέπετε στην παραπάνω εικόνα, ο Digitalηφιακός αισθητήρας φωτός είναι πάντα στο επάνω μέρος, έτσι ώστε να μπορεί να συλλέξει πληροφορίες φωτισμού. Οι αισθητήρες που θα παράγουν θερμότητα είναι εγκατεστημένοι στη μέση του ακρυλικού βραχίονα, όπως αισθητήρας O2, αισθητήρας σκόνης και αισθητήρας CO2. Επιτέλους, Αισθητήρας θερμοκρασίας και υγρασίας στο κάτω μέρος του ακρυλικού βραχίονα.
Επιπλέον, ο αισθητήρας θερμοκρασίας και υγρασίας εδάφους είναι εγκατεστημένος μόνος του στο έδαφος. Κόμμα κόμβου
Το Node Part είναι ένα Seeeduino LoRaWan που εγκαταστάθηκε σε ένα αδιάβροχο κουτί, συνδέεται με την τροφοδοσία και τους αισθητήρες μέσω των αρμών νερού. Μεταξύ αυτών, ο αισθητήρας σκόνης συνδέεται με τον ψηφιακό πείρο D3 της LoRaWan, ο αισθητήρας CO2 συνδέεται με τον ακροδέκτη D4 & D5, ο αισθητήρας εδάφους συνδέεται με τον ακροδέκτη D6 & D7, ο αισθητήρας O2 συνδέεται με τον αναλογικό πείρο A1 και ο αισθητήρας φωτός & βαρόμετρο συνδέονται στη θύρα I2C.
ΣΗΜΕΙΩΣΗ: Πρέπει να προστεθεί αντίσταση 10k μεταξύ του καλωδίου Soil Sensor's Blue (Data) και του Red (Vcc).
Το Seeeduino LoRaWan συλλέγει την αξία των αισθητήρων κάθε τόσο και τους στέλνει στο Gateway μέσω LoRa. Η μορφή δεδομένων όπως παρακάτω:
{
[0], /* Θερμοκρασία αέρα (℃)* /[1], /* Υγρασία αέρα (%)* /[2], /* Υψόμετρο (m) υψηλό byte* /[3], /* Υψόμετρο (m) χαμηλό byte */[4],/ * συγκέντρωση CO2 (PPM) υψηλό byte */[5],/ * συγκέντρωση CO2 (PPM) χαμηλό byte */[6],/ * συγκέντρωση σκόνης (τεμ/0,01cf) υψηλό byte */[7],/ *Συγκέντρωση σκόνης (τεμ/0,01cf) χαμηλό byte */[8],/ *Ένταση φωτός (lux) υψηλό byte */[9],/ *Ένταση φωτός (lux) χαμηλό byte */ [10], /* Συγκέντρωση O2 (%)* /[11], /* Θερμοκρασία εδάφους (℃)* /[12], /* Υγρασία εδάφους (%)* /[13], /* Τάση μπαταρίας (V) */ [14]/ *Κωδικός σφάλματος αισθητήρα */}
Κάθε bit στο Sensor Error Code byte έχει διαφορετική σημασία, όπως παρακάτω:
{
bit0: 1; / * Σφάλμα αισθητήρα βαρόμετρου */ bit1: 1; / * Σφάλμα αισθητήρα CO2 */ bit2: 1; / * Σφάλμα αισθητήρα σκόνης */ bit3: 1; / * Σφάλμα αισθητήρα φωτός */ bit4: 1; / * Σφάλμα αισθητήρα O2 */ bit5: 1; / * Σφάλμα αισθητήρα εδάφους */ δεσμευμένο: 2; /* Κατοχυρωμένα */ }
Μέρος πύλης
Το Gateway Part είναι ένα Raspberry Pi που συνδέει τη μονάδα Gateway RHF0M301–868 και το PRI 2 Bridge RHF4T002, εγκαθίσταται σε αδιάβροχο κουτί και συνδέεται με την κάμερα τροφοδοσίας και USB μέσω αρμών νερού. Επειδή χρησιμοποιεί εξειδικευμένο υλικολογισμικό, ακολουθήστε το Seeed Wiki για να το διαμορφώσετε.
Βήμα 4: Προγραμματισμός λογισμικού
Ως Σύνδεση υλικού, ο Προγραμματισμός Λογισμικού μπορεί επίσης να χωριστεί, μπορεί να χωριστεί σε 3 μέρη: Κόμβος, Πύλη και Ιστότοπος.
Κόμμα κόμβου
Τα περισσότερα προγράμματα οδήγησης που απαιτούσε το Node Part περιέχονται ήδη στο φάκελο orig_driver. Οι παρακάτω βιβλιοθήκες πρέπει να εγκατασταθούν με μη αυτόματο τρόπο:
Adafruit_ASFcore
Επειδή το έργο είναι περίπλοκο, σας συνιστούμε να χρησιμοποιήσετε το Microsoft Visual Studio αντί του Arduino IDE. Ένα πρόσθετο που ονομάζεται Visual Micro μπορεί να σας βοηθήσει να αξιοποιήσετε ένα έργο Arduino χρησιμοποιώντας το Visual Studio, κάντε κλικ εδώ για περισσότερες πληροφορίες.
Για καλύτερη αναγνωσιμότητα και διατηρησιμότητα, χρησιμοποιούμε αυτή τη φορά τον Αντικειμενοστραφή Προγραμματισμό. Το διάγραμμα τάξης αυτού του έργου μοιάζει με το παρακάτω:
Για τους αισθητήρες που έχουν ήδη πρόγραμμα οδήγησης OOP, το ξανασυσκευάσαμε για να προσαρμόσουμε αυτό το έργο, για άλλους, ξαναγράψαμε τους οδηγούς τους χρησιμοποιώντας OOP. Η κατηγορία αισθητήρων στο ενδιάμεσο στρώμα χρησιμοποιείται για να ενοποιήσει τις διεπαφές πραγματικών αισθητήρων, για παράδειγμα, ένας αισθητήρας βαρόμετρου μπορεί να συλλέγει θερμοκρασία, υγρασία και υψόμετρο ταυτόχρονα, οπότε έχει 3 διεπαφές για απόκτηση θερμοκρασίας, υγρασίας και υψομέτρου. Αλλά έχουν διαφορετική ονομασία μεθόδου, η οποία θα κάνει το πρόγραμμα απόκτησης αξίας αισθητήρων πιο περίπλοκο, ακριβώς όπως αυτό:
βαρόμετρο-> getTemperature ();
βαρόμετρο-> getHumidity (); βαρόμετρο-> getAltitude (); //… other_sensor-> getSomeValue (); //…
Αλλά χρησιμοποιώντας το OOP, μοιάζει με αυτό:
για (auto i = 0; i getValue ();
}
Συσκευάσαμε επίσης μια κλάση εφαρμογών, υλοποιεί διεπαφή IApplication, τη μέθοδο εγκατάστασης () και βρόχου () στο IoTea.ino μπορεί να καλέσει τη μέθοδο εγκατάστασης () και βρόχου () στο αντικείμενο εφαρμογής.
ΣΗΜΕΙΩΣΗ: Το USB Serial χρησιμοποιείται μόνο για εντοπισμό σφαλμάτων. Μετά τον εντοπισμό σφαλμάτων, σχολιάστε τον αρχικό κωδικό στη μέθοδο εγκατάστασης ().
Μέρος πύλης
Το πρόγραμμα Python του Gateway Part στον αρχικό φάκελο χρησιμοποιείται για τη λήψη φωτογραφιών και την αποστολή τους στον διακομιστή Amazon S3 κάθε ώρα. Πριν το χρησιμοποιήσετε, βεβαιωθείτε ότι η fswebcam είναι ήδη εγκατεστημένη στο Raspberry Pi:
sudo apt-get ενημέρωση && sudo apt-get εγκατάσταση fswebcam
Εάν θέλετε να ανεβάσετε φωτογραφίες, διαμορφώστε το AWS ακολουθώντας τα παρακάτω βήματα. Αρχικά, εγκαταστήστε το AWS SDK και το AWS CLI στο Raspberry Pi σας χρησιμοποιώντας αυτές τις εντολές:
sudo pip εγκατάσταση boto3
sudo pip εγκατάσταση awscli
και, στη συνέχεια, εκτελέστε το AWS CLI:
sudo aws διαμόρφωση
Διαμορφώστε το κλειδί πρόσβασης AWS, το αναγνωριστικό μυστικής πρόσβασης AWS και το προεπιλεγμένο όνομα περιοχής.
Εάν δεν σας αρέσει να ανεβάζετε τις φωτογραφίες σας, μπορείτε να παραλείψετε τα βήματα διαμόρφωσης AWS και να σχολιάσετε κωδικούς σχετικά με τη μεταφόρτωση στο photo.py. Για την εκτέλεση αυτού του προγράμματος μετά την εκκίνηση του Raspberry Pi κάθε φορά, μπορείτε να δημιουργήσετε μια φωτογραφία ονόματος αρχείου στο /etc/init.d και να γράψετε τον ακόλουθο κώδικα σε αυτήν.
#!/bin/bash
# /etc/init.d/photo ### ΕΚΚΙΝΗΣΗ ΠΛΗΡΟΦΟΡΙΩΝ # Παρέχει: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Σύντομη περιγραφή: λήψη φωτογραφίας initscript # Περιγραφή: Αυτή η υπηρεσία χρησιμοποιείται για τη διαχείριση λήψης φωτογραφιών ### ΤΕΛΟΣ ΠΛΗΡΟΦΟΡΙΩΝ ΠΕΡΙΟΧΗ υπόθεση "$ 1" στην αρχή) ηχώ "Έναρξη λήψης φωτογραφίας" /home/rxhf/photo.py &;; διακοπή) ηχώ "Διακοπή λήψης φωτογραφίας" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) ηχώ "Χρήση: έναρξη φωτογραφίας υπηρεσίας | διακοπή" έξοδος 1;; έξοδος esac 0
ορίστε άδεια εκτέλεσης
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
και δοκιμασε το
sudo /etc/init.d/photo start
Εάν δεν υπάρχει πρόβλημα, σταματήστε το και προσθέστε το στην εφαρμογή εκκίνησης
sudo /etc/init.d/photo stop
προεπιλογές φωτογραφιών sudo update-rc.d
ΣΗΜΕΙΩΣΗ: Εάν θέλετε να ξεκινήσετε την πύλη μετά την εκκίνηση του Raspberry Pi, προσθέστε κωδικούς έναρξης πύλης στο Seeed Wiki στο /etc/rc.local, ας μοιάζει με:
#!/bin/sh -e
# # rc.local # # Αυτό το σενάριο εκτελείται στο τέλος κάθε επιπέδου runlevel πολλαπλών χρηστών. # Βεβαιωθείτε ότι το σενάριο θα "εξέλθει 0" από την επιτυχία ή οποιαδήποτε άλλη τιμή # σφάλματος. # # Για να ενεργοποιήσετε ή να απενεργοποιήσετε αυτό το σενάριο, απλώς αλλάξτε # bit εκτέλεσης. # # Από προεπιλογή, αυτό το σενάριο δεν κάνει τίποτα. # Εκτύπωση της διεύθυνσης IP _IP = $ (όνομα κεντρικού υπολογιστή -I) || true αν ["$ _IP"]; τότε printf "Η διεύθυνση IP μου είναι %s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io έξοδος 0
Δικτυακός τόπος
Αναπτύξαμε τον ιστότοπο στο CentOS 7. Τα παρακάτω βήματα θα σας δείξουν τον τρόπο ανάπτυξης.
Βήμα 1. Εγκαταστήστε το Python3
sudo yum -y εγκατάσταση epel -release
sudo yum -y εγκατάσταση python36
Βήμα 2. Εγκαταστήστε Python pip και εικονικό περιβάλλον
wget
sudo python36 get-pip.py sudo pip εγκατάσταση virtualenv
Setp 3. Κλωνοποιήστε τον ιστότοπό μας από το GitHub
sudo yum -y εγκατάσταση git
git clone
Βήμα 4. Δημιουργήστε και ενεργοποιήστε το εικονικό περιβάλλον
virtualenv -p python36 iotea -hb
cd iotea-hb bin/activ source
Βήμα 5. Εγκαταστήστε εξαρτημένες βιβλιοθήκες
pip εγκατάσταση pymysql
pip install dbutils pip install φιάλη pip install websocket-client pip install cofigparser
Βήμα 6. Δημιουργία βάσης δεδομένων
sudo yum -y εγκατάσταση mariadb mariabd -server
sudo systemctl ενεργοποίηση mariadb sudo systemctl εκκίνηση mariadb mysql -uroot -p
και στη συνέχεια χρησιμοποιήστε το iotea_hb.sql για να δημιουργήσετε έναν πίνακα.
Βήμα 7. Δημιουργήστε το db.ini και γράψτε αυτούς τους κωδικούς σε αυτό
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
αλλάξτε τη διαδρομή του db.ini στο db.py
# σε db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Βήμα 8. Αλλάξτε τη θύρα στο app.py και ξεκινήστε τον ιστότοπο:
# στο app.py
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# στο τερματικό
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
επισκεφθείτε τώρα το 127.0.0.1:8080 στο πρόγραμμα περιήγησης ιστού, μπορείτε να δείτε τον ιστότοπο, αλλά τα δεδομένα σε πραγματικό χρόνο δεν εμφανίζονται.
Βήμα 9. Λάβετε δεδομένα loriot
Ανοίξτε ένα άλλο τερματικό, εισαγάγετε ξανά το εικονικό περιβάλλον και ξεκινήστε την εφαρμογή loriot:
cd iotea-hb
source bin/activ gunicorn loriot: app
Περιμένετε λίγο, θα δείτε δεδομένα που εμφανίζονται στον ιστότοπο ή μπορείτε να αλλάξετε το wss στο loriot.py:
# στο loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Βήμα 5: Λειτουργία
Μπορείτε να επισκεφθείτε τους ιστότοπούς μας για να δείτε δεδομένα σε πραγματικό χρόνο:
- Στο Γιαάν
- Για Επίδειξη
Συνιστάται:
(ΕΝΗΜΕΡΩΣΗ - ΥΠΑΡΧΕΙ ΕΛΑΦΡΟ ΘΕΜΑ) ΕΛΕΓΧΟΣ Παιχνιδιού USB ΓΙΑ Τ.Κ .: 10 Βήματα (με Εικόνες)
(ΕΝΗΜΕΡΩΣΗ - ΥΠΑΡΧΕΙ ΕΛΑΦΡΟ ΖΗΤΗΜΑ) ΕΛΕΓΧΟΣ USB GAME ΓΙΑ Π.Κ .: ΕΛΕΓΧΟΣ ΠΑΙΧΝΙΔΙΟΥ ΓΙΑ ΟΠΟΙΑΔΗΠΟΤΕ ΠΑΙΧΝΙΔΙ (ΣΧΕΔΟΝ)
Λήψη του λογισμικού Arduino και Drive Station που θα χρειαστείτε για το MiniFRC (ΕΝΗΜΕΡΩΣΗ 13/5/18): 5 βήματα
Λήψη του λογισμικού Arduino και Drive Station που θα χρειαστείτε για MiniFRC (ΕΝΗΜΕΡΩΘΗΚΕ 5/13/18): Το MiniFRC είναι ένας ετήσιος διαγωνισμός μίνι-ρομπότ που διεξάγεται από την ομάδα FRC 4561, το TerrorBytes. Οι ομάδες κατασκευάζουν ρομπότ τέταρτης κλίμακας για να ανταγωνίζονται σε πεδίο FRC τετάρτης κλίμακας. Σε αυτό το σεμινάριο, θα σας δείξω πώς να κατεβάσετε και να εγκαταστήσετε όλο το απαραίτητο λογισμικό
Ρομπότ Blu Media (Ενημέρωση): 7 Βήματα
Blu Media Robot (Update): blu είναι ένα ρομπότ που δουλεύει με μητρική πλακέτα makeblock και βατόμουρο για το ηλεκτρονικό για τη λίστα μερών που μπορείτε να αγοράσετε από το makeblock όπως εγώ στην αρχή, τώρα έχω έναν τρισδιάστατο εκτυπωτή (wanahoa i3 +) και μπορείτε να κατεβάσετε διαφορετικό μέρος για να τα εκτυπώσετε σε
Είδατε τη λύση LoRa IoTea: 5 βήματα
Seeed LoRa IoTea Solution: Ένα αυτόματο σύστημα συλλογής πληροφοριών που εφαρμόζεται στη φυτεία τσαγιού. Είναι μέρος της ευφυούς συλλογής γεωργικών πληροφοριών
Είδα τη Λύση IoTea LoRa (με Azure, Ενημέρωση 1812): 5 Βήματα
Είδατε Λύση IoTea LoRa (με Azure, Ενημέρωση 1812): Το Microsoft Azure είναι μια υπηρεσία cloud που παρέχει πιο ισχυρή και σταθερή υπολογιστική ισχύ. Αυτή τη φορά προσπαθήσαμε να στείλουμε τα δεδομένα μας IoTea σε αυτό