Mundarija:
- 1 -qadam: Materiallar va asboblar
- 2 -qadam: ATTINY85 ni tayyorlang
- 3 -qadam: O'chirish sxemasini yig'ing
- 4 -qadam: Sinov
- 5 -qadam: Keyingi qadamlar
Video: IOT123 - I2C KY019 G'isht: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
IOT123 BRICKS - bu modulli DIY birliklari bo'lib, ularni boshqa IOT123 BRICKS bilan maydalash mumkin, bu tugunga funksionallik qo'shish yoki taqish mumkin. Ular dyuymli kvadrat, teshiklari orqali o'zaro bog'langan ikki tomonlama protoboardlarga asoslangan.
Bir qator BRICKS saytdagi bir nechta tugunlarda bo'lishi kerak (Master MCU - ESP8266 yoki ATTINY84). MCU datchiklarning maqsadi yoki dasturiy ta'minot ehtiyojlari haqida oldindan bilishga muhtoj emas. U I2C tugunlarini skanerlaydi, so'ngra har bir quldan xususiyatli dampingni (sensor ma'lumotlarini) so'raydi. Bu BRICKlar 5.0V, 3.3V va sozlanishi mumkin bo'lgan boshqa AUX liniyasini etkazib beradi.
Bu I2C KY019 BRICK ACTORSning birinchisidir va bitta o'qish/yozish xususiyatiga ega:
O'zgartirish (haqiqiy/noto'g'ri)
Keyes tipidagi sensorli g'ishtlar birinchi navbatda abstraktsiya qilinadi, chunki ular vitaminlar bilan ta'minlanadi (qo'shimcha komponentlar kerak) va ular nisbatan chayqaladi (men 37 AUDga sotib oldim). Boshqa taxtalar/sxemalar I2C BRICKS bilan tanishtiriladi.
ATTINY85-ga ulashgan teshiklar ishlatilmay qoldi, shuning uchun DIP8 PCBga lehimli bo'lsa, pogo pinli dasturchini yoqish mumkin. D1M WIFI BLOCK uyasiga ulanadigan, MQTT serveriga yuklaydigan kichik tsilindrlarga BRICKSni qadoqlashning yana bir mavhumligi ishlab chiqilmoqda.
1 -qadam: Materiallar va asboblar
Materiallar va manbalar ro'yxatining to'liq ro'yxati mavjud.
- KY-019 o'rni (1)
- ATTINY85 20PU (1)
- 1 "Ikki tomonlama protoboard (1)
- Erkaklar sarlavhasi 90º (3P, 3P)
- Ulanish simlari (~ 7)
- Lehim va temir (1)
2 -qadam: ATTINY85 ni tayyorlang
QAYD: Agar Crouton bilan integratsiyalashmoqchi bo'lsangiz, kutubxonadan shu erdan foydalaning va o'rnatilgan "attiny_ky019" misolidan foydalaning.
Kengashlar menejeridan AttinyCore kerak. Bootloader "EEPROM Retained", "8mHZ Internal" yozing (hamma konfiguratsiya yuqorida ko'rsatilgan).
Kodlar omborini bu erda topishingiz mumkin.
Bu erda kutubxonaning zipini topishingiz mumkin.
Bu erda "ZIP kutubxonasini import qilish" bo'yicha ko'rsatmalar.
Kutubxona o'rnatilgach, "attiny_ky019" misolini ochishingiz mumkin.
Dasturiy ta'minotni ATTINY85 -ga yuklash uchun siz batafsil ko'rsatmalarni quyidagi ko'rsatmalarda topishingiz mumkin:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
Davom etishdan oldin non paneli orqali test qilish yaxshiroqdir.
Agar sizda ASSIMILATE SENSORS mavjud bo'lsa, SENSOR/MCU Xost kombinatsiyasida xizmat ko'rsatuvchi manzili boshqacha ekanligiga ishonch hosil qiling, ya'ni MCU/tugunida faqat bitta Relay aktyor bo'lsa, barcha Relay aktyorlari bir xil manzilga ega bo'lishi mumkin.
3 -qadam: O'chirish sxemasini yig'ing
- Old tomonga ATTINY85 (1), 3P 90deg erkak sarlavhalari (2) (3) komponentlarini joylashtiring va orqa tomondan lehimlang.
- Orqa tomonda sariq telni YELLOW1dan SARI2gacha va lehimni izlang.
- Orqa tomonda, ko'k simni BLUE1dan BLUE2gacha va lehimni izlang.
- Orqa tomonda, GREEN1dan GREEN2gacha bo'lgan yashil simni va lehimni izlang.
- Orqa tomonda, qora simni BLACK1 dan BLACK2 gacha va lehimni izlang.
- Orqa tomondan, BLACK3 dan BLACK4 gacha qora simni va lehimni izlang.
- Orqa tomonda RED1 dan RED2 gacha bo'lgan qizil simni va lehimni izlang.
- Orqa tomonda RED3 dan RED4 gacha bo'lgan qizil simni va lehimni izlang.
Endi o'rni o'z pinlari orqali tenglikka yoki simlar orqali, pin shartnomasida ko'rsatilgan nuqtalarga ulanishi mumkin.
4 -qadam: Sinov
Bir qator BRICKS muhitda bir nechta tugunlarda (MCU - ESP8266 yoki ATTINY84) bo'lishi kutilmoqda. Bu birlik sinovi: UNOdan I2C buyruqlarini ATTINYga yuboradi, u o'z o'rni ochiladi yoki yopiladi.
Biz ilgari Arduino uchun I2C SHIELD qurganmiz.
Agar siz uni taxtaga joylashtirmoqchi bo'lsangiz:
- UNO -dagi 5.0V -ni BRICK -dagi VCC -ga ulang.
- UNO -dagi GND -ni BRICK -dagi GND -ga ulang.
- UNO -dagi A5 -ni BRICK -dagi SCL -ga ulang.
- A4 -ni UNO -da, BRICK -dagi SDA -ga ulang.
- SDA-dan VCC-ga 4K7 tortish qarshiligini ulang.
- SCL-dan VCC-ga 4K7 tortish qarshiligini ulang.
Sinovdan o'tish
- UNO -ni shaxsiy kompyuteringizga USB orqali ulang.
- Kodni UNOga yuklang.
- Arduino konsolini oching, 9600 bodni tanlang (UNOni qayta ishga tushiring va agar kerak bo'lsa, konsolni qayta oching).
- Qulning manzili konsolda chop etiladi.
- Qachon yuborish qutisiga 2 1 kiriting (12 2 1), va o'rni yoqiladi.
- Qachon yuborish qutisiga 2 0 kiriting (shuning uchun 12 2 0), va o'rni o'chadi.
UNO xo'jayinining qullari uchun I2C BRICK adhoc buyruqlari
#qo'shing |
const bayt _num_chars = 32; |
char _received_chars [_num_chars]; // olingan ma'lumotlarni saqlash uchun massiv |
boolean _has_new_data = noto'g'ri; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITORINI ASSIMILASH"); |
Serial.println ("konsol oynasida yangi qator tanlanganligini ta'minlash"); |
Serial.println (); |
Serial.println ("MANZIL 1 METADATA RECIPIPTI YO'Q (M2M uchun) tasdiqlang"); |
Serial.println ("MANZIL 2 AKTOR KOMANDASI"); |
Serial.println (); |
Serial.println ("Avtobusdagi manzillar:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
uchun (bayt manzili = 8; manzil <127; manzil ++) |
{ |
Wire.beginTransmission (manzil); |
const bayt xatosi = Wire.endTransmission (); |
agar (xato == 0) |
{ |
Serial.println (manzil); |
} |
} |
} |
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 (); |
agar (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
agar (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
boshqa { |
_received_chars [ndx] = '\ 0'; // qatorni tugatish |
ndx = 0; |
_has_new_data = rost; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String qabul_string = String (_received_chars); |
agar (_has_new_data == rost) { |
int idx1 = qabul qilingan_string.indexOf (''); |
String manzili = qabul qilingan_string.substring (0, idx1); |
int address_int = address.toInt (); |
agar (manzil_int <8 || manzil_int> 127) { |
Serial.println ("ADRESS INVALID INPALID:"); |
Serial.println (manzil); |
qaytish; |
} |
int idx2 = qabul qilingan_string.indexOf ('', idx1+1); |
String kodi; |
agar (idx2 == -1) { |
kod = qabul qilingan_string.substring (idx1+1); |
} boshqa { |
kod = qabul qilingan_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
agar (code_int <0 || code_int> 5) { |
Serial.println ("YANGI KOD KIRISHI:"); |
Serial.println (kod); |
qaytish; |
} |
bool has_parameter = idx2> -1; |
String parametri; |
agar (has_parametr) { |
parametr = qabul qilingan_string.substring (idx2 + 1, idx2 + 17); // Maksimal 16 ta belgi |
if (parametr.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = noto'g'ri; |
qaytish; |
} |
} boshqa { |
agar (kod_int> 1) { |
Serial.println ("PARAMETR KERAK!"); |
_has_new_data = noto'g'ri; |
qaytish; |
} |
} |
Serial.println (); |
Serial.print ("kirish orig ="); |
Serial.println (qabul qilingan_string); |
Serial.print ("manzil ="); |
Serial.println (manzil); |
Serial.print ("kod ="); |
Serial.println (kod); |
Serial.print ("parametr ="); |
Serial.println (parametr); |
// I2C orqali yuboring |
Wire.beginTransmission (manzil_int); |
Wire.write (code_int); |
agar (has_parametr) { |
parametr.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("I2C VIA YUBORILDI!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = noto'g'ri; |
} |
} |
rawuno_i2c_command_input.ino ni GitHub ❤ tomonidan joylashtirilganini ko'rish
5 -qadam: Keyingi qadamlar
Bu g'ishtdan foydalanadigan ASSIMILATE ACTOR: KY019, bu erda ATTINY85-da o'rnatilgan metadata orqali Crouton uchun avtomatik konfiguratsiyaga ega. Crouton -ga yuborilgan JSON paketi ICOS10 uchun eng yangi dasturiy ta'minot orqali yuboriladi. Agar konstruktsiya hozircha juda ko'p bo'lsa, siz oddiy ESP8266-da kontseptsiyani tasdiqlashingiz mumkin.
Sinovda ishlatiladigan UNO eskizi ATTINY85 -da EEPROM -ga yangi qul manzilini saqlash funktsiyasiga ega, agar siz maqsadli I2C avtobusida to'qnashuvga duch kelsangiz.
Bir nechta sxemalar qo'shildi, lekin siz erishmoqchi bo'lgan narsaga qarab, quyi oqim sxemasini ulashning turli usullari mavjud, shuning uchun men buni siz uchun qoldiraman:)
Tavsiya:
Makey Makey uchun g'isht kalitini bosing: 4 qadam (rasmlar bilan)
Makey Makey uchun Brick Switch tugmasini bosing: 3D bosilgan bu kalit foydalanuvchiga Makey Makey -ni " barmoq slaydiga " " bosing " Taqdimotlarni aylantirish uchun o'yinda yoki o'ng/chap o'qlari bo'lishi mumkin. O'ng va chap terminallar qo'shilishi
Mobil telefon batareyasi g'isht: 6 qadam
Uyali telefon batareyasi g'ishtlari: bu oddiy hafta oxiri loyihasi bo'lib, sizga kichik taxtalarda lehimlashni o'rganishni davom ettirish imkoniyatini beradi. DIY loyihalariga kirgan har bir kishi uchun bu ajoyib boshlang'ich loyihaga aylanishi uchun arzon va oson bo'laklarni yig'ish mumkin
IOT123 - LIR2032 BATARYA G'isht: 4 qadam
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS - bu DIY modulli bloklar bo'lib, ularni boshqa IOT123 BRICKS bilan birlashtirish mumkin, bu tugunga funksionallik qo'shiladi. Ular dyuymli kvadrat, teshiklari orqali o'zaro bog'langan ikki tomonlama protoboardlarga asoslangan
IOT123 - 3.3V QUVATLI G'isht: 4 qadam
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS - bu DIY modulli birliklar bo'lib, ularni tugunga yoki taqiladigan joyga funksionallik qo'shish uchun boshqa IOT123 BRICKS bilan maydalash mumkin. Ular dyuymli kvadrat, teshiklari orqali o'zaro bog'langan ikki tomonlama protoboardlarga asoslangan
IOT123 - 5PIN ATTINY85 NRF24L01 G'isht: 4 qadam
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: YANGILASh: Bu sozlash asosan akademik yoki dasturiy ta'minot/quvvat manbalarini sinab ko'rish uchun asosdir. Hatto PB5 RESET sifatida o'chirilgan bo'lsa ham, analogRead yordamida qiymatlarni aniq o'qimaydi: sensor o'qilishi uchun asosiy holat. ATTINY84 sozlamalarini ko'rib chiqamiz