Obsah:

IOT123 - I2C HEARTBEAT BRICK: 6 kroků
IOT123 - I2C HEARTBEAT BRICK: 6 kroků

Video: IOT123 - I2C HEARTBEAT BRICK: 6 kroků

Video: IOT123 - I2C HEARTBEAT BRICK: 6 kroků
Video: Zaful Bikini HAUL 2018 | TRY ON | Valerie pac 2024, Červen
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 jsou DIY modulární jednotky, které lze kombinovat s jinými IOT123 BRICKS a přidat tak funkčnost uzlu nebo nositelnost. Jsou založeny na palcových čtvercových, oboustranných protoboardech propojených průchozími otvory.

Očekává se, že řada těchto BRICKS bude na více uzlech (Master MCU - ESP8266 nebo ATTINY84) na webu. MCU nepotřebuje žádné předchozí znalosti o účelu senzorů ani softwarových potřebách. Prohledává uzly I2C a poté požaduje od každého podřízeného zařízení výpis stavu (data ze senzoru). Tyto BRICKS dodávají 5,0 V, 3,3 V a další linku AUX, kterou lze přizpůsobit.

Tato I2C HEARTBEAT BRICK ukazuje, zda je ATTINY slave naživu, také provoz I2C, a má jednu vlastnost:

STAV („ŽIVÝ“)

PB1 (bílý) označuje ATTINY zdraví.

PB3 (žlutý) přepíná s požadavky I2C od masteru.

PB4 (oranžový) přepíná s přijímáním I2C z masteru.

Průchozí otvory sousedící s ATTINY85 zůstaly nevyužité, aby umožnily programátor pinů pogo, zatímco je DIP8 připájen k desce plošných spojů. Vyvíjí se další abstrakce, balení BRICKS do malých válců, které se zapojují do rozbočovače D1M WIFI BLOCK, čerpající hodnoty 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 dispozici je úplný seznam materiálu a zdrojů.

  1. Papírová deska plošných spojů (7 x 7 otvorů)
  2. LED diody (červená, zelená, modrá)
  3. Rezistory (3 z 1K)
  4. ATTINY85 20PU (1)
  5. 1 "oboustranný protoboard (1)
  6. Záhlaví 90 ° (3P, 3P)
  7. Zástrčka (2P, 2P)
  8. Jumper Shunt (1)
  9. Propojovací vodič (~ 7)
  10. Pájka a železo (1)

Krok 2: Připravte ATTINY85

Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85

POZNÁMKA: Pokud máte v úmyslu mít integraci Crouton, použijte prosím knihovnu zde a použijte nainstalovaný příklad „attiny_heartbeat“

Je potřeba AttinyCore od Správce desek. Vypálit zavaděč „EEPROM zachován“, „8 mHZ interní“(veškerá konfigurace zobrazena výše).

Úložiště kódů najdete zde.

ZIP knihovny najdete zde.

Pokyny pro „Import ZIP knihovny“zde.

Jakmile je knihovna nainstalována, můžete otevřít příklad „attiny_heartbeat“.

Chcete -li nahrát firmware do ATTINY85, můžete najít další podrobnosti v těchto pokynech:

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

Před pokračováním je nejlepší otestovat pomocí prkénka.

Pokud máte existující ASSIMILOVANÉ SENZORY, ujistěte se, že adresa slave je odlišná v kombinaci SENSOR/MCU Host, např. všichni herci relé mohou mít stejnou adresu, pokud máte na MCU/uzlu pouze jednoho herce relé.

Krok 3: Sestavení indikátorů

Sestavení indikátorů
Sestavení indikátorů
Sestavení indikátorů
Sestavení indikátorů
Sestavení indikátorů
Sestavení indikátorů

Indikátory mají být plně přizpůsobitelné. Jsou to signály událostí z hlavního okruhu, které jsou vnímány jako prezenční signály. Pro toto sestavení použijeme LED indikátory; vaše sestava může používat relé (ano, VCC je přerušeno) nebo jiný vizuální/signálový indikátor. Hodnoty odporu budou záviset na osobních preferencích toho, jak jasné je chcete mít.

  1. Nahoře vložte modrou LED do RED1 (+) a BLACK1 (G) a pájejte dole.
  2. Ve spodní části ohněte vývod z RED1 tak, aby se dotýkal měděné podložky na SILVER8 a ořízněte.
  3. Na spodní straně ořízněte vývod z BLACK1 nad pájkou.
  4. Nahoře vložte zelenou LED do RED2 (+) a BLACK2 (G) a pájejte dole.
  5. Ve spodní části ohněte vývod z RED2 tak, aby se dotýkal měděné podložky na SILVER9 a ořízněte.
  6. Na spodní straně ořízněte vývod z BLACK2 nad pájkou.
  7. Nahoře vložte červenou LED do RED3 (+) a BLACK3 (G) a pájejte dole.
  8. Ve spodní části ohněte vývod z RED3 tak, aby se dotýkal měděné podložky na SILVER10 a ořízněte.
  9. Na spodní straně ořízněte vývod z BLACK3 nad pájkou.
  10. Nahoře vložte 1K odpor do průchozích otvorů SILVER1 a SILVER4.
  11. Na spodní straně sledujte, ořezávejte a pájejte přívod od SILVER1 k BLACK1.
  12. Nahoře vložte 1K odpor do průchozích otvorů SILVER2 a SILVER4.
  13. Na spodní straně sledujte, ořezávejte a pájejte přívod od SILVER2 k BLACK2.
  14. Nahoře vložte 1K odpor do průchozích otvorů SILVER3 a SILVER4.
  15. Na spodní straně sledujte, ořezávejte a pájejte přívod od SILVER3 k BLACK3.
  16. Na spodní straně pájecí vodiče na SILVER4 a ořízněte asi 5 mm.
  17. Na spodní straně připájejte černý vodič na SILVER4.
  18. Na spodní straně připájejte bílý vodič do SILVER5, čímž zajistíte kontinuitu vedení od RED1.
  19. Na spodní straně připájejte žlutý vodič do SILVER6, čímž zajistíte kontinuitu vedení od RED2.
  20. Na spodní straně připájejte oranžový vodič do SILVER7, čímž zajistíte kontinuitu vedení od RED3.

Krok 4: Sestavení hlavního obvodu

Sestavení hlavního obvodu
Sestavení hlavního obvodu
Sestavení hlavního obvodu
Sestavení hlavního obvodu
Sestavení hlavního obvodu
Sestavení hlavního obvodu

Shromáždění:

  1. Na přední stranu vložte součásti ATTINY85 (1), 3P 90deg zástrčky (2) (3), 3P zástrčky (4) (5) a pájku na zadní straně.
  2. Na zadní straně sledujte žlutý vodič od ŽLUTÉ1 k ŽLUTÉ2 a pájejte.
  3. Na zadní straně sledujte oranžový vodič z ORANGE1 na ORANGE2 a pájejte.
  4. Na zadní straně sledujte modrý vodič z BLUE1 na BLUE2 a pájejte.
  5. Na zadní straně sledujte zelený vodič od ZELENÉ1 do ZELENÉ2 a pájejte.
  6. Na zadní straně sledujte bílý vodič od WHITE1 do WHITE2 a pájejte.
  7. Na zadní straně sledujte černý vodič z BLACK1 na BLACK2 a pájejte.
  8. Na zadní straně sledujte černý vodič z BLACK3 na BLACK4 a pájejte.
  9. Na zadní straně sledujte červený vodič z RED1 na RED2 a pájejte.
  10. Na zadní straně sledujte holý vodič z RED3 na RED4 a pájejte.
  11. Na zadní straně sledujte holý vodič od SILVER1 do SILVER2 a pájejte.
  12. Přidejte propojku na vedení 5V nebo 3V3.

Pokud používáte indikátory výše (viz diagram vývodů):

  1. Na zadní straně připájejte bílý vodič do PB1.
  2. Na zadní straně připájejte žlutý vodič do PB3.
  3. Na zadní straně připájejte oranžový vodič do PB4.
  4. Na zadní straně pájte černý vodič do GND.

Krok 5: Testování

Testování
Testování
Testování
Testování
Testování
Testování
Testování
Testování

Očekává se, že řada těchto BRICKS bude na více uzlech (MCU - ESP8266 nebo ATTINY84) v prostředí. Toto je test jednotky: odesílá příkazy I2C z UNO do ATTINY, které přepínají LED přijímače. Kontrolka ATTINY ALIVE zůstane svítit.

Dříve jsme pro Arduino postavili I2C SHIELD.

Chcete -li místo toho místo:

  1. Připojte 5,0 V na UNO k VCC na BRICK.
  2. Připojte GND na UNO k GND na BRICK.
  3. Připojte A5 na UNO k SCL na BRICK.
  4. Připojte A4 na UNO k SDA na BRICK.
  5. Připojte stahovací odpor 4K7 z SDA do VCC.
  6. Připojte stahovací odpor 4K7 z SCL do VCC.

Spuštění testu

  1. Připojte svůj UNO k vašemu Dev PC pomocí USB.
  2. Nahrajte kód do UNO.
  3. Otevřete konzolu Arduino.
  4. Vyberte 9600 baudů (restartujte UNO a znovu otevřete konzolu, pokud musíte).
  5. Adresa otroka se vytiskne na konzolu.
  6. Kdy zadejte do pole pro odeslání 2 1 (tedy 16 2 1) a rozsvítí se kontrolka LED příjmu.
  7. Kdy zadejte do pole pro odeslání 2 0 (tedy 16 2 0) a LED dioda pro příjem zhasne.

I2C BRICK adhoc příkazy pro slave od UNO master

#zahrnout
konstantní bajt _num_chars = 32;
char _received_chars [_num_chars]; // pole pro uložení přijatých dat
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println („ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR“);
Serial.println („zajistit, aby byl v okně konzoly vybrán nový řádek“);
Serial.println ();
Serial.println („ADRESA 1 POTVRZENÍ PŘIJÍMÁNÍ METADAT NEDOSTUPNÉ (PRO M2M)“);
Serial.println ("ADDRESS 2 ACTOR COMMAND");
Serial.println ();
Serial.println ("ADRESY NA AUTOBUSU:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int počet_zařízení = 0;
pro (adresa bytu = 8; adresa <127; adresa ++)
{
Wire.beginTransmission (adresa);
chyba konstantního bajtu = Wire.endTransmission ();
if (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;
}
}
jinak {
_received_chars [ndx] = '\ 0'; // ukončí řetězec
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String receive_string = String (_received_chars);
if (_has_new_data == true) {
int idx1 = receive_string.indexOf ('');
Řetězcová adresa = obdrženo_string.substring (0, idx1);
int adresa_int = adresa.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("NEPLATNÝ VSTUP ADRESY:");
Serial.println (adresa);
vrátit se;
}
int idx2 = obdržel_string.indexOf ('', idx1+1);
Řetězcový kód;
if (idx2 == -1) {
kód = přijatý_řetězec.substring (idx1+1);
}jiný{
kód = přijatý_řetězec.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);
vrátit se;
}
bool has_parameter = idx2> -1;
Řetězec parametr;
if (has_parameter) {
parametr = přijatý_řetězec.substring (idx2 + 1, idx2 + 17); // max. 16 znaků
if (parameter.length () <1) {
Serial.println ("MINIMÁLNÍ PARTAMETER. DÉLKA 1");
_has_new_data = false;
vrátit se;
}
}jiný{
if (code_int> 1) {
Serial.println („PARAMETER REQUIRED!“);
_has_new_data = false;
vrátit se;
}
}
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 ("parametr =");
Serial.println (parametr);
// ODESLAT PŘES 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 („ODESLÁNO PŘES I2C!“);
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

zobrazit rawuno_i2c_command_input.ino hostované s ❤ od GitHub

Krok 6: Další kroky

Další kroky
Další kroky
Další kroky
Další kroky

Navazující ASSIMILATE ACTOR: HEARTBEAT, který používá tuto cihlu, má automatickou konfiguraci pro Crouton prostřednictvím metadat již nainstalovaných v ATTINY85 zde. Paket JSON odeslaný společnosti Crouton je odeslán prostřednictvím nejnovějšího firmwaru pro ICOS10. Proof-of-concept můžete udělat na obyčejném ESP8266, pokud je sestavení prozatím příliš.

Náčrt UNO použitý v Testování má funkci pro uložení nové adresy slave do EEPROM na ATTINY85, pokud dojde ke střetu na vaší cílové sběrnici I2C.

Doporučuje: