Obsah:

IOT123 - I2C KY019 BRICK: 5 kroků
IOT123 - I2C KY019 BRICK: 5 kroků

Video: IOT123 - I2C KY019 BRICK: 5 kroků

Video: IOT123 - I2C KY019 BRICK: 5 kroků
Video: Keyboard PCB | Serial output | Alphabet Numbers Signs 2024, Listopad
Anonim
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 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 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

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. Relé KY-019 (1)
  2. ATTINY85 20PU (1)
  3. 1 "oboustranný protoboard (1)
  4. Záhlaví 90 ° (3P, 3P)
  5. Propojovací vodič (~ 7)
  6. 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 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

Sestavte obvod
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) 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 modrý vodič z BLUE1 na BLUE2 a pájejte.
  4. Na zadní straně sledujte zelený vodič od ZELENÉ1 do ZELENÉ2 a pájejte.
  5. Na zadní straně sledujte černý vodič z BLACK1 na BLACK2 a pájejte.
  6. Na zadní straně sledujte černý vodič z BLACK3 na BLACK4 a pájejte.
  7. Na zadní straně sledujte červený vodič z RED1 na RED2 a pájejte.
  8. 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í

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é relé otevírá nebo zavírá.

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. Vyberte 9600 baudů (restartujte UNO a v případě potřeby znovu otevřete konzolu).
  4. Adresa otroka se vytiskne do konzoly.
  5. Kdy zadejte do pole pro odeslání 2 1 (tedy 12 2 1) a relé sepne.
  6. 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

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