Πίνακας περιεχομένων:
- Βήμα 1: Υλικό και εργαλεία
- Βήμα 2: Προετοιμάστε το ATTINY85
- Βήμα 3: Συναρμολογήστε το κύκλωμα
- Βήμα 4: Δοκιμή
- Βήμα 5: Επόμενα βήματα
Βίντεο: IOT123 - I2C MQ2 BRICK: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Τα τούβλα IOT123 είναι σπονδυλωτές μονάδες DIY που μπορούν να πολτοποιηθούν με άλλα τούβλα IOT123, για να προσθέσουν λειτουργικότητα σε έναν κόμβο ή να φορεθούν. Βασίζονται στα τετράγωνα ίντσα, τα πρωτόπλακα διπλής όψης με διασυνδεδεμένες τρύπες.
Ορισμένα από αυτά τα ΤΟΥΒΑ αναμένεται να βρίσκονται σε πολλούς κόμβους (Master MCUs - ESP8266 ή ATTINY84) σε έναν ιστότοπο. Το MCU δεν χρειάζεται προηγούμενη γνώση του σκοπού των αισθητήρων ή των αναγκών του λογισμικού. Σαρώνει για κόμβους I2C και στη συνέχεια ζητά μια χωματερή ιδιότητας (δεδομένα αισθητήρα) από κάθε υποτελή. Αυτά τα τούβλα παρέχουν 5.0V, 3.3V και άλλη γραμμή AUX που είναι προσαρμόσιμη.
Αυτό το τούβλο I2C MQ2 απορρίπτει 3 ιδιότητες:
Υγραέριο (μέρη ανά εκατομμύριο), CO (PPM), καπνός (PPM)
Αυτός ο αισθητήρας παρείχε ένα ενδιαφέρον σενάριο: Χρειάζονται τουλάχιστον 2 λεπτά (έως 5 λεπτά) για να ζεσταθεί και στη συνέχεια πρέπει να βαθμονομηθεί για 20 δευτερόλεπτα πριν από τη χρήση. Καθώς ο κεντρικός υπολογιστής MCU επιδιώκει μόνο να λάβει ζεύγη ονόματος/τιμής (και ένα μήνυμα συνέχισης), έχουμε εισαγάγει μια ιδιότητα "ΠΡΟΕΤΟΙΜΑΣΙΑ". Καθώς το μήνυμα συνέχισης είναι "1" (θα ακολουθήσουν και άλλα), ο κεντρικός υπολογιστής MCU θα συνεχίσει να κάνει ψηφοφορία για το τούβλο μέχρι να είναι έτοιμο. Επίσης, συνιστάται να "κάψετε" το MQ2 πριν από τη χρήση, δηλαδή να αφήσετε συνδεδεμένο στο κύκλωμά σας 5V για 24 ώρες.
Τα τούβλα αισθητήρων τύπου Keyes θα αφαιρεθούν πρώτα καθώς συνοδεύονται από βιταμίνες (απαιτούνται επιπλέον συστατικά) και είναι σχετικά φτηνά (αγόρασα 37 για 10AUD). Άλλοι πίνακες/κυκλώματα θα εισαχθούν στα τούβλα I2C.
Οι διαμπερείς οπές δίπλα στο ATTINY85 έχουν μείνει αχρησιμοποίητες, για να ενεργοποιήσετε έναν προγραμματιστή καρφιτσών pogo ενώ το DIP8 είναι συγκολλημένο στο PCB.
Μια περαιτέρω αφαίρεση, η συσκευασία των ΤΟΥΒΛΩΝ σε μικρούς κυλίνδρους που συνδέονται σε έναν διανομέα D1M WIFI BLOCK, που αντλεί τις τιμές σε έναν διακομιστή MQTT, αναπτύσσεται.
Βήμα 1: Υλικό και εργαλεία
Υπάρχει μια πλήρης λίστα λογαριασμών υλικού και πηγών.
- Τούβλο αισθητήρα MQ2 (1)
- ATTINY85 20PU (1)
- Πρωτόπλακα διπλής όψης (1)
- Αρσενική κεφαλίδα 90º (3P, 3P)
- Αρσενική κεφαλίδα (2P, 2P)
- Jumper Shunt (1)
- Σύρμα σύνδεσης (7 ~)
- Συγκόλληση και σίδερο (1)
Βήμα 2: Προετοιμάστε το ATTINY85
Απαιτείται AttinyCore από το Board Board. Εγγραφή bootloader "EEPROM διατηρήθηκε", "8mHZ Εσωτερικό" (όλα τα διαμορφωμένα εμφανίζονται παραπάνω).
Χρησιμοποιήστε την περιεχόμενη πηγή. μεταγλώττιση και προγραμματισμός στο ATtiny85.
Το GIST είναι εδώ:
gist.github.com/IOT-123/4c501046d365d01a60…
Μπορείτε να βρείτε περισσότερες λεπτομέρειες σε αυτές τις οδηγίες:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
Καλύτερα να δοκιμάσετε μέσω breadboard πριν συνεχίσετε.
Εάν έχετε υπάρχοντες ΑΙΣΘΗΤΗΡΕΣ ΑΙΣΘΗΤΗΡΕΣ, βεβαιωθείτε ότι η διεύθυνση υποτελείας είναι διαφορετική σε έναν συνδυασμό ΑΙΣΘΗΤΗΡΑ/MCU Host, δηλαδή όλοι οι αισθητήρες θερμοκρασίας μπορούν να έχουν την ίδια διεύθυνση αρκεί να έχετε μόνο έναν αισθητήρα θερμοκρασίας σε έναν MCU/κόμβο.
Βήμα 3: Συναρμολογήστε το κύκλωμα
- Στο μπροστινό μέρος, εισαγάγετε τα εξαρτήματα ATTINY85 (1), 3P 90deg αρσενικές κεφαλίδες (2) (3), 2P αρσενικές κεφαλίδες (4) (5) και συγκολλήστε το στο πίσω μέρος.
- Στο πίσω μέρος, εντοπίστε ένα πορτοκαλί σύρμα από το ORANGE1 στο ORANGE2 και κολλήστε το.
- Στο πίσω μέρος, εντοπίστε ένα μπλε σύρμα από BLUE1 σε BLUE2 και κολλήστε.
- Στο πίσω μέρος, εντοπίστε ένα πράσινο καλώδιο από το GREEN1 στο GREEN2 και κολλήστε το.
- Στο πίσω μέρος, εντοπίστε ένα γυμνό καλώδιο από το SILVER1 στο SILVER2 και κολλήστε το.
- Στο πίσω μέρος, εντοπίστε ένα γυμνό καλώδιο από το SILVER3 στο SILVER4 και κολλήστε το.
- Στο πίσω μέρος, εντοπίστε ένα μαύρο καλώδιο από BLACK1 σε BLACK2 και κολλήστε.
- Στο πίσω μέρος, εντοπίστε ένα μαύρο καλώδιο από BLACK3 σε BLACK4 και κολλήστε.
- Στο πίσω μέρος, εντοπίστε ένα κόκκινο σύρμα από RED1 έως RED2 και κολλήστε.
- Στο πίσω μέρος, εντοπίστε ένα κόκκινο σύρμα από RED3 έως RED4 και κολλήστε.
- Στο πίσω μέρος, εντοπίστε ένα κίτρινο καλώδιο από το YELLOW1 στο YELLOW2 και κολλήστε το.
Ο αισθητήρας μπορεί τώρα να συνδεθεί απευθείας μέσω των ακίδων του στο PCB ή μέσω καλωδίων, στα σημεία που εμφανίζονται στη σύμβαση των ακίδων.
Βήμα 4: Δοκιμή
Ορισμένα από αυτά τα ΤΟΥΒΑ αναμένεται να βρίσκονται σε πολλούς κόμβους (MCUs - ESP8266 ή ATTINY84) σε ένα περιβάλλον. Αυτό είναι ένα τεστ μονάδας: ελέγχει τα αιτήματα/απαντήσεις του UNO έως ότου απορριφθούν όλα τα δεδομένα και, στη συνέχεια, παραμελεί το σκλάβο I2C.
- Ανεβάστε τον κωδικό UNO στη ζώνη δοκιμής UNO. Βεβαιωθείτε ότι το ADDRESS_SLAVE αντιστοιχεί στη διεύθυνση I2C του BRICK.
- Συνδέστε το 5.0V στο UNO σε ένα VCC στο BRICK.
- Βεβαιωθείτε ότι ο βραχυκυκλωτήρας είναι ενεργοποιημένος.
- Συνδέστε το GND στο UNO στο GND στο BRICK.
- Συνδέστε το A5 στο UNO στο SCL στο BRICK.
- Συνδέστε το A4 στο UNO στο SDA στο BRICK.
- Συνδέστε μια αντίσταση έλξης 4K7 από το SDA στο VCC.
- Συνδέστε μια αντίσταση έλξης 4K7 από SCL στο VCC.
- Συνδέστε το UNO στον υπολογιστή σας Dev με USB.
- Ανοίξτε την κονσόλα Arduino. Επιλέξτε 9600 baud (επανεκκινήστε το UNO και ανοίξτε ξανά την κονσόλα αν χρειαστεί).
- Τα ονόματα ιδιοτήτων και οι τιμές θα πρέπει να εκτυπωθούν στην κονσόλα μία φορά και στη συνέχεια να επαναληφθεί η λέξη ύπνος.
Αν δείτε "εγκατάσταση" τότε επαναλαμβάνονται 3 γραμμές σκουπιδιών, μπορεί να έχετε τις γραμμές SDA και SCL πίσω.
Κύρια καταγραφή I2C από υποτελή I2C με υποστήριξη plotter/μεταδεδομένων
#περιλαμβάνω |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"όνομα", "αξία"}; |
voidsetup () { |
Wire.begin (); // συμμετοχή i2c bus (διεύθυνση προαιρετική για master) |
Serial.begin (9600); // έναρξη σειράς για έξοδο |
καθυστέρηση (1000)? |
εάν (! _outputPlotterOnly) { |
Serial.println ("εγκατάσταση"); |
Serial.println (); |
} |
} |
voidloop () { |
εάν (_i2cNodeProcessed) { |
εάν (! _confirmMetadata) {// ενημερώστε τον υποτελή για να ξεκινήσει την αποστολή δεδομένων αισθητήρα |
καθυστέρηση (1)? |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
καθυστέρηση (100)? |
_confirmMetadata = true; |
} |
_i2cNodeProcessed = false; |
εάν (! _outputPlotterOnly) { |
Serial.println (); |
} |
ΕΠΙΣΤΡΟΦΗ; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
πακέτο char [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (το 3ο) 1 = περισσότερα, 0 = τελευταία |
ενώ το (Wire.available ()) {// slave μπορεί να στείλει λιγότερα από όσα ζητήθηκαν |
char c = Wire.read (); |
πακέτο [index] = int (c)> -1? c: ''; // αντικαταστήστε τους άκυρους χαρακτήρες με κενά |
εάν (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
εάν (int (c) == 48 || int (c) == 86) {// 0 στην τελευταία ιδιότητα |
_i2cNodeProcessed = true; |
// αποστολή τιμών στο MQTT |
Διακοπή; |
} |
} |
ευρετήριο ++; |
} |
εάν (! isContinueSegment) { |
εάν (! _outputPlotterOnly) { |
Serial.println (πακέτο); |
} |
strcpy (_property [_packetSegment - 1], πακέτο); // ορίστε τοπική μεταβλητή με όνομα/τιμή |
}αλλού{ |
εάν (_outputPlotterOnly && _confirmMetadata) { |
εάν (_i2cNodeProcessed) { |
Serial.println (_ ιδιοκτησία [1]); |
}αλλού{ |
Serial.print (_ ιδιοκτησία [1]); |
Serial.print (""); |
} |
} |
} |
} |
προβολή rawuno_i2c_generic_sensor_test_w_plotter_v2.ino που φιλοξενείται με ❤ από το GitHub
Βήμα 5: Επόμενα βήματα
Η βασική διάταξη του κυκλώματος και το στρώμα I2C του λογισμικού σχετίζεται με πολλούς διαφορετικούς αισθητήρες. Το κύριο πράγμα για να ξεκινήσετε είναι το πακέτο σύμβασης μεταξύ κυρίου και σκλάβου.
Έχω σχεδιάσει/ξεκινήσει ένα (τρισδιάστατα τυπωμένο) πακέτο δίκτυο αισθητήρων που χρησιμοποιούν αυτό το πλαίσιο και θα συνδέονται με αυτό καθώς δημοσιεύονται μέρη.
Αυτό το BLOCK χρησιμοποιείται από τον αισθητήρα MQ2 ASSIMILATE SENSOR.
Συνιστάται:
Κάντε κλικ στο Brick Switch for Makey Makey: 4 βήματα (με εικόνες)
Κάντε κλικ στο κουμπί Brick Switch for Makey Makey: Αυτός ο διακόπτης με 3D εκτύπωση θα επιτρέψει στο χρήστη να μετατρέψει ένα Makey Makey σε " διαφάνεια δακτύλων " για ένα " κλικ " στο παιχνίδι ή μπορεί να είναι βέλη δεξιά/αριστερά για κύλιση στις παρουσιάσεις. Η προσθήκη δεξιάς και αριστερής βάσης τερματικού για
Arduino Brick Color Sorter Project: 5 βήματα
Arduino Brick Color Sorter Project: Σε αυτό το σεμινάριο Arduino, θα μάθουμε πώς να ανιχνεύουμε τα χρώματα του τούβλου παιχνιδιών μου χρησιμοποιώντας το Arduino και τον αισθητήρα χρωμάτων TCS3200. Μπορείτε να διαβάσετε το γραπτό σεμινάριο παρακάτω για περισσότερες λεπτομέρειες. Υλικά: Arduino Leonardo x 1TCS3200 x 1Πολύ χαρτόνι 180 σερβο
500 LED-Pixel RGB-Brick: 9 βήματα (με εικόνες)
500 LED-Pixel RGB-Brick: Πριν από λίγο χτίζω ένα 10x10 LED-Coffetable με μερικές από αυτές τις λυχνίες LED WS2812, αλλά ακόμα κι αν είναι δυνατό να παίξετε το παλιό σχολικό παιχνίδι Snake με ένα smartphone συνδεδεμένο σε αυτό, θέλω κάτι περισσότερο ειδικός. Έτσι αποφάσισα να βάλω μερικά ακόμη led, arra
IOT123 - D1M BLOCK - 2xAMUX Συναρμολόγηση: 7 Βήματα (με Εικόνες)
IOT123 - D1M BLOCK - 2xAMUX Συναρμολόγηση: Τα D1M BLOCKS προσθέτουν απτικές θήκες, ετικέτες, οδηγούς πολικότητας και breakouts για τα δημοφιλή Wemos D1 Mini SOC/Shields/Clones. Ένα από τα προβλήματα με το τσιπ ESP8266 είναι ότι διαθέτει μόνο έναν αναλογικό IO pin. Αυτό το διδακτικό δείχνει πώς να συναρμολογήσετε το 2xA
IOT123 - ΑΙΣΘΗΤΗΡΑΣ ΑΝΑΛΟΓΗΣ: MQ2: 4 Βήματα
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS είναι αισθητήρες περιβάλλοντος που έχουν πρόσθετο επίπεδο αφαίρεσης υλικού και λογισμικού, καθιστώντας δυνατή την προσθήκη εντελώς νέων τύπων σε έναν διανομέα ASSIMILATE SENSOR HUB και οι ενδείξεις αντλούνται σε διακομιστή MQTT χωρίς προσθήκη κωδικού