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

Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο: 10 βήματα
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο: 10 βήματα

Βίντεο: Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο: 10 βήματα

Βίντεο: Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο: 10 βήματα
Βίντεο: Chris Langan: IQ, ελεύθερη βούληση, ψυχεδελικά, CTMU και Θεός 2024, Νοέμβριος
Anonim
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο
Δημιουργήστε έναν αισθητήρα ποιότητας εσωτερικού IoT αέρα Δεν απαιτείται σύννεφο

Η ποιότητα του εσωτερικού ή εξωτερικού αέρα εξαρτάται από πολλές πηγές ρύπανσης αλλά και από τις καιρικές συνθήκες.

Αυτή η συσκευή καταγράφει μερικές από τις κοινές και μερικές από τις πιο ενδιαφέρουσες παραμέτρους χρησιμοποιώντας 2 τσιπ αισθητήρων.

  • Θερμοκρασία
  • Υγρασία
  • Πίεση
  • Οργανικό αέριο
  • Μικροσωματίδια

Οι αισθητήρες που χρησιμοποιούνται εδώ είναι ο BME680 για τη λήψη θερμοκρασίας, υγρασίας, πίεσης και τιμών οργανικού αερίου και ο PMS5003 για την απόκτηση της πυκνότητας των μικροσωματιδίων.

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

Φέρνει επίσης μια πλήρη λύση για τη φιλοξενία μιας ιστοσελίδας μέσα στη συσκευή αντί να χρησιμοποιήσετε μια λύση που βασίζεται σε σύννεφο για την εμφάνιση των δεδομένων αισθητήρα και την αλληλεπίδραση με τη συσκευή.

Προμήθειες

Το μόνο που χρειάζεστε για να φτιάξετε αυτό το έργο είναι ένας πίνακας που βασίζεται σε ESP8266, όπως ο πίνακας nodemcu και ένα σύνολο αισθητήρων για τη μέτρηση της ποιότητας του αέρα. Η βιβλιοθήκη HomeDing που χρησιμοποιείται σε αυτό το έργο υποστηρίζει μερικά από τα κοινά τσιπ αισθητήρων για θερμοκρασία, υγρασία, πίεση και ποιότητα. Εδώ χρησιμοποιείται το τσιπ BMP680.

  • Ένα βύσμα USB και ένα καλώδιο micro-USB για τροφοδοσία.
  • 1 πλακέτα nodemcu με τον επεξεργαστή ESP8266.
  • 1 πίνακας ανάρτησης αισθητήρα BME680.
  • 1 PM2.5 αισθητήρας λέιζερ σωματιδίων αέρα τύπου PMS5003

Είναι εύκολο να αλλάξετε τον αισθητήρα BME680 με έναν αισθητήρα DHT22, καθώς υποστηρίζονται επίσης από τη βιβλιοθήκη μεταξύ πολλών άλλων.

Βήμα 1: Προετοιμάστε το περιβάλλον Arduino για το ESP8266

Προετοιμάστε το περιβάλλον Arduino για το ESP8266
Προετοιμάστε το περιβάλλον Arduino για το ESP8266
  1. Εγκαταστήστε την τελευταία έκδοση του Arduino IDE (τρέχουσα έκδοση 1.8.2).
  2. Χρησιμοποιήστε το Board Manager για να εγκαταστήσετε την εγκατάσταση της υποστήριξης esp8266. Μπορείτε να βρείτε αναλυτικές οδηγίες εδώ:
  3. Ρυθμίστε τις επιλογές της πλακέτας για ένα NodeMCU 1.0 με σύστημα αρχείων 1MByte SPIFFS όπως φαίνεται στο στιγμιότυπο οθόνης

Βήμα 2: Συμπεριλάβετε τις απαιτούμενες βιβλιοθήκες

Συμπεριλάβετε τις απαιτούμενες βιβλιοθήκες
Συμπεριλάβετε τις απαιτούμενες βιβλιοθήκες

Η βιβλιοθήκη HomeDing βασίζεται σε μερικές κοινές επιπλέον βιβλιοθήκες για να λειτουργούν αισθητήρες και οθόνες.

Όταν εγκαθιστάτε τη βιβλιοθήκη HomeDing θα δείτε ένα αναδυόμενο παράθυρο με αυτές τις απαιτούμενες βιβλιοθήκες που μπορούν να εγκατασταθούν αυτόματα όπως εμφανίζεται στην εικόνα και είναι εύκολο να τις εγκαταστήσετε όλες.

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

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

Αυτή είναι η λίστα με τις τρέχουσες απαιτούμενες βιβλιοθήκες:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 και ESP32 Oled Driver για οθόνη SSD1306
  • RotaryEncoder
  • Βιβλιοθήκη αισθητήρων DHT για ESPx
  • OneWire

Ο αισθητήρας λέιζερ σωματιδίων αέρα PMS5003 επικοινωνεί χρησιμοποιώντας σήμα σειριακής γραμμής 9600 baud. Αυτό το σήμα καταγράφεται χρησιμοποιώντας τη βιβλιοθήκη SoftwareSerial που συνοδεύει την εγκατάσταση των εργαλείων ESP8266. Βεβαιωθείτε ότι δεν έχετε εγκαταστήσει μια παλαιότερη έκδοση ως βιβλιοθήκη.

Βήμα 3: Προσαρμόστε το τυπικό σκίτσο παραδείγματος

Προσαρμόστε το πρότυπο σκίτσο παραδείγματος
Προσαρμόστε το πρότυπο σκίτσο παραδείγματος

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

Αυτό ισχύει για τον αισθητήρα BME680 που υποστηρίζεται από το στοιχείο BME680.

Ο αισθητήρας PMS5003 είναι λιγότερο συνηθισμένος και πρέπει να ενεργοποιηθεί συμπεριλαμβάνοντας το στοιχείο PMS στο υλικολογισμικό. Αυτό γίνεται με τον ορισμό του #define HOMEDING_INCLUDE_PMS στην ενότητα καταχώριση στοιχείων του σκίτσου

#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS

Για απλότητα στην προσθήκη της νέας συσκευής στο δίκτυο, μπορείτε να προσθέσετε το SSID και τη φράση πρόσβασης του οικιακού σας WiFi στο αρχείο secrets.h δίπλα στο αρχείο σκίτσο standard.ino. Αλλά μπορείτε επίσης να χρησιμοποιήσετε τον ενσωματωμένο Διαχειριστή WiFi για να προσθέσετε τη συσκευή στο δίκτυο χωρίς αυτήν τη σκληρά κωδικοποιημένη διαμόρφωση.

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

Βήμα 4: Ανεβάστε τη διεπαφή χρήστη Web

Το τυπικό παράδειγμα συνοδεύεται από έναν φάκελο δεδομένων που περιέχει όλο το αρχείο για τη διεπαφή χρήστη ιστού.

Πριν από τη μεταφόρτωση αυτών των αρχείων, μπορεί να θέλετε να προσθέσετε το αρχείο env.json και config.json που μπορείτε να βρείτε με αυτό το άρθρο, επειδή αυτό θα διευκολύνει τα πράγματα.

Το περιεχόμενο αυτών των αρχείων είναι αυτό που κάνει τη συσκευή IoT ξεχωριστή και συμπεριφέρεται ως αισθητήρας ποιότητας αέρα. Εξηγείται λεπτομερώς σε αυτή την ιστορία.

Χρησιμοποιήστε το βοηθητικό πρόγραμμα μεταφόρτωσης αρχείων ESP8266 και ανεβάστε όλα τα αρχεία. Χρειάζεται επανεκκίνηση για να ενεργοποιήσετε τη διαμόρφωση.

Βήμα 5: Προσθέστε τον αισθητήρα BME680

Προσθέστε τον αισθητήρα BME680
Προσθέστε τον αισθητήρα BME680
Προσθέστε τον αισθητήρα BME680
Προσθέστε τον αισθητήρα BME680
Προσθέστε τον αισθητήρα BME680
Προσθέστε τον αισθητήρα BME680

Ο αισθητήρας BME680 επικοινωνεί με την πλακέτα χρησιμοποιώντας το δίαυλο I2C.

Καθώς αυτό μπορεί να μοιραστεί με άλλες επεκτάσεις, όπως άλλοι αισθητήρες ή οθόνες, έχει ρυθμιστεί σε επίπεδο συσκευής στο env.json μαζί με το όνομα δικτύου της συσκευής. Ακολουθεί ένα εξαγόμενο δείγμα συσκευής και ρυθμίσεων I2C:

"συσκευή": {

"0": {"name": "airding", "description": "Air Quality Sensor",… "i2c-scl": "D2", "i2c-sda": "D1"}}

Στο breadboard μπορείτε να δείτε τα καλώδια σύνδεσης στον αισθητήρα: 3.3V = κόκκινο, GND = μαύρο, SCL = κίτρινο, SDA = μπλε

Η διαμόρφωση για το BME680 μπορεί να χρησιμοποιηθεί στο config.json:

"bme680": {

"bd": {"address": "0x77", "readtime": "10s"}}

Θα προσθέσουμε τις ενέργειες αργότερα.

Για να δοκιμάσετε τη ρύθμιση, χρησιμοποιήστε ένα πρόγραμμα περιήγησης και ανοίξτε το https://airding/board.htm και θα δείτε τις πραγματικές τιμές του αισθητήρα να εμφανίζονται και θα ενημερώνονται περίπου κάθε 10 δευτερόλεπτα:

Βήμα 6: Προσθέστε τον αισθητήρα PMS5003

Προσθέστε τον αισθητήρα PMS5003
Προσθέστε τον αισθητήρα PMS5003

Δεν πήρα έναν αισθητήρα με βύσμα φιλικό προς το breadboard, οπότε έπρεπε να κόψω έναν από τους συνδετήρες στο καλώδιο χρησιμοποιώντας το κολλητήρι μου για να τον συνδέσω απευθείας στον πίνακα nodemcu. Μπορείτε να το δείτε ακόμα στις τελευταίες εικόνες.

Η ισχύς για αυτόν τον αισθητήρα πρέπει να λαμβάνεται από το Vin που κανονικά τροφοδοτείται από το δίαυλο USB. Το GND είναι το ίδιο αλλά διατίθεται και δίπλα στην καρφίτσα Vin.

Τα δεδομένα από τον αισθητήρα μεταφέρονται σε τυπική σειριακή σειρά 9600 baud, οπότε οι ακίδες rx και tx και ο χρόνος ανάγνωσης πρέπει να ρυθμιστούν:

"pms": {

"pm25": {"description": "pm25 sensor σωματιδίων", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

Θα προσθέσουμε τις ενέργειες αργότερα.

Για να δοκιμάσετε ξανά τη ρύθμιση, απλώς επανεκκινήστε τη συσκευή και χρησιμοποιήστε ένα πρόγραμμα περιήγησης και ανοίξτε το https://airding/board.htm και θα δείτε την πραγματική τιμή pm35 του αισθητήρα που θα εμφανίζεται και θα ενημερώνεται περίπου κάθε 10 δευτερόλεπτα, αλλά αυτή η τιμή είναι κανονικά δεν αλλάζει συχνά.

Μπορείτε να λάβετε υψηλότερες τιμές τοποθετώντας ένα φως κεριού δίπλα στον αισθητήρα καθώς ένα κερί παράγει πολλά από αυτά τα σωματίδια.

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

Βήμα 7: Προσθήκη ορισμένων δυνατοτήτων δικτύου

Το ακόλουθο απόσπασμα διαμόρφωσης στο env.json είναι ενεργοποιητικό

  • ενημέρωση του υλικολογισμικού στον αέρα
  • επιτρέπει την ανίχνευση του δικτύου χρησιμοποιώντας το πρωτόκολλο δικτύου SSDP και ανακτά την τρέχουσα ώρα από έναν διακομιστή ntp.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Listen for 'over the air' OTA Updates"}}, "ssdp": {"0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

Θα πρέπει να προσαρμόσετε τη ζώνη ώρας στην τοποθεσία σας. Εάν έχετε αμφιβολίες, μπορείτε να χρησιμοποιήσετε τον ιστότοπο https://www.timeanddate.com/ για να λάβετε την αντιστάθμιση από UTC/GMT. Το "2" είναι κατάλληλο για τη Γερμανία το καλοκαίρι.

Μπορείτε επίσης να προσαρμόσετε τον κωδικό πρόσβασης ota αφού διαβάσετε τις οδηγίες σχετικά με τη λειτουργία αποθήκευσης στην τεκμηρίωση στη διεύθυνση

Μετά την επανεκκίνηση, μπορείτε να βρείτε τη συσκευή αερισμού στο δίκτυο και αφού λάβετε απάντηση από τον διακομιστή ntp, είναι διαθέσιμη η τοπική ώρα.

Βήμα 8: Προσθήκη κάποιας καταγραφής

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

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

Η ακόλουθη διαμόρφωση δημιουργεί τα 2 στοιχεία καταγραφής για αέριο και σωματίδια:

{

"log": {"pm": {"description": "Log of pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Αρχείο καταγραφής ποιότητας αερίου "," όνομα αρχείου ":" /aqlog.txt "," filesize ":" 10000 "}}}

Βήμα 9: Ενέργειες

Ενέργειες
Ενέργειες

Τώρα πρέπει να μεταφέρουμε τις πραγματικές τιμές στα στοιχεία καταγραφής χρησιμοποιώντας ενέργειες. Οι ενέργειες χρησιμοποιούν μια σημειογραφία URL για να περάσουν ένα kay και μια τιμή στο στοιχείο στόχου. Πολλά στοιχεία υποστηρίζουν ενέργειες εκπομπής σε ορισμένα συμβάντα που συμβαίνουν, όπως η καταγραφή μιας νέας τιμής αισθητήρα.

Οι ενέργειες διαμορφώνονται στο στοιχείο που εκπέμπει ενέργειες Απαιτούνται 2 καταχωρήσεις:

  • Το συμβάν αξίας pms/p25 στέλνει την πραγματική τιμή στο στοιχείο log/pm χρησιμοποιώντας μια ενέργεια τιμής.
  • Το συμβάν bme680/bd ongas στέλνει την πραγματική τιμή στο στοιχείο log/pm χρησιμοποιώντας μια ενέργεια τιμής.

{

"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}

Τώρα όλα τα στοιχεία έχουν ρυθμιστεί.

Βήμα 10: Εικόνες και αρχεία διαμόρφωσης

Εικόνες και αρχεία διαμόρφωσης
Εικόνες και αρχεία διαμόρφωσης
Εικόνες και αρχεία διαμόρφωσης
Εικόνες και αρχεία διαμόρφωσης
Εικόνες και αρχεία διαμόρφωσης
Εικόνες και αρχεία διαμόρφωσης

Ακολουθούν μερικές εικόνες του τελικού αισθητήρα IoT Air Quality.

Τα αρχεία διαμόρφωσης για λήψη πρέπει να μετονομαστούν σε *.json (no.txt) πριν από τη μεταφόρτωση.

Σύνδεσμοι και αναφορές

  • Αποθήκη πηγαίου κώδικα HomeDing:
  • Τεκμηρίωση:
  • Τυπικό Παράδειγμα:
  • BME680 Στοιχείο:
  • Στοιχείο PMS:
  • Στοιχείο καταγραφής:
  • NtpTime Element:

Συνιστάται: