Obsah:

IOT123 - I2C 2CH RELAY BRICK: 5 kroků (s obrázky)
IOT123 - I2C 2CH RELAY BRICK: 5 kroků (s obrázky)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 kroků (s obrázky)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 kroků (s obrázky)
Video: IOT123 - ICOS10: STRUCTURE 2024, Listopad
Anonim
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ BRICK
IOT123 - I2C 2CH RELÉ 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.

Tento I2C 2CH RELAY BRICK rozšiřuje funkčnost I2C KY019 BRICK a má dvě vlastnosti pro čtení/zápis:

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

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

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

K dispozici je úplný seznam materiálu a zdrojů.

  1. 2kanálové relé (1)
  2. ATTINY85 20PU (1)
  3. 1 "oboustranný protoboard (1)
  4. Záhlaví 90 ° (3P, 3P)
  5. Zástrčka (2P, 2P)
  6. Jumper Shunt (1)
  7. Propojovací vodič (~ 7)
  8. 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

POZNÁMKA: Pokud hodláte mít integraci Crouton, použijte prosím knihovnu odtud a použijte nainstalovaný příklad „attiny_2ch_relay“.

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

Chcete-li nahrát firmware do ATTINY85, najdete další podrobnosti v těchto instrukčních tabulkách:

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

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 v kombinaci hostitele SENSOR/MCU odlišná, tj. Všichni herci relé mohou mít stejnou adresu, pokud máte na MCU/uzlu pouze jednoho aktéra relé.

Krok 3: Sestavte obvod

Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod
  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 černý vodič z BLACK1 na BLACK2 a pájejte.
  7. Na zadní straně sledujte černý vodič z BLACK3 na BLACK4 a pájejte.
  8. Na zadní straně sledujte červený vodič z RED1 na RED2 a pájejte.
  9. Na zadní straně sledujte holý vodič z RED3 na RED4 a pájejte.
  10. Na zadní straně sledujte holý vodič od SILVER1 do SILVER2 a pájejte.
  11. Přidejte propojku na vedení 5V nebo 3V3.

Relé lze nyní připojit přímo přes jeho piny na desku plošných spojů nebo pomocí vodičů na body uvedené ve smlouvě o kolíku.

Krok 4: 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é otevírají nebo zavírají relé.

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 0: 1 (tedy 15 2 0: 1) a relé CH1 se zapne.

  7. Když do pole pro odeslání zadejte 2 0: 0 (tedy 15 2 0: 0), relé CH1 se vypne.
  8. Kdy, zadejte do pole pro odeslání 2 1: 1 (tedy 15 2 1: 1) a relé CH2 se zapne.
  9. Když zadejte do pole pro odeslání 2 1: 0 (tedy 15 2 0: 0) a relé CH2 se vypne.

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 5: Další kroky

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

Navazující ASSIMILATE ACTOR: 2CH RELAY, 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. Bylo přidáno několik schémat, ale existují různé způsoby, jak zapojit navazující obvod v závislosti na tom, čeho chcete dosáhnout, takže to nechám na vás:)

Doporučuje: