Mündəricat:
- Addım 1: Materiallar və Alətlər
- Addım 2: ATTINY85 hazırlayın
- Addım 3: Göstəricilərin yığılması
- Addım 4: Əsas dövrəni yığmaq
- Addım 5: Test
- Addım 6: Növbəti addımlar
Video: IOT123 - I2C HEARTBEAT BRICK: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
IOT123 BRICKS, bir düyünə funksionallıq və ya geyilə bilən digər IOT123 BRICKS ilə qarışdırıla bilən DIY modul qurğulardır. Onlar düymlük kvadrat, çuxurlardan bir-birinə bağlı olan iki tərəfli protoboardlara əsaslanır.
Bu BRICK -lərin bir çoxunun bir saytda birdən çox qovşaqda (Master MCU -lar - ESP8266 və ya ATTINY84) olması gözlənilir. MCU, sensorların məqsədi və ya proqram ehtiyacları haqqında əvvəlcədən məlumat tələb etmir. I2C qovşaqlarını tarar, sonra hər bir quldan bir mülk zibilliyi (sensor məlumatları) tələb edir. Bu BRICKs 5.0V, 3.3V və özelleştirilebilir başqa bir AUX xətti təmin edir.
Bu I2C HEARTBEAT BRICK, ATTINY qulunun canlı olub olmadığını, həm də I2C trafikini və bir xüsusiyyətə sahib olduğunu göstərir:
Vəziyyət ("Canlı")
PB1 (ağ) ATTINY sağlamlığını göstərir.
PB3 (sarı) ustadan I2C istəkləri ilə dəyişir.
PB4 (narıncı) ustadan alınan I2C ilə dəyişir.
ATTINY85-ə bitişik olan deliklər, DIP8 PCB-yə lehimlənərkən bir pogo pin proqramçısını işə salmaq üçün istifadə edilməmişdir. D1M WIFI BLOCK hub -a qoşulan kiçik silindrlərdə BRICKS -in qablaşdırılması, dəyərlərin MQTT serverinə ötürülməsi ilə əlaqəli başqa bir abstraksiya hazırlanır.
Addım 1: Materiallar və Alətlər
Tam bir material və qaynaq siyahısı var.
- Kağız PCB (7 x 7 deşik)
- LEDlər (Qırmızı, Yaşıl, Mavi)
- Rezistorlar (3 dəfə 1K)
- ATTINY85 20PU (1)
- 1 "İki tərəfli protoboard (1)
- Kişi Başlığı 90º (3P, 3P)
- Kişi Başlığı (2P, 2P)
- Jumper Şantı (1)
- Bağlama teli (~ 7)
- Lehim və Dəmir (1)
Addım 2: ATTINY85 hazırlayın
QEYD: Crouton inteqrasiyasına sahib olmaq istəyirsinizsə, buradan kitabxanadan istifadə edin və quraşdırılmış "attiny_heartbeat" nümunəsini istifadə edin.
Şuralar Menecerindən AttinyCore tələb olunur. "EEPROM Saxlandı", "8mHZ Daxili" önyükleyici yazın (bütün konfiqurasiya yuxarıda göstərilmişdir).
Kod anbarını burada tapa bilərsiniz.
Kitabxananın bir ZIP ünvanını burada tapa bilərsiniz.
"ZIP Kitabxanasının idxal edilməsi" üçün təlimatlar burada.
Kitabxana quraşdırıldıqdan sonra "attiny_heartbeat" nümunəsini aça bilərsiniz.
Firmware -ni ATTINY85 -ə yükləmək üçün bu təlimatlarda daha ətraflı məlumat tapa bilərsiniz:
www.instructables.com/id/Programming-the-….
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
Davam etməzdən əvvəl çörək taxtası vasitəsilə test etmək daha yaxşıdır.
Mövcud ASSIMILATE SENSORS varsa, SENSOR/MCU Host kombinasiyasında kölə ünvanın fərqli olduğundan əmin olun. MCU/node üzərində yalnız bir Relay aktyoru olduğu müddətdə bütün Relay aktyorları eyni ünvana sahib ola bilərlər.
Addım 3: Göstəricilərin yığılması
Göstəricilər tamamilə fərdiləşdirilə bilər. Ürək döyüntüsü olaraq görülən əsas dövrədən gələn hadisə siqnallarıdır. Bu quruluş üçün LED göstəricilərindən istifadə edəcəyik; quruluşunuz rölelərdən (bəli VCC pozulmuşdur) və ya başqa bir vizual/siqnal əsaslı göstəricidən istifadə edə bilər. Rezistor dəyərləri, şəxsi istəyinizdən asılı olaraq nə qədər parlaq olmasını istəyirsiniz.
- Yuxarıda RED1 (+) və BLACK1 (G) -ə mavi bir LED daxil edin və aşağıya lehimləyin.
- Alt hissədə, RED1 -dən qurğunu bükün ki, SILVER8 üzərindəki mis yastığa toxunsun və kəsin.
- Aşağıda, lehimin üstündəki BLACK1 -dən qurğuşun kəsin.
- Yuxarıda, RED2 (+) və BLACK2 (G) -ə yaşıl bir LED daxil edin və aşağıya lehimləyin.
- Alt hissədə, RED2 -dən qurğunu bükün ki, SILVER9 üzərindəki mis yastığa toxunsun və kəsin.
- Alt hissədə, lehimin üstündəki BLACK2 -dən qurğuşun kəsin.
- Yuxarıda qırmızı LED -i RED3 (+) və BLACK3 (G) -ə daxil edin və aşağıya lehimləyin.
- Alt hissədə qurğunu RED3 -dən bükün ki, SILVER10 üzərindəki mis yastığa toxunsun və kəsin.
- Alt hissədə, lehimin üstündəki BLACK3 -dən qurğuşun kəsin.
- Üst tərəfdə, SILVER1 və SILVER4 deliklərinə 1K rezistor daxil edin.
- Alt hissədə SILVER1 -dən BLACK1 -ə qədər qurğuşun izini kəsin, kəsin və lehimləyin.
- Üst tərəfdə, SILVER2 və SILVER4 deliklərinə 1K rezistor daxil edin.
- Alt hissədə, SILVER2 -dən BLACK2 üzərinə qurğunun izini çəkin, kəsin və lehimləyin.
- Üst tərəfdə, SILVER3 və SILVER4 deliklərinə 1K rezistor daxil edin.
- Alt hissədə SILVER3 -dən BLACK3 -ə qədər qurğuşun izini kəsin, kəsin və lehimləyin.
- Aşağıda, SILVER4 üzərindəki lehim telləri və təxminən 5 mm uzanan kəsilir.
- Alt hissədə qara bir teli SILVER4 üzərinə lehimləyin.
- Alt hissədə, ağ telin SILVER5 -ə lehimlənməsi RED1 -dən qurğuşun davamlılığını təmin edir.
- Alt hissədə, RED2 -dən qurğuşun davamlılığını təmin edərək SILVER6 -a sarı bir tel lehimləyin.
- Altda, SILVER7 -ə narıncı bir tel lehimləyin, RED3 -dən qurğuşun davamlılığını təmin edin.
Addım 4: Əsas dövrəni yığmaq
Montaj:
- Ön tərəfə ATTINY85 (1), 3P 90deg kişi başlıqları (2) (3), 3P kişi başlıqları (4) (5) daxil edin və arxa tərəfə lehimləyin.
- Arxa tərəfdə, sarı teldən SARI2 -ə qədər sarı bir tel izləyin və lehimləyin.
- Arxa tərəfdə, ORANGE1 -dən ORANGE2 -ə qədər narıncı bir tel izləyin və lehimləyin.
- Arxa tərəfdə, BLUE1 -dən BLUE2 -ə qədər mavi bir tel izləyin və lehimləyin.
- Arxa tərəfdə, GREEN1 -dən GREEN2 -ə qədər bir yaşıl tel izləyin və lehimləyin.
- Arxa tərəfdə, WHITE1 -dən WHITE2 -ə qədər ağ bir tel izləyin və lehimləyin.
- Arxa tərəfdə, BLACK1 -dən BLACK2 -ə qədər qara teli və lehimi izləyin.
- Arxa tərəfdə, BLACK3 -dən BLACK4 -ə qədər qara tel və lehim izi çəkin.
- Arxa tərəfdə RED1 -dən RED2 -ə qədər qırmızı tel və lehim izi çəkin.
- Arxa tərəfdə, RED3 -dən RED4 -ə qədər olan çılpaq bir teli və lehimi izləyin.
- Arxa tərəfdə, SILVER1 -dən SILVER2 -ə qədər olan çılpaq bir teli və lehimi izləyin.
- 5V və ya 3V3 xəttinə bir tullanan əlavə edin.
Yuxarıdakı Göstəricilərdən istifadə edirsinizsə (pin diaqramına baxın):
- Arxa tərəfdə ağ teli PB1 -ə lehimləyin.
- Arxa tərəfdə sarı teli PB3 -ə lehimləyin.
- Arxa tərəfdə narıncı teli PB4 -ə lehimləyin.
- Arxa tərəfdə qara teli GND -ə lehimləyin.
Addım 5: Test
Bu BRICK -lərin bir çoxunun bir mühitdə çoxlu qovşaqlarda (MCU -lar - ESP8266 və ya ATTINY84) olması gözlənilir. Bu bir vahid testidir: UNO -dan I2C əmrlərini ATTINY -ə Qəbul LEDini dəyişən göndərir. ATTINY ALIVE LED yanır.
Daha əvvəl Arduino üçün I2C SHIELD qurduq.
Bunun yerinə çörək taxmaq istəyirsinizsə:
- UNO üzərindəki 5.0V -ni BRICK üzərindəki VCC -yə qoşun.
- UNO üzərindəki GND -ni BRICK üzərindəki GND -yə bağlayın.
- UNO üzərindəki A5 -i BRICK üzərindəki SCL -ə qoşun.
- UNO -da A4 -ü BRICK -də SDA -ya bağlayın.
- SDA-dan VCC-yə 4K7 çəkmə müqavimətini bağlayın.
- SCL-dən VCC-yə 4K7 çəkmə müqavimətini bağlayın.
Testdən keçmək
- UNO'nuzu USB ilə Dev PC -yə qoşun.
- Kodu UNO -ya yükləyin.
- Arduino Konsolunu açın.
- 9600 baud seçin (UNO -nu yenidən başladın və lazım olduqda konsolu yenidən açın).
- Qulun ünvanı konsola yazılacaq.
- Zaman, göndərmə qutusuna 2 1 daxil edin (beləliklə 16 2 1) və Qəbul LED -i yanır.
- Zaman, göndərmə qutusuna 2 0 (16 16 0) daxil edin və Qəbul LED sönür.
UNO ustasının kölələri üçün I2C BRICK adhoc əmrləri
#daxil edin |
const bayt _num_chars = 32; |
char _received_chars [_num_chars]; // alınan məlumatları saxlamaq üçün bir sıra |
boolean _has_new_data = yalan; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("IOT ACTOR/SENSOR EEPROM REDAKTORU ASSIMILATE"); |
Serial.println ("konsol pəncərəsində yeni sətrin seçilməsini təmin edin"); |
Serial.println (); |
Serial.println ("ADRES 1 METADATA QƏBULUNU YOXDUR (M2M ÜÇÜN)"); |
Serial.println ("ADRES 2 ACTOR COMMAND"); |
Serial.println (); |
Serial.println ("Avtobusdakı ünvanlar:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
üçün (bayt ünvanı = 8; ünvan <127; ünvan ++) |
{ |
Wire.beginTransmission (ünvan); |
const bayt xətası = Wire.endTransmission (); |
əgər (səhv == 0) |
{ |
Serial.println (ünvan); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statik bayt ndx = 0; |
char end_marker = '\ n'; |
char rc; |
while (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
əgər (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
əgər (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
başqa { |
_received_chars [ndx] = '\ 0'; // simli dayandırın |
ndx = 0; |
_has_new_data = doğru; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String qəbul_string = String (_received_chars); |
əgər (_has_new_data == doğru) { |
int idx1 = qəbul_string.indexOf (''); |
String ünvanı = aldı_string.substring (0, idx1); |
int address_int = address.toInt (); |
əgər (ünvan_int <8 || ünvan_int> 127) { |
Serial.println ("GÜÇÜN ADRES GİRİŞİ:"); |
Serial.println (ünvan); |
qayıtmaq; |
} |
int idx2 = alınan_string.indexOf ('', idx1+1); |
String kodu; |
əgər (idx2 == -1) { |
kod = alınan_string.substring (idx1+1); |
} başqa { |
kod = alınan_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
əgər (code_int <0 || code_int> 5) { |
Serial.println ("GÜÇÜN KOD GİRİŞİ:"); |
Serial.println (kod); |
qayıtmaq; |
} |
bool has_parameter = idx2> -1; |
String parametri; |
əgər (has_parametr) { |
parametr = alınan_string.substring (idx2 + 1, idx2 + 17); // maksimum 16 simvol |
if (parametr.length () <1) { |
Serial.println ("PARTAMETRE MİN. UZUNLUQ 1"); |
_has_new_data = yalan; |
qayıtmaq; |
} |
} başqa { |
əgər (code_int> 1) { |
Serial.println ("PARAMETR TƏLƏB EDİLİR!"); |
_has_new_data = yalan; |
qayıtmaq; |
} |
} |
Serial.println (); |
Serial.print ("giriş orig ="); |
Serial.println (qəbul_dizgi); |
Serial.print ("ünvan ="); |
Serial.println (ünvan); |
Serial.print ("kod ="); |
Serial.println (kod); |
Serial.print ("parametr ="); |
Serial.println (parametr); |
// I2C VIA GÖNDƏRİN |
Wire.beginTransmission (ünvan_int); |
Wire.write (code_int); |
əgər (has_parametr) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("I2C VIA VAR!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = yalan; |
} |
} |
GitHub tərəfindən ❤ ilə evlənən rawuno_i2c_command_input.inoya baxın
Addım 6: Növbəti addımlar
Bu kərpicdən istifadə edən ASSIMILATE ACTOR: HEARTBEAT, burada ATTINY85-də quraşdırılmış metadata vasitəsilə Crouton üçün avtomatik konfiqurasiyaya malikdir. Croutona göndərilən JSON paketi ICOS10 üçün ən son proqram təminatı vasitəsi ilə göndərilir. Quruluş indiyə qədər çox olarsa, adi bir ESP8266 üzərində bir Proof-of-concept edə bilərsiniz.
Testdə istifadə olunan UNO eskizi, hədəf I2C avtobusunuzda bir toqquşma varsa, ATTINY85 -də EEPROM -a yeni bir kölə ünvanı qeyd etmək funksiyasına malikdir.
Tövsiyə:
Heartbeat Game-Layihə: 4 addım
Heartbeat Game-Layihə: Hamımızın bildiyimiz kimi bu gün 20 Maydır. Bu artıq ənənəvi Çin Sevgililər Günü halına gəldi
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Arduino Brick Color Sorter Layihəsi: 5 addım
Arduino Kərpic Rəng Sorter Layihəsi: Bu Arduino Dərsliyində, Arduino və TCS3200 Rəng Sensorundan istifadə edərək oyuncaq kərpicimin rənglərini necə aşkar edəcəyimizi öyrənəcəyik. Ətraflı məlumat üçün aşağıda yazılı təlimatı oxuya bilərsiniz.Materiallar: Arduino Leonardo x 1TCS3200 x 1 Çoxlu karton 180 Servo
IOT123 - AKTORU YAXŞILAYIN: HEARTBEAT: 4 Addım
IOT123 - AKSİYASI YAXŞILAYIN: HEARTBEAT: ATTINY, I2C və MQTT trafikinin sağlamlığını göstərir.Bu bina I2C HEARTBEAT BRICK -ə əsaslanır. ASSIMILATE ACTORS/SENSORS, ətraf mühit aktyorları/sensorlardır ki, bu da əlavə avadanlıq və proqram soyutma qatına malikdir, bu da
IOT123 - LIR2032 BATTERY BRICK: 4 addım
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS, bir düyünə funksionallıq əlavə etmək və ya geyinə bilmək üçün digər IOT123 BRICKS ilə qarışdırıla bilən DIY modul qurğulardır. Onlar düymlük kvadrat, çuxurlardan bir-birinə bağlı olan iki tərəfli protoboardlara əsaslanır