Satura rādītājs:

IOT123 - I2C 2CH RELAY BRICK: 5 soļi (ar attēliem)
IOT123 - I2C 2CH RELAY BRICK: 5 soļi (ar attēliem)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 soļi (ar attēliem)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 soļi (ar attēliem)
Video: IOT123 - ICOS10: STRUCTURE 2024, Novembris
Anonim
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS
IOT123 - I2C 2CH RELEJA BRIKS

IOT123 BRICKS ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. To pamatā ir kvadrātveida kvadrātveida, divpusēji protoboards ar savstarpēji savienotiem caurumiem.

Paredzams, ka vairāki no šiem ķieģeļiem atradīsies vairākos vietnes mezglos (galvenie MCU - ESP8266 vai ATTINY84). MCU nav vajadzīgas priekšzināšanas par sensoru mērķi vai programmatūras vajadzībām. Tā skenē I2C mezglus un pēc tam pieprasa īpašuma izgāztuvi (sensora datus) no katra verga. Šie BRICK piegādā 5.0V, 3.3V un citu pielāgojamu AUX līniju.

Šis I2C 2CH RELAY BRICK paplašina I2C KY019 BRICK funkcionalitāti, un tam ir divi lasīšanas/rakstīšanas rekvizīti:

2CH RELEJI [0] (patiess/nepatiess)

2CH RELEJI [1] (patiess/nepatiess)

Caurumi, kas atrodas blakus ATTINY85, ir palikuši neizmantoti, lai iespējotu pogo tapu programmētāju, kamēr DIP8 ir pielodēts pie PCB. Tiek izstrādāta turpmāka abstrakcija - BRICKS iesaiņošana mazos cilindros, kas pievienojami D1M WIFI BLOCK centrmezglam, pārsūtot vērtības uz MQTT serveri.

1. darbība: materiāli un instrumenti

Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti

Ir pilns materiālu un avotu saraksts.

  1. 2 kanālu relejs (1)
  2. ATTINY85 20PU (1)
  3. 1 "divpusējs protoboards (1)
  4. Galvene vīriešiem 90º (3P, 3P)
  5. Galvene vīriešiem (2P, 2P)
  6. Džempera šunts (1)
  7. Savienojuma vads (~ 7)
  8. Lodmetāls un dzelzs (1)

2. darbība: sagatavojiet ATTINY85

Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85

PIEZĪME. Ja plānojat integrēt Crouton, lūdzu, izmantojiet šeit esošo bibliotēku un izmantojiet instalēto piemēru "attiny_2ch_relay".

Ir nepieciešams AttinyCore no valdes pārvaldnieka. Ierakstiet sāknēšanas ielādētāju "EEPROM Retained", "8mHZ Internal" (visa konfigurācija parādīta iepriekš).

Kodu krātuvi var atrast šeit.

Bibliotēkas pasta adresi var atrast šeit.

Norādījumi par ZIP bibliotēkas importēšanu šeit.

Kad bibliotēka ir instalēta, varat atvērt piemēru "attiny_2ch_relay".

Lai augšupielādētu programmaparatūru ATTINY85, sīkāku informāciju varat atrast šajos norādījumos:

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-…

Pirms turpināt, vislabāk ir pārbaudīt, izmantojot maizes dēli.

Ja jums jau ir ASSIMILATE SENSORS, pārliecinieties, ka SENSOR/MCU Host kombinācijā vergu adrese ir atšķirīga, t.i., visiem Relay dalībniekiem var būt viena adrese, ja vien MCU/mezglā ir tikai viens Relay aktieris.

3. darbība: samontējiet ķēdi

Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
  1. Priekšpusē ievietojiet detaļas ATTINY85 (1), 3P 90 grādu vāciņus (2) (3), 3P vīriešu galviņas (4) (5) un lodējiet aizmugurē.
  2. Aizmugurē izsekojiet dzelteno vadu no YELLOW1 līdz YELLOW2 un lodējiet.
  3. Aizmugurē izsekojiet oranžu vadu no ORANGE1 līdz ORANGE2 un lodējiet.
  4. Aizmugurē izsekojiet zilu vadu no BLUE1 līdz BLUE2 un lodējiet.
  5. Aizmugurē izsekojiet zaļo vadu no GREEN1 līdz GREEN2 un lodējiet.
  6. Aizmugurē izsekojiet melnu vadu no BLACK1 līdz BLACK2 un lodējiet.
  7. Aizmugurē izsekojiet melnu vadu no BLACK3 līdz BLACK4 un lodējiet.
  8. Aizmugurē izsekojiet sarkanu vadu no RED1 līdz RED2 un lodējiet.
  9. Aizmugurē izsekojiet tukšu vadu no RED3 līdz RED4 un lodējiet.
  10. Aizmugurē izsekojiet tukšu vadu no SILVER1 līdz SILVER2 un lodēt.
  11. Pievienojiet džemperi 5V vai 3V3 līnijai.

Releju tagad var pieslēgt tieši caur tapām pie PCB vai caur vadiem uz tapu līgumā norādītajiem punktiem.

4. solis: pārbaude

Testēšana
Testēšana
Testēšana
Testēšana
Testēšana
Testēšana
Testēšana
Testēšana

Paredzams, ka vairāki no šiem ķieģeļiem vidē atradīsies vairākos mezglos (MCU - ESP8266 vai ATTINY84). Šis ir vienības tests: nosūta I2C komandas no UNO ATTINY, kas atver vai aizver relejus.

Mēs iepriekš esam izveidojuši I2C SHIELD Arduino.

Tā vietā, ja vēlaties to pārklāt ar maizi:

  1. Pievienojiet 5.0V uz UNO ar BRCK VCC.
  2. Savienojiet GND uz UNO ar GND uz BRICK.
  3. Savienojiet A5 uz UNO ar SCL uz BRICK.
  4. Savienojiet A4 uz UNO ar SDA uz BRICK.
  5. Pievienojiet 4K7 pievilkšanas rezistoru no SDA uz VCC.
  6. Pievienojiet 4K7 pievilkšanas rezistoru no SCL uz VCC.

Testa izpilde

  1. Savienojiet UNO ar savu Dev datoru, izmantojot USB.
  2. Augšupielādējiet kodu UNO.
  3. Atveriet Arduino konsoli.
  4. Izvēlieties 9600 baudus (restartējiet UNO un, ja nepieciešams, atveriet konsoli).
  5. Verga adrese tiks izdrukāta uz konsoles.
  6. Kad, ievadiet sūtīšanas lodziņu 2 0: 1 (tātad 15 2 0: 1), un CH1 relejs ieslēdzas.

  7. Kad, ievadiet sūtīšanas lodziņu 2 0: 0 (tātad 15 2 0: 0), un CH1 relejs izslēdzas.
  8. Kad, ievadiet sūtīšanas lodziņu 2 1: 1 (tātad 15 2 1: 1), un CH2 relejs ieslēdzas.
  9. Kad, ievadiet sūtīšanas lodziņu 2 1: 0 (tātad 15 2 0: 0), un CH2 relejs izslēdzas.

I2C BRICK adhoc komandas vergiem no UNO master

#iekļaut
const baits _num_chars = 32;
char _saņēmu_čalas [_num_chars]; // masīvs saņemto datu glabāšanai
Būla _has_new_data = nepatiess;
voidsetup () {
Sērijas sākums (9600);
Sērijas.println ();
Serial.println ("ASIMILĒT IOT AKTORU/SENSOR EEPROM EDITOR");
Serial.println ("nodrošināt jaunas līnijas izvēli konsoles logā");
Sērijas.println ();
Serial.println ("ADRESE 1 APSTIPRINĀT METADATU SAŅEMŠANU N/A (M2M)");
Serial.println ("ADRESE 2 AKTORA KOMANDA");
Sērijas.println ();
Serial.println ("ADRESES UZ BUS:");
scan_i2c_addresses ();
Sērijas.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
par (baitu adrese = 8; adrese <127; adrese ++)
{
Wire.beginTransmission (adrese);
const baitu kļūda = Wire.endTransmission ();
ja (kļūda == 0)
{
Serial.println (adrese);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statiskais baits ndx = 0;
char end_marker = '\ n';
char rc;
kamēr (Serial.available ()> 0 && _has_new_data == false) {
rc = Sērijas.lasījums ();
ja (rc! = end_marker) {
_saņemti_ieraksti [ndx] = rc;
ndx ++;
ja (ndx> = _num_chars) {
ndx = _skaits_skaits - 1;
}
}
cits {
_received_chars [ndx] = '\ 0'; // izbeigt virkni
ndx = 0;
_has_new_data = taisnība;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Virkne saņemta_virkne = String (_received_chars);
ja (_ has_new_data == true) {
int idx1 = saņēmis_string.indexOf ('');
Virknes adrese = saņemta_string.substring (0, idx1);
int address_int = address.toInt ();
ja (adrese_int <8 || adreses_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (adrese);
atgriešanās;
}
int idx2 = saņēmis_string.indexOf ('', idx1+1);
Virknes kods;
ja (idx2 == -1) {
kods = saņemta_string.substring (idx1+1);
} vēl {
kods = saņemta_string.substring (idx1+1, idx2+1);
}
int kods_int = kods.toInt ();
ja (kods_int <0 || kods_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (kods);
atgriešanās;
}
bool has_parameter = idx2> -1;
String parametrs;
if (has_parameter) {
parametrs = saņemta_string.substring (idx2 + 1, idx2 + 17); // maks. 16 rakstzīmes
ja (parametrs.garums () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = nepatiess;
atgriešanās;
}
} vēl {
ja (kods_int> 1) {
Serial.println ("OBLIGĀTS PARAMETRS!");
_has_new_data = nepatiess;
atgriešanās;
}
}
Sērijas.println ();
Serial.print ("ievades orig =");
Sērijas.println (saņemta_virkne);
Serial.print ("adrese =");
Serial.println (adrese);
Serial.print ("kods =");
Serial.println (kods);
Serial.print ("parametrs =");
Serial.println (parametrs);
// SŪTĪT I2C
Wire.beginTransmission (address_int);
Wire.write (kods_int);
if (has_parameter) {
parametrs.trim ();
strcpy (param_buf, parametrs.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Sērijas.println ();
Serial.println ("SŪTĪTS I2C!");
Sērijas.println ();
Serial.println ("");
_has_new_data = nepatiess;
}
}

apskatīt rawuno_i2c_command_input.ino, kuru mitina GitHub ar ❤

5. darbība. Nākamās darbības

Nākamie soļi
Nākamie soļi
Nākamie soļi
Nākamie soļi
Nākamie soļi
Nākamie soļi
Nākamie soļi
Nākamie soļi

Sekojošais ASIMILĀTĀS AKTORS: 2 CH RELAY, kas izmanto šo ķieģeļu, ir automātiski konfigurēts Crouton, izmantojot metadatus, kas jau ir instalēti šeit ATTINY85. Uz Crouton nosūtītā JSON pakete tiek nosūtīta, izmantojot jaunāko ICOS10 programmaparatūru. Jūs varat izveidot koncepcijas pierādījumu ar parastu ESP8266, ja pagaidām būvējums ir par daudz.

Testēšanā izmantotajai UNO skicei ir funkcija saglabāt jaunu vergu adresi EEPROM uz ATTINY85, ja jūsu mērķa I2C kopne saduras. Ir pievienotas dažas shēmas, taču atkarībā no tā, ko vēlaties sasniegt, ir dažādi veidi, kā pieslēgt pakārtoto ķēdi, tāpēc es to atstāšu jums:)

Ieteicams: