Obsah:

IOT123 - I2C 2CH RELÉ BRICK: 5 krokov (s obrázkami)
IOT123 - I2C 2CH RELÉ BRICK: 5 krokov (s obrázkami)

Video: IOT123 - I2C 2CH RELÉ BRICK: 5 krokov (s obrázkami)

Video: IOT123 - I2C 2CH RELÉ BRICK: 5 krokov (s obrázkami)
Video: IOT123 - ICOS10: STRUCTURE 2024, Jún
Anonim
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA
IOT123 - I2C 2CH RELÉ TEHLA

IOT123 BRICKS sú DIY modulárne jednotky, ktoré je možné kombinovať s inými IOT123 BRICKS a pridať tak funkčnosť do uzla alebo nositeľné zariadenie. Sú založené na palcových štvorcových, obojstranných protoboardoch so vzájomne prepojenými priechodnými otvormi.

Očakáva sa, že niekoľko týchto BRICKS bude na viacerých uzloch (hlavné MCU - ESP8266 alebo ATTINY84) na webe. MCU nepotrebuje žiadne predchádzajúce znalosti o účele senzorov alebo softvérových potrebách. Skenuje pre uzly I2C a potom od každého podriadeného zariadenia požaduje výpis vlastností (údaje senzora). Tieto BRICKS napájajú 5,0 V, 3,3 V a ďalšiu linku AUX, ktorú je možné prispôsobiť.

Tento I2C 2CH RELAY BRICK rozširuje funkčnosť I2C KY019 BRICK a má dve vlastnosti na čítanie/zápis:

2CH RELÉ [0] (pravda/nepravda)

2CH RELÉ [1] (pravda/nepravda)

Priechodné otvory susediace s ATTINY85 zostali nevyužité, aby sa umožnil programátor pogo pinov, keď je DIP8 spájkovaný s PCB. Vyvíja sa ďalšia abstrakcia, balenie BRICKS do malých valcov, ktoré sa zapoja do rozbočovača D1M WIFI BLOCK, čerpanie hodnôt na server MQTT.

Krok 1: Materiály a nástroje

Materiály a nástroje
Materiály a nástroje
Materiály a nástroje
Materiály a nástroje
Materiály a nástroje
Materiály a nástroje

K dispozícii je úplný zoznam kusovníkov a zdrojov.

  1. 2 -kanálové relé (1)
  2. ATTINY85 20PU (1)
  3. 1 "obojstranný protoboard (1)
  4. Mužská hlavička 90 ° (3P, 3P)
  5. Mužská hlavička (2P, 2P)
  6. Skokanský mostík (1)
  7. Pripojovací drôt (~ 7)
  8. Spájka a železo (1)

Krok 2: Pripravte si ATTINY85

Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85

POZNÁMKA: Ak plánujete integráciu Croutona, použite knižnicu odtiaľto a použite príklad nainštalovaný „attiny_2ch_relay“.

Je potrebný AttinyCore od správcu dosiek. Napaľujte bootloader „EEPROM zachovaný“, „8 mHZ interný“(všetky konfigurácie sú uvedené vyššie).

Úložisko kódov nájdete tu.

ZIP knižnicu nájdete tu.

Tu nájdete pokyny pre „Import knižnice ZIP“.

Keď je knižnica nainštalovaná, môžete otvoriť príklad „attiny_2ch_relay“.

Ak chcete nahrať firmvér do ATTINY85, ďalšie podrobnosti nájdete v týchto pokynoch:

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

Pred pokračovaním je najlepšie otestovať ho na breadboarde.

Ak máte existujúce ASSIMILAČNÉ SENZORY, uistite sa, že adresa slave je v kombinácii hostiteľa SENSOR/MCU odlišná, t. J. Všetky herné relé môžu mať rovnakú adresu, pokiaľ máte na MCU/uzle iba jedného reléového aktéra.

Krok 3: Zostavte obvod

Zostavte obvod
Zostavte obvod
Zostavte obvod
Zostavte obvod
Zostavte obvod
Zostavte obvod
  1. Na prednú stranu zasuňte súčasti ATTINY85 (1), 3P 90deg zástrčky (2) (3), 3P zástrčky (4) (5) a spájku na zadnej strane.
  2. Na zadnej strane nakreslite žltý vodič od ŽLTÉHO1 po ŽLUTÉ2 a spájkujte.
  3. Na zadnej strane nakreslite oranžový vodič z ORANGE1 na ORANGE2 a spájkujte.
  4. Na zadnej strane nakreslite modrý vodič z BLUE1 na BLUE2 a spájkujte.
  5. Na zadnej strane vyznačte zelený vodič od ZELENÉ1 do ZELENÉ2 a spájkujte.
  6. Na zadnej strane nakreslite čierny vodič z BLACK1 na BLACK2 a spájkujte.
  7. Na zadnej strane nakreslite čierny vodič z BLACK3 na BLACK4 a spájkujte.
  8. Na zadnej strane vyznačte červený vodič od RED1 do RED2 a spájkujte.
  9. Na zadnej strane nakreslite holý vodič od RED3 do RED4 a spájkujte.
  10. Na zadnej strane vystopujte holý drôt od SILVER1 do SILVER2 a spájkujte.
  11. Pridajte prepojku na vedenie 5V alebo 3V3.

Relé je teraz možné pripojiť priamo cez jeho kolíky na dosku plošných spojov alebo cez vodiče k bodom zobrazeným v kolíkovej zmluve.

Krok 4: Testovanie

Testovanie
Testovanie
Testovanie
Testovanie
Testovanie
Testovanie
Testovanie
Testovanie

Očakáva sa, že niekoľko týchto BRICKS bude na viacerých uzloch (MCU - ESP8266 alebo ATTINY84) v prostredí. Toto je test jednotky: odosiela príkazy I2C z UNO do ATTINY, ktoré otvára alebo zatvára relé.

Predtým sme pre Arduino postavili I2C SHIELD.

Ak ho chcete namiesto toho pridať na platňu:

  1. Pripojte 5,0 V na UNO k VCC na BRICK.
  2. Pripojte GND na UNO k GND na BRICK.
  3. Pripojte A5 na UNO k SCL na BRICK.
  4. Pripojte A4 na UNO k SDA na BRICK.
  5. Pripojte výsuvný odpor 4K7 z SDA do VCC.
  6. Pripojte výsuvný odpor 4K7 z SCL k VCC.

Spustenie testu

  1. Pripojte svoj UNO k vývojovému počítaču pomocou USB.
  2. Nahrajte kód do UNO.
  3. Otvorte konzolu Arduino.
  4. Vyberte 9600 baudov (reštartujte UNO a v prípade potreby znova otvorte konzolu).
  5. Adresa otroka sa vytlačí na konzolu.
  6. Keď zadajte do poľa pre odosielanie 2 0: 1 (teda 15 2 0: 1) a relé CH1 sa zapne.

  7. Keď zadajte do poľa pre odosielanie 2 0: 0 (teda 15 2 0: 0), a relé CH1 sa vypne.
  8. Kedy zadajte do poľa pre odosielanie 2 1: 1 (teda 15 2 1: 1) a relé CH2 sa zapne.
  9. Keď zadajte do poľa pre odosielanie 2 1: 0 (teda 15 2 0: 0), a relé CH2 sa vypne.

I2C BRICK adhoc príkazy pre otrokov z UNO master

#zahrnúť
const byte _num_chars = 32;
char _received_chars [_num_chars]; // pole na uloženie prijatých údajov
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILUJTE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println („zabezpečiť, aby bol v okne konzoly vybraný nový riadok“);
Serial.println ();
Serial.println ("ADRESA 1 POTVRDIŤ PRÍJEM METADATA N/A (PRE M2M)");
Serial.println ("ADDRESS 2 ACTOR COMMAND");
Serial.println ();
Serial.println ("ADRESY NA AUTOBUSE:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int počet_zariadení = 0;
pre (adresa bytu = 8; adresa <127; adresa ++)
{
Wire.beginTransmission (adresa);
chyba bajtu const = Wire.endTransmission ();
ak (chyba == 0)
{
Serial.println (adresa);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statický 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> = _num_chars) {
ndx = _num_chars - 1;
}
}
inak {
_received_chars [ndx] = '\ 0'; // ukončenie reťazca
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String receive_string = String (_received_chars);
ak (_has_new_data == true) {
int idx1 = prijatý_string.indexOf ('');
Adresa reťazca = prijatý_string.substring (0, idx1);
int adresa_int = adresa.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("NEPLATNÝ VSTUP ADRESY:");
Serial.println (adresa);
návrat;
}
int idx2 = prijatý_string.indexOf ('', idx1+1);
Reťazcový kód;
if (idx2 == -1) {
kód = prijatý_string.substring (idx1+1);
} else {
kód = prijatý_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("VSTUP NEPLATNÉHO KÓDU:");
Serial.println (kód);
návrat;
}
bool has_parameter = idx2> -1;
Reťazcový parameter;
if (has_parameter) {
parameter = prijatý_string.substring (idx2 + 1, idx2 + 17); // max. 16 znakov
if (parameter.length () <1) {
Serial.println ("MINIMÁLNY PARTAMETER. DĹŽKA 1");
_has_new_data = false;
návrat;
}
} else {
if (code_int> 1) {
Serial.println ("POTREBNÝ PARAMETER!");
_has_new_data = false;
návrat;
}
}
Serial.println ();
Serial.print ("vstup orig =");
Serial.println (receive_string);
Serial.print ("adresa =");
Serial.println (adresa);
Serial.print ("code =");
Serial.println (kód);
Serial.print ("parameter =");
Serial.println (parameter);
// ODOSLAJTE PRES 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 („ODOSLANÉ PROSTREDNÍCTVOM I2C!“);
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

zobraziť rawuno_i2c_command_input.ino hostiteľom ❤ od GitHub

Krok 5: Ďalšie kroky

Ďalšie kroky
Ďalšie kroky
Ďalšie kroky
Ďalšie kroky
Ďalšie kroky
Ďalšie kroky
Ďalšie kroky
Ďalšie kroky

Následný ASSIMILATE ACTOR: 2CH RELAY, ktorý používa túto tehlu, má automatickú konfiguráciu pre Crouton prostredníctvom metadát, ktoré sú už nainštalované v ATTINY85 tu. Paket JSON odoslaný do Croutonu je odoslaný prostredníctvom najnovšieho firmvéru pre ICOS10. Doklad o koncepte môžete urobiť na obyčajnom ESP8266, ak je zostava zatiaľ príliš.

Náčrt UNO použitý v testovaní má funkciu na uloženie novej adresy slave do EEPROM na ATTINY85, ak dôjde k stretu na vašej cieľovej zbernici I2C. Bolo pridaných niekoľko schém, ale existujú rôzne spôsoby, ako zapojiť následný obvod v závislosti od toho, čo chcete dosiahnuť, takže to nechám na vás:)

Odporúča: