Obsah:
- Krok 1: Materiály a nástroje
- Krok 2: Pripravte si ATTINY85
- Krok 3: Zostavenie indikátorov
- Krok 4: Zostavenie hlavného obvodu
- Krok 5: Testovanie
- Krok 6: Ďalšie kroky
Video: IOT123 - I2C HEARTBEAT BRICK: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
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
K dispozícii je úplný zoznam kusovníkov a zdrojov.
- Papierová DPS (7 x 7 dier)
- LED diódy (červená, zelená, modrá)
- Rezistory (3 z 1K)
- ATTINY85 20PU (1)
- 1 "obojstranný protoboard (1)
- Mužská hlavička 90 ° (3P, 3P)
- Mužská hlavička (2P, 2P)
- Skokanský mostík (1)
- Pripojovací drôt (~ 7)
- Spájka a železo (1)
Krok 2: 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
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.
- Na vrch vložte modrú LED diódu do ČERVENÝCH (+) a ČIERNYCH (G) a spájkovaciu dolu.
- V spodnej časti ohnite elektródu z RED1 tak, aby sa dotýkala medenej podložky na SILVER8 a orezala.
- V spodnej časti orežte kábel z BLACK1 nad spájkou.
- V hornej časti vložte zelenú diódu LED do ČERVENÝCH (+) a BLACK2 (G) a spájkujte zospodu.
- V spodnej časti ohnite elektródu z RED2 tak, aby sa dotýkala medenej podložky na SILVER9 a orezajte.
- V spodnej časti orežte kábel z BLACK2 nad spájkou.
- Na vrch vložte červenú LED diódu do RED3 (+) a BLACK3 (G) a spájkujte dole.
- V spodnej časti ohnite elektródu z RED3 tak, aby sa dotýkala medenej podložky na SILVER10 a orezajte.
- V spodnej časti orežte kábel z BLACK3 nad spájkou.
- Na vrchnú stranu vložte 1K odpor do priechodných otvorov SILVER1 a SILVER4.
- V spodnej časti trasujte, orezávajte a spájkujte prívod od SILVER1 k BLACK1.
- Na vrchnú stranu vložte 1K odpor do priechodných otvorov SILVER2 a SILVER4.
- V spodnej časti sledujte, orezávajte a spájkujte prívod zo SILVER2 na BLACK2.
- Na vrchnú stranu vložte 1K odpor do priechodných otvorov SILVER3 a SILVER4.
- V spodnej časti trasujte, orezávajte a spájkujte prívod zo SILVER3 na BLACK3.
- Na spodnej strane spájkujte vodiče na SILVER4 a orežte ich približne 5 mm.
- V spodnej časti spájkujte čierny drôt na SILVER4.
- Na spodnej strane spájkujte biely drôt do SILVER5, aby ste zaistili kontinuitu vedenia od ČERVENÉHO 1.
- Na spodnej strane spájkujte žltý vodič do SILVER6, aby ste zaistili kontinuitu vedenia od RED2.
- Na spodnej strane spájkujte oranžový vodič do SILVER7, aby ste zaistili kontinuitu vedenia od RED3.
Krok 4: Zostavenie hlavného obvodu
Zhromaždenie:
- 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.
- Na zadnej strane nakreslite žltý vodič od ŽLTÉHO1 po ŽLUTÉ2 a spájkujte.
- Na zadnej strane nakreslite oranžový vodič z ORANGE1 na ORANGE2 a spájkujte.
- Na zadnej strane nakreslite modrý vodič z BLUE1 na BLUE2 a spájkujte.
- Na zadnej strane vyznačte zelený vodič od ZELENÉ1 do ZELENÉ2 a spájkujte.
- Na zadnej strane nakreslite biely vodič od WHITE1 do WHITE2 a spájkujte.
- Na zadnej strane nakreslite čierny vodič z BLACK1 na BLACK2 a spájkujte.
- Na zadnej strane nakreslite čierny vodič z BLACK3 na BLACK4 a spájkujte.
- Na zadnej strane vyznačte červený vodič od RED1 do RED2 a spájkujte.
- Na zadnej strane nakreslite holý vodič od RED3 do RED4 a spájkujte.
- Na zadnej strane vystopujte holý drôt od SILVER1 do SILVER2 a spájkujte.
- Pridajte prepojku na vedenie 5V alebo 3V3.
Ak používate indikátory vyššie (pozrite si diagram vývodov):
- Na zadnej strane zapájajte biely vodič do PB1.
- Na zadnej strane spájkujte žltý vodič do PB3.
- Na zadnej strane spájkujte oranžový vodič do PB4.
- Na zadnej strane spájkujte čierny vodič do GND.
Krok 5: 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:
- Pripojte 5,0 V na UNO k VCC na BRICK.
- Pripojte GND na UNO k GND na BRICK.
- Pripojte A5 na UNO k SCL na BRICK.
- Pripojte A4 na UNO k SDA na BRICK.
- Pripojte výsuvný odpor 4K7 z SDA do VCC.
- Pripojte výsuvný odpor 4K7 z SCL k VCC.
Spustenie testu
- Pripojte svoj UNO k vývojovému počítaču pomocou USB.
- Nahrajte kód do UNO.
- Otvorte konzolu Arduino.
- Vyberte 9600 baudov (reštartujte UNO a v prípade potreby znova otvorte konzolu).
- Adresa otroka sa vytlačí na konzolu.
- Kedy zadajte do poľa pre odosielanie 2 1 (teda 16 2 1) a rozsvieti sa kontrolka LED príjmu.
- 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
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:
Heartbeat Game-Projekt: 4 kroky
Heartbeat Game-Projekt: Dnes je 20. máj, ako všetci vieme. Už sa stal tradičným čínskym Valentínom. (520 v čínštine znamená, že vás milujem). Teraz vytvoríme interaktívne zariadenie s názvom laboratórium tepu srdca, ktoré otestuje tiché porozumenie páru. Toto je test
IOT123 - D1M BLOCK - zostava 2xAMUX: 7 krokov (s obrázkami)
IOT123 - D1M BLOCK - 2xAMUX zostava: D1M BLOCKS dodáva hmatové puzdrá, štítky, vodítka polarity a vylomeniny pre obľúbené Wemos D1 Mini SOC/štíty/klony. Jedným z problémov čipu ESP8266 je, že má k dispozícii iba jeden analógový IO pin. Tento návod ukazuje, ako zostaviť 2xA
IOT123 - D1M BLOCK - RFTXRX Zostava: 8 krokov
IOT123 - D1M BLOCK - RFTXRX Zostava: D1M BLOCKS dodáva hmatové puzdrá, štítky, vodidlá polarity a vylomeniny pre obľúbené Wemos D1 Mini SOC/štíty/klony. RF vysielače/prijímače umožňujú ESP8266 prístup k existujúcej domácej/priemyselnej automatizácii. Toto puzdro poskytuje výpadky pre 433/
IOT123 - LIR2032 BITTERY BRICK: 4 kroky
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS sú DIY modulárne jednotky, ktoré je možné kombinovať s inými IOT123 BRICKS, aby pridali funkčnosť uzlu alebo boli nositeľné. Vychádzajú z palcových štvorcových, obojstranných protoboardov, ktoré sú navzájom prepojené priechodnými otvormi. Napriek tomu, že inštrukcie
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 kroky
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: AKTUALIZÁCIA: Toto nastavenie je do značnej miery akademické alebo je základom testovania softvéru/napájania. Aj keď je PB5 deaktivovaný ako RESET, nečíta hodnoty presne pomocou analogRead: hlavného prípadu čítania senzorov. Pozrie sa na nastavenie ATTINY84