Sadržaj:

IOT123 - I2C KY019 CIGLA: 5 koraka
IOT123 - I2C KY019 CIGLA: 5 koraka

Video: IOT123 - I2C KY019 CIGLA: 5 koraka

Video: IOT123 - I2C KY019 CIGLA: 5 koraka
Video: Tutorial Dasar Relay Arduino 2024, Juli
Anonim
IOT123 - I2C KY019 CIGLA
IOT123 - I2C KY019 CIGLA
IOT123 - I2C KY019 CIGLA
IOT123 - I2C KY019 CIGLA

IOT123 CIGLE su DIY modularne jedinice koje se mogu kombinirati s drugim IOT123 CIGLAMA, za dodavanje funkcionalnosti čvoru ili nosivom uređaju. Zasnivaju se na inčnim kvadratnim, dvostranim proto-pločama sa međusobno povezanim rupama.

Očekuje se da će se određeni broj ovih CIGLA nalaziti na više čvorova (glavni MCU -ovi - ESP8266 ili ATTINY84) na web lokaciji. MCU -u nije potrebno prethodno znanje o namjeni senzora ili softverskim potrebama. Skenira I2C čvorove, a zatim traži dump svojstva (podatke senzora) od svakog slave -a. Ove OPEKE napajaju 5.0V, 3.3V i još jednu AUX liniju koja se može prilagoditi.

Ova I2C KY019 CIGLA prva je od GLUMACA i ima jedno svojstvo čitanja/pisanja:

Prebacivanje (true/false)

Opeke tipa senzora tipa Keyes prvo će se apstrahovati jer dolaze sa uključenim vitaminima (potrebne su dodatne komponente) i relativno su jeftine (kupio sam 37 za 10 AUD). Ostale ploče/kola bit će predstavljene I2C CIGLAMA.

Prolazne rupe uz ATTINY85 su ostavljene neiskorištene, kako bi se omogućio pogo pin programator dok je DIP8 lemljen na PCB. Razvija se daljnja apstrakcija, pakiranje CIGLA u male cilindre koji se spajaju u D1M WIFI BLOCK čvorište, upumpavajući vrijednosti na MQTT poslužitelj.

Korak 1: Materijali i alati

Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati

Postoji potpuna lista materijala i izvora.

  1. Relej KY-019 (1)
  2. ATTINY85 20PU (1)
  3. 1 "dvostrana protoboard (1)
  4. Muški zaglavlje 90º (3P, 3P)
  5. Priključna žica (~ 7)
  6. Lemljenje i gvožđe (1)

Korak 2: Pripremite ATTINY85

Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85

NAPOMENA: Ako namjeravate imati Crouton integraciju, upotrijebite biblioteku odavde i upotrijebite instalirani primjer "attiny_ky019".

Potreban je AttinyCore od upravitelja odbora. Snimite bootloader "EEPROM zadržan", "8mHZ Interni" (sve konfiguracije prikazane gore).

Spremište kodova može se pronaći ovdje.

ZIP biblioteke možete pronaći ovdje.

Upute za "Uvoz ZIP biblioteke" ovdje.

Nakon što je biblioteka instalirana, možete otvoriti primjer "attiny_ky019".

Za postavljanje firmvera na ATTINY85, više detalja možete pronaći u ovim uputama:

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

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

www.instructables.com/id/How-to-program-th…

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

www.instructables.com/id/Programming-an-At…

Najbolje je testirati putem matične ploče prije nastavka.

Ako imate postojeće ASSIMILATE SENSORS, provjerite je li slave adresa drugačija u kombinaciji SENSOR/MCU Host, tj. Svi akteri releja mogu imati istu adresu sve dok imate samo jednog relejnog glumca na MCU/čvoru.

Korak 3: Sastavite krug

Sastavite kolo
Sastavite kolo
Sastavite kolo
Sastavite kolo
Sastavite kolo
Sastavite kolo
Sastavite kolo
Sastavite kolo
  1. S prednje strane umetnite komponente ATTINY85 (1), muške zaglavlje 3P 90 stepeni (2) (3) i lemite sa stražnje strane.
  2. Na stražnjoj strani ucrtajte žutu žicu od ŽUTE1 do ŽUTE2 i lemite.
  3. Na stražnjoj strani nacrtajte plavu žicu od PLAVE1 do PLAVE2 i lemite.
  4. Sa stražnje strane trasirajte zelenu žicu od ZELENE1 do ZELENE2 i lemite.
  5. Na stražnjoj strani navucite crnu žicu od BLACK1 do BLACK2 i lemite.
  6. Na stražnjoj strani ucrtajte crnu žicu od BLACK3 do BLACK4 i lemite.
  7. Na stražnjoj strani ucrtajte crvenu žicu od RED1 do RED2 i lemite.
  8. Na stražnjoj strani crtajte crvenu žicu od RED3 do RED4 i lemite.

Relej se sada može spojiti izravno preko svojih pinova na PCB ili putem žica, na točke prikazane u ugovoru s pinovima.

Korak 4: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje

Očekuje se da će se određeni broj ovih CIGLA nalaziti na više čvorova (MCU -ovi - ESP8266 ili ATTINY84) u okruženju. Ovo je jedinični test: šalje I2C naredbe iz UNO -a na ATTINY koji otvara ili zatvara relej.

Ranije smo izgradili I2C ŠTIT za Arduino.

Ako ga umjesto toga želite zacrtati:

  1. Priključite 5.0V na UNO na VCC na BRICK.
  2. Spojite GND na UNO na GND na BRICK.
  3. Spojite A5 na UNO na SCL na BRICK.
  4. Povežite A4 na UNO sa SDA na BRICK.
  5. Spojite 4K7 pull-up otpornik sa SDA na VCC.
  6. Spojite 4K7 pull-up otpornik sa SCL na VCC.

Pokretanje testa

  1. Povežite svoj UNO sa svojim Dev računarom putem USB -a.
  2. Otpremite kôd u UNO.
  3. Otvorite Arduino konzolu. Odaberite 9600 bauda (ponovno pokrenite UNO i ponovo otvorite konzolu ako morate).
  4. Adresa pomoćnog uređaja će se ispisati na konzoli.
  5. Kada, unesite u polje za slanje 2 1 (dakle 12 2 1), i relej se uključuje.
  6. Kada unesite u polje za slanje 2 0 (dakle 12 2 0), i relej će se isključiti.

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 5: Sljedeći koraci

Sljedeći koraci
Sljedeći koraci
Sljedeći koraci
Sljedeći koraci
Sljedeći koraci
Sljedeći koraci
Sljedeći koraci
Sljedeći koraci

Sljedeći ASIMILIRAJUĆI GLUMAC: KY019 koji koristi ovu ciglu ima automatsku konfiguraciju za Croutona putem metapodataka koji su već instalirani u ATTINY85 ovdje. JSON paket poslan Croutonu šalje se putem najnovijeg firmvera za ICOS10. Možete napraviti Proof-of-concept na običnom ESP8266, ako je za sada izgradnja previše.

UNO skica korištena u Testiranju ima funkciju spremanja nove slave adrese u EEPROM na ATTINY85, ako dođe do sukoba na vašoj ciljnoj I2C sabirnici.

Dodano je nekoliko shema, ali postoje različiti načini povezivanja nizvodnog kola ovisno o tome što želite postići, pa ću to ostaviti vama:)

Preporučuje se: