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

IOT123 - I2C 2CH RELAY BRICK: 5 βήματα (με εικόνες)
IOT123 - I2C 2CH RELAY BRICK: 5 βήματα (με εικόνες)

Βίντεο: IOT123 - I2C 2CH RELAY BRICK: 5 βήματα (με εικόνες)

Βίντεο: IOT123 - I2C 2CH RELAY BRICK: 5 βήματα (με εικόνες)
Βίντεο: IOT123 - ICOS10: STRUCTURE 2024, Ιούνιος
Anonim
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK

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

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

Αυτό το τούβλο ILC 2CH RELAY επεκτείνει τη λειτουργικότητα του τούβλου I2C KY019 και έχει δύο ιδιότητες ανάγνωσης/εγγραφής:

2CH RELAYS [0] (true/false)

2CH RELAYS [1] (true/false)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βήμα 3: Συναρμολογήστε το κύκλωμα

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

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

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

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

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

Έχουμε δημιουργήσει προηγουμένως ένα 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 0: 1 (άρα 15 2 0: 1) και ενεργοποιείται το ρελέ CH1.

  7. Όταν, πληκτρολογήστε στο πλαίσιο αποστολής 2 0: 0 (άρα 15 2 0: 0) και το ρελέ CH1 απενεργοποιείται.
  8. Όταν, πληκτρολογήστε στο πλαίσιο αποστολής 2 1: 1 (άρα 15 2 1: 1) και ενεργοποιείται το ρελέ CH2.
  9. Όταν, πληκτρολογήστε στο πλαίσιο αποστολής 2 1: 0 (άρα 15 2 0: 0) και το ρελέ CH2 απενεργοποιείται.

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

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

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

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

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

Συνιστάται: