İçindekiler:

IOT123 - I2C TUĞLA MASTER JIG: 4 Adım
IOT123 - I2C TUĞLA MASTER JIG: 4 Adım

Video: IOT123 - I2C TUĞLA MASTER JIG: 4 Adım

Video: IOT123 - I2C TUĞLA MASTER JIG: 4 Adım
Video: Вязаный крючком шарф своими руками l Учебное пособие по элегантному вязанию крючком l 2024, Temmuz
Anonim
IOT123 - I2C TUĞLA MASTER JIG
IOT123 - I2C TUĞLA MASTER JIG
IOT123 - I2C TUĞLA MASTER JIG
IOT123 - I2C TUĞLA MASTER JIG
IOT123 - I2C TUĞLA MASTER JIG
IOT123 - I2C TUĞLA MASTER JIG

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

Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
  1. 4cm x 6cm Evrensel PCB (1)
  2. Bağlantı kablosu (~6)
  3. 4K7 Dirençler (2)6
  4. Erkek Başlık (12P, 8P)
  5. Kadın Başlık (9P veya 3P, 3P)
  6. Lehim ve Demir (1)

2. Adım: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

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.

  1. PCB'nin altına erkek başlığı (1) (2) yerleştirin ve üstüne lehimleyin.
  2. PCB'nin üstüne dişi başlığı (3) yerleştirin ve alttan lehimleyin.
  3. Üstte, delikten kırmızı bir kabloyu RED1 ve RED2'ye geçirin.
  4. Altta, RED1'den RED3'e delikli kablo.
  5. Altta, RED2'den RED5'e delikli tel ve lehim.
  6. Üstte, RED3'ten RED4'e delikli tel ve lehim.
  7. Üstte, delikten kırmızı bir kabloyu RED6 ve RED7'ye geçirin.
  8. Altta, RED6'dan RED8'e delikli tel.
  9. Altta, RED7'den RED10'a delikli tel ve lehim.
  10. Üstte, RED8'den RED9'a delikli tel ve lehim.
  11. Üstte, siyah bir kabloyu SİYAH1 ve SİYAH2'ye delikten geçirin.
  12. Altta, BLACK1'den BLACK3'e açık delikli tel.
  13. Altta, BLACK2'den BLACK5'e açık delikli tel ve lehim.
  14. Üstte, BLACK3'ten BLACK4'e açık delikli tel ve lehim.
  15. Üstte, mavi bir kabloyu MAVİ1 ve MAVİ2'ye delikten geçirin.
  16. Altta, MAVİ1'den MAVİ3'e açık delikli tel.
  17. Altta, BLUE2'den BLUE5'e açık delikli tel ve lehim.
  18. Üstte, MAVİ3'ten MAVİ4'e açık delikli tel ve lehim.
  19. Üstte, yeşil bir kabloyu YEŞİL1 ve YEŞİL2'ye geçirin.
  20. Altta, GREEN1'den GREEN3'e delikli tel.
  21. Altta, GREEN2'den GREEN5'e delikli tel ve lehim.
  22. Üstte, GREEN3'ten GREEN4'e açık delikli tel ve lehim.
  23. Üstte, delikten bir 4K7 direnci GÜMÜŞ3 ve GÜMÜŞ4'e geçirin.
  24. Altta, SILVER3'ten GREEN5'e açık delikli tel ve lehim.
  25. Altta, SILVER4'ten RED10'a açık delikli tel ve lehim.
  26. Üstte, GÜMÜŞ1 ve GÜMÜŞ2'ye bir 4K7 direnci delikten geçirin.
  27. Altta, SILVER1'den BLUE5'e açık delikli tel ve lehim.
  28. Altta, SILVER2'den RED10'a açık delikli tel ve lehim.

3. Adım: UNO için kod

UNO için kod
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: