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

AirCitizen - Παρακολούθηση της ποιότητας του αέρα: 11 βήματα (με εικόνες)
AirCitizen - Παρακολούθηση της ποιότητας του αέρα: 11 βήματα (με εικόνες)

Βίντεο: AirCitizen - Παρακολούθηση της ποιότητας του αέρα: 11 βήματα (με εικόνες)

Βίντεο: AirCitizen - Παρακολούθηση της ποιότητας του αέρα: 11 βήματα (με εικόνες)
Βίντεο: AirCitizen 2024, Ιούλιος
Anonim
AirCitizen - Παρακολούθηση της ποιότητας του αέρα
AirCitizen - Παρακολούθηση της ποιότητας του αέρα

Γεια σε όλους

Σήμερα, θα σας διδάξουμε πώς να αναπαράγετε το έργο μας: AirCitizen bythe AirCitizenPolytech Team!

--

Έρχεται από το 'OpenAir / What's your air;' Έργα, το έργο AirCitizen στοχεύει να επιτρέψει στους πολίτες να αξιολογήσουν ενεργά την ποιότητα του άμεσου περιβάλλοντός τους και ιδίως τον αέρα που αναπνέουν, προσφέροντάς τους από:

Χτίζω

Πραγματοποιήστε σε "Fablabs" (ψηφιακά εργαστήρια κατασκευής) φορητούς σταθμούς περιβαλλοντικών μετρήσεων που ενσωματώνουν διάφορους αισθητήρες χαμηλού κόστους (π.χ. θερμοκρασία, υγρασία, πίεση, αέριο NOx, όζον ή σωματίδια PM10 και PM2.5).

Μετρήσει

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

Μερίδιο

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

--

Η ιδέα είναι να δημιουργηθεί ένας αυτόνομος σταθμός που μπορεί να συλλέγει δεδομένα περιβάλλοντος και να τα στέλνει με το δίκτυο SigFox σε έναν πίνακα ελέγχου.

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

Βήμα 1: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

Εδώ είναι τα στοιχεία που αποφασίσαμε να χρησιμοποιήσουμε για το σχεδιασμό του σταθμού:

-STM32 NUCLEO -F303K8 -> Για περισσότερες πληροφορίες

-HPMA115S0 -XXX (Αισθητήρας σωματιδίων PM2.5 & PM10) -> Για περισσότερες πληροφορίες

- SHT11 ή SHT10 ή STH15 ή DHT11 (Θερμοκρασία & σχετική υγρασία) -> Για περισσότερες πληροφορίες

- MICS2714 (αισθητήρας NO2, αισθητήρας διοξειδίου του αζώτου) -> Για περισσότερες πληροφορίες

- Ηλιακός πίνακας x2 (2W) -> Για περισσότερες πληροφορίες

- Μπαταρία LiPo 3, 7 V 1050 mAh -> Για περισσότερες πληροφορίες

- Regulator LiPo Rider Pro (106990008) -> Για περισσότερες πληροφορίες

- Άδεια BreakOut SigFox BRKWS01 + 1 -> Για περισσότερες πληροφορίες

- 7 αντιστάσεις (86, 6; 820; 1Κ; 1Κ; 4, 7Κ; 10Κ; 20Κ)

- 1 πυκνωτής (100nF)

- 1 τρανζίστορ (2N222).

! ! ! Πρέπει να αφαιρέσετε τα SB16 και SB18 στον πίνακα πυρήνα stm32 για να αποφύγετε παρεμβολές μεταξύ HPMA και SHT11!

Βασικά, με αυτόν τον τρόπο πρέπει να συνδέσετε στοιχεία:

  1. Συγκολλήστε, παράλληλα, τους ηλιακούς συλλέκτες.
  2. Συνδέστε τα με το LiPo Rider Pro και συνδέστε επίσης την μπαταρία με το LiPo Rider Pro.
  3. Όπως και η παραπάνω φωτογραφία, συνδέστε όλα τα στοιχεία στο STM32. Συνδέστε μόνο έναν αισθητήρα θερμοκρασίας και υγρασίας όχι 2! Μην ξεχνάτε τις αντιστάσεις, τον πυκνωτή και το τρανζίστορ.
  4. Τέλος, συνδέστε το STM32 στο LiPo Rider Pro με ένα καλώδιο usb.

Το επόμενο βήμα είναι μια εναλλακτική λύση σε αυτό το καλώδιο.

Βήμα 2: Υλικό - PCB

Υλικό - PCB
Υλικό - PCB

Αποφασίσαμε να χρησιμοποιήσουμε το Autodesk Eagle για να σχεδιάσουμε την πλακέτα τυπωμένου κυκλώματος (PCB).

Μπορείτε να επιλέξετε να συνδέσετε είτε DHT είτε SHT, επιλέξαμε να σχεδιάσουμε δύο δακτυλικά αποτυπώματα για αυτούς τους 2 αισθητήρες για να αλλάξουμε τον αισθητήρα αν χρειαστεί.

Στο συνημμένο, μπορείτε να κατεβάσετε τα αρχεία σύλληψης του Eagle, ώστε να μπορείτε εύκολα να τα φτιάξετε μόνοι σας.

Χρησιμοποιούμε τον πείρο 5V του stm32 για να τροφοδοτήσουμε τη συσκευή. Σε αυτήν τη διαμόρφωση, τροφοδοτείται μόνο ο πυρήνας stm32.

Έτσι μπορούμε να χρησιμοποιήσουμε τη λειτουργία βαθύ ύπνου του MCU παρέχοντας χαμηλό ρεύμα ύπνου. Σε κατάσταση αναμονής, ολόκληρο το ρεύμα ύπνου πέφτει κάτω από τα XXμA.

Βήμα 3: Το πρωτόκολλο LPWAN: Επικοινωνία Sigfox

Το πρωτόκολλο LPWAN: Επικοινωνία Sigfox
Το πρωτόκολλο LPWAN: Επικοινωνία Sigfox

Το Sigfox είναι ένα πρωτόκολλο LPWAN που δημιουργήθηκε από μια γαλλική εταιρεία τηλεπικοινωνιών - SIGFOX

Επιτρέπει τη σύνδεση απομακρυσμένων συσκευών χρησιμοποιώντας τεχνολογία εξαιρετικά στενής ζώνης (UNB). Τα περισσότερα από αυτά θα απαιτούν μόνο χαμηλό εύρος ζώνης για τη μεταφορά μικρών ποσοτήτων δεδομένων. Τα δίκτυα μπορούν να χειρίζονται μόνο περίπου 12 byte ανά μήνυμα και ταυτόχρονα όχι περισσότερα από 140 μηνύματα ανά συσκευή ανά ημέρα.

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

Για το AirCitizen, η μορφή των δεδομένων που ανιχνεύονται είναι απλή και η ποσότητα των δεδομένων σωστή για χρήση του Sigfox για τη μετάφραση των δεδομένων που ανιχνεύονται από τους αισθητήρες στην πλατφόρμα IOT - ThingSpeak.

Θα εισαγάγουμε τη χρήση του Sigfox στα ακόλουθα βήματα.

Βήμα 4: Διαμόρφωση λογισμικού

Διαμόρφωση λογισμικού
Διαμόρφωση λογισμικού
Διαμόρφωση λογισμικού
Διαμόρφωση λογισμικού

Μετά την πραγματοποίηση του κυκλώματός μας, ας προχωρήσουμε στην ανάπτυξη του μικροελεγκτή μας STM32 F303K8.

Για μεγαλύτερη απλότητα, μπορείτε να επιλέξετε να προγραμματίσετε στο Arduino.

Βήμα 1: Εάν δεν έχετε εγκαταστήσει ακόμα το Arduino IDE, κάντε λήψη και εγκαταστήστε το από αυτόν τον σύνδεσμο. Βεβαιωθείτε ότι έχετε επιλέξει το σωστό λειτουργικό σύστημα.

Ο σύνδεσμος: Κατεβάστε το Arduino

Βήμα 2: Μετά την εγκατάσταση του Arduino IDE ανοίξτε και κατεβάστε τα απαιτούμενα πακέτα για τον πίνακα STM32. Αυτό μπορεί να γίνει επιλέγοντας Αρχείο -> Προτιμήσεις.

Βήμα 3: Κάνοντας κλικ στις Προτιμήσεις θα ανοίξει το παρακάτω παράθυρο διαλόγου που εμφανίζεται. Στο πλαίσιο κειμένου πρόσθετης διεύθυνσης διεύθυνσης πίνακα, επικολλήστε τον παρακάτω σύνδεσμο:

github.com/stm32duino/BoardManagerFiles/ra…

και πατήστε OK.

Βήμα 4: Τώρα μεταβείτε στο Εργαλείο -> Πίνακες -> Διαχειριστής πίνακα. Αυτό θα ανοίξει το παράθυρο διαλόγου Διαχειριστής πινάκων, θα αναζητήσει "Πυρήνες STM32" και θα εγκαταστήσει το πακέτο που εμφανίζεται (πακέτο STMicrolectronics).

Βήμα 5: Μετά το πακέτο, ολοκληρώνεται η εγκατάσταση. Μεταβείτε στα Εργαλεία και μετακινηθείτε προς τα κάτω για να βρείτε τη "σειρά Nucleo-32". Στη συνέχεια, βεβαιωθείτε ότι η παραλλαγή είναι "Nucleo F303K8" και αλλάξτε τη μέθοδο μεταφόρτωσης σε "STLink".

Βήμα 6: Τώρα, συνδέστε την πλακέτα σας με τον υπολογιστή και ελέγξτε σε ποια θύρα COM είναι συνδεδεμένη η πλακέτα χρησιμοποιώντας τη διαχείριση συσκευών. Στη συνέχεια, επιλέξτε τον ίδιο αριθμό θύρας στο Εργαλεία-> Θύρα.

Είστε τώρα έτοιμοι να προγραμματίσετε το STM32 F303K8 σας με Arduino!

Βήμα 5: Προγραμματίστε το STM32 σας

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

Βήμα 1: Ελέγξτε την επίδραση της εισόδου/εξόδου και μετρά τη χρονική σήμανση στο τμήμα "Ορισμός" του κώδικα.

Βήμα 2: Ανεβάστε τον παραπάνω κώδικα στο stm32, ανοίξτε τη σειριακή οθόνη και επαναφέρετε τη συσκευή. Η εντολή "AT" θα εμφανιστεί στην οθόνη, αν όχι, ελέγξτε τη δήλωση εισόδου/εξόδου.

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

Ας περάσουμε στη διαμόρφωση του ταμπλό.

Βήμα 6: ThingSpeak - 1

ThingSpeak - 1
ThingSpeak - 1
ThingSpeak - 1
ThingSpeak - 1

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

Εγγραφή: Ιστότοπος ThingSpeak

Βήμα 1: Τώρα κάντε κλικ στο "Νέο κανάλι". Αυτό θα ανοίξει μια φόρμα. Εισαγάγετε ένα όνομα και μια περιγραφή (εάν χρειάζεται).

Δημιουργία 5 πεδίων:

  • Πεδίο 1: pm2, 5
  • Πεδίο 2: pm10
  • Πεδίο 3: θερμοκρασία
  • Πεδίο 4: υγρασία
  • Πεδίο 5: NO2

Αυτοί οι τίτλοι δεν θα είναι οι τίτλοι των γραφημάτων μας.

Εάν χρειάζεστε ένα παράδειγμα, δείτε την παραπάνω φωτογραφία.

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

Κάντε κύλιση προς τα κάτω και "Αποθήκευση καναλιού".

Βήμα 2: Κανάλι σταθμού AirCitizen.

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

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

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

Βήμα 3: Μετά τη διαμόρφωση των γραφημάτων σας. Μεταβείτε στην καρτέλα "Κλειδιά API". Δείτε το τμήμα αιτήματος API και πιο συγκεκριμένα το πρώτο πεδίο, "Ενημέρωση ροής καναλιού". Σημειώστε το κλειδί API.

Θα έχετε κάτι σαν αυτό:

ΛΗETΗ

Τώρα μπορείτε να μεταβείτε στο επόμενο κεφάλαιο.

Βήμα 7: Επικοινωνία μεταξύ της μονάδας Sigfox και της πλατφόρμας ThingSpeak

Επικοινωνία μεταξύ της μονάδας Sigfox και της πλατφόρμας ThingSpeak
Επικοινωνία μεταξύ της μονάδας Sigfox και της πλατφόρμας ThingSpeak
Επικοινωνία μεταξύ της μονάδας Sigfox και της πλατφόρμας ThingSpeak
Επικοινωνία μεταξύ της μονάδας Sigfox και της πλατφόρμας ThingSpeak

Για ενημέρωσή σας, σημειώστε ότι κάθε κάρτα μονάδας Sigfox έχει έναν μοναδικό αριθμό γραμμένο στην κάρτα και έναν αριθμό PAC.

Για να λάβετε τα δεδομένα στο ThingSpeak, θα πρέπει να τα ανακατευθύνετε.

Τα δεδομένα πηγαίνουν από το σταθμό στο backend του Sigfox και θα ανακατευθυνθούν στον διακομιστή ThingSpeak.

Δείτε την πρώτη εικόνα παραπάνω για εξηγήσεις.

Βήμα 1: Δεν θα εξηγήσουμε πώς να εγγραφείτε στο Sigfox λόγω πολλών σεμιναρίων στο διαδίκτυο.

Πηγαίνετε στο Sigfox Backend.

Κάντε κλικ στο "Τύπος συσκευής", στη συνέχεια κάντε κλικ στη γραμμή του κιτ σας και επιλέξτε "Επεξεργασία".

Τώρα, μεταβείτε στην ενότητα "Επιστροφές κλήσεων" και κάντε κλικ στο "Νέο", "Προσαρμοσμένη επανάκληση".

Βήμα 2:

Θα πρέπει να βρίσκεστε στη σελίδα διαμόρφωσης:

Τύπος: DATA και UPLINK

Κανάλι: URL

Αποστολή διπλότυπου: κανένα

Προσαρμοσμένη διαμόρφωση ωφέλιμου φορτίου: Ορίστε την προέλευση δεδομένων και αποφασίστε τη φόρμα δεδομένων. Θα πρέπει να γράψετε όπως:

VarName:: Τύπος: NumberOfBits

Σε αυτήν την περίπτωση, έχουμε 5 τιμές με το όνομα pm25, pm10, θερμοκρασία, υγρασία και NO2.

pm25:: int: 16 pm10:: int: 16 θερμοκρασία:: int: 8 υγρασία:: uint: 8 NO2:: uint: 8

Μοτίβο url: Αυτή είναι η σύνταξη. Χρησιμοποιήστε το κλειδί API που βρέθηκε προηγουμένως και τοποθετήστε το μετά το "api_key ="

api.thingspeak.com/update?api_key=XXXXXXXXXXXXXXX&field1={customData#pm25}&field2={customData#pm10}&field3={customData#temperature}&field4={customData#hum}#

Χρησιμοποιήστε τη μέθοδο HTTP: GET

Αποστολή SNI: ON

Κεφαλίδες: Καμία

Κάντε κλικ τώρα στο "Ok".

Η κλήση σας στο ThingSpeak API έχει πλέον διαμορφωθεί! (Αναπαράσταση στη δεύτερη παραπάνω εικόνα).

Βήμα 8: ThingSpeak - 2

ThingSpeak - 2
ThingSpeak - 2

Τώρα, μπορείτε να είστε πιο επιλεκτικοί στην τροποποίηση των ελάχιστων και μέγιστων τιμών των αξόνων.

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

Τυπικές τιμές:

PM 2, 5 & PM 10 = ug/m^3

Θερμοκρασία = ° C

Υγρασία = %

Διοξείδιο του αζώτου = ppm

Θα πρέπει να έχετε κάτι σαν τις δύο παραπάνω εικόνες.

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

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

Βήμα 9: Μπόνους - ThingTweet και React

Μπόνους - ThingTweet και React
Μπόνους - ThingTweet και React
Μπόνους - ThingTweet και React
Μπόνους - ThingTweet και React
Μπόνους - ThingTweet και React
Μπόνους - ThingTweet και React

Προαιρετικά: Tweet αν πληρούται μια προϋπόθεση!

Βήμα 1: Δημιουργήστε έναν λογαριασμό στο twitter ή χρησιμοποιήστε τον προσωπικό σας λογαριασμό στο twitter.

Εγγραφή - Twitter

Βήμα 2: Στο Thingspeak, μεταβείτε στις "Εφαρμογές" και, στη συνέχεια, κάντε κλικ στο "ThingTweet".

Συνδέστε τον λογαριασμό σας στο twitter κάνοντας κλικ στο "Σύνδεση λογαριασμού Twitter".

Βήμα 3: Τώρα, επιστρέψτε στις "Εφαρμογές" και κάντε κλικ στο "Αντιδρά".

Δημιουργήστε ένα νέο React κάνοντας κλικ στο "New React".

Με παράδειγμα:

Όνομα Αντίδρασης: Θερμοκρασία πάνω από 15 ° C

Τύπος συνθήκης: Αριθμητική

Συχνότητα δοκιμής: Εισαγωγή δεδομένων

Κατάσταση, εάν το κανάλι:

Πεδίο: 3 (θερμοκρασία)

Σημάδι: είναι μεγαλύτερο από

Αξία: 15

Δράση: ThingTweet

Τότε tweet: Ω! Η θερμοκρασία είναι μεγαλύτερη από 15 ° C

χρησιμοποιώντας λογαριασμό Twitter:

Επιλογές: Εκτέλεση ενέργειας κάθε φορά που πληρούται η προϋπόθεση

Στη συνέχεια, κάντε κλικ στο "Save React".

Τώρα θα κάνετε tweet εάν πληρείται η προϋπόθεση και μπορούν να διαμορφωθούν πολλές άλλες προϋποθέσεις, ανάλογα με το επίπεδο PM10.

Βήμα 10: Είναι η σειρά σας τώρα

Τέλος, έχετε πλέον όλα τα στοιχεία για να αναπαράγετε τον δικό σας Σταθμό AirCitizen!

Βίντεο: Μπορείτε να παρακολουθήσετε ένα βίντεο όπου παρουσιάζουμε τη δουλειά μας.

Η πλατφόρμα μας ThingSpeak: AirCitizenPolytech Station

--

Σας ευχαριστώ για την προσοχή σας !

Η ομάδα AirCitizen Polytech

Βήμα 11: Αναφορά & Βιβλιογραφία

https://www.sigfox.com/el

Συνιστάται: