Obsah:

IOT123 - I2C HEARTBEAT BRICK: 6 krokov
IOT123 - I2C HEARTBEAT BRICK: 6 krokov

Video: IOT123 - I2C HEARTBEAT BRICK: 6 krokov

Video: IOT123 - I2C HEARTBEAT BRICK: 6 krokov
Video: Zaful Bikini HAUL 2018 | TRY ON | Valerie pac 2024, November
Anonim
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT 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ť.

Táto I2C HEARTBEAT BRICK indikuje, či je otrok ATTINY nažive, tiež prenos I2C, a či má jednu vlastnosť:

STAV („NAŽIVO“)

PB1 (biely) označuje ATTINY zdravie.

PB3 (žltý) prepína s požiadavkami I2C od nadriadeného.

PB4 (oranžový) prepína na príjem I2C z master.

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
Materiály a nástroje
Materiály a nástroje

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

  1. Papierová DPS (7 x 7 dier)
  2. LED diódy (červená, zelená, modrá)
  3. Rezistory (3 z 1K)
  4. ATTINY85 20PU (1)
  5. 1 "obojstranný protoboard (1)
  6. Mužská hlavička 90 ° (3P, 3P)
  7. Mužská hlavička (2P, 2P)
  8. Skokanský mostík (1)
  9. Pripojovací drôt (~ 7)
  10. 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
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_heartbeat“

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

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

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

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

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

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

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

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

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

Krok 3: Zostavenie indikátorov

Zostavenie indikátorov
Zostavenie indikátorov
Zostavenie indikátorov
Zostavenie indikátorov
Zostavenie indikátorov
Zostavenie indikátorov

Indikátory majú byť plne prispôsobiteľné. Signály udalostí z hlavného okruhu sú vnímané ako údery srdca. Pre túto zostavu použijeme LED indikátory; vaša zostava môže používať relé (áno, VCC je prerušené) alebo iný vizuálny/signálový indikátor. Hodnoty odporu budú závisieť od osobných preferencií toho, ako jasné ich chcete.

  1. Na vrch vložte modrú LED diódu do ČERVENÝCH (+) a ČIERNYCH (G) a spájkovaciu dolu.
  2. V spodnej časti ohnite elektródu z RED1 tak, aby sa dotýkala medenej podložky na SILVER8 a orezala.
  3. V spodnej časti orežte kábel z BLACK1 nad spájkou.
  4. V hornej časti vložte zelenú diódu LED do ČERVENÝCH (+) a BLACK2 (G) a spájkujte zospodu.
  5. V spodnej časti ohnite elektródu z RED2 tak, aby sa dotýkala medenej podložky na SILVER9 a orezajte.
  6. V spodnej časti orežte kábel z BLACK2 nad spájkou.
  7. Na vrch vložte červenú LED diódu do RED3 (+) a BLACK3 (G) a spájkujte dole.
  8. V spodnej časti ohnite elektródu z RED3 tak, aby sa dotýkala medenej podložky na SILVER10 a orezajte.
  9. V spodnej časti orežte kábel z BLACK3 nad spájkou.
  10. Na vrchnú stranu vložte 1K odpor do priechodných otvorov SILVER1 a SILVER4.
  11. V spodnej časti trasujte, orezávajte a spájkujte prívod od SILVER1 k BLACK1.
  12. Na vrchnú stranu vložte 1K odpor do priechodných otvorov SILVER2 a SILVER4.
  13. V spodnej časti sledujte, orezávajte a spájkujte prívod zo SILVER2 na BLACK2.
  14. Na vrchnú stranu vložte 1K odpor do priechodných otvorov SILVER3 a SILVER4.
  15. V spodnej časti trasujte, orezávajte a spájkujte prívod zo SILVER3 na BLACK3.
  16. Na spodnej strane spájkujte vodiče na SILVER4 a orežte ich približne 5 mm.
  17. V spodnej časti spájkujte čierny drôt na SILVER4.
  18. Na spodnej strane spájkujte biely drôt do SILVER5, aby ste zaistili kontinuitu vedenia od ČERVENÉHO 1.
  19. Na spodnej strane spájkujte žltý vodič do SILVER6, aby ste zaistili kontinuitu vedenia od RED2.
  20. Na spodnej strane spájkujte oranžový vodič do SILVER7, aby ste zaistili kontinuitu vedenia od RED3.

Krok 4: Zostavenie hlavného obvodu

Zostavenie hlavného obvodu
Zostavenie hlavného obvodu
Zostavenie hlavného obvodu
Zostavenie hlavného obvodu
Zostavenie hlavného obvodu
Zostavenie hlavného obvodu

Zhromaždenie:

  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 biely vodič od WHITE1 do WHITE2 a spájkujte.
  7. Na zadnej strane nakreslite čierny vodič z BLACK1 na BLACK2 a spájkujte.
  8. Na zadnej strane nakreslite čierny vodič z BLACK3 na BLACK4 a spájkujte.
  9. Na zadnej strane vyznačte červený vodič od RED1 do RED2 a spájkujte.
  10. Na zadnej strane nakreslite holý vodič od RED3 do RED4 a spájkujte.
  11. Na zadnej strane vystopujte holý drôt od SILVER1 do SILVER2 a spájkujte.
  12. Pridajte prepojku na vedenie 5V alebo 3V3.

Ak používate indikátory vyššie (pozrite si diagram vývodov):

  1. Na zadnej strane zapájajte biely vodič do PB1.
  2. Na zadnej strane spájkujte žltý vodič do PB3.
  3. Na zadnej strane spájkujte oranžový vodič do PB4.
  4. Na zadnej strane spájkujte čierny vodič do GND.

Krok 5: 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é prepína LED príjmu. LED dióda ATTINY ALIVE zostane svietiť.

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. Kedy zadajte do poľa pre odosielanie 2 1 (teda 16 2 1) a rozsvieti sa kontrolka LED príjmu.
  7. Keď zadajte do poľa pre odosielanie 2 0 (teda 16 2 0) a kontrolka LED príjmu zhasne.

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 6: Ďalšie kroky

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

Následný ASSIMILATE ACTOR: HEARTBEAT, 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.

Odporúča: