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, Studeni
Anonim
IOT123 - I2C MAJSTOR OGRADE IIG
IOT123 - I2C MAJSTOR OGRADE IIG
IOT123 - I2C MAJSTOR OGRADE IIG
IOT123 - I2C MAJSTOR OGRADE IIG
IOT123 - I2C MAJSTOR OGRADE IIG
IOT123 - I2C MAJSTOR OGRADE IIG

Tijekom razvoja ASISIMILAT SENSORS and ACTORS, držim UNO pri ruci za slanje adhoc I2C naredbi na prototipove u razvoju. Jedna od prednosti I2C CIGLA je standardizirani pinout. 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. Spojna žica (~ 6)
  3. 4K7 otpornici (2) 6
  4. Muški zaglavlje (12P, 8P)
  5. Žensko zaglavlje (9P ili 3P, 3P)
  6. Lemljenje i željezo (1)

Korak 2: Montaža

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

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 skinite krajeve do 10 mm i pokrajte im krajeve.

  1. Na dnu tiskane ploče umetnite muško zaglavlje (1) (2) i lemite na vrhu.
  2. Na vrhu tiskane ploče umetnite ženski zaglavlje (3) i lemite na dno.
  3. Na vrhu provucite crvenu žicu u RED1 i RED2.
  4. Na dnu provucite žicu kroz 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 provucite žicu kroz 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 kroz BLACK1 i BLACK2.
  12. Na dnu, žica kroz rupu od BLACK1 u BLACK3.
  13. Na dnu provucite žicu kroz otvor iz BLACK2 u BLACK5 i lemite.
  14. Na vrhu provucite žicu kroz otvor iz BLACK3 u BLACK4 i lemite.
  15. Na vrhu provucite plavu žicu u PLAVU1 i PLAVU2.
  16. Na dnu provucite žicu kroz PLAVU1 u PLAVU3.
  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 GREEN2 u GREEN5 i lemite.
  22. Na vrhu provucite žicu kroz ZELENU3 u ZELENU4 i lemite.
  23. Na vrhu provucite otpornik 4K7 u SILVER3 i SILVER4.
  24. Na dnu provucite žicu kroz SREBRNO3 u ZELENU5 i lemite.
  25. Na dnu provucite žicu kroz SREBRNO4 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ćuje vam korištenje unosa na konzoli kako bi UNO poslao I2C poruke I2C ATTINY85 CIKLI.

Sve upute ispisuju se na zaslonu s podržanim opcijama.

I2C BRICK adhoc naredbe za robove od UNO master -a

#uključi
const bajt _broj_znakova = 32;
char _primljeni_slovci [_broj_znakova]; // niz za spremanje primljenih podataka
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASIMILIRAJ 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 ("ZAPOVJEDA GLUMCA ADRESE 2");
Serial.println ();
Serial.println ("ADRESE NA BUSU:");
scan_i2c_adrese ();
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 (pogreš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 = Serijski.čitaj ();
if (rc! = end_marker) {
_primljeni_slovnici [ndx] = rc;
ndx ++;
if (ndx> = _broj_znakova) {
ndx = _broj_znakova - 1;
}
}
drugo {
_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 = primljena_string.substring (0, idx1);
int adresa_int = adresa.toInt ();
if (adresa_int <8 || adresa_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (adresa);
povratak;
}
int idx2 = primljeni_string.indexOf ('', idx1+1);
Kod niza;
if (idx2 == -1) {
kod = primljeni_string.substring (idx1+1);
}drugo{
kod = primljeni_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {{100} {101}
Serial.println ("INVALID CODE INPUT:");
Serial.println (kod);
povratak;
}
bool has_parameter = idx2> -1;
Parametar niza;
if (ima_parametar) {
parametar = primljeni_string.substring (idx2 + 1, idx2 + 17); // maksimalno 16 znakova
if (parameter.length () <1) {
Serial.println ("PARTAMETAR MIN. LENGTH 1");
_has_new_data = false;
povratak;
}
}drugo{
if (code_int> 1) {
Serial.println ("PARAMETAR POTREBAN!");
_has_new_data = false;
povratak;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (primljeni_ string);
Serial.print ("adresa =");
Serial.println (adresa);
Serial.print ("code =");
Serial.println (kod);
Serial.print ("parameter =");
Serial.println (parametar);
// POŠALJI PREKO I2C
Wire.beginTransmission (adresa_int);
Wire.write (code_int);
if (ima_parametar) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("Poslano putem 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 gradnji postoji dovoljno pokretnih dijelova za izgradnju vlastite ASIMILIRANE IOT MREŽE.

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

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

Preporučeni: