Sadržaj:

IOT123 - I2C OGLEDNIK OD ZIDA: 4 koraka
IOT123 - I2C OGLEDNIK OD ZIDA: 4 koraka

Video: IOT123 - I2C OGLEDNIK OD ZIDA: 4 koraka

Video: IOT123 - I2C OGLEDNIK OD ZIDA: 4 koraka
Video: I2C Communication | Detailed Tutorial | Arduino and NodeMCU ESP8266 2024, Novembar
Anonim
IOT123 - I2C OGLEDNIK OD ZIDA
IOT123 - I2C OGLEDNIK OD ZIDA
IOT123 - I2C OGLEDNIK OD ZIDA
IOT123 - I2C OGLEDNIK OD ZIDA
IOT123 - I2C OGLEDNIK OD ZIDA
IOT123 - I2C OGLEDNIK OD ZIDA

Dok razvijam ASISIMILATNE SENZORE i AKTORE, držim UNO pri ruci za slanje adhoc I2C naredbi prototipima koji se razvijaju. Jedna od prednosti I2C BRICKS -a su standardizirani pinouts. Umjesto da se svaki put koristi žica za matičnu ploču (vidi Fritzings), koristi se čvrsti lo-tech štit.

Korak 1: Materijali i alati

Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
  1. 4 cm x 6 cm Uninersal PCB (1)
  2. Priključna žica (~ 6)
  3. 4K7 otpornici (2) 6
  4. Muški zaglavlje (12P, 8P)
  5. Žensko zaglavlje (9P, ili 3P, 3P)
  6. Lemljenje i gvožđe (1)

Korak 2: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Ako koristite 2 off 3P ženska zaglavlja umjesto 1 off 9P ženskog zaglavlja, ASISIMILATNI SENZOR/GLUMCI će stati na JIG bez njihovog rastavljanja.

Ožičenjem odvojite do 10 mm na krajevima i pokosite same krajeve.

  1. Na dnu PCB -a umetnite muško zaglavlje (1) (2) i lemite na vrhu.
  2. Na vrhu PCB -a umetnite ženski zaglavlje (3) i lemite na dno.
  3. Na vrhu provucite crvenu žicu u RED1 i RED2.
  4. Na dnu, žica kroz otvor od RED1 u RED3.
  5. Na dnu provucite žicu kroz RED2 u RED5 i lemite.
  6. Na vrhu provucite žicu kroz RED3 u RED4 i lemite.
  7. Na vrhu provucite crvenu žicu u RED6 i RED7.
  8. Na dnu, žica kroz otvor od RED6 u RED8.
  9. Na dnu provucite žicu kroz RED7 u RED10 i lemite.
  10. Na vrhu provucite žicu kroz RED8 u RED9 i lemite.
  11. Na vrhu, provucite crnu žicu u BLACK1 i BLACK2.
  12. Na dnu, žica kroz otvor od BLACK1 u BLACK3.
  13. Na dnu provucite žicu kroz otvor od BLACK2 u BLACK5 i lemite.
  14. Na vrhu, žica kroz otvor od BLACK3 u BLACK4, i lemite.
  15. Na vrhu provucite plavu žicu u PLAVU1 i PLAVU2.
  16. Na dnu, žica kroz rupu od PLAVE1 do PLAVE3.
  17. Na dnu provucite žicu kroz PLAVU2 u PLAVU5 i lemite.
  18. Na vrhu, žica kroz rupu od PLAVE3 do PLAVE4, i lemite.
  19. Na vrhu provucite zelenu žicu u ZELENU1 i ZELENU2.
  20. Na dnu provucite žicu kroz ZELENU1 u ZELENU3.
  21. Na dnu provucite žicu kroz ZELENU2 u ZELENU5 i lemite.
  22. Na vrhu, žica kroz rupu iz ZELENOG3 u ZELENO4 i lemite.
  23. Na vrhu provucite otpornik 4K7 u SILVER3 i SILVER4.
  24. Na dnu provucite žicu kroz SREBRNO3 u ZELENO5 i lemite.
  25. Na dnu provucite žicu kroz SREBRO4 u CRVENU10 i lemite.
  26. Na vrhu provucite otpornik 4K7 u SILVER1 i SILVER2.
  27. Na dnu provucite žicu kroz SREBRU1 u PLAVU5 i lemite.
  28. Na dnu provucite žicu kroz SREBRNO2 u CRVENO10 i lemite.

Korak 3: Kôd za UNO

Kôd za UNO
Kôd za UNO

Skica je ovdje rudimentarna. Omogućava vam da koristite unos konzole da UNO pošalje I2C poruke I2C ATTINY85 CIKLI.

Sva uputstva se štampaju na ekranu sa podržanim opcijama.

I2C BRICK adhoc komande za robove sa UNO master -a

#include
const byte _num_chars = 32;
char _received_chars [_num_chars]; // niz za spremanje primljenih podataka
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("osigurajte da je novi red izabran u prozoru konzole");
Serial.println ();
Serial.println ("ADRESA 1 POTVRDI PRIJEM METADATA N/A (ZA M2M)");
Serial.println ("KOMANDA GLUMCA ADRESE 2");
Serial.println ();
Serial.println ("ADRESE NA BUSU:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int uređaj_broj = 0;
for (adresa bajta = 8; adresa <127; adresa ++)
{
Wire.beginTransmission (adresa);
greška const bajta = Wire.endTransmission ();
ako (greška == 0)
{
Serial.println (adresa);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statički bajt ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
if (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
if (ndx> = _broj_znakova) {
ndx = _broj_znakova - 1;
}
}
else {
_received_chars [ndx] = '\ 0'; // završava niz
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const niz primljen_string = niz (_primljeni_slovnici);
if (_has_new_data == true) {
int idx1 = primljeni_string.indexOf ('');
Adresa niza = received_string.substring (0, idx1);
int adresa_int = adresa.toInt ();
if (adresa_int <8 || adresa_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (adresa);
return;
}
int idx2 = primljeni_string.indexOf ('', idx1+1);
String code;
if (idx2 == -1) {
kod = primljeni_string.substring (idx1+1);
} else {
kod = primljeni_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (kod);
return;
}
bool has_parameter = idx2> -1;
String parameter;
if (has_parameter) {
parametar = primljeni_string.substring (idx2 + 1, idx2 + 17); // 16 znakova maks
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = false;
return;
}
} else {
if (code_int> 1) {
Serial.println ("PARAMETAR POTREBAN!");
_has_new_data = false;
return;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (primljeni_string);
Serial.print ("address =");
Serial.println (adresa);
Serial.print ("code =");
Serial.println (kod);
Serial.print ("parameter =");
Serial.println (parametar);
// POŠALJI VIA I2C
Wire.beginTransmission (address_int);
Wire.write (code_int);
if (has_parameter) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("SENT VIA I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

pogledajte rawuno_i2c_command_input.ino hostirano sa ❤ od strane GitHub -a

Korak 4: Sljedeći koraci

Od predstavljenih konstrukcija, postoji dovoljno pokretnih dijelova za vas da napravite vlastitu ASIMILIRANU IOT MREŽU.

Svakom od pojedinačnih funkcija čvorova (senzori i akteri) može se upravljati na decentraliziran način, ne ovisi o tome da li MCU master ima znanje o podržanim funkcijama.

Svaka aplikacija koja se povezuje s posrednikom MQTT može kontrolirati/promatrati svaku značajku IOT čvora. To su M2M, web aplikacije, IFTTT i tako dalje. Mnogo jednostavnija (ili bogatija ako želite) sučelja za vaš IOT svijet.

Preporučuje se: