ዝርዝር ሁኔታ:

IOT123 - I2C የልብ ምት ጡብ: 6 ደረጃዎች
IOT123 - I2C የልብ ምት ጡብ: 6 ደረጃዎች

ቪዲዮ: IOT123 - I2C የልብ ምት ጡብ: 6 ደረጃዎች

ቪዲዮ: IOT123 - I2C የልብ ምት ጡብ: 6 ደረጃዎች
ቪዲዮ: {724} Event Counter / Pulse Counter Using Arduino Uno 2024, ሰኔ
Anonim
IOT123 - I2C የልብ ምት ጡብ
IOT123 - I2C የልብ ምት ጡብ
IOT123 - I2C የልብ ምት ጡብ
IOT123 - I2C የልብ ምት ጡብ
IOT123 - I2C የልብ ምት ጡብ
IOT123 - I2C የልብ ምት ጡብ

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

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

ይህ I2C HEARTBEAT BRICK የ ATTINY ባሪያ በሕይወት እንዳለ ፣ እንዲሁም የ I2C ትራፊክ እና አንድ ንብረት እንዳለው ያመለክታል።

ሁኔታ (“ሕያው”)

PB1 (ነጭ) የ ATTINY ጤናን ያመለክታል።

PB3 (ቢጫ) ከጌታው I2C ጥያቄዎች ጋር ይቀያይራል።

PB4 (ብርቱካንማ) ከ I2C ከጌታው በመቀበል ይቀይራል።

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

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

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

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

  1. የወረቀት ፒሲቢ (7 x 7 ቀዳዳዎች)
  2. LEDS (ቀይ ፣ አረንጓዴ ፣ ሰማያዊ)
  3. ተከላካዮች (3 ኪ 1 ኪ)
  4. ATTINY85 20PU (1)
  5. 1 "ባለ ሁለት ጎን ፕሮቶቦር (1)
  6. ወንድ ራስጌ 90º (3 ፒ ፣ 3 ፒ)
  7. ወንድ ራስጌ (2 ፒ ፣ 2 ፒ)
  8. Jumper Shunt (1)
  9. የሚገጣጠም ሽቦ (~ 7)
  10. ብረት እና ብረት (1)

ደረጃ 2 ATTINY85 ን ያዘጋጁ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ደረጃ 3 አመላካቾችን መሰብሰብ

አመላካቾችን መሰብሰብ
አመላካቾችን መሰብሰብ
አመላካቾችን መሰብሰብ
አመላካቾችን መሰብሰብ
አመላካቾችን መሰብሰብ
አመላካቾችን መሰብሰብ

ጠቋሚዎቹ ሙሉ በሙሉ ሊበጁ የሚችሉ ናቸው። እንደ የልብ ምት የሚታየው ከዋናው ወረዳ የመጡ የክስተት ምልክቶች ናቸው። ለዚህ ግንባታ እኛ የ LED አመልካቾችን እንጠቀማለን ፤ ግንባታዎ ቅብብሎሾችን (አዎ ቪሲሲው ተሰብሯል) ወይም ሌላ በእይታ/በምልክት ላይ የተመሠረተ አመላካች መጠቀም ይችላል። የተቃዋሚ እሴቶች እርስዎ በሚፈልጉት ብሩህነት ላይ በግል ምርጫቸው ላይ ይወሰናሉ።

  1. ከላይ ፣ ሰማያዊ LED ን ወደ RED1 (+) እና BLACK1 (G) ፣ እና ከታች በሻጭ ያስገቡ።
  2. ከታች ፣ እርሳሱን ከ RED1 ጎን በማጠፍ በ SILVER8 ላይ ያለውን የመዳብ ንጣፍ ይንኩ እና ይከርክሙት።
  3. ከታች ፣ ከ BLACK1 በላይ ከመሸጫ በላይ እርሳስ።
  4. ከላይ ፣ አረንጓዴ LED ን ወደ RED2 (+) እና BLACK2 (G) ፣ እና ከታች በሻጭ ያስገቡ።
  5. ከታች ፣ እርሳሱን ከ RED2 ጎን በማጠፍ በ SILVER9 ላይ ያለውን የመዳብ ንጣፍ ይንኩ እና ይከርክሙት።
  6. ከታች ፣ ከ BLACK2 በላይ ከመሸጫ በላይ እርሳስ።
  7. ከላይ ፣ ቀይ LED ን ወደ RED3 (+) እና BLACK3 (G) ፣ እና ከታች በሻጭ ያስገቡ።
  8. ከታች ፣ እርሳሱን ከ RED3 ጎን በማጠፍ በ SILVER10 ላይ ያለውን የመዳብ ንጣፍ ይንኩ እና ይከርክሙት።
  9. ከታች ፣ ከ BLACK3 በላይ ከመሸጫ በላይ እርሳስ።
  10. ከላይ ፣ 1 ኬ resistor ወደ ቀዳዳ ቀዳዳዎች SILVER1 እና SILVER4 ያስገቡ።
  11. ከታች ፣ ከ SILVER1 በ BLACK1 ላይ ዱካ ፣ ማሳጠር እና የመሸጫ እርሳስ።
  12. ከላይ ፣ 1 ኬ resistor ወደ ቀዳዳዎቹ SILVER2 እና SILVER4 ውስጥ ያስገቡ።
  13. ከታች ፣ ከ SILVER2 በ BLACK2 ላይ ዱካ ፣ ማሳጠር እና የመሸጫ እርሳስ።
  14. ከላይ ፣ 1 ኬ resistor ወደ ቀዳዳዎቹ SILVER3 እና SILVER4 ውስጥ ያስገቡ።
  15. ከታች ፣ ከ SILVER3 በ BLACK3 ላይ ዱካ ፣ ማሳጠር እና የመሸጫ እርሳስ።
  16. ከታች ፣ በ SILVER4 ላይ የሽያጭ ሽቦዎች እና ወደ 5 ሚሜ ያህል በማራዘም ይከርክሙ።
  17. ከታች ፣ ጥቁር ሽቦን በ SILVER4 ላይ ሸጡት።
  18. ከታች ፣ ከ RED1 የመምራት ቀጣይነትን በማረጋገጥ አንድ ነጭ ሽቦን ወደ SILVER5 ሸጡ።
  19. ከታች ፣ ከ RED2 የመምራት ቀጣይነትን በማረጋገጥ ወደ ቢጫ ሽቦ ወደ SILVER6 ይሸጡ።
  20. ከታች ፣ ከ RED3 የመምራት ቀጣይነትን በማረጋገጥ የብርቱካን ሽቦን ወደ SILVER7 ይሸጡ።

ደረጃ 4 - ዋናውን ወረዳ መሰብሰብ

ዋናውን ወረዳ መሰብሰብ
ዋናውን ወረዳ መሰብሰብ
ዋናውን ወረዳ መሰብሰብ
ዋናውን ወረዳ መሰብሰብ
ዋናውን ወረዳ መሰብሰብ
ዋናውን ወረዳ መሰብሰብ

ስብሰባ

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

ከላይ ያሉትን ጠቋሚዎች የሚጠቀሙ ከሆነ (የፒኖት ዲያግራምን ይመልከቱ)

  1. ከኋላው ፣ ነጩን ሽቦ ወደ PB1 ይሸጡ።
  2. ከኋላ ፣ ቢጫ ሽቦውን ወደ PB3 ይሸጡ።
  3. ከኋላ ፣ የብርቱካኑን ሽቦ ወደ PB4 ይሸጡ።
  4. ከኋላ ፣ ጥቁር ሽቦውን ወደ GND ይሸጡ።

ደረጃ 5: ሙከራ

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

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

ከዚህ በፊት ለአርዱዲኖ 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 1 ውስጥ ይግቡ (ስለዚህ 16 2 1) ፣ እና ተቀባዩ ኤልዲ ያበራል።
  7. መቼ ፣ በመላኪያ ሳጥኑ 2 0 (ስለዚህ 16 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 ን ይመልከቱ

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

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

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

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

የሚመከር: