Obsah:
- Krok 1: Materiály a nástroje
- Krok 2: Připravte ATTINY85
- Krok 3: Sestavte obvod
- Krok 4: Testování
- Krok 5: Další kroky
Video: IOT123 - I2C 2CH RELAY BRICK: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
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
K dispozici je úplný seznam materiálu a zdrojů.
- 2kanálové relé (1)
- ATTINY85 20PU (1)
- 1 "oboustranný protoboard (1)
- Záhlaví 90 ° (3P, 3P)
- Zástrčka (2P, 2P)
- Jumper Shunt (1)
- Propojovací vodič (~ 7)
- Pájka a železo (1)
Krok 2: Připravte 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
- 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ě.
- Na zadní straně sledujte žlutý vodič od ŽLUTÉ1 k ŽLUTÉ2 a pájejte.
- Na zadní straně sledujte oranžový vodič z ORANGE1 na ORANGE2 a pájejte.
- Na zadní straně sledujte modrý vodič z BLUE1 na BLUE2 a pájejte.
- Na zadní straně sledujte zelený vodič od ZELENÉ1 do ZELENÉ2 a pájejte.
- Na zadní straně sledujte černý vodič z BLACK1 na BLACK2 a pájejte.
- Na zadní straně sledujte černý vodič z BLACK3 na BLACK4 a pájejte.
- Na zadní straně sledujte červený vodič z RED1 na RED2 a pájejte.
- Na zadní straně sledujte holý vodič z RED3 na RED4 a pájejte.
- Na zadní straně sledujte holý vodič od SILVER1 do SILVER2 a pájejte.
- 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í
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:
- Připojte 5,0 V na UNO k VCC na BRICK.
- Připojte GND na UNO k GND na BRICK.
- Připojte A5 na UNO k SCL na BRICK.
- Připojte A4 na UNO k SDA na BRICK.
- Připojte stahovací odpor 4K7 z SDA do VCC.
- Připojte stahovací odpor 4K7 z SCL do VCC.
Spuštění testu
- Připojte svůj UNO k vašemu Dev PC pomocí USB.
- Nahrajte kód do UNO.
- Otevřete konzolu Arduino.
- Vyberte 9600 baudů (restartujte UNO a znovu otevřete konzolu, pokud musíte).
- Adresa otroka se vytiskne na konzolu.
-
Kdy zadejte do pole pro odeslání 2 0: 1 (tedy 15 2 0: 1) a relé CH1 se zapne.
- Když do pole pro odeslání zadejte 2 0: 0 (tedy 15 2 0: 0), relé CH1 se vypne.
- Kdy, zadejte do pole pro odeslání 2 1: 1 (tedy 15 2 1: 1) a relé CH2 se zapne.
- 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
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:
Arduino Brick Color Sorter Project: 5 kroků
Arduino Brick Color Sorter Project: V tomto Arduino tutoriálu se naučíme, jak detekovat barvy mé cihly pomocí Arduina a barevného senzoru TCS3200. Další podrobnosti si můžete přečíst níže v písemném tutoriálu. Materiály: Arduino Leonardo x 1TCS3200 x 1 Mnoho kartonu180 servo
IOT123 - D1M BLOCK - sestava 2xAMUX: 7 kroků (s obrázky)
IOT123 - D1M BLOCK - 2xAMUX Sestava: D1M BLOCKS přidává hmatová pouzdra, štítky, vodítka polarity a vylomeniny pro oblíbené Wemos D1 Mini SOC/Shields/Clones. Jedním z problémů s čipem ESP8266 je, že má k dispozici pouze jeden analogový IO pin. Tento návod ukazuje, jak sestavit 2xA
IOT123 - LIR2032 BATTERY BRICK: 4 kroky
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS jsou modulární jednotky DIY, které lze kombinovat s jinými IOT123 BRICKS a přidávat tak funkce do uzlu nebo nositelné. Jsou založeny na palcových čtvercových, oboustranných protoboardech s propojenými průchozími otvory. Ačkoli instrukce
IOT123 - 3,3V NAPÁJECÍ BRICK: 4 kroky
IOT123 - 3,3 V POWER BRICK: IOT123 BRICKS jsou modulární jednotky DIY, 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 s propojenými průchozími otvory. Ačkoli instrukce
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 kroky
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Toto nastavení je z velké části akademické nebo je základem pro testování softwaru/napájecího zdroje. I když je PB5 deaktivován jako RESET, nečte hodnoty přesně pomocí analogRead: hlavní případ použití pro čtení ze senzorů. Nahlédne do nastavení ATTINY84