ዝርዝር ሁኔታ:

IOT123 - I2C KY019 BRICK: 5 ደረጃዎች
IOT123 - I2C KY019 BRICK: 5 ደረጃዎች

ቪዲዮ: IOT123 - I2C KY019 BRICK: 5 ደረጃዎች

ቪዲዮ: IOT123 - I2C KY019 BRICK: 5 ደረጃዎች
ቪዲዮ: Keyboard PCB | Serial output | Alphabet Numbers Signs 2024, ሀምሌ
Anonim
IOT123 - I2C KY019 ጡብ
IOT123 - I2C KY019 ጡብ
IOT123 - I2C KY019 ጡብ
IOT123 - I2C KY019 ጡብ

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

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

ይህ I2C KY019 BRICK ከተዋንያን የመጀመሪያው ነው ፣ እና አንድ የንባብ/የመፃፍ ንብረት አለው-

ቀይር (እውነት/ሐሰት)።

የቪታሚኖች (ተጨማሪ ክፍሎች ያስፈልጋሉ) ተካትተው በአንፃራዊነት ቼፕ ስለሆኑ የ Keyes ዓይነት ዳሳሽ ጡቦች በመጀመሪያ ረቂቅ ይሆናሉ (37 ለ 10AUD ገዛሁ)። ሌሎች ቦርዶች/ወረዳዎች ከ I2C BRICKS ጋር ይተዋወቃሉ።

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

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

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

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

  1. KY-019 Relay (1)
  2. ATTINY85 20PU (1)
  3. 1 "ባለ ሁለት ጎን ፕሮቶቦር (1)
  4. ወንድ ራስጌ 90º (3 ፒ ፣ 3 ፒ)
  5. የሚገጣጠም ሽቦ (~ 7)
  6. ብረት እና ብረት (1)

ደረጃ 2 ATTINY85 ን ያዘጋጁ

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

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

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

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

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

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

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

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

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

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

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

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

www.instructables.com/id/Programming-an-At…

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

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

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

ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
ወረዳውን ሰብስብ
  1. ከፊት በኩል ፣ ATTINY85 (1) ፣ 3P 90deg የወንድ ራስጌዎች (2) (3) ፣ እና ከኋላ በኩል የሚሸጡትን ክፍሎች ያስገቡ።
  2. ከኋላው ፣ ቢጫ ሽቦን ከ YELLOW1 እስከ YELLOW2 እና solder ይከታተሉ።
  3. ከኋላው ፣ ሰማያዊ ሽቦን ከ BLUE1 ወደ BLUE2 እና በሻጩ ይከታተሉ።
  4. ከኋላ ፣ አረንጓዴ ሽቦን ከ GREEN1 እስከ GREEN2 እና በሻጩ ይከታተሉ።
  5. ከኋላው ፣ ጥቁር ሽቦን ከ BLACK1 ወደ BLACK2 እና በሻጩ ይከታተሉ።
  6. ከኋላው ፣ ጥቁር ሽቦን ከ BLACK3 እስከ BLACK4 እና solder ይከታተሉ።
  7. ከኋላው ፣ ቀይ ሽቦን ከ RED1 ወደ RED2 እና በሻጩ ይከታተሉ።
  8. ከኋላዎ ፣ ቀይ ሽቦን ከ RED3 ወደ RED4 እና በሻጩ ይከታተሉ።

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

ደረጃ 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. የ Arduino Console ን ይክፈቱ። 9600 baud ን ይምረጡ (UNO ን እንደገና ያስጀምሩ እና ካስፈለገዎት ኮንሶሉን እንደገና ይክፈቱ)።
  4. የባሪያው አድራሻ ለማጽናኛ ያትማል።
  5. መቼ ፣ በመላኪያ ሳጥኑ 2 1 ውስጥ ይግቡ (ስለዚህ 12 2 1) ፣ እና ቅብብላው በርቷል።
  6. መቼ ፣ በመላኪያ ሳጥኑ 2 0 (ስለዚህ 12 2 0) ውስጥ ያስገቡ ፣ እና ቅብብላው ይጠፋል።

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: KY019 ይህንን ጡብ የሚጠቀም ቀደም ሲል እዚህ ATTINY85 ውስጥ በተጫነው ሜታዳታ በኩል ለ Crouton አውቶማቲክ ውቅር አለው። ለ Crouton የተላከው የ JSON ፓኬት ለ ICOS10 የቅርብ ጊዜ firmware በኩል ይላካል። ግንባታው ለአሁን በጣም ብዙ ከሆነ በተለመደው ESP8266 ላይ የማረጋገጫ-ፅንሰ-ሀሳብ ማድረግ ይችላሉ።

በ I2C አውቶቡስ ላይ ግጭት ካጋጠመዎት በፈተና ውስጥ ጥቅም ላይ የዋለው የ UNO ንድፍ አዲስ የባሪያን አድራሻ በ EETOM በ ATTINY85 ላይ የማስቀመጥ ተግባር አለው።

ጥቂት መርሃግብሮች ተጨምረዋል ፣ ግን ሊያገኙት በሚፈልጉት ላይ በመመስረት የታችኛውን ተፋሰስ ወረዳ ለማገናኘት የተለያዩ መንገዶች አሉ ፣ ስለዚህ ያንን እተውልዎታለሁ:)

የሚመከር: