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 KY019 BRICK: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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 KY019 BRICK je první z HERCŮ a má jednu vlastnost čtení/zápis:
Přepínač (true/false)
Senzorové cihly typu Keyes budou nejprve odebrány, protože přicházejí s vitamíny (potřebné další komponenty) a jsou relativně levné (koupil jsem 37 za 10AUD). Na I2C BRICKS budou představeny další desky/obvody.
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ů.
- Relé KY-019 (1)
- ATTINY85 20PU (1)
- 1 "oboustranný protoboard (1)
- Záhlaví 90 ° (3P, 3P)
- Propojovací vodič (~ 7)
- Pájka a železo (1)
Krok 2: Připravte ATTINY85
POZNÁMKA: Pokud máte v úmyslu mít integraci Crouton, použijte prosím knihovnu odtud a použijte nainstalovaný příklad „attiny_ky019“.
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_ky019“.
Chcete -li nahrát firmware do ATTINY85, můžete najít další podrobnosti v těchto pokynech:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
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) 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 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 červený vodič z RED3 na RED4 a pájejte.
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é relé otevírá nebo zavírá.
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 v případě potřeby znovu otevřete konzolu).
- Adresa otroka se vytiskne do konzoly.
- Kdy zadejte do pole pro odeslání 2 1 (tedy 12 2 1) a relé sepne.
- Kdy zadejte do pole pro odeslání 2 0 (tedy 12 2 0) a relé 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: KY019, 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 - ASIMIMÁLNÍ HEREC: KY019: 4 kroky
IOT123 - ASSIMILATE ACTOR: KY019: Je s 5V řídicím signálem TIL, který může ovládat signál DC / AC. Toto sestavení je založeno na I2C KY019 BRICK. Pokud potřebujete 2 kanály, doporučuji vyměnit tohoto herce za 2CH RELAY BRICK. ASIMIMÁLNÍ HERCI/SENZORI jsou aktéři prostředí/senso
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