İçindekiler:
- Adım 1: Malzeme 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 MQ2 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 MQ2 BRICK, 3 özelliği boşaltır:
LPG (Parça Başına Milyon), CO (PPM), DUMAN (PPM)
Bu Sensör ilginç bir senaryo sağladı: Isınması için en az 2 dakikaya (5 dakikaya kadar) ihtiyacı var, ardından kullanımdan önce 20 saniye kalibre etmesi gerekiyor. Ana bilgisayar MCU'su yalnızca ad/değer çiftleri (ve bir devam mesajı) almakla iç içe olduğundan, bir "PREPARE" özelliğini tanıttık. Devam mesajı "1" olduğundan (daha fazlası gelecek), Ana Bilgisayar MCU, hazır olana kadar BRICK'i yoklamaya devam edecektir. Ayrıca MQ2'yi kullanmadan önce "yakmanız", yani 24 saat boyunca 5V devrenize bağlı bırakmanız önerilir.
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: Malzeme ve Araçlar
Tam bir Malzeme Listesi ve Tedarik listesi var.
- MQ2 sensör tuğlası (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
Kurul Yöneticisinden AttinyCore gereklidir. Bootloader "EEPROM Retained", "8mHZ Internal" yazın (yukarıda gösterilen tüm yapılandırmalar).
Dahil edilen kaynağı kullanın; ATtiny85'e derleyin ve programlayın.
GİST burada:
Gist.github.com/IOT-123/4c501046d365d01a60…
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 Sıcaklık sensörünüz olduğu sürece tüm Sıcaklık sensörleri aynı adrese sahip olabilir.
Adım 3: Devreyi Birleştirin
- Ön tarafa, ATTINY85 (1), 3P 90 derece erkek başlıklar (2)(3), 2P erkek başlıklar (4)(5) bileşenlerini yerleştirin ve arka tarafa 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, GÜMÜŞ1'den GÜMÜŞ2'ye çıplak bir tel çizin ve lehimleyin.
- Arkada, GÜMÜŞ3'ten GÜMÜŞ4'e çıplak bir tel ç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.
- Arkada, SARI1'den SARI2'ye kadar sarı bir kablo çizin ve lehimleyin.
Sensör 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: tüm veriler atılana kadar UNO isteklerini/yanıtlarını kontrol eder, ardından I2C bağımlı birimini ihmal eder.
- UNO kodunu UNO test kablo demetinize yükleyin. ADDRESS_SLAVE öğesinin BRICK'in I2C adresiyle eşleştiğinden emin olun.
- UNO üzerindeki 5.0V'yi BRICK üzerindeki bir VCC'ye bağlayın.
- Bu pin için jumper'ın açık olduğundan emin olun.
- 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.
- UNO'nuzu USB ile Dev PC'nize bağlayın.
- Arduino Konsolunu açın. 9600 baud'u seçin (UNO'yu yeniden başlatın ve gerekirse konsolu yeniden açın).
- Özellik Adları ve değerleri konsola bir kez yazdırılmalı ve ardından uyku kelimesi tekrarlanmalıdır.
"Kurulum" görürseniz, 3 satır çöp tekrarlanırsa, SDA ve SCL satırlarınızı öne arkaya almış olabilirsiniz.
I2C Master, çizici/meta veri desteği ile I2C slave'den günlüğe kaydetme
#Dahil etmek |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = yanlış; |
bool _confirmedMetadata = yanlış; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = yanlış; |
char _property[2][24] = {"ad", "değer"}; |
voidsetup() { |
Wire.begin(); // i2c veriyoluna katıl (master için isteğe bağlı adres) |
Seri.başla(9600); // çıktı için seriyi başlat |
gecikme(1000); |
if (!_outputPlotterOnly){ |
Serial.println("kurulum"); |
Seri.println(); |
} |
} |
boşluk döngüsü() { |
if (_i2cNodeProcessed){ |
if (!_confirmedMetadata){// bağımlıya sensör verilerini göndermeye başlamasını bildirin |
gecikme(1); |
Wire.beginTransmission(ADDRESS_SLAVE); |
Wire.write(1); |
Wire.endTransmission(); |
gecikme(100); |
_confirmedMetadata = doğru; |
} |
_i2cNodeProcessed = yanlış; |
if (!_outputPlotterOnly){ |
Seri.println(); |
} |
dönüş; |
} |
Wire.requestFrom(ADDRESS_SLAVE, 16); |
_packetSegment++; |
karakter paketi[16]; |
inindex = 0; |
bool isContinueSegment = false;// ContinueSegment (3.) 1=daha fazla, 0=son |
while (Wire.available()) { // slave istenenden daha azını gönderebilir |
karakter c = Wire.read(); |
paket[indeks] = int(c) > -1 ? c: '';// geçersiz karakterleri boşluklarla değiştirin |
if (_packetSegment == 3){ |
_packetSegment = 0; |
isContinueSegment = doğru; |
//Serial.println("-------------"); |
//Serial.println(int(c)); |
//Serial.println("-------------"); |
if (int(c) == 48 || int(c) == 86){// 0 son özellikte |
_i2cNodeProcessed = doğru; |
// değerleri MQTT'ye gönder |
kırmak; |
} |
} |
dizin++; |
} |
if (!SContinueSegment){ |
if (!_outputPlotterOnly){ |
Serial.println(paket); |
} |
strcpy(_property[_packetSegment - 1], paket);// yerel değişkeni isim/değer ile ayarla |
}Başka{ |
if (_outputPlotterOnly && _confirmedMetadata){ |
if (_i2cNodeProcessed){ |
Serial.println(_property[1]); |
}Başka{ |
Serial.print(_property[1]); |
Seri.print(""); |
} |
} |
} |
} |
GitHub tarafından ❤ ile barındırılan rawuno_i2c_generic_sensor_test_w_plotter_v2.ino'yu görüntüle
Adım 5: Sonraki Adımlar
Devrenin temel düzeni ve yazılımın I2C katmanı birçok farklı sensörle ilişkilendirilebilir. Başlamak için en önemli şey, master ve slave arasındaki paket sözleşmesidir.
Bu çerçeveyi kullanan ve parçalar yayınlandıkça ona bağlanacak bir (3D baskılı) paketlenmiş sensör ağını planladım/başlattım.
Bu BLOK, MQ2 ASSİMİLAT SENSÖRÜ tarafından kullanılır.
Ö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 SENSÖRÜ: MQ2: 4 Adım
IOT123 - ASSİMİLAT SENSÖRÜ: MQ2: ASSİMİLAT SENSÖRLERİ, eklenmiş bir donanım ve yazılım soyutlama katmanına sahip ortam sensörleridir; bu, bir ASSİMİLAT SENSÖRÜ HUB'a tamamen yeni türlerin eklenmesini ve okumaların ek kod eklenmeden bir MQTT sunucusuna pompalanmasını mümkün kılar
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