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

IOT123 - I2C HEARTBEAT BRICK: 6 Βήματα
IOT123 - I2C HEARTBEAT BRICK: 6 Βήματα

Βίντεο: IOT123 - I2C HEARTBEAT BRICK: 6 Βήματα

Βίντεο: IOT123 - I2C HEARTBEAT BRICK: 6 Βήματα
Βίντεο: Zaful Bikini HAUL 2018 | TRY ON | Valerie pac 2024, Ιούνιος
Anonim
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK

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

Ορισμένα από αυτά τα ΤΟΥΒΑ αναμένεται να βρίσκονται σε πολλούς κόμβους (Master MCUs - ESP8266 ή ATTINY84) σε έναν ιστότοπο. Το MCU δεν χρειάζεται προηγούμενη γνώση του σκοπού των αισθητήρων ή των αναγκών του λογισμικού. Σαρώνει για κόμβους I2C και στη συνέχεια ζητά μια χωματερή ιδιότητας (δεδομένα αισθητήρα) από κάθε υποτελή. Αυτά τα τούβλα παρέχουν 5.0V, 3.3V και άλλη γραμμή AUX που είναι προσαρμόσιμη.

Αυτό το τούβλο I2C HEARTBEAT υποδεικνύει εάν ο σκλάβος ATTINY είναι ζωντανός, επίσης η κίνηση I2C και έχει μία ιδιότητα:

STATUS ("ΖΩΝΤΑΝΟ")

Το PB1 (λευκό) υποδηλώνει υγεία ATTINY.

Το PB3 (κίτρινο) αλλάζει με αιτήματα I2C από τον κύριο.

Το PB4 (πορτοκαλί) αλλάζει με λήψη I2C από τον κύριο.

Οι διαμπερείς οπές δίπλα στο ATTINY85 έχουν μείνει αχρησιμοποίητες, για να ενεργοποιήσετε έναν προγραμματιστή καρφιτσών pogo ενώ το DIP8 είναι συγκολλημένο στο PCB. Μια περαιτέρω αφαίρεση, η συσκευασία των ΤΟΥΒΛΩΝ σε μικρούς κυλίνδρους που συνδέονται σε έναν διανομέα D1M WIFI BLOCK, που αντλεί τις τιμές σε έναν διακομιστή MQTT, αναπτύσσεται.

Βήμα 1: Υλικά και εργαλεία

Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία

Υπάρχει μια πλήρης λίστα λογαριασμών υλικού και πηγών.

  1. PCB χαρτιού (7 x 7 οπές)
  2. LEDS (Κόκκινο, Πράσινο, Μπλε)
  3. Αντιστάσεις (3 από 1Κ)
  4. ATTINY85 20PU (1)
  5. Πρωτόπλακα διπλής όψης (1)
  6. Αρσενική κεφαλίδα 90º (3P, 3P)
  7. Αρσενική κεφαλίδα (2P, 2P)
  8. Jumper Shunt (1)
  9. Σύρμα σύνδεσης (7 ~)
  10. Συγκόλληση και σίδερο (1)

Βήμα 2: Προετοιμάστε το ATTINY85

Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85
Προετοιμάστε το ATTINY85

ΣΗΜΕΙΩΣΗ: Εάν σκοπεύετε να ενσωματώσετε το Crouton, χρησιμοποιήστε τη βιβλιοθήκη από εδώ και χρησιμοποιήστε το παράδειγμα εγκατεστημένο "attiny_heartbeat"

Απαιτείται AttinyCore από το Board Board. Εγγραφή bootloader "EEPROM διατηρήθηκε", "8mHZ Εσωτερικό" (όλα τα διαμορφωμένα εμφανίζονται παραπάνω).

Μπορείτε να βρείτε το αποθετήριο κώδικα εδώ.

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

Οδηγίες για την "Εισαγωγή μιας βιβλιοθήκης ZIP" εδώ.

Μόλις εγκατασταθεί η βιβλιοθήκη, μπορείτε να ανοίξετε το παράδειγμα "attiny_heartbeat".

Για να ανεβάσετε το υλικολογισμικό στο ATTINY85, μπορεί να βρείτε περισσότερες λεπτομέρειες σε αυτά τα εκπαιδευτικά εγχειρίδια:

www.instructables.com/id/Programming-the-….

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

Καλύτερα να δοκιμάσετε μέσω breadboard πριν συνεχίσετε.

Εάν έχετε υπάρχοντες ΑΙΣΘΗΤΗΡΕΣ ΑΙΣΘΗΤΗΡΕΣ, βεβαιωθείτε ότι η διεύθυνση υποτελείας είναι διαφορετική σε συνδυασμό SENSOR/MCU Host π.χ. όλοι οι ηθοποιοί Relay μπορούν να έχουν την ίδια διεύθυνση αρκεί να έχετε μόνο έναν ηθοποιό Relay σε ένα MCU/κόμβο.

Βήμα 3: Συναρμολόγηση των δεικτών

Συναρμολόγηση των δεικτών
Συναρμολόγηση των δεικτών
Συναρμολόγηση των δεικτών
Συναρμολόγηση των δεικτών
Συναρμολόγηση των δεικτών
Συναρμολόγηση των δεικτών

Οι δείκτες προορίζονται να είναι πλήρως προσαρμόσιμοι. Είναι τα σήματα συμβάντων από το κύριο κύκλωμα που θεωρούνται ως Χτυποκάρδια. Για αυτήν την κατασκευή θα χρησιμοποιήσουμε δείκτες LED. Η κατασκευή σας μπορεί να χρησιμοποιήσει ρελέ (ναι το VCC έχει σπάσει) ή άλλο δείκτη που βασίζεται σε οπτικό/σήμα. Οι τιμές αντίστασης θα εξαρτηθούν από τις προσωπικές προτιμήσεις από το πόσο φωτεινές τις θέλετε.

  1. Στο επάνω μέρος, τοποθετήστε ένα μπλε LED σε RED1 (+) και BLACK1 (G) και κολλήστε στο κάτω μέρος.
  2. Στο κάτω μέρος, λυγίστε το μόλυβδο από το RED1, ώστε να ακουμπήσει το μαξιλάρι χαλκού στο SILVER8 και να το διακοσμήσετε.
  3. Στο κάτω μέρος, κόψτε το μόλυβδο από το BLACK1 πάνω από τη συγκόλληση.
  4. Στο επάνω μέρος, τοποθετήστε ένα πράσινο LED στα RED2 (+) και BLACK2 (G) και κολλήστε το στο κάτω μέρος.
  5. Στο κάτω μέρος, λυγίστε το μόλυβδο από το RED2, ώστε να ακουμπήσει το μαξιλάρι χαλκού στο SILVER9 και να το διακοσμήσετε.
  6. Στο κάτω μέρος, κόψτε το μόλυβδο από το BLACK2 πάνω από τη συγκόλληση.
  7. Στο επάνω μέρος, τοποθετήστε ένα κόκκινο LED στα RED3 (+) και BLACK3 (G) και κολλήστε το στο κάτω μέρος.
  8. Στο κάτω μέρος, λυγίστε το καλώδιο από το RED3, ώστε να ακουμπήσει το μαξιλάρι χαλκού στο SILVER10 και να το διακοσμήσετε.
  9. Στο κάτω μέρος, κόψτε το μόλυβδο από το BLACK3 πάνω από τη συγκόλληση.
  10. Στο επάνω μέρος, τοποθετήστε μια αντίσταση 1Κ στις διαμπερές οπές SILVER1 και SILVER4.
  11. Στο κάτω μέρος, εντοπίστε, κόψτε και συγκολλήστε μόλυβδο από το SILVER1 στο BLACK1.
  12. Στο επάνω μέρος, τοποθετήστε μια αντίσταση 1Κ στις διαμπερές οπές SILVER2 και SILVER4.
  13. Στο κάτω μέρος, εντοπίστε, κόψτε και συγκολλήστε μόλυβδο από το SILVER2 στο BLACK2.
  14. Στο επάνω μέρος, τοποθετήστε μια αντίσταση 1K στις διαμπερές οπές SILVER3 και SILVER4.
  15. Στο κάτω μέρος, εντοπίστε, κόψτε και συγκολλήστε μόλυβδο από το SILVER3 στο BLACK3.
  16. Στο κάτω μέρος, συγκολλήστε σύρματα στο SILVER4 και διακοσμήστε σε έκταση περίπου 5 mm.
  17. Στο κάτω μέρος, κολλήστε ένα μαύρο καλώδιο στο SILVER4.
  18. Στο κάτω μέρος, συγκολλήστε ένα λευκό σύρμα στο SILVER5, εξασφαλίζοντας τη συνέχεια να οδηγεί από το RED1.
  19. Στο κάτω μέρος, συγκολλήστε ένα κίτρινο σύρμα στο SILVER6, εξασφαλίζοντας συνέχεια στο καλώδιο από το RED2.
  20. Στο κάτω μέρος, συγκολλήστε ένα πορτοκαλί σύρμα στο SILVER7, εξασφαλίζοντας τη συνέχεια να οδηγεί από το RED3.

Βήμα 4: Συναρμολόγηση κύριου κυκλώματος

Συναρμολόγηση κύριου κυκλώματος
Συναρμολόγηση κύριου κυκλώματος
Συναρμολόγηση κύριου κυκλώματος
Συναρμολόγηση κύριου κυκλώματος
Συναρμολόγηση κύριου κυκλώματος
Συναρμολόγηση κύριου κυκλώματος

Συνέλευση:

  1. Στο μπροστινό μέρος, τοποθετήστε τα εξαρτήματα ATTINY85 (1), 3P 90deg αρσενικές κεφαλίδες (2) (3), 3P αρσενικές κεφαλές (4) (5) και συγκολλήστε το πίσω μέρος.
  2. Στο πίσω μέρος, εντοπίστε ένα κίτρινο καλώδιο από το YELLOW1 στο YELLOW2 και κολλήστε το.
  3. Στο πίσω μέρος, εντοπίστε ένα πορτοκαλί σύρμα από το ORANGE1 στο ORANGE2 και κολλήστε το.
  4. Στο πίσω μέρος, εντοπίστε ένα μπλε σύρμα από BLUE1 σε BLUE2 και κολλήστε.
  5. Στο πίσω μέρος, εντοπίστε ένα πράσινο καλώδιο από το GREEN1 στο GREEN2 και κολλήστε το.
  6. Στο πίσω μέρος, εντοπίστε ένα λευκό σύρμα από το WHITE1 έως το WHITE2 και κολλήστε το.
  7. Στο πίσω μέρος, εντοπίστε ένα μαύρο καλώδιο από BLACK1 σε BLACK2 και κολλήστε.
  8. Στο πίσω μέρος, εντοπίστε ένα μαύρο καλώδιο από BLACK3 σε BLACK4 και κολλήστε.
  9. Στο πίσω μέρος, εντοπίστε ένα κόκκινο σύρμα από RED1 έως RED2 και κολλήστε.
  10. Στο πίσω μέρος, εντοπίστε ένα γυμνό καλώδιο από RED3 έως RED4 και κολλήστε.
  11. Στο πίσω μέρος, εντοπίστε ένα γυμνό καλώδιο από το SILVER1 στο SILVER2 και κολλήστε το.
  12. Προσθέστε έναν βραχυκυκλωτήρα στη γραμμή 5V ή 3V3.

Εάν χρησιμοποιείτε τους παραπάνω δείκτες (ανατρέξτε στο διάγραμμα pinout):

  1. Στο πίσω μέρος, κολλήστε το λευκό σύρμα σε PB1.
  2. Στο πίσω μέρος, κολλήστε το κίτρινο σύρμα σε PB3.
  3. Στο πίσω μέρος, κολλήστε το πορτοκαλί σύρμα σε PB4.
  4. Στο πίσω μέρος, κολλήστε το μαύρο καλώδιο σε GND.

Βήμα 5: Δοκιμή

Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές

Ορισμένα από αυτά τα ΤΟΥΒΑ αναμένεται να βρίσκονται σε πολλούς κόμβους (MCUs - ESP8266 ή ATTINY84) σε ένα περιβάλλον. Αυτή είναι μια δοκιμή μονάδας: στέλνει εντολές I2C από το UNO στο ATTINY που εναλλάσσει το LED λήψης. Το LED ATTINY ALIVE παραμένει αναμμένο.

Έχουμε δημιουργήσει προηγουμένως ένα I2C SHIELD για το Arduino.

Αν θέλετε αντ 'αυτού να πάρετε το breadboard:

  1. Συνδέστε το 5.0V στο UNO σε ένα VCC στο BRICK.
  2. Συνδέστε το GND στο UNO στο GND στο BRICK.
  3. Συνδέστε το A5 στο UNO στο SCL στο BRICK.
  4. Συνδέστε το A4 στο UNO στο SDA στο BRICK.
  5. Συνδέστε μια αντίσταση έλξης 4K7 από το SDA στο VCC.
  6. Συνδέστε μια αντίσταση έλξης 4K7 από SCL στο VCC.

Εκτέλεση της δοκιμής

  1. Συνδέστε το UNO στον υπολογιστή σας Dev με USB.
  2. Ανεβάστε τον κωδικό στο UNO.
  3. Ανοίξτε την κονσόλα Arduino.
  4. Επιλέξτε 9600 baud (επανεκκινήστε το UNO και ανοίξτε ξανά την κονσόλα αν χρειαστεί).
  5. Η διεύθυνση του slave θα εκτυπωθεί στην κονσόλα.
  6. Όταν, πληκτρολογήστε στο πλαίσιο αποστολής 2 1 (άρα 16 2 1) και ανάβει το LED λήψης.
  7. Όταν, πληκτρολογήστε στο πλαίσιο αποστολής 2 0 (άρα 16 2 0) και η ένδειξη Λήψης σβήνει.

I2C BRICK adhoc εντολές για σκλάβους από κύριο UNO

#περιλαμβάνω
const byte _num_chars = 32;
char _received_chars [_num_chars]; // ένας πίνακας για την αποθήκευση των ληφθέντων δεδομένων
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("διασφάλιση επιλογής νέας γραμμής στο παράθυρο της κονσόλας");
Serial.println ();
Serial.println ("ΔΙΕΥΘΥΝΣΗ 1 ΕΠΙΒΕΒΑΙΩΣΕΤΕ ΜΕΤΑΔΟΤΙΚΗ ΠΑΡΑΛΑΒΗ Ν/Α (ΓΙΑ Μ2Μ)");
Serial.println ("ΔΙΕΥΘΥΝΣΗ 2 ΕΝΤΟΛΗ ΗΘΟΠΟΙΟΥ");
Serial.println ();
Serial.println ("ΔΙΕΥΘΥΝΣΕΙΣ ΣΤΟ ΛΕΩΦΟΡΕΙΟ:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
για (διεύθυνση byte = 8; διεύθυνση <127; διεύθυνση ++)
{
Wire.beginTransmission (διεύθυνση);
const byte error = Wire.endTransmission ();
εάν (σφάλμα == 0)
{
Serial.println (διεύθυνση);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
στατικό byte ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
εάν (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
εάν (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
αλλιώς {
_received_chars [ndx] = '\ 0'; // τερματισμός της συμβολοσειράς
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String دریافت_string = String (_received_chars);
εάν (_has_new_data == true) {
int idx1 = λαμβάνεται_χορδή.indexOf ('');
Διεύθυνση συμβολοσειράς = ληφθείσα_χορδή.substring (0, idx1)
int address_int = address.toInt ();
if (διεύθυνση_int <8 || διεύθυνση_int> 127) {
Serial.println ("ΑΚΥΡΗ ΕΙΣΟΔΟΣ ΔΙΕΥΘΥΝΣΗΣ:");
Serial.println (διεύθυνση);
ΕΠΙΣΤΡΟΦΗ;
}
int idx2 = ληφθείσα_χορδή.indexOf ('', idx1+1);
Κωδικός συμβολοσειράς.
εάν (idx2 == -1) {
κωδικός = λαμβάνεται_χορδές.substring (idx1+1);
}αλλού{
κωδικός = λαμβάνεται_χορδές.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
εάν (code_int <0 || code_int> 5) {
Serial.println ("ΑΚΥΡΗ ΕΙΣΟΔΟΣ ΚΩΔΙΚΟΥ:");
Serial.println (κωδικός);
ΕΠΙΣΤΡΟΦΗ;
}
bool has_parameter = idx2> -1;
Παράμετρος συμβολοσειράς.
εάν (έχει_παράμετρο) {
παράμετρος = λαμβάνεται_χορδές.substring (idx2 + 1, idx2 + 17); // 16 χαρακτήρες μέγ
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = false;
ΕΠΙΣΤΡΟΦΗ;
}
}αλλού{
εάν (code_int> 1) {
Serial.println ("ΑΠΑΙΤΕΙΤΑΙ ΠΑΡΑΜΕΤΡΟΣ!");
_has_new_data = false;
ΕΠΙΣΤΡΟΦΗ;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (string_string);
Serial.print ("διεύθυνση =");
Serial.println (διεύθυνση);
Serial.print ("code =");
Serial.println (κωδικός);
Serial.print ("παράμετρος =");
Serial.println (παράμετρος);
// ΣΤΕΙΛΤΕ ΜΕΣΩ I2C
Wire.beginTransmission (διεύθυνση_int);
Wire.write (code_int);
εάν (έχει_παράμετρο) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("ΑΠΟΣΤΟΛΗ μέσω V2 I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

προβολή rawuno_i2c_command_input.ino που φιλοξενείται με ❤ από το GitHub

Βήμα 6: Επόμενα βήματα

Επόμενα βήματα
Επόμενα βήματα
Επόμενα βήματα
Επόμενα βήματα

Η συνέχεια ASSIMILATE ACTOR: HEARTBEAT που χρησιμοποιεί αυτό το τούβλο έχει αυτόματη διαμόρφωση για το Crouton μέσω των μεταδεδομένων που είναι ήδη εγκατεστημένα στο ATTINY85 εδώ. Το πακέτο JSON που αποστέλλεται στο Crouton αποστέλλεται μέσω του τελευταίου υλικολογισμικού για το ICOS10. Μπορείτε να κάνετε ένα Proof-of-concept σε ένα συνηθισμένο ESP8266, εάν η κατασκευή είναι υπερβολική προς το παρόν.

Το σκίτσο UNO που χρησιμοποιείται στη Δοκιμή έχει μια λειτουργία για την αποθήκευση μιας νέας διεύθυνσης slave στο EEPROM στο ATTINY85, εάν έχετε σύγκρουση στο διαύλο στόχου I2C.

Συνιστάται: