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

IOT123 - I2C BRICK MASTER JIG: 4 Βήματα
IOT123 - I2C BRICK MASTER JIG: 4 Βήματα

Βίντεο: IOT123 - I2C BRICK MASTER JIG: 4 Βήματα

Βίντεο: IOT123 - I2C BRICK MASTER JIG: 4 Βήματα
Βίντεο: Тива C, эксперимент 17 — I2C 2024, Νοέμβριος
Anonim
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG

Ενώ αναπτύσσω τους ΑΙΣΘΗΤΗΡΕΣ ΑΙΣΘΗΤΗΡΕΣ και τους ηθοποιούς, διατηρώ ένα UNO εύχρηστο για την αποστολή adhoc εντολών I2C στα πρωτότυπα που αναπτύσσονται. Ένα από τα πλεονεκτήματα των τούβλων I2C είναι τα τυποποιημένα pinouts. Αντί να χρησιμοποιείτε συρματόσχοινα κάθε φορά (βλέπε Fritzings), χρησιμοποιείται μια στιβαρή ασπίδα τεχνολογίας.

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

Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
  1. 4cm x 6cm Uninersal PCB (1)
  2. Καλώδιο σύνδεσης (6 ~)
  3. Αντιστάσεις 4K7 (2) 6
  4. Αρσενική κεφαλίδα (12P, 8P)
  5. Γυναικεία κεφαλίδα (9P, ή 3P, 3P)
  6. Συγκόλληση και σίδερο (1)

Βήμα 2: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Εάν χρησιμοποιείτε 2 off 3P γυναικείες κεφαλίδες αντί για 1 off 9P γυναικεία κεφαλίδα, ο ASSIMILATE SENSOR/ACTORS θα ταιριάζει στο JIG χωρίς να τις αποσυναρμολογείτε.

Με την καλωδίωση, αφαιρέστε έως και 10 χιλιοστά στα άκρα και κολλήστε τα άκρα τους.

  1. Στο κάτω μέρος του PCB, τοποθετήστε την αρσενική κεφαλίδα (1) (2) και κολλήστε την από πάνω.
  2. Στο επάνω μέρος του PCB, τοποθετήστε τη γυναικεία κεφαλίδα (3) και κολλήστε την κάτω.
  3. Στην κορυφή, διαμπερή κόκκινο σύρμα σε RED1 και RED2.
  4. Στο κάτω μέρος, σύρμα διαμπερής από RED1 σε RED3.
  5. Στο κάτω μέρος, καλώδιο διαμπερής από RED2 σε RED5 και συγκόλληση.
  6. Στο επάνω μέρος, σύρμα από τρύπα από RED3 σε RED4 και συγκόλληση.
  7. Στην κορυφή, διαμπερή κόκκινο σύρμα σε RED6 και RED7.
  8. Στο κάτω μέρος, καλώδιο διαμπερής από RED6 σε RED8.
  9. Στο κάτω μέρος, σύρμα από τρύπα από RED7 σε RED10 και κολλήστε.
  10. Στο επάνω μέρος, σύρμα από τρύπα από RED8 σε RED9 και κολλήστε.
  11. Στο επάνω μέρος, ανοίξτε ένα μαύρο καλώδιο σε BLACK1 και BLACK2.
  12. Στο κάτω μέρος, καλώδιο διαμπερής από BLACK1 σε BLACK3.
  13. Στο κάτω μέρος, καλώδιο διαμπερής από BLACK2 σε BLACK5 και συγκόλληση.
  14. Στο επάνω μέρος, σύρμα από τρύπα από BLACK3 σε BLACK4 και συγκόλληση.
  15. Στην κορυφή, ανοίξτε ένα μπλε σύρμα σε μπλε και μπλε 2.
  16. Στο κάτω μέρος, καλώδιο διαμπερής από BLUE1 σε BLUE3.
  17. Στο κάτω μέρος, καλώδιο διαμπερής από BLUE2 σε BLUE5 και συγκόλληση.
  18. Στο επάνω μέρος, σύρμα από τρύπα από BLUE3 σε BLUE4 και συγκόλληση.
  19. Στο επάνω μέρος, ανοίξτε ένα πράσινο σύρμα σε GREEN1 και GREEN2.
  20. Στο κάτω μέρος, καλώδιο διαμπερών οπών από το GREEN1 στο GREEN3.
  21. Στο κάτω μέρος, καλώδιο διαμπερής από GREEN2 σε GREEN5 και κολλήστε.
  22. Στην κορυφή, διαμπερό καλώδιο από GREEN3 σε GREEN4 και κολλήστε.
  23. Στην κορυφή, ανοίξτε μια αντίσταση 4K7 σε SILVER3 και SILVER4.
  24. Στο κάτω μέρος, σύρμα από τρύπα από SILVER3 σε GREEN5 και κολλήστε.
  25. Στο κάτω μέρος, σύρμα διαμπερής από SILVER4 σε RED10 και κολλήστε.
  26. Στην κορυφή, ανοίξτε μια αντίσταση 4K7 σε SILVER1 και SILVER2.
  27. Στο κάτω μέρος, σύρμα διαμπερής από SILVER1 σε BLUE5 και κολλήστε.
  28. Στο κάτω μέρος, σύρμα διαμπερής από SILVER2 σε RED10 και κολλήστε.

Βήμα 3: Κωδικός για το UNO

Κωδικός για το UNO
Κωδικός για το UNO

Το σκίτσο εδώ είναι στοιχειώδες. Σας επιτρέπει να χρησιμοποιήσετε την Είσοδο Κονσόλας, για να κάνετε τον UNO να στέλνει μηνύματα I2C στο I2C ATTINY85 BRICK.

Όλες οι οδηγίες εκτυπώνονται στην οθόνη, με τις υποστηριζόμενες επιλογές.

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

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

Από τις κατασκευές που παρουσιάζονται, υπάρχουν αρκετά κινούμενα μέρη για να φτιάξετε το δικό σας ΔΙΚΤΥΟ ASIMIMILATE IOT.

Κάθε μία από τις επιμέρους λειτουργίες των κόμβων (αισθητήρες και ηθοποιοί) είναι ελεγχόμενες με αποκεντρωμένο τρόπο, χωρίς να εξαρτάται από τον κύριο MCU να έχει γνώση των υποστηριζόμενων χαρακτηριστικών.

Κάθε εφαρμογή που συνδέεται με τον μεσίτη MQTT μπορεί να ελέγξει/παρατηρήσει κάθε δυνατότητα του κόμβου IOT. Αυτό είναι M2M, εφαρμογές ιστού, IFTTT και ούτω καθεξής. Πολύ απλούστερες (ή πιο πλούσιες αν θέλετε) διεπαφές στον κόσμο του IOT.

Συνιστάται: