Obsah:

IOT123 - I2C KY019 BRICK: 5 krokov
IOT123 - I2C KY019 BRICK: 5 krokov

Video: IOT123 - I2C KY019 BRICK: 5 krokov

Video: IOT123 - I2C KY019 BRICK: 5 krokov
Video: Keyboard PCB | Serial output | Alphabet Numbers Signs 2024, Júl
Anonim
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK

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 KY019 BRICK je prvým z hercov a má jednu vlastnosť na čítanie/zápis:

Prepnúť (pravda/nepravda)

Senzorové tehly typu Keyes budú najskôr abstrahované, pretože obsahujú vitamíny (potrebné ďalšie komponenty) a sú relatívne lacné (kúpil som 37 za 10AUD). K I2C BRICKS budú predstavené ďalšie dosky/obvody.

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. Relé KY-019 (1)
  2. ATTINY85 20PU (1)
  3. 1 "obojstranný protoboard (1)
  4. Mužská hlavička 90 ° (3P, 3P)
  5. Pripojovací drôt (~ 7)
  6. 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 odtiaľto knižnicu a použite príklad nainštalovaný „attiny_ky019“.

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_ky019“.

Na nahranie firmvéru do ATTINY85 môžete nájsť ďalšie podrobnosti v týchto pokynoch:

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…

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
Zostavte obvod
Zostavte obvod
  1. Na prednú stranu zasuňte súčiastky ATTINY85 (1), 3P 90 stupňové zástrčky (2) (3) a spájku vzadu.
  2. Na zadnej strane nakreslite žltý vodič od ŽLTÉHO1 po ŽLUTÉ2 a spájkujte.
  3. Na zadnej strane nakreslite modrý vodič z BLUE1 na BLUE2 a spájkujte.
  4. Na zadnej strane vyznačte zelený vodič od ZELENÉ1 do ZELENÉ2 a spájkujte.
  5. Na zadnej strane nakreslite čierny vodič z BLACK1 na BLACK2 a spájkujte.
  6. Na zadnej strane nakreslite čierny vodič z BLACK3 na BLACK4 a spájkujte.
  7. Na zadnej strane vyznačte červený vodič od RED1 do RED2 a spájkujte.
  8. Na zadnej strane vyznačte červený vodič z RED3 na RED4 a spájkujte.

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

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. Vyberte 9600 baudov (reštartujte UNO a v prípade potreby znova otvorte konzolu).
  4. Adresa otroka sa vytlačí do konzoly.
  5. Kedy zadajte do poľa pre odoslanie 2 1 (teda 12 2 1) a relé sa zapne.
  6. Kedy zadajte do poľa pre odoslanie 2 0 (teda 12 2 0) a relé 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: KY019, ktorý používa túto kocku, 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: