Përmbajtje:
- Hapi 1: Materiali dhe mjetet
- Hapi 2: Përgatitni ATTINY85
- Hapi 3: Mblidhni qarkun
- Hapi 4: Testimi
- Hapi 5: Hapat e ardhshëm
Video: TOTA IOT123 - I2C MQ2: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:26
TULLA IOT123 janë njësi modulare DIY që mund të përzihen me Tulla të tjera IOT123, për të shtuar funksionalitetin në një nyje ose të veshshme. Ato bazohen në protoboards katrore të inçit, të dyanshëm me ndërlidhje përmes vrimave.
Një numër i këtyre Tullave pritet të jenë në nyje të shumta (Master MCUs - ESP8266 ose ATTINY84) në një sit. MCU nuk ka nevojë për njohuri paraprake për qëllimin e sensorëve ose nevojat e softuerit. Ai skanon për nyjet I2C pastaj kërkon një deponim të pronës (të dhëna të sensorit) nga secili skllav. Këto Tulla furnizojnë 5.0V, 3.3V dhe një linjë tjetër AUX e cila është e personalizueshme.
Kjo TUR I2C MQ2 hedh 3 prona:
LPG (Pjesë për Milion), CO (PPM), TYM (PPM)
Ky Sensor siguroi një skenar interesant: Duhen të paktën 2 minuta (deri në 5 minuta) për t'u ngrohur, pastaj duhet të kalibrohet për 20 sekonda para përdorimit. Meqenëse MCU pritëse është e interesuar vetëm në marrjen e çifteve të emrit/vlerës (dhe një mesazh të vazhdueshëm), ne kemi prezantuar një pronë "PRERGATIT". Meqenëse mesazhi i tij i vazhdueshëm është "1" (më shumë për të ardhur), MCU pritës do të vazhdojë të votojë TURK untilN derisa të jetë gati. Gjithashtu rekomandohet që të "digjni" MQ2 para përdorimit, domethënë të lini të lidhur me qarkun tuaj 5V për 24 orë.
Tullat e sensorit të tipit Keyes do të nxirren së pari pasi ato vijnë me vitamina (përbërës shtesë të nevojshëm) të përfshirë dhe janë relativisht të shpejtë (bleva 37 për 10AUD). Pllaka/qarqe të tjera do të prezantohen me TULLAT I2C.
Vrimat ngjitur me ATTINY85 janë lënë të papërdorura, për të mundësuar një programues pogo pin ndërsa DIP8 është ngjitur në PCB.
Një abstraksion i mëtejshëm, paketimi i Tullave në cilindra të vegjël që futen në një shpërndarës D1M WIFI BLOCK, duke pompuar vlerat në një server MQTT, është duke u zhvilluar.
Hapi 1: Materiali dhe mjetet
Ekziston një listë e plotë e Faturave të Materialeve dhe Burimeve.
- Tulla sensor MQ2 (1)
- ATTINY85 20PU (1)
- Protoboard me 1 anë (1)
- Koka e meshkujve 90º (3P, 3P)
- Koka e burrave (2P, 2P)
- Jumper Shunt (1)
- Teli lidhës (7 ~)
- Ngjitës dhe hekur (1)
Hapi 2: Përgatitni ATTINY85
Nevojitet AttinyCore nga Menaxheri i Bordeve. Djeg bootloader "EEPROM Retained", "8mHZ Interior" (të gjitha konfigurimet e treguara më lart).
Përdorni burimin e përfshirë; përpiloni dhe programoni në ATtiny85.
GIST është këtu:
gist.github.com/IOT-123/4c501046d365d01a60…
Ju mund të gjeni më shumë detaje në këto udhëzime:
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…
Më së miri për të provuar përmes bordit të bukës para se të vazhdoni.
Nëse keni Sensorë ASSIMILATE, sigurohuni që adresa e skllavit të jetë e ndryshme në një kombinim SENSOR/MCU Host, domethënë të gjithë sensorët e Temperaturës mund të kenë të njëjtën adresë për sa kohë që keni vetëm një sensor Temperature në një MCU/nyje.
Hapi 3: Mblidhni qarkun
- Në pjesën e përparme, futni përbërësit ATTINY85 (1), titujt meshkuj 3P 90deg (2) (3), titujt meshkuj 2P (4) (5) dhe ngjitini në anën e pasme.
- Në pjesën e pasme, gjurmoni një tel portokalli nga ORANGE1 në ORANGE2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel blu nga BLUE1 në BLUE2 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të gjelbër nga GREEN1 në GREEN2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel të zhveshur nga SILVER1 në SILVER2 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të zhveshur nga SILVER3 në SILVER4 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të zi nga BLACK1 në BLACK2 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të zi nga BLACK3 në BLACK4 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të kuq nga RED1 në RED2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel të kuq nga RED3 në RED4 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel të verdhë nga YELLOW1 në YELLOW2 dhe lidhni.
Sensori tani mund të lidhet drejtpërdrejt përmes kunjave të tij në PCB ose përmes telave, në pikat e treguara në kontratën e kunjave.
Hapi 4: Testimi
Një numër i këtyre Tullave pritet të jenë në nyje të shumta (MCUs - ESP8266 ose ATTINY84) në një mjedis. Ky është një test njësie: kontrollon kërkesat/përgjigjet e UNO -së derisa të gjitha të dhënat të jenë hedhur, pastaj neglizhon skllavin I2C.
- Ngarko kodin UNO në parzmoren tuaj të provës UNO. Sigurohuni që ADDRESS_SLAVE përputhet me adresën I2C të BRICK.
- Lidhni 5.0V në UNO me një VCC në BRICK.
- Sigurohuni që kërcyesi për atë kunj është aktiv.
- Lidhni GND në UNO me GND në Tulla.
- Lidhni A5 në UNO me SCL në Tulla.
- Lidhni A4 në UNO me SDA në BRICK.
- Lidhni një rezistencë tërheqëse 4K7 nga SDA në VCC.
- Lidhni një rezistencë tërheqëse 4K7 nga SCL në VCC.
- Lidhni UNO -në tuaj me kompjuterin tuaj Dev me USB.
- Hapni tastierën Arduino. Zgjidhni 9600 baud (rinisni UNO dhe rihapni tastierën nëse është e nevojshme).
- Emrat dhe vlerat e pronës duhet të shtypen në tastierë një herë, atëherë fjala gjumë përsëritet.
Nëse shihni "konfigurim", atëherë 3 rreshta mbeturinash përsëriten, mund të keni linjat tuaja SDA dhe SCL përsëri përpara.
I2C Master prerja nga skllavi I2C me mbështetës komplotues/meta të dhënash
#përfshi |
#përcakto ADDRESS_SLAVE10 |
bool _outputPlotterVetëm = false; |
bool _konfirmuarMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"emri", "vlera"}; |
voidsetup () { |
Wire.begin (); // bashkohu me autobusin i2c (adresa opsionale për masterin) |
Serial.filloj (9600); // fillo serialin për dalje |
vonesa (1000); |
nëse (! _outputPlotterOnly) { |
Serial.println ("konfigurimi"); |
Serial.println (); |
} |
} |
voidloop () { |
nëse (_i2cNodeProcessed) { |
nëse (! _konfirmuarMetadata) {// bëjani të ditur robit që të fillojë dërgimin e të dhënave të sensorit |
vonesa (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Tela.shkruaj (1); |
Wire.endTransmission (); |
vonesa (100); |
_konfirmuarMetadata = e vërtetë; |
} |
_i2cNodeProcessed = false; |
nëse (! _outputPlotterOnly) { |
Serial.println (); |
} |
kthim; |
} |
Tela. Kërkohet nga (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
paketë char [16]; |
intindeksi = 0; |
bool isContinueSegment = false; // continueSegment (e 3 -ta) 1 = më shumë, 0 = e fundit |
ndërsa (Wire.available ()) {// skllavi mund të dërgojë më pak se sa kërkohet |
char c = Wire.read (); |
pako [indeksi] = int (c)> -1? c: ''; // zëvendësoni shenjat e pavlefshme me hapësira |
nëse (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = e vërtetë; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
nëse (int (c) == 48 || int (c) == 86) {// 0 në vetinë e fundit |
_i2cNodeProcessed = e vërtetë; |
// dërgoni vlera në MQTT |
pushim; |
} |
} |
indeks ++; |
} |
nëse (! isContinueSegment) { |
nëse (! _outputPlotterOnly) { |
Serial.println (pako); |
} |
strcpy (_property [_packetSegment - 1], paketë); // vendos var lokal me emrin/vlerën |
} tjetër { |
if (_outputPlotterOnly && _confirmMetadata) { |
nëse (_i2cNodeProcessed) { |
Serial.println (_pasuri [1]); |
} tjetër { |
Serial.print (_pasuri [1]); |
Serial.print (""); |
} |
} |
} |
} |
shiko rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostuar me ❤ nga GitHub
Hapi 5: Hapat e ardhshëm
Paraqitja themelore e qarkut dhe shtresa I2C e softuerit lidhet me shumë sensorë të ndryshëm. Gjëja kryesore për të marrë të drejtën për të filluar është kontrata e paketës midis zotit dhe skllavit.
Unë kam planifikuar/filluar një rrjet të paketuar (të printuar në 3D) të sensorëve që përdorin këtë kornizë dhe do të lidhen me të pasi pjesët të botohen.
Ky Bllok përdoret nga SENSORI ASQIMILAT I MQ2.
Recommended:
IOT123 - D1M BLOCK - 2xAMUX Montimi: 7 hapa (me fotografi)
IOT123 - D1M BLOCK - 2xAMUX Kuvendi: BLACK -et D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për Wemos D1 Mini SOC/Shields/Clones të njohura. Një nga çështjet me çipin ESP8266 është se ka vetëm një pin analog IO në dispozicion. Ky udhëzues tregon se si të montoni 2xA
IOT123 - D1M BLOCK - RFTXRX Montimi: 8 hapa
IOT123 - D1M BLOCK - RFTXRX Montimi: BLACK -et D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për Wemos D1 Mini SOC/Shields/Clones të njohura. Transmetuesit/Marrësit RF lejojnë ESP8266 të hyjë në automatizimin ekzistues të shtëpisë/industrisë. Kjo shtresë siguron prishje për 433/
IOT123 - D1M BLOCK - GY521 Montimi: 8 Hapa
IOT123 - Blloku D1M - GY521 Asambleja: Bllokimet D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për WEMOS D1 Mini SOC/Shields/Clones të njohura. Ky BLLOK D1M jep një lidhje të thjeshtë midis Wemos D1 Mini dhe modulit GY-521 (kunjat e Adresës dhe Ndërprerjes mund të lidhen
IOT123 - SENSORI I ASIMILIMIT: MQ2: 4 Hapa
IOT123 - SENSOR ASSIMILATE: MQ2: ASSIMILATE SENSORS janë sensorë të mjedisit që kanë një shtresë shtesë të abstragimit të harduerit dhe softuerit, duke bërë të mundur që lloje krejtësisht të reja të shtohen në një HUB SENSOR ASSIMILATE dhe leximet të pompohen në një server MQTT pa kodim të shtuar
TOTA IOT123 - LIR2032 BATTERY: 4 hapa
TOTA IOT123 - LIR2032 BATTERY: Tullat IOT123 janë njësi modulare DIY që mund të përzihen me Tulla të tjera IOT123, për të shtuar funksionalitetin në një nyje ose të veshshme. Ato bazohen në protoboardë katrorë me inç, të dyanshëm me vrima të ndërlidhura. Edhe pse udhëzimet