ዝርዝር ሁኔታ:

IOT123 - I2C 2CH RELAY BRICK: 5 ደረጃዎች (ከስዕሎች ጋር)
IOT123 - I2C 2CH RELAY BRICK: 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: IOT123 - I2C 2CH RELAY BRICK: 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: IOT123 - I2C 2CH RELAY BRICK: 5 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: IOT123 - ICOS10: STRUCTURE 2024, ሰኔ
Anonim
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK

IOT123 BRICKS በመስቀለኛ መንገድ ወይም በሚለብስ ተግባር ላይ ለመጨመር ከሌሎች IOT123 BRICKS ጋር ሊደባለቁ የሚችሉ DIY ሞዱል አሃዶች ናቸው። እነሱ በ ኢንች ካሬ ፣ ባለ ሁለት ጎን ፕሮቶቦርዶች ቀዳዳዎች በኩል እርስ በእርስ የተገናኙ ናቸው።

የእነዚህ BRICKS ብዛት በአንድ ጣቢያ ላይ በበርካታ መስቀሎች (ማስተር MCUs - ESP8266 ወይም ATTINY84) ላይ እንደሚሆን ይጠበቃል። MCU ስለ ዳሳሾች ዓላማ ወይም የሶፍትዌር ፍላጎቶች ቅድመ ዕውቀት አያስፈልገውም። ለ I2C አንጓዎች ይቃኛል ከዚያም ከእያንዳንዱ ባሪያ የንብረት መጣል (ዳሳሽ መረጃ) ይጠይቃል። እነዚህ BRICKs 5.0V ፣ 3.3V እና ሊበጅ የሚችል ሌላ የ AUX መስመር ይሰጣሉ።

ይህ I2C 2CH RELAY BRICK የ I2C KY019 BRICK ተግባራዊነትን ያሰፋዋል ፣ እና ሁለት የንባብ/የመፃፍ ባህሪዎች አሉት

2CH RELAYS [0] (እውነት/ሐሰት)።

2CH RELAYS [1] (እውነት/ሐሰት)።

DIP8 ወደ ፒሲቢ በሚሸጥበት ጊዜ የፖጎ ፒን ፕሮግራም አዘጋጅን ለማንቃት ከ ATTINY85 አቅራቢያ ያሉት ቀዳዳዎች ጥቅም ላይ አልዋሉም። አንድ ተጨማሪ ረቂቅ ፣ እሴቶቹን ወደ MQTT አገልጋይ በማፍሰስ በ D1M WIFI BLOCK ማዕከል ውስጥ በሚሰኩ ትናንሽ ሲሊንደሮች ውስጥ BRICKS ን በማሸግ ላይ እየተገነባ ነው።

ደረጃ 1: ቁሳቁሶች እና መሳሪያዎች

ቁሳቁሶች እና መሳሪያዎች
ቁሳቁሶች እና መሳሪያዎች
ቁሳቁሶች እና መሳሪያዎች
ቁሳቁሶች እና መሳሪያዎች
ቁሳቁሶች እና መሳሪያዎች
ቁሳቁሶች እና መሳሪያዎች

ሙሉ የቁሳቁስ እና የመረጃ ምንጭ ዝርዝር አለ።

  1. 2 የሰርጥ ማስተላለፊያ (1)
  2. ATTINY85 20PU (1)
  3. 1 "ባለ ሁለት ጎን ፕሮቶቦር (1)
  4. ወንድ ራስጌ 90º (3 ፒ ፣ 3 ፒ)
  5. ወንድ ራስጌ (2 ፒ ፣ 2 ፒ)
  6. Jumper Shunt (1)
  7. የሚገጣጠም ሽቦ (~ 7)
  8. ብረት እና ብረት (1)

ደረጃ 2 ATTINY85 ን ያዘጋጁ

ATTINY85 ን ያዘጋጁ
ATTINY85 ን ያዘጋጁ
ATTINY85 ን ያዘጋጁ
ATTINY85 ን ያዘጋጁ
ATTINY85 ን ያዘጋጁ
ATTINY85 ን ያዘጋጁ

ማሳሰቢያ - የ Crouton ውህደት እንዲኖርዎት ከፈለጉ እባክዎን ቤተ -መጽሐፍቱን ከዚህ ይጠቀሙ እና የተጫነውን “attiny_2ch_relay” ይጠቀሙ።

AttinyCore ከቦርዶች ሥራ አስኪያጅ ያስፈልጋል። የማስነሻ ጫloadውን “EEPROM እንደያዘ” ፣ “8mHZ ውስጣዊ” (ከላይ የሚታየው ሁሉም ውቅር) ያቃጥሉ።

የኮድ ማከማቻ እዚህ ይገኛል።

የቤተ መፃህፍት ዚፕ እዚህ ይገኛል።

የ «ዚፕ ቤተ -መጽሐፍትን ማስመጣት» መመሪያዎች እዚህ።

ቤተ -መጽሐፍቱ አንዴ ከተጫነ “attiny_2ch_relay” የሚለውን ምሳሌ መክፈት ይችላሉ።

Firmware ን ወደ ATTINY85 ለመስቀል በእነዚህ ዝርዝሮች ውስጥ ተጨማሪ ዝርዝሮችን ማግኘት ይችላሉ-

www.instructables.com/id/ እንዴት-በፕሮግራም-ሀ…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

ከመቀጠልዎ በፊት በዳቦ ሰሌዳ በኩል መሞከር የተሻለ ነው።

ነባር ASSIMILATE SENSORS ካሉዎት ፣ በ MCU/node ላይ አንድ የ Relay ተዋናይ እስካለዎት ድረስ የባሪያ አድራሻው በ SENSOR/MCU አስተናጋጅ ጥምረት ላይ የተለየ መሆኑን ያረጋግጡ።

ደረጃ 3 ወረዳውን ይሰብስቡ

ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
  1. ከፊት ለፊት ፣ አካላቶቹን ATTINY85 (1) ፣ 3P 90deg ወንድ ራስጌዎች (2) (3) ፣ 3 ፒ ወንድ ራስጌዎች (4) (5) እና በኋለኛው ላይ እንዲሸጡ ያድርጉ።
  2. ከኋላው ፣ ቢጫ ሽቦን ከ YELLOW1 እስከ YELLOW2 እና solder ይከታተሉ።
  3. ከኋላዎ ፣ የብርቱካን ሽቦን ከ ORANGE1 ወደ ORANGE2 እና በሻጩ ይከታተሉ።
  4. ከኋላው ፣ ሰማያዊ ሽቦን ከ BLUE1 ወደ BLUE2 እና በሻጩ ይከታተሉ።
  5. ከኋላ ፣ አረንጓዴ ሽቦን ከ GREEN1 እስከ GREEN2 እና በሻጩ ይከታተሉ።
  6. ከኋላው ፣ ጥቁር ሽቦን ከ BLACK1 ወደ BLACK2 እና በሻጩ ይከታተሉ።
  7. ከኋላው ፣ ጥቁር ሽቦን ከ BLACK3 እስከ BLACK4 እና solder ይከታተሉ።
  8. ከኋላው ፣ ቀይ ሽቦን ከ RED1 ወደ RED2 እና በሻጩ ይከታተሉ።
  9. ከኋላ በኩል ከ RED3 እስከ RED4 እና ብየዳውን ባዶ ሽቦ ይከታተሉ።
  10. ከኋላው ፣ ከ SILVER1 እስከ SILVER2 እና በሻጩ ላይ ባዶ ሽቦን ይከታተሉ።
  11. በ 5 ቮ ወይም 3 ቪ 3 መስመር ላይ ዝላይን ያክሉ።

ማስተላለፊያው አሁን በፒን ኮንትራቱ ላይ ወደሚታዩት ነጥቦች በቀጥታ በፒሲቢው ወይም በሽቦዎች በኩል ሊገናኝ ይችላል።

ደረጃ 4: ሙከራ

ሙከራ
ሙከራ
ሙከራ
ሙከራ
ሙከራ
ሙከራ
ሙከራ
ሙከራ

ከእነዚህ ውስጥ በርካታ ቁጥቋጦዎች በአንድ አካባቢ ውስጥ በበርካታ መስቀሎች (MCUs - ESP8266 ወይም ATTINY84) ላይ እንደሚገኙ ይጠበቃል። ይህ የአሃድ ሙከራ ነው - I2C ትዕዛዞችን ከ UNO ወደ ATTINY ይልካል ወይም ቅብብሎቹን ይዘጋል።

ከዚህ በፊት ለአርዱዲኖ I2C SHIELD ገንብተናል።

በምትኩ የዳቦ ሰሌዳውን ከፈለጉ -

  1. 5.0V በ UNO ላይ ከ VCC ጋር በብሪክ ላይ ያገናኙ።
  2. GND ን ከ UNO ወደ GND በብሪክ ላይ ያገናኙ።
  3. A5 ን በ UNO ላይ ከ SCL ጋር በብሪክ ላይ ያገናኙ።
  4. A4 ን በ UNO ላይ ከ SDA ጋር በብሪክ ላይ ያገናኙ።
  5. የ 4K7 መጎተቻ ተከላካይ ከ SDA ወደ VCC ያገናኙ።
  6. የ 4K7 መጎተቻ ተከላካይ ከ SCL ወደ VCC ያገናኙ።

ፈተናውን ማካሄድ።

  1. በዩኤስቢ የእርስዎን UNO ከእርስዎ Dev PC ጋር ያገናኙ።
  2. ኮዱን ወደ UNO ይስቀሉ።
  3. አርዱዲኖ ኮንሶልን ይክፈቱ።
  4. 9600 baud ን ይምረጡ (UNO ን እንደገና ያስጀምሩ እና ካስፈለገዎት ኮንሶሉን እንደገና ይክፈቱ)።
  5. የባሪያው አድራሻ ወደ ኮንሶል ያትማል።
  6. መቼ ፣ በመላኪያ ሳጥኑ 2 0: 1 (ስለዚህ 15 2 0: 1) ውስጥ ያስገቡ ፣ እና የ CH1 ቅብብል በርቷል።

  7. መቼ ፣ በመላኪያ ሳጥኑ 2 0: 0 (ስለዚህ 15 2 0: 0) ውስጥ ያስገቡ ፣ እና የ CH1 ቅብብል ይጠፋል።
  8. መቼ ፣ በመላኪያ ሳጥኑ 2 1: 1 ውስጥ ያስገቡ (ስለዚህ 15 2 1: 1) ፣ እና የ CH2 ቅብብል በርቷል።
  9. መቼ ፣ በመላኪያ ሳጥኑ 2 1: 0 (ስለዚህ 15 2 0: 0) ውስጥ ያስገቡ ፣ እና የ CH2 ቅብብል ይጠፋል።

I2C BRICK adhoc ከ UNO ጌታ ለባሮች ትእዛዝ ይሰጣል።

#ያካትቱ
const byte _num_chars = 32;
ቻር _የተቀበሉ_ሻር [_num_chars]; // የተቀበለውን ውሂብ ለማከማቸት ድርድር
ቡሊያን _አዲስ_ዳታ = ሐሰት;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println (“በኮንሶል መስኮት ውስጥ የተመረጠውን አዲስ መስመር ያረጋግጡ”);
Serial.println ();
ተከታታይ።
Serial.println ("አድራሻ 2 ተዋናይ ትዕዛዝ");
Serial.println ();
Serial.println ("በአውቶቡስ ላይ አድራሻዎች:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
ለ (ባይት አድራሻ = 8 ፤ አድራሻ <127 ፤ አድራሻ ++)
{
Wire.begin ማስተላለፊያ (አድራሻ);
const ባይት ስህተት = Wire.endTransmission ();
ከሆነ (ስህተት == 0)
{
Serial.println (አድራሻ);
}
}
}
voidloop () {
recv_w_marker () ጋር;
ላክ_to_i2c ();
}
voidrecv_with_end_marker () {
የማይንቀሳቀስ ባይት ndx = 0;
char end_marker = '\ n';
char rc;
ሳለ (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
ከሆነ (rc! = end_marker) {
_የተቀበሉ_ሸቀጦች [ndx] = rc;
ndx ++;
ከሆነ (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
ሌላ {
_የተቀበሉ_ሸቀጦች [ndx] = '\ 0'; // ሕብረቁምፊውን ያቋርጡ
ndx = 0;
_አዲስ_ዳታ = እውነት;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String received_string = String (_received_chars);
ከሆነ (_has_new_data == እውነት) {
int idx1 = received_string.indexOf ('');
ሕብረቁምፊ አድራሻ = የተቀበለው_string.substring (0 ፣ idx1);
int address_int = address.toInt ();
ከሆነ (address_int <8 || address_int> 127) {
Serial.println ("ልክ ያልሆነ የአድራሻ ግብዓት:");
Serial.println (አድራሻ);
መመለስ;
}
int idx2 = received_string.indexOf ('', idx1+1);
ሕብረቁምፊ ኮድ;
ከሆነ (idx2 == -1) {
ኮድ = የተቀበለው_ገመድ.substring (idx1+1);
} ሌላ {
ኮድ = የተቀበለው_ገመድ.substring (idx1+1 ፣ idx2+1);
}
int code_int = code.toInt ();
ከሆነ (code_int <0 || code_int> 5) {
Serial.println ("ልክ ያልሆነ ኮድ ማስገቢያ:");
Serial.println (ኮድ);
መመለስ;
}
bool has_parameter = idx2> -1;
ሕብረቁምፊ መለኪያ;
(ካለ_ፓራሜትር) {
መለኪያ = የተቀበለው_ገመድ.substring (idx2 + 1 ፣ idx2 + 17); // 16 chars ቢበዛ
ከሆነ (መለኪያ። ርዝመት () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_አዲስ_ዳታ = ሐሰት;
መመለስ;
}
} ሌላ {
ከሆነ (code_int> 1) {
Serial.println ("PARAMETER ያስፈልጋል!");
_አዲስ_ዳታ = ሐሰት;
መመለስ;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (የተቀበለው_ገመድ);
Serial.print ("አድራሻ =");
Serial.println (አድራሻ);
Serial.print ("ኮድ =");
Serial.println (ኮድ);
Serial.print ("መለኪያ =");
Serial.println (መለኪያ);
// በ I2C በኩል ይላኩ
Wire.begin ማስተላለፊያ (address_int);
Wire.write (code_int);
(ካለ_ፓራሜትር) {
መለኪያ.ትሪም ();
strcpy (param_buf ፣ parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("በ I2C በኩል ተልኳል!");
Serial.println ();
Serial.println ("");
_አዲስ_ዳታ = ሐሰት;
}
}

በ GitHub የተስተናገደ rawuno_i2c_command_input.ino ን ይመልከቱ

ደረጃ 5: ቀጣይ እርምጃዎች

ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች
ቀጣይ እርምጃዎች

ተከታይ ASSIMILATE ACTOR: 2CH RELAY ይህንን ጡብ የሚጠቀም ቀድሞውኑ በ ATTINY85 ውስጥ በተጫነው ሜታዳታ በኩል ለ Crouton አውቶማቲክ ውቅር አለው። ለ Crouton የተላከው የ JSON ፓኬት ለ ICOS10 የቅርብ ጊዜ firmware በኩል ይላካል። ግንባታው ለአሁን በጣም ብዙ ከሆነ በተለመደው ESP8266 ላይ የማረጋገጫ-ፅንሰ-ሀሳብ ማድረግ ይችላሉ።

በ I2C አውቶቡስ ላይ ግጭት ካጋጠመዎት በፈተና ውስጥ ጥቅም ላይ የዋለው የ UNO ንድፍ አዲስ የባሪያን አድራሻ በ EETOM በ ATTINY85 ላይ የማስቀመጥ ተግባር አለው። ጥቂት መርሃግብሮች ተጨምረዋል ፣ ግን ሊያገኙት በሚፈልጉት ላይ በመመስረት የታችኛውን ተፋሰስ ወረዳ ለማገናኘት የተለያዩ መንገዶች አሉ ፣ ስለዚህ ያንን እተውልዎታለሁ:)

የሚመከር: