Სარჩევი:

IOT123 - I2C BRICK MASTER JIG: 4 ნაბიჯი
IOT123 - I2C BRICK MASTER JIG: 4 ნაბიჯი

ვიდეო: IOT123 - I2C BRICK MASTER JIG: 4 ნაბიჯი

ვიდეო: IOT123 - I2C BRICK MASTER JIG: 4 ნაბიჯი
ვიდეო: How LEGO Minifigures are made 2024, ივლისი
Anonim
IOT123 - I2C აგურის სამაგისტრო ჯიგ
IOT123 - I2C აგურის სამაგისტრო ჯიგ
IOT123 - I2C აგურის სამაგისტრო ჯიგ
IOT123 - I2C აგურის სამაგისტრო ჯიგ
IOT123 - I2C აგურის სამაგისტრო ჯიგ
IOT123 - I2C აგურის სამაგისტრო ჯიგ

ASIMIMATE სენსორების და მსახიობების შემუშავებისას, მე UNO– ს ვიყენებ შემუშავების პროტოტიპებზე adhoc I2C ბრძანებების გაგზავნისთვის. I2C აგურის ერთ -ერთი უპირატესობა არის სტანდარტიზებული პინუტები. იმის ნაცვლად, რომ ყოველ ჯერზე გამოიყენოთ დაფის მავთულები (იხ. ფრიზინგები), გამოიყენება ძლიერი ტექნოლოგიური ფარი.

ნაბიჯი 1: მასალები და ინსტრუმენტები

მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
მასალები და ინსტრუმენტები
  1. 4 სმ x 6 სმ Uninersal PCB (1)
  2. დასაკავშირებელი მავთული (6 ფუნტი)
  3. 4K7 რეზისტორები (2) 6
  4. მამაკაცის სათაური (12P, 8P)
  5. ქალის სათაური (9P, ან 3P, 3P)
  6. შედუღება და რკინა (1)

ნაბიჯი 2: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

თუ თქვენ იყენებთ 2 -დან 3P მდედრის თავებს 1 -დან 9P მდედრის სათაურის ნაცვლად, ASIMIMATE SENSOR/ACTORS მოთავსდება JIG– ზე მათი დაშლის გარეშე.

გაყვანილობით, მოაშორეთ ბოლოებამდე 10 მმ -მდე და დააფინეთ ბოლოები.

  1. PCB- ის ბოლოში ჩადეთ მამრობითი სათაური (1) (2) და შედგით თავზე.
  2. PCB– ის ზედა ნაწილში ჩასვით მდედრის სათაური (3) და შედგით ბოლოში.
  3. თავზე, წითელი ხრახნიანი წითელი მავთული RED1 და RED2.
  4. ბოლოში, ხვრელიანი მავთული RED1– დან RED3– მდე.
  5. ბოლოში, ხვრელიანი მავთული RED2– დან RED5– მდე და შედუღებულია.
  6. თავზე, ხვრელიანი მავთული RED3– დან RED4– მდე და შედუღებულია.
  7. თავზე, წითელი ხრახნიანი წითელი მავთული RED6 და RED7.
  8. ბოლოში, ხვრელიანი მავთული RED6– დან RED8– მდე.
  9. ბოლოში, ხვრელიანი მავთული RED7– დან RED10– მდე და შედუღებულია.
  10. თავზე, ხვრელიანი მავთული RED8– დან RED9– მდე და შედუღებულია.
  11. ზემოდან, შავი მავთულის გავლით, შავი და მავთულხლართებით შევიდა BLACK1 და BLACK2.
  12. ბოლოში, ხვრელიანი მავთული BLACK1– დან BLACK3– ში.
  13. ბოლოში, ხვრელიანი მავთული BLACK2- დან BLACK5- ში და შედუღებულია.
  14. თავზე, ხვრელიანი მავთული BLACK3– დან BLACK4– ში და შედუღება.
  15. თავზე, ლურჯი მავთულის გავლით ლურჯ მავთულში შევიდა ლურჯი და ლურჯი 2.
  16. ბოლოში, ხვრელიანი მავთული BLUE1– დან BLUE3– ში.
  17. ბოლოში, ხვრელიანი მავთულები BLUE2– დან BLUE5– ში და შედუღებულია.
  18. თავზე, ხვრელიანი მავთული BLUE3– დან BLUE4– ში და შედუღებულია.
  19. ზემოდან, მწვანე მავთულის გავლით მწვანე მავთული შევიდა მწვანე და მწვანე 2.
  20. ბოლოში, ხვრელიანი მავთული GREEN1– დან GREEN3– ში.
  21. ბოლოში, ხვრელიანი მავთული GREEN2– დან GREEN5– ში და შედგით.
  22. თავზე, ხვრელიანი მავთული GREEN3– დან GREEN4– მდე და შედუღებულია.
  23. თავზე, ხვრელით 4K7 რეზისტორი SILVER3 და SILVER4.
  24. ბოლოში, ხვრელიანი მავთული SILVER3– დან GREEN5– ში და შედუღებულია.
  25. ბოლოში, ხვრელიანი მავთული SILVER4– დან RED10– მდე და შედუღებულია.
  26. თავზე, ხვრელით 4K7 რეზისტორი SILVER1 და SILVER2.
  27. ბოლოში, ხვრელიანი მავთული SILVER1– დან BLUE5– ში და შედუღებულია.
  28. ბოლოში, ხვრელიანი მავთული SILVER2– დან RED10– მდე და შედუღებულია.

ნაბიჯი 3: კოდი გაეროსთვის

კოდი გაეროსთვის
კოდი გაეროსთვის

ესკიზი აქ რუდიმენტულია. ეს გაძლევთ საშუალებას გამოიყენოთ კონსოლის შეყვანა, რათა გაერომ გაგზავნოს I2C შეტყობინებები I2C ATTINY85 აგურზე.

ყველა ინსტრუქცია იბეჭდება ეკრანზე, მხარდაჭერილი ვარიანტებით.

I2C BRICK adhoc ბრძანებებს მონებისათვის გაეროს ოსტატისგან

#ჩართეთ
კონსტ ბაიტი _num_chars = 32;
char _ მიიღო_ჩარსი [_ რიცხვითი_ჩარხები]; // მასივი მიღებული მონაცემების შესანახად
ლოგიკური _has_new_data = ყალბი;
voidsetup () {
სერიული.დაწყება (9600);
Serial.println ();
Serial.println ("ASIMIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("კონსოლის ფანჯარაში არჩეული ახალი ხაზის უზრუნველყოფა");
Serial.println ();
Serial.println ("ADDRESS 1 CONFIRM METADATA RECEIPT N/A (FOR M2M)");
Serial.println ("მისამართი 2 მსახიობის ბრძანება");
Serial.println ();
Serial.println ("მისამართები ავტობუსზე:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
for (ბაიტის მისამართი = 8; მისამართი <127; მისამართი ++)
{
Wire.begin გადაცემა (მისამართი);
const byte შეცდომა = Wire.endTransmission ();
თუ (შეცდომა == 0)
{
Serial.println (მისამართი);
}
}
}
voidloop () {
recv_w_end_marker ();
send_to_i2c ();
}
voidrecv_w_ მარკერი () {
სტატიკური ბაიტი ndx = 0;
char end_marker = '\ n';
char rc;
ხოლო (Serial.available ()> 0 && _has_new_data == ყალბი) {
rc = Serial.read ();
თუ (rc! = end_marker) {
_მიღებულია_ჩარსი [ndx] = rc;
ndx ++;
თუ (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
სხვა {
_received_chars [ndx] = '\ 0'; // სტრიქონის შეწყვეტა
ndx = 0;
_has_new_data = ჭეშმარიტი;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const სიმებიანი მიღებული_სტრიქონი = სიმებიანი (_მიღებული_ჩარხები);
თუ (_has_new_data == ჭეშმარიტი) {
int idx1 = მიღებული_სტრიქონი.ინდექსი Of ('');
სიმებიანი მისამართი = მიღებული_სტრიქო. ქვესტრიქონი (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (მისამართი);
დაბრუნების;
}
int idx2 = მიღებული_სტრიქონი.ინდექსი Of ('', idx1+1);
სიმებიანი კოდი;
თუ (idx2 == -1) {
კოდი = მიღებული_სტრიქონი. ქვესტრიქონი (idx1+1);
} სხვა {
კოდი = მიღებული_სტრიქონი. ქვესტრიქონი (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (კოდი);
დაბრუნების;
}
bool has_parameter = idx2> -1;
სიმებიანი პარამეტრი;
თუ (აქვს_პარამეტრი) {
პარამეტრი = მიღებული_სტრიქონი. ქვესტრიქონი (idx2 + 1, idx2 + 17); // მაქსიმუმ 16 სიმბოლო
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = ყალბი;
დაბრუნების;
}
} სხვა {
if (code_int> 1) {
Serial.println ("საჭირო პარამეტრი!");
_has_new_data = ყალბი;
დაბრუნების;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (მიღებული_სტრიქონი);
Serial.print ("მისამართი =");
Serial.println (მისამართი);
Serial.print ("კოდი =");
Serial.println (კოდი);
Serial.print ("პარამეტრი =");
Serial.println (პარამეტრი);
// გააგზავნე VIA I2C
Wire.beginTransmission (address_int);
Wire.write (code_int);
თუ (აქვს_პარამეტრი) {
პარამეტრი.ტრიმი ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("SENT VIA I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = ყალბი;
}
}

rawuno_i2c_command_input.ino- ს ნახვა GitHub– ის მიერ hosted ერთად განთავსებული

ნაბიჯი 4: შემდეგი ნაბიჯები

წარმოდგენილი ნაგებობებისგან, არის საკმარისი მოძრავი ნაწილები, რომ ააწყოთ თქვენი საკუთარი ASSIMILATE IOT NETWORK.

კვანძების თითოეული ფუნქცია (სენსორები და მსახიობები) კონტროლირებადია დეცენტრალიზებული გზით, რაც არ არის დამოკიდებული MCU სამაგისტროზე, რომ ჰქონდეს რაიმე ცოდნა მხარდაჭერილი მახასიათებლების შესახებ.

MQTT ბროკერთან დაკავშირებულ ნებისმიერ აპლიკაციას შეუძლია გააკონტროლოს/დააკვირდეს IOT კვანძის ყველა მახასიათებელს. ეს არის M2M, ვებ პროგრამები, IFTTT და ასე შემდეგ. გაცილებით მარტივი (ან უფრო მდიდარი თუ გნებავთ) ინტერფეისები თქვენს IOT სამყაროში.

გირჩევთ: