Përmbajtje:

TOTA IOT123 - I2C MQ2: 5 hapa
TOTA IOT123 - I2C MQ2: 5 hapa

Video: TOTA IOT123 - I2C MQ2: 5 hapa

Video: TOTA IOT123 - I2C MQ2: 5 hapa
Video: I2C and SPI on a PCB Explained! 2024, Nëntor
Anonim
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2
TOTA IOT123 - I2C MQ2

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

Materiali dhe Mjetet
Materiali dhe Mjetet
Materiali dhe Mjetet
Materiali dhe Mjetet
Materiali dhe Mjetet
Materiali dhe Mjetet

Ekziston një listë e plotë e Faturave të Materialeve dhe Burimeve.

  1. Tulla sensor MQ2 (1)
  2. ATTINY85 20PU (1)
  3. Protoboard me 1 anë (1)
  4. Koka e meshkujve 90º (3P, 3P)
  5. Koka e burrave (2P, 2P)
  6. Jumper Shunt (1)
  7. Teli lidhës (7 ~)
  8. Ngjitës dhe hekur (1)

Hapi 2: Përgatitni ATTINY85

Përgatitni ATTINY85
Përgatitni ATTINY85
Përgatitni ATTINY85
Përgatitni ATTINY85
Përgatitni ATTINY85
Përgatitni ATTINY85
Përgatitni ATTINY85
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

Mblidhni qarkun
Mblidhni qarkun
Mblidhni qarkun
Mblidhni qarkun
Mblidhni qarkun
Mblidhni qarkun
  1. 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.
  2. Në pjesën e pasme, gjurmoni një tel portokalli nga ORANGE1 në ORANGE2 dhe lidhni.
  3. Në pjesën e pasme, gjurmoni një tel blu nga BLUE1 në BLUE2 dhe ngjiteni.
  4. Në pjesën e pasme, gjurmoni një tel të gjelbër nga GREEN1 në GREEN2 dhe lidhni.
  5. Në pjesën e pasme, gjurmoni një tel të zhveshur nga SILVER1 në SILVER2 dhe ngjiteni.
  6. Në pjesën e pasme, gjurmoni një tel të zhveshur nga SILVER3 në SILVER4 dhe ngjiteni.
  7. Në pjesën e pasme, gjurmoni një tel të zi nga BLACK1 në BLACK2 dhe ngjiteni.
  8. Në pjesën e pasme, gjurmoni një tel të zi nga BLACK3 në BLACK4 dhe ngjiteni.
  9. Në pjesën e pasme, gjurmoni një tel të kuq nga RED1 në RED2 dhe lidhni.
  10. Në pjesën e pasme, gjurmoni një tel të kuq nga RED3 në RED4 dhe lidhni.
  11. 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

Duke testuar
Duke testuar
Duke testuar
Duke testuar
Duke testuar
Duke testuar

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.

  1. Ngarko kodin UNO në parzmoren tuaj të provës UNO. Sigurohuni që ADDRESS_SLAVE përputhet me adresën I2C të BRICK.
  2. Lidhni 5.0V në UNO me një VCC në BRICK.
  3. Sigurohuni që kërcyesi për atë kunj është aktiv.
  4. Lidhni GND në UNO me GND në Tulla.
  5. Lidhni A5 në UNO me SCL në Tulla.
  6. Lidhni A4 në UNO me SDA në BRICK.
  7. Lidhni një rezistencë tërheqëse 4K7 nga SDA në VCC.
  8. Lidhni një rezistencë tërheqëse 4K7 nga SCL në VCC.
  9. Lidhni UNO -në tuaj me kompjuterin tuaj Dev me USB.
  10. Hapni tastierën Arduino. Zgjidhni 9600 baud (rinisni UNO dhe rihapni tastierën nëse është e nevojshme).
  11. 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: