İçindekiler:
Video: IOT123 - I2C TUĞLA MASTER JIG: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
ASSİMİLAT SENSÖRLERİ ve AKTÖRLERİ geliştirirken, geliştirilmekte olan prototiplere geçici I2C komutları göndermek için bir UNO'yu kullanışlı tutuyorum. I2C BRICKS'in faydalarından biri standartlaştırılmış pin çıkışlarıdır. Her seferinde devre tahtası kabloları kullanmak yerine (bkz. Fritzings), sağlam bir düşük teknolojili kalkan kullanılır.
Adım 1: Malzemeler ve Araçlar
- 4cm x 6cm Evrensel PCB (1)
- Bağlantı kablosu (~6)
- 4K7 Dirençler (2)6
- Erkek Başlık (12P, 8P)
- Kadın Başlık (9P veya 3P, 3P)
- Lehim ve Demir (1)
2. Adım: Montaj
1 adet 9P dişi başlık yerine 2 adet 3P dişi başlık kullanırsanız, ASSİMİLAT SENSÖRÜ/AKTÖRLERİ, parçaları sökmeden JIG'ye sığacaktır.
Kablolarla uçlardan 10 mm'ye kadar soyun ve en uçlarını kalaylayın.
- PCB'nin altına erkek başlığı (1) (2) yerleştirin ve üstüne lehimleyin.
- PCB'nin üstüne dişi başlığı (3) yerleştirin ve alttan lehimleyin.
- Üstte, delikten kırmızı bir kabloyu RED1 ve RED2'ye geçirin.
- Altta, RED1'den RED3'e delikli kablo.
- Altta, RED2'den RED5'e delikli tel ve lehim.
- Üstte, RED3'ten RED4'e delikli tel ve lehim.
- Üstte, delikten kırmızı bir kabloyu RED6 ve RED7'ye geçirin.
- Altta, RED6'dan RED8'e delikli tel.
- Altta, RED7'den RED10'a delikli tel ve lehim.
- Üstte, RED8'den RED9'a delikli tel ve lehim.
- Üstte, siyah bir kabloyu SİYAH1 ve SİYAH2'ye delikten geçirin.
- Altta, BLACK1'den BLACK3'e açık delikli tel.
- Altta, BLACK2'den BLACK5'e açık delikli tel ve lehim.
- Üstte, BLACK3'ten BLACK4'e açık delikli tel ve lehim.
- Üstte, mavi bir kabloyu MAVİ1 ve MAVİ2'ye delikten geçirin.
- Altta, MAVİ1'den MAVİ3'e açık delikli tel.
- Altta, BLUE2'den BLUE5'e açık delikli tel ve lehim.
- Üstte, MAVİ3'ten MAVİ4'e açık delikli tel ve lehim.
- Üstte, yeşil bir kabloyu YEŞİL1 ve YEŞİL2'ye geçirin.
- Altta, GREEN1'den GREEN3'e delikli tel.
- Altta, GREEN2'den GREEN5'e delikli tel ve lehim.
- Üstte, GREEN3'ten GREEN4'e açık delikli tel ve lehim.
- Üstte, delikten bir 4K7 direnci GÜMÜŞ3 ve GÜMÜŞ4'e geçirin.
- Altta, SILVER3'ten GREEN5'e açık delikli tel ve lehim.
- Altta, SILVER4'ten RED10'a açık delikli tel ve lehim.
- Üstte, GÜMÜŞ1 ve GÜMÜŞ2'ye bir 4K7 direnci delikten geçirin.
- Altta, SILVER1'den BLUE5'e açık delikli tel ve lehim.
- Altta, SILVER2'den RED10'a açık delikli tel ve lehim.
3. Adım: UNO için kod
Buradaki taslak ilkeldir. UNO'nun I2C ATTINY85 BRICK'e I2C mesajları göndermesini sağlamak için Konsol Girişini kullanmanıza izin verir.
Tüm talimatlar, desteklenen seçeneklerle ekrana yazdırılı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
4. Adım: Sonraki Adımlar
Sunulan yapılardan, kendi ASSIMILATE IOT NETWORK'ünüzü oluşturmanız için yeterli hareketli parça var.
Düğümlerin (sensörler ve aktörler) bireysel işlevlerinin her biri, desteklenen özellikler hakkında herhangi bir bilgiye sahip olmak için MCU yöneticisine bağlı olmaksızın, merkezi olmayan bir şekilde kontrol edilebilir.
MQTT aracısına bağlanan herhangi bir uygulama, IOT Düğümünün her özelliğini kontrol edebilir/gözlemleyebilir. Thats M2M, web uygulamaları, IFTTT vb. IOT dünyanız için çok daha basit (veya isterseniz daha zengin) arayüzler.
Önerilen:
IOT123 - ATTINY85 DAHİLİ PROGRAMLAMA JIG: 3 Adım
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: BRICK tasarımlarında, DIP8 PCB'ye lehimlenirken bir pogo pin programlayıcıyı etkinleştirmek için ATTINY85'e bitişik geçiş deliklerinin kullanılmadığından bahsetmiştim. Bu o pogo pin programcısı. Bu gerçekten sadece bir adaptör kablosu
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
IOT123 - ATTINY85 YAZILIM SERİ JIG Montajı: 4 Adım
IOT123 - ATTINY85 YAZILIM SERİ JIG Montajı: Düşük güçlü sensör mashup'ları için ATTINY85'leri kullanıyorum. Başlangıçta, bu yongaları bir konsol kullanarak hata ayıklamanın bir yolu olmadığını düşündüm ve bazı güzel "dışarıda" kullandım; çalışma zamanında neler olup bittiğini göz atma yöntemleri. Sonra SoftwareSeria ile karşılaştım