Πίνακας περιεχομένων:
- Βήμα 1: Απαιτούνται εξαρτήματα
- Βήμα 2: Συναρμολογήστε τα μέρη
- Βήμα 3: Ο κώδικας
- Βήμα 4: Συναρμολογήστε το κουτί
Βίντεο: Σταθμός παρακολούθησης σωματιδίων σκόνης Arduino: 4 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Μπορείτε αρκετά εύκολα να δημιουργήσετε μια συσκευή DIY internet of things που παρακολουθεί τη ρύπανση από τη σκόνη στο σπίτι σας για λιγότερο από $ 50 και να λαμβάνετε ειδοποιήσεις όταν το επίπεδο σκόνης γίνει πολύ υψηλό, ώστε να μπορείτε να αερίζετε το δωμάτιο ή μπορείτε να το ρυθμίσετε έξω και να ειδοποιηθείτε εάν είναι ασφαλές να βγείτε έξω εάν ζείτε σε μια περιοχή με υψηλή ρύπανση.
Το έκανα ως σχολικό έργο, οπότε δεν είχα αρκετό χρόνο για να βρω μια υπηρεσία που θα λαμβάνει μηνύματα MQTT και θα σας τα στέλνει όπως ειδοποιήσεις ή μηνύματα ηλεκτρονικού ταχυδρομείου.
Σημειώστε επίσης ότι η συνεχής τροφοδοσία του αισθητήρα θα μειώσει τη διάρκεια ζωής του ανεμιστήρα.
Βήμα 1: Απαιτούνται εξαρτήματα
Αυτό που θα χρειαστείς
- Arduino Uno
- Ασπίδα Ethernet Arduino
- Αισθητήρας λέιζερ σωματιδίων (συνήθως κοστίζει $ 10-$ 30 στο eBay/aliexpress)
- Αισθητήρας θερμοκρασίας και υγρασίας DHT11 (προαιρετικό)
- Breadboard
- Καλώδια βραχυκύκλωσης
Βήμα 2: Συναρμολογήστε τα μέρη
Αρχικά, πρέπει να συνδέσετε την ασπίδα ethernet στο Arduino
Ο αισθητήρας PM έχει πολλά καλώδια, αλλά αυτά που χρειαζόμαστε είναι VCC, GND, TX, RX.
Συνδέστε το VCC και το GND στο + και - στο breadboard αντίστοιχα.
Το Arduino διαθέτει ακίδες RX και TX υλικού, αλλά θα χρησιμοποιήσουμε εξομοίωση λογισμικού των ακίδων RX και TX στις ακίδες 2 και 3 αντίστοιχα. Συνδέστε το RX του αισθητήρα στο TX του Arduino και το TX του αισθητήρα στο RX του Arduino.
Εάν πρόκειται να χρησιμοποιήσετε τον αισθητήρα θερμοκρασίας, συνδέστε τις γραμμές VCC και GND στο + και - στο Breadboard και τη γραμμή δεδομένων στο pin 7.
Βήμα 3: Ο κώδικας
Μπορείτε είτε να εγκαταστήσετε τον μεσίτη MQTT σε ένα βατόμουρο pi είτε σε έναν υπολογιστή που έχετε πάντα στο σπίτι ή να χρησιμοποιήσετε μια υπηρεσία cloud MQTT, όπως το Cloud MQTT. Στη συνέχεια, μπορείτε να γράψετε ένα σενάριο που στέλνει τα δεδομένα ως HTTP σε ένα IHTT webhook, καθώς δεν υποστηρίζουν ακόμη MQTT webhooks και να ρυθμίσετε ειδοποιήσεις όταν τα επίπεδα σκόνης στο σπίτι σας είναι πολύ υψηλά.
Αεροπορικός σταθμός Arduino
#περιλαμβάνω |
#περιλαμβάνω |
#περιλαμβάνω |
#περιλαμβάνω |
#περιλαμβάνω |
#περιλαμβάνω |
#περιλαμβάνω |
#περιλαμβάνω |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAddress ip (169, 169, 100, 98). |
byte mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
constint mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Οι συνδέσεις πελατών δεν μπορούν να έχουν το ίδιο όνομα σύνδεσης |
EthernetClient ethClient; |
Πελάτης PubSubClient (ethClient). |
ΛογισμικόSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
ανυπόγραφο αναγνωριστικό? |
// Αρχείο myFile; |
String s? |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
εάν (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Αποτυχία ρύθμισης παραμέτρων Ethernet χρησιμοποιώντας DHCP"); |
// προσπάθεια με σταθερό ip addr |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (επανάκληση); |
καθυστέρηση (2000). |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
αξία char; |
char previousValue; |
εάν (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("συνδεδεμένο"); |
} |
} |
ενώ (pmSerial.available ()) { |
value = pmSerial.read (); |
if ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) { |
Serial.println ("Δεν είναι δυνατή η εύρεση της κεφαλίδας δεδομένων."); |
ΕΠΙΣΤΡΟΦΗ; |
} |
αν (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
previousValue = τιμή; |
} |
elseif (index == 5) { |
pm1 = 256 * previousValue + value; |
root ["pm1"] = abs (pm1); |
} |
elseif (index == 7) { |
pm2_5 = 256 * previousValue + value; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (index == 9) { |
pm10 = 256 * previousValue + value; |
root ["pm10"] = abs (pm10); |
} |
elseif (ευρετήριο> 15) { |
Διακοπή; |
} |
ευρετήριο ++; |
} |
ενώ (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
εάν (DHT.temperature == -999 || DHT.humidity == -999) { |
root ["θερμοκρασία"] = "N/A"; |
root ["υγρασία"] = "N/A"; |
} αλλο { |
root ["θερμοκρασία"] = DHT.temperature; |
ρίζα ["υγρασία"] = DHT. υγρασία; |
} |
sendResults (); |
id ++; |
καθυστέρηση (5000)? |
} |
voidsendResults () { |
// δημοσίευση στο MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// εντοπισμός σφαλμάτων σε σειριακό |
root.printTo (Σειριακό); |
Serial.print ('\ n'); |
} |
// Χειρίζεται μηνύματα που έφτασαν σε εγγραφόμενα θέματα |
voidcallback (char* topic, byte* payload, unsignedint length) { |
} |
προβολή rawair_quality.ino που φιλοξενείται με ❤ από το GitHub
Βήμα 4: Συναρμολογήστε το κουτί
Μόλις χρησιμοποίησα ένα κουτί που είχα ξαπλωμένο και άνοιξα μια τρύπα για να βγάλει αέρα ο αισθητήρας και έκοψα μια τρύπα για να σβήσουν τα καλώδια (αν και ήταν λίγο πολύ μεγάλο).
Χρησιμοποίησα μαξιλάρια κόλλας για να στερεώσω τον αισθητήρα στο κουτί, ευθυγραμμίζοντας την οπή εισόδου του αισθητήρα με την τρύπα στο κουτί.
Τέλος, έβαλα τα καλώδια ethernet και τροφοδοσίας.
Συνιστάται:
Δημιουργήστε μια συσκευή παρακολούθησης ενέργειας χρησιμοποιώντας ένα ηλεκτρόνιο σωματιδίων: 5 βήματα (με εικόνες)
Δημιουργήστε μια συσκευή παρακολούθησης ενέργειας χρησιμοποιώντας ένα ηλεκτρόνιο σωματιδίων: Στις περισσότερες επιχειρήσεις, θεωρούμε ότι η ενέργεια είναι επιχειρηματική δαπάνη. Ο λογαριασμός εμφανίζεται στα μηνύματα ηλεκτρονικού ταχυδρομείου ή στα email μας και τον πληρώνουμε πριν από την ημερομηνία ακύρωσης. Με την εμφάνιση του IoT και των έξυπνων συσκευών, η Energy αρχίζει να παίρνει μια νέα θέση σε μια επιχείρηση
Μετεωρολογικός σταθμός NaTaLia: Μετεωρολογικός σταθμός Arduino Solar Powered Done the Right Way: 8 βήματα (με εικόνες)
Μετεωρολογικός Σταθμός NaTaLia: Ο Μετεωρολογικός Σταθμός Arduino έγινε με τον σωστό τρόπο: Μετά από 1 χρόνο επιτυχούς λειτουργίας σε 2 διαφορετικές τοποθεσίες, μοιράζομαι τα σχέδια έργων μου με ηλιακή ενέργεια και εξηγώ πώς εξελίχθηκε σε ένα σύστημα που μπορεί πραγματικά να επιβιώσει για μεγάλο χρονικό διάστημα περιόδους από την ηλιακή ενέργεια. Αν ακολουθείτε
Μετεωρολογικός σταθμός DIY & Σταθμός αισθητήρα WiFi: 7 βήματα (με εικόνες)
Μετεωρολογικός Σταθμός DIY & WiFi Sensor Station: Σε αυτό το έργο θα σας δείξω πώς να δημιουργήσετε έναν μετεωρολογικό σταθμό μαζί με έναν σταθμό αισθητήρα WiFi. Ο σταθμός αισθητήρων μετρά τα τοπικά δεδομένα θερμοκρασίας και υγρασίας και τα στέλνει, μέσω WiFi, στον μετεωρολογικό σταθμό. Ο μετεωρολογικός σταθμός εμφανίζει τότε
Σύστημα παρακολούθησης της ποιότητας του αέρα για ρύπανση σωματιδίων: 4 βήματα
Σύστημα παρακολούθησης της ποιότητας του αέρα για ρύπανση σωματιδίων: ΕΙΣΑΓΩΓΗ: 1 Σε αυτό το έργο παρουσιάζω τον τρόπο κατασκευής ενός ανιχνευτή σωματιδίων με οθόνη δεδομένων, δημιουργία αντιγράφων ασφαλείας δεδομένων σε κάρτα SD και IOT. Οπτικά μια οθόνη δακτυλίου neopixels δείχνει την ποιότητα του αέρα. 2 Η ποιότητα του αέρα είναι όλο και πιο σημαντική ανησυχία
Μετεωρολογικός σταθμός WiFi μετεωρολογικός σταθμός V1.0: 19 βήματα (με εικόνες)
Solar Powered WiFi Weather Station V1.0: Σε αυτό το Εκπαιδευτικό, θα σας δείξω πώς να φτιάξετε έναν Μετεωρολογικό σταθμό με ηλιακή ενέργεια με έναν πίνακα Wemos. Το Wemos D1 Mini Pro διαθέτει έναν μικρό παράγοντα μορφής και μια μεγάλη γκάμα ασπίδων plug-and-play το καθιστούν ιδανική λύση για γρήγορη απόκτηση