İçindekiler:
- Adım 1: Malzemeler ve Araçlar
- Adım 2: ATTINY85'i hazırlayın
- Adım 3: Devreyi Birleştirin
- 4. Adım: Test Etme
- Adım 5: Sonraki Adımlar
Video: IOT123 - I2C KY019 TUĞLA: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
IOT123 TUĞLALAR, bir düğüme veya giyilebilir cihaza işlevsellik eklemek için diğer IOT123 TUĞLALAR ile karıştırılabilen DIY modüler birimlerdir. Bunlar, birbirine bağlı açık deliklere sahip inç kare, çift taraflı protokollere dayanmaktadır.
Bu BRICKS'lerin bir kısmının bir sitede birden fazla düğümde (Ana MCU'lar - ESP8266 veya ATTINY84) olması beklenir. MCU'nun, sensörlerin amacı veya yazılım ihtiyaçları hakkında önceden bilgi sahibi olması gerekmez. I2C düğümlerini tarar ve ardından her bağımlıdan bir özellik dökümü (sensör verileri) ister. Bu BRICK'ler 5.0V, 3.3V ve özelleştirilebilir başka bir AUX hattı sağlar.
Bu I2C KY019 TUĞLA, AKTÖRLER'in ilkidir ve bir okuma/yazma özelliğine sahiptir:
Değiştir (doğru/yanlış)
Keyes tipi sensör tuğlaları, vitaminler (gerekli ekstra bileşenler) ile birlikte geldikleri ve nispeten ucuz oldukları için (37 AUD'ye 10 AUD aldım) ilk önce soyutlanacaktır. I2C BRICKS'a diğer kartlar/devreler tanıtılacaktır.
ATTINY85'e bitişik açık delikler, DIP8 PCB'ye lehimlenirken bir pogo pin programlayıcısını etkinleştirmek için kullanılmadan bırakılmıştır. Bir D1M WIFI BLOCK hub'ına takılan küçük silindirlerde BRICKS'leri paketleyen ve değerleri bir MQTT sunucusuna pompalayan başka bir soyutlama geliştirilmektedir.
Adım 1: Malzemeler ve Araçlar
Tam bir Malzeme Listesi ve Tedarik listesi var.
- KY-019 Röle (1)
- ATTINY85 20PU (1)
- 1" Çift taraflı protokol (1)
- Erkek Başlık 90º (3P, 3P)
- Bağlantı kablosu (~7)
- Lehim ve Demir (1)
Adım 2: ATTINY85'i hazırlayın
NOT: Crouton entegrasyonuna sahip olmak istiyorsanız, lütfen buradan kütüphaneyi kullanın ve "attiny_ky019" yüklü örneği kullanın.
Kurul Yöneticisinden AttinyCore gereklidir. Bootloader "EEPROM Retained", "8mHZ Internal" yazın (yukarıda gösterilen tüm yapılandırmalar).
Kod deposu burada bulunabilir.
Kütüphanenin bir ZIP'i burada bulunabilir.
"ZIP Kitaplığını İçe Aktarma" talimatları burada.
Kütüphane kurulduktan sonra "attiny_ky019" örneğini açabilirsiniz.
Donanım yazılımını ATTINY85'e yüklemek için bu talimatlarda daha fazla ayrıntı bulabilirsiniz:
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…
Devam etmeden önce breadboard üzerinden test etmek en iyisidir.
Mevcut ASSIMILAT SENSÖRLERİNİZ varsa, bir SENSÖR/MCU Ana Bilgisayar kombinasyonunda bağımlı adresin farklı olduğundan emin olun, yani bir MCU/düğümde yalnızca bir Aktarma aktörünüz olduğu sürece tüm Aktarma aktörleri aynı adrese sahip olabilir.
Adım 3: Devreyi Birleştirin
- Ön tarafa, ATTINY85 (1), 3P 90deg erkek başlıklar (2)(3) bileşenlerini yerleştirin ve arka tarafa lehimleyin.
- Arkada, SARI1'den SARI2'ye kadar sarı bir kablo çizin ve lehimleyin.
- Arkada, MAVİ1'den MAVİ2'ye kadar mavi bir kablo çizin ve lehimleyin.
- Arkada, YEŞİL1'den YEŞİL2'ye yeşil bir kablo çizin ve lehimleyin.
- Arkada, SİYAH1'den SİYAH2'ye siyah bir kablo çizin ve lehimleyin.
- Arkada, BLACK3'ten BLACK4'e siyah bir kablo çizin ve lehimleyin.
- Arkada, RED1'den RED2'ye kırmızı bir kablo çizin ve lehimleyin.
- Arkada, RED3'ten RED4'e kırmızı bir kablo çizin ve lehimleyin.
Röle artık pinleri aracılığıyla doğrudan PCB'ye veya kablolar aracılığıyla pin sözleşmesinde gösterilen noktalara bağlanabilir.
4. Adım: Test Etme
Bu BRICKS'lerin bir kısmının bir ortamda birden çok düğümde (MCU'lar - ESP8266 veya ATTINY84) olması beklenir. Bu bir birim testidir: UNO'dan ATTINY'ye röleyi açan veya kapatan I2C komutları gönderir.
Daha önce Arduino için bir I2C SHIELD inşa etmiştik.
Bunun yerine breadboard yapmak istiyorsanız:
- UNO üzerindeki 5.0V'yi BRICK üzerindeki bir VCC'ye bağlayın.
- UNO üzerindeki GND'yi BRICK üzerindeki GND'ye bağlayın.
- UNO üzerindeki A5'i BRICK üzerindeki SCL'ye bağlayın.
- UNO üzerindeki A4'ü BRICK üzerindeki SDA'ya bağlayın.
- SDA'dan VCC'ye bir 4K7 çekme direnci bağlayın.
- SCL'den VCC'ye bir 4K7 çekme direnci bağlayın.
Testi çalıştırıyorum
- UNO'nuzu USB ile Dev PC'nize bağlayın.
- Kodu UNO'ya yükleyin.
- Arduino Konsolunu açın. 9600 baud'u seçin (UNO'yu yeniden başlatın ve gerekirse konsolu yeniden açın).
- Kölenin adresi konsola yazdırılacaktır.
- Gönderim kutusuna 2 1 (yani 12 2 1) girin ve röle açılır.
- olduğunda, gönderme kutusuna 2 0 (yani 12 2 0) girin ve röle kapanır.
UNO master'dan slave'ler için I2C BRICK adhoc komutları
#Dahil etmek |
const bayt _num_chars = 32; |
char _alınan_chars[_num_chars]; // alınan verileri depolamak için bir dizi |
boolean _has_new_data = yanlış; |
voidsetup() { |
Seri.başla(9600); |
Seri.println(); |
Serial.println("ASSIMILE IOT AKTÖR/SENSÖR EEPROM EDİTÖRÜ"); |
Serial.println("konsol penceresinde yeni satırın seçili olduğundan emin olun"); |
Seri.println(); |
Serial.println("ADRES 1 DOĞRULAMA META VERİ ALINDI N/A (M2M İÇİN)"); |
Serial.println("ADRES 2 AKTÖR KOMUTU"); |
Seri.println(); |
Serial.println("BUS ÜZERİNDEKİ ADRESLER:"); |
scan_i2c_addresses(); |
Seri.println(); |
Seri.println(""); |
} |
vidscan_i2c_addresses(){ |
int cihaz_sayısı = 0; |
için (bayt adresi = 8; adres < 127; adres++) |
{ |
Wire.beginTransmission(adres); |
const bayt hatası = Wire.endTransmission(); |
if (hata == 0) |
{ |
Serial.println(adres); |
} |
} |
} |
boşluk döngüsü() { |
recv_with_end_marker(); |
send_to_i2c(); |
} |
voidrecv_with_end_marker() { |
statik bayt ndx = 0; |
char end_marker = '\n'; |
karakter rc; |
while (Serial.available() >0 && _has_new_data == false) { |
rc = Seri.read(); |
if (rc != end_marker) { |
_received_chars[ndx] = rc; |
ndx++; |
if (ndx >= _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
Başka { |
_received_chars[ndx] = '\0'; // stringi sonlandır |
ndx = 0; |
_has_new_data = doğru; |
} |
} |
} |
vidsend_to_i2c() { |
char param_buf[16]; |
const String alınan_string = String(_received_chars); |
if (_has_new_data == doğru) { |
int idx1 = alınan_string.indexOf(''); |
Dize adresi = alınan_string.substring(0, idx1); |
int address_int = adres.toInt(); |
if (address_int < 8 || address_int >127){ |
Serial.println("GEÇERSİZ ADRES GİRİŞİ:"); |
Serial.println(adres); |
dönüş; |
} |
int idx2 = alınan_string.indexOf('', idx1+1); |
dize kodu; |
if (idx2 == -1){ |
kod = alınan_string.substring(idx1+1); |
}Başka{ |
kod = alınan_string.substring(idx1+1, idx2+1); |
} |
int code_int = code.toInt(); |
if (code_int < 0 || code_int >5){ |
Serial.println("GEÇERSİZ KOD GİRİŞİ:"); |
Seri.println(kod); |
dönüş; |
} |
bool has_parameter = idx2 > -1; |
dize parametresi; |
if (has_parameter){ |
parametre = alınan_string.substring(idx2 + 1, idx2 + 17); // maksimum 16 karakter |
if (parameter.length() < 1){ |
Serial.println("PARTAMETRE MIN. UZUNLUK 1"); |
_has_new_data = yanlış; |
dönüş; |
} |
}Başka{ |
if (code_int >1){ |
Serial.println("PARAMETRE GEREKLİ!"); |
_has_new_data = yanlış; |
dönüş; |
} |
} |
Seri.println(); |
Serial.print("giriş kaynağı = "); |
Serial.println(alınan_string); |
Serial.print("adres = "); |
Serial.println(adres); |
Serial.print("kod = "); |
Seri.println(kod); |
Serial.print("parametre = "); |
Seri.println(parametre); |
// I2C İLE GÖNDER |
Wire.beginTransmission(adres_int); |
Wire.write(code_int); |
if (has_parameter){ |
parametre.trim(); |
strcpy(param_buf, parametre.c_str()); |
Wire.write(param_buf); |
} |
Wire.endTransmission(); |
Seri.println(); |
Serial.println("I2C İLE GÖNDERİLDİ!"); |
Seri.println(); |
Seri.println(""); |
_has_new_data = yanlış; |
} |
} |
GitHub tarafından ❤ ile barındırılan rawuno_i2c_command_input.ino'yu görüntüleyin
Adım 5: Sonraki Adımlar
Bu tuğlayı kullanan takip eden ASSIMILATE ACTOR: KY019, burada ATTINY85'te zaten yüklü olan meta veriler aracılığıyla Crouton için otomatik yapılandırmaya sahiptir. Crouton'a gönderilen JSON paketi, ICOS10 için en son üretici yazılımı aracılığıyla gönderilir. Yapı şimdilik çok fazlaysa, sıradan bir ESP8266'da Kavram Kanıtı yapabilirsiniz.
Testte kullanılan UNO taslağı, hedef I2C veriyolunuzda bir çakışma varsa ATTINY85'teki EEPROM'a yeni bir bağımlı adresi kaydetme işlevine sahiptir.
Birkaç şema eklendi, ancak ne elde etmek istediğinize bağlı olarak aşağı akım devresini bağlamanın çeşitli yolları var, bu yüzden bunu size bırakacağım:)
Önerilen:
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
IOT123 - ASSİMİLAT AKTÖRÜ: KY019: 4 Adım
IOT123 - ASSIMILATE AKTÖR: KY019: DC/AC sinyalini kontrol edebilen 5V TIL kontrol sinyaline sahiptir. Bu yapı I2C KY019 TUĞLA dayanmaktadır. 2 kanala ihtiyacınız varsa, bu aktörü 2CH RELAY BRICK ile değiştirmenizi öneririm. ASSİMİLAT AKTÖRLERİ/SENSÖRLERİ, çevre aktörleri/sensörleridir
IOT123 - LIR2032 AKÜ TUĞLA: 4 Adım
IOT123 - LIR2032 BATARYA TUĞLALARI: IOT123 TUĞLALARI, bir düğüme veya giyilebilir cihaza işlevsellik eklemek için diğer IOT123 TUĞLALAR ile karıştırılabilen DIY modüler ünitelerdir. Birbirine bağlı deliklere sahip inç kare, çift taraflı protokollere dayanmaktadırlar
IOT123 - 3.3V GÜÇ TUĞLA: 4 Adım
IOT123 - 3.3V GÜÇ TUĞLA: IOT123 TUĞLALARI, bir düğüme veya giyilebilir cihaza işlevsellik eklemek için diğer IOT123 TUĞLALAR ile karıştırılabilen DIY modüler birimlerdir. Birbirine bağlı deliklere sahip inç kare, çift taraflı protokollere dayanmaktadırlar
IOT123 - 5PIN ATTINY85 NRF24L01 TUĞLA: 4 Adım
IOT123 - 5PIN ATTINY85 NRF24L01 TUĞLA: GÜNCELLEME: Bu kurulum büyük ölçüde akademik veya yazılım/güç kaynağını test etmek için bir temeldir. PB5, RESET olarak devre dışı bırakıldığında bile, analogRead kullanarak değerleri doğru okumaz: sensör okumaları için ana kullanım durumu. ATTINY84 kurulumuna bakacak