İç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 2CH RÖLE TUĞLA: 5 Adım (Resimlerle)
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 2CH RELAY BRICK, I2C KY019 BRICK'in işlevselliğini genişletir ve iki okuma/yazma özelliğine sahiptir:
2CH RÖLELER[0] (doğru/yanlış)
2CH RÖLELER[1] (doğru/yanlış)
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.
- 2 Kanal Röle (1)
- ATTINY85 20PU (1)
- 1" Çift taraflı protokol (1)
- Erkek Başlık 90º (3P, 3P)
- Erkek Başlık (2P, 2P)
- Jumper Şant (1)
- 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_2ch_relay" 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_2ch_relay" ö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/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
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), 3P erkek başlıklar (4)(5) bileşenlerini yerleştirin ve arka tarafa lehimleyin.
- Arkada, SARI1'den SARI2'ye kadar sarı bir kablo çizin ve lehimleyin.
- Arkada, TURUNCU1'den TURUNCU2'ye turuncu 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 çıplak bir kablo çizin ve lehimleyin.
- Arkada, GÜMÜŞ1'den GÜMÜŞ2'ye çıplak bir tel çizin ve lehimleyin.
- 5V veya 3V3 hattına bir jumper ekleyin.
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öleleri 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.
-
olduğunda, gönderme kutusuna 2 0:1 (yani 15 2 0:1) girin ve CH1 rölesi açılır.
- olduğunda, gönderme kutusuna 2 0:0 (yani 15 2 0:0) girin ve CH1 rölesi kapanır.
- olduğunda, gönderme kutusuna 2 1:1 (yani 15 2 1:1) girin ve CH2 rölesi açılır.
- olduğunda, gönderme kutusuna 2 1:0 (yani 15 2 0:0) girin ve CH2 rölesi 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
Takip eden ASSIMILATE ACTOR: Bu tuğlayı kullanan 2CH RELAY, 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:
Röle Kullanarak IR Ev Otomasyonu: 6 Adım (Resimlerle)
Röle Kullanarak IR Ev Otomasyonu: Kızılötesi Uzak Ev Otomasyon Sistemi (Uyarı: Projeyi çoğaltma riski size aittir! Bu proje Yüksek Gerilim içerir)
Arduino Kontrol Röle Modülünü Kullanarak Akıllı Ev Nasıl Yapılır - Ev Otomasyonu Fikirleri: 15 Adım (Resimlerle)
Arduino Kontrol Röle Modülünü Kullanarak Akıllı Ev Nasıl Yapılır | Ev Otomasyonu Fikirleri: Bu ev otomasyonu projemizde 5 adet ev aletini kontrol edebilen akıllı ev röle modülü tasarlayacağız. Bu röle modülü Mobil veya akıllı telefondan, IR uzaktan kumandadan veya TV uzaktan kumandasından, Manuel anahtardan kontrol edilebilir. Bu akıllı röle ayrıca r'yi algılayabilir
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