Turinys:
- 1 žingsnis: medžiaga ir įrankiai
- 2 žingsnis: Paruoškite ATTINY85
- 3 žingsnis: Surinkite grandinę
- 4 žingsnis: bandymas
- 5 veiksmas: kiti veiksmai
Video: IOT123 - I2C MQ2 BRICK: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
„IOT123 BRICKS“yra moduliniai „pasidaryk pats“įrenginiai, kuriuos galima sumaišyti su kitais „IOT123 BRICKS“elementais, kad mazgas ar nešiojamas papildytų funkcionalumą. Jie yra pagrįsti kvadratinėmis, dvipusiomis protobordais, tarpusavyje sujungtais per skyles.
Tikimasi, kad nemažai šių plytų bus keliuose svetainės mazguose (pagrindiniai MCU - ESP8266 arba ATTINY84). MCU nereikia išankstinių žinių apie jutiklių paskirtį ar programinės įrangos poreikius. Jis nuskaito, ar nėra I2C mazgų, tada iš kiekvieno vergo prašo nuosavybės iškelties (jutiklio duomenys). Šie BRICK maitina 5.0V, 3.3V ir kitą AUX liniją, kurią galima pritaikyti.
Šis „I2C MQ2 BRICK“išskiria 3 savybes:
SND (dalys milijonui), CO (PPM), DŪMAS (PPM)
Šis jutiklis pateikė įdomų scenarijų: jam reikia sušilti mažiausiai 2 minutes (iki 5 minučių), tada prieš naudojimą reikia kalibruoti 20 sekundžių. Kadangi pagrindinis MCU tik nori gauti vardų/verčių poras (ir tęstinį pranešimą), mes pristatėme „PREPARE“ypatybę. Kadangi jo tęstinis pranešimas yra „1“(bus dar daugiau), pagrindinis MCU tęs apklausą BRICK, kol ji bus paruošta. Taip pat rekomenduojama prieš naudojimą įdegti MQ2, t. Y. 24 valandas palikti prijungtą prie 5 V grandinės.
„Keyes“tipo jutiklių plytos pirmiausia bus paimtos, nes jose yra vitaminų (reikalingi papildomi komponentai) ir jie yra gana chemiški (aš nusipirkau 37 už 10AUD). Kitos plokštės/grandinės bus pristatytos „I2C BRICKS“.
Skylės, esančios greta ATTINY85, buvo nenaudojamos, kad būtų galima naudoti „Pogo“smeigtuko programuotoją, kol DIP8 yra lituojamas prie PCB.
Toliau kuriama, kad BRICKS būtų supakuotas į mažus cilindrus, kurie jungiami prie D1M WIFI BLOCK koncentratoriaus, siurbiant vertes į MQTT serverį.
1 žingsnis: medžiaga ir įrankiai
Yra visas medžiagų ir šaltinių sąrašas.
- MQ2 jutiklio plyta (1)
- ATTINY85 20PU (1)
- 1 "dvipusė protoboard (1)
- Vyriška antraštė 90º (3P, 3P)
- Vyriška antraštė (2P, 2P)
- Džemperio šuntas (1)
- Prijungimo laidas (~ 7)
- Lituoklis ir geležis (1)
2 žingsnis: Paruoškite ATTINY85
Reikia „AttinyCore“iš valdybos. Įrašykite įkrovos įkėlimo programą „EEPROM Retained“, „8mHZ Internal“(visa konfigūracija parodyta aukščiau).
Naudokite pridėtą šaltinį; kompiliuoti ir programuoti į ATtiny85.
GIST yra čia:
gist.github.com/IOT-123/4c501046d365d01a60…
Daugiau informacijos rasite šiose instrukcijose:
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…
Prieš tęsiant, geriausia išbandyti per duonos lentą.
Jei turite ASSIMILATE JUTIKLIŲ, įsitikinkite, kad SENSOR/MCU pagrindinio kompiuterio derinio slaptasis adresas skiriasi, t. Y. Visi temperatūros jutikliai gali turėti tą patį adresą, jei MCU/mazge turite tik vieną temperatūros jutiklį.
3 žingsnis: Surinkite grandinę
- Priekyje įdėkite komponentus ATTINY85 (1), 3P 90 laipsnių išorines antgalius (2) (3), 2P vyriškas antraštes (4) (5) ir lituokite ant nugaros.
- Galinėje pusėje atsekite oranžinę vielą nuo ORANGE1 iki ORANGE2 ir lydmetalį.
- Galinėje pusėje atsekite mėlyną laidą nuo BLUE1 iki BLUE2 ir lydmetalį.
- Galinėje pusėje atsekite žalią laidą nuo GREEN1 iki GREEN2 ir lydmetalį.
- Galinėje pusėje atsekite pliką vielą nuo SILVER1 iki SILVER2 ir lydmetalį.
- Galinėje pusėje atsekite pliką vielą nuo SILVER3 iki SILVER4 ir lydmetalį.
- Galinėje pusėje atsekite juodą laidą nuo BLACK1 iki BLACK2 ir lydmetalį.
- Galinėje pusėje atsekite juodą laidą nuo BLACK3 iki BLACK4 ir lydmetalį.
- Galinėje pusėje atsekite raudoną vielą nuo RED1 iki RED2 ir lydmetalį.
- Galinėje pusėje atsekite raudoną vielą nuo RED3 iki RED4 ir lydmetalį.
- Galinėje pusėje atsekite geltoną vielą nuo GELTONOS1 iki GELTONOS2 ir lydmetalį.
Dabar jutiklį galima tiesiogiai prijungti per kaiščius prie PCB arba per laidus prie kaiščio sutartyje nurodytų taškų.
4 žingsnis: bandymas
Tikimasi, kad daugelis šių plytų bus keliuose aplinkos mazguose (MCU - ESP8266 arba ATTINY84). Tai yra vieneto testas: tikrina JT užklausas/atsakymus, kol visi duomenys neišmetami, tada ignoruoja I2C vergą.
- Įkelkite UNO kodą į savo UNO bandymo diržus. Įsitikinkite, kad ADDRESS_SLAVE atitinka BRICK I2C adresą.
- Prijunkite 5,0 V UNO prie BRCK VCC.
- Įsitikinkite, kad to kaiščio jungiklis yra įjungtas.
- Prijunkite UNO GND prie BRICK GND.
- Prijunkite A5 ant UNO prie SCL BRICK.
- Prijunkite A4 UNO prie SDA BRICK.
- Prijunkite 4K7 ištraukiamąjį rezistorių iš SDA prie VCC.
- Prijunkite 4K7 ištraukiamąjį rezistorių iš SCL prie VCC.
- Prijunkite UNO prie „Dev“kompiuterio naudodami USB.
- Atidarykite „Arduino“konsolę. Pasirinkite 9600 baudų (iš naujo paleiskite UNO ir vėl atidarykite konsolę).
- Nuosavybės pavadinimai ir reikšmės turėtų būti atspausdinti konsolėje, tada pakartotas žodis miegas.
Jei matote „sąranka“, kartojamos 3 šiukšlių eilutės, SDA ir SCL linijos gali būti sugrąžintos į priekį.
„I2C Master“registravimas iš „I2C slave“su braižytuvo/metaduomenų palaikymu
#įtraukti |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = klaidinga; |
bool _confirmMetadata = klaidinga; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"vardas", "vertė"}; |
voidsetup () { |
Wire.begin (); // prisijungti prie i2c magistralės (adresas neprivalomas meistrui) |
Serial.begin (9600); // pradėti seriją išėjimui |
vėlavimas (1000); |
if (! _outputPlotterOnly) { |
Serial.println („sąranka“); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _confirmMetadata) {// praneškite vergui, kad pradėtų siųsti jutiklio duomenis |
uždelsimas (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Viela.rašyti (1); |
Wire.endTransmission (); |
vėlavimas (100); |
_confirmMetadata = tiesa; |
} |
_i2cNodeProcessed = false; |
if (! _outputPlotterOnly) { |
Serial.println (); |
} |
grįžti; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
anglies paketas [16]; |
intindex = 0; |
bool isContinueSegment = false; // toliauSegmentas (trečiasis) 1 = daugiau, 0 = paskutinis |
o (Wire.available ()) {// vergas gali siųsti mažiau nei prašoma |
char c = Wire.read (); |
paketas [indeksas] = int (c)> -1? c: ''; // netinkamus simbolius pakeiskite tarpais |
if (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = tiesa; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
jei (int (c) == 48 || int (c) == 86) {// 0 paskutinėje nuosavybėje |
_i2cNodeProcessed = tiesa; |
// siųsti reikšmes MQTT |
pertrauka; |
} |
} |
indeksas ++; |
} |
if (! isContinueSegment) { |
if (! _outputPlotterOnly) { |
Serial.println (paketas); |
} |
strcpy (_property [_packetSegment - 1], paketas); // nustatyti vietinį kintamąjį su pavadinimu/verte |
}Kitas{ |
if (_outputPlotterOnly && _confirmMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
}Kitas{ |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
Peržiūrėti rawuno_i2c_generic_sensor_test_w_plotter_v2.ino, kurį priglobė „GitHub“❤
5 veiksmas: kiti veiksmai
Pagrindinis grandinės išdėstymas ir programinės įrangos I2C sluoksnis yra susiję su daugeliu skirtingų jutiklių. Pagrindinis dalykas, kurį reikia pradėti, yra paketo sutartis tarp šeimininko ir vergo.
Aš suplanavau/pradėjau (3D spausdintą) supakuotą jutiklių tinklą, kuris naudoja šią sistemą ir bus susietas su juo, kai bus paskelbtos dalys.
Šią bloką naudoja MQ2 ASISIMILATE JUTIKLIS.
Rekomenduojamas:
Spustelėkite „Brick Switch for Makey Makey“: 4 žingsniai (su nuotraukomis)
Spustelėkite „Brick Switch for Makey Makey“: šis 3D spausdintas jungiklis leis vartotojui paversti „Makey Makey“į „piršto skaidrę“. jei norite spustelėti " žaidimuose arba rodyklėmis į dešinę/į kairę slinkti per pristatymus. Pridedami dešiniojo ir kairiojo gnybtų laikikliai
IOT123 - D1M BLOCK - 2xAMUX surinkimas: 7 žingsniai (su paveikslėliais)
IOT123 - D1M BLOCK - 2xAMUX surinkimas: D1M BLOCKS prideda lytėjimo dėklus, etiketes, poliškumo kreipiklius ir išpjovas populiariame „Wemos D1 Mini SOC/Shields/Clones“. Viena iš ESP8266 mikroschemos problemų yra ta, kad ji turi tik vieną analoginį IO kaištį. Ši instrukcija parodo, kaip surinkti 2xA
IOT123 - ASIMILIATORIUS JUTIKLIS: MQ2: 4 žingsniai
IOT123 - ASISIMILATUOJAMAS JUTIKLIS: MQ2: ASSIMILATE JUTIKLIAI yra aplinkos jutikliai, turintys papildomą aparatinės ir programinės įrangos abstrakcijos sluoksnį, leidžiantį visiškai naujus tipus pridėti prie ASSIMILATE SENSOR HUB ir rodmenis siurbti į MQTT serverį nepridedant kodo
IOT123 - LIR2032 BATERY BRICK: 4 žingsniai
IOT123 - LIR2032 BATTERY BRICK: „IOT123 BRICKS“yra moduliniai „pasidaryk pats“įrenginiai, kuriuos galima sumaišyti su kitais IOT123 plytais, kad mazgas būtų papildomas ar nešiojamas. Jie yra pagrįsti colių kvadratinėmis dvipusiomis protobootomis, sujungtomis per skyles. Nors instrukcija
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 žingsniai
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: ATNAUJINIMAS: Ši sąranka iš esmės yra akademinė arba skirta programinės įrangos/maitinimo šaltinio testavimui. Net kai PB5 yra išjungtas kaip RESET, jis tiksliai neskaito reikšmių naudodami analogRead: pagrindinį jutiklių rodmenų naudojimo atvejį. Bus išnagrinėta ATTINY84 sąranka