Përmbajtje:

Një mikro: bit Dive-O-Meter: 8 hapa (me fotografi)
Një mikro: bit Dive-O-Meter: 8 hapa (me fotografi)

Video: Një mikro: bit Dive-O-Meter: 8 hapa (me fotografi)

Video: Një mikro: bit Dive-O-Meter: 8 hapa (me fotografi)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Korrik
Anonim
Një mikro: bit Dive-O-Meter
Një mikro: bit Dive-O-Meter
Një mikro: bit Dive-O-Meter
Një mikro: bit Dive-O-Meter
Një mikro: bit Dive-O-Meter
Një mikro: bit Dive-O-Meter

Vera është këtu, koha e pishinës së saj!

Një mundësi e mirë për të marrë veten dhe mikro tuaj: pak jashtë, dhe në këtë rast edhe në pishinë.

Mikro-bit dive-o-meter i përshkruar këtu është një matës i thjeshtë i thellësisë DIY që ju lejon të matni se sa thellë jeni, ose keni qenë duke u zhytur. Përbëhet vetëm nga një mikro: bit, një paketë baterie ose LiPo, një lidhje lidhëse për mikro: bit, një sensor presioni barometrik BMP280 ose BME280 dhe disa kabllo kërcyes. Përdorimi i mjedisit Pimoroni: biti i bën gjërat gjithnjë e më të thjeshta. E gjithë kjo është e paketuar në dy shtresa të qeseve plastike ose silikoni të pastra nga uji, me disa pesha të shtuara për të kompensuar forcën lundruese.

Shtë një aplikim i pajisjes së presionit mikro: bit të përshkruar në një udhëzues të mëparshëm.

Ju mund të përdorni pajisjen e. g për garat e zhytjes me miqtë dhe familjen, ose për të gjetur se sa i thellë është ai pellg në të vërtetë. E testova duke përdorur pishinën më të thellë në lagjen time dhe zbulova se funksionon të paktën në një thellësi prej 3.2 metrash. Rreth pesë metra është maksimumi teorik. Deri më tani nuk e kam testuar saktësinë e tij në asnjë detaj, por numrat e raportuar ishin të paktën në intervalin e pritur.

Disa vërejtje: Ky nuk ka për qëllim të jetë një mjet për zhytësit e vërtetë. Mikro juaj: biti do të dëmtohet nëse laget. Ju e përdorni këtë udhëzues në rrezikun tuaj.

Përditësoni 27 maj: Tani mund të gjeni një skenar MakeCode HEX që mund ta ngarkoni drejtpërdrejt në mikro: bitin tuaj. Shih hapin 6. Përditëso 13 qershor: Një Enviro: bit dhe një version kabllor u shtuan. Shihni hapat 7 dhe 8

Hapi 1: Teoria pas pajisjes

Ne jetojmë në fund të një oqeani ajri. Presioni këtu është rreth 1020 hPa (hectoPascal) pasi pesha e formës së kolonës së ajrit këtu në hapësirë është rreth 1 kg për centimetër katror.

Dendësia e ujit është shumë më e madhe, pasi një litër ajër peshon rreth 1.2 g dhe një litër ujë 1 kg, domethënë rreth 800-fishi. Pra, pasi rënia e presionit barometrik është rreth 1 hPa për çdo 8 metra lartësi, fitimi i presionit është 1 hPa për çdo centimetër nën sipërfaqen e ujit. Në një thellësi prej rreth 10 m, presioni është 2000 hPa, ose dy atmosfera.

Sensori i presionit i përdorur këtu ka një diapazon matjeje midis 750 dhe 1500 hPa në një rezolutë prej rreth një hPa. Kjo do të thotë që ne mund të masim thellësitë deri në 5 metra në një rezolutë prej rreth 1 cm.

Pajisja do të ishte një matës i thellësisë i tipit Boyle Marriotte. Montimi i tij është mjaft i thjeshtë dhe përshkruhet në një hap të mëvonshëm. Sensori përdor protokollin I2C, kështu që një lidhës i skajit për mikro: biti është i dobishëm. Pjesa më kritike janë qeset e papërshkueshme nga uji, pasi çdo lagështi do të dëmtojë mikro: bitin, sensorin ose baterinë. Ndërsa pak ajër do të bllokohet brenda qeseve, shtimi i peshave ndihmon për të kompensuar forcën lundruese.

Hapi 2: Përdorimi i pajisjes

Duke përdorur Pajisjen
Duke përdorur Pajisjen
Duke përdorur Pajisjen
Duke përdorur Pajisjen
Duke përdorur Pajisjen
Duke përdorur Pajisjen
Duke përdorur Pajisjen
Duke përdorur Pajisjen

Skenari, siç tregohet në detaje në një hap të mëvonshëm, është një variant i një shkrimi që kam zhvilluar më parë për një matës presioni. Për të testuar pajisjen, mund të përdorni dhomën e thjeshtë të presionit të përshkruar atje.

Për qëllime zhytjeje, ajo tregon thellësinë në metra, të llogaritur nga matjet e presionit, ose si një grafik me shirita në hapa 20 cm ose, sipas kërkesës, në numra.

Duke përdorur butonin A në mikro: bit, ju do të vendosni presionin aktual si vlerë të presionit referues. Për të konfirmuar hyrjen, matrica pulson një herë.

Ju mund ta përdorni këtë ose të shihni se sa thellë jeni duke zhytur, ose për të regjistruar se sa thellë jeni zhytur.

Në rastin e parë vendosni presionin aktual të ajrit jashtë si referencë. Në rastin e dytë vendosni presionin në pikën më të thellë ku jeni si referencë presioni, e cila më pas ju lejon të tregoni se sa thellë keni qenë kur jeni përsëri në sipërfaqe. Butoni B shfaq thellësinë e llogaritur nga diferenca e presionit, si një vlerë numerike në metra.

Hapi 3: Materialet e kërkuara

Materialet e kërkuara
Materialet e kërkuara
Materialet e kërkuara
Materialet e kërkuara
Materialet e kërkuara
Materialet e kërkuara

Një mikro: pak. P.sh. me 13 GBP/16 Euro në Pimoroni UK/DE.

Një lidhës buzë (Kitronic ose Pimoroni), 5 GBP. Kam përdorur versionin Kitronic.

Një sensor BMP/BME280. Kam përdorur një sensor BMP280 nga Banggood, 4.33 Euro për tre njësi.

Kabllo kërcyes për të lidhur sensorin dhe lidhësin e skajit.

Një alternativë e shkëlqyer për kombinimin e lidhësit/sensorit të skajit të mësipërm mund të jetë Pimoroni enviro: bit (nuk është testuar deri më tani, shihni hapin e fundit).

Një paketë baterie ose LiPo për mikro: bit.

Një kabllo energjie me një ndërprerës (opsional por i dobishëm). Qese të qarta të papërshkueshme nga uji. Kam përdorur një qese silikoni për një celular dhe një ose dy çanta të vogla ziploc. Sigurohuni që materiali të jetë mjaft i trashë, kështu që kunjat në lidhësin buzë nuk do të dëmtojnë çantat.

Disa pesha. Kam përdorur pjesë të peshës së plumbit që përdoren për peshkim.

Arduino IDE, dhe disa biblioteka.

Hapi 4: Asambleja

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Instaloni Arduino IDE dhe bibliotekat e kërkuara. Detajet janë përshkruar këtu.

(Nuk kërkohet për skriptin MakeCode.) Duke qenë se përdorni lidhësin e skajit Kitronik, lidhni kunjat në portat I2C 19 & 20. Kjo nuk kërkohet për lidhësin e skajit Pimoroni. Ngjitni titullin në sensorin e shpërthimit dhe lidhni sensorin dhe lidhësin e skajit duke përdorur kabllo kërcyes. Lidhni VCC me 3V, GND në 0 V, SCL në portën 19 dhe SDA në portin 20. Përndryshe lidhni kabllot direkt në dalje. Lidhni mikro: bit me kompjuterin tonë me anë të një kabllo USB. Hapni skriptin e dhënë dhe futeni atë në mikro: bit. Përdorni monitorin ose komplotuesin serik, kontrolloni nëse sensori jep të dhëna të arsyeshme. Shkëputeni mikro: bitin nga kompjuteri juaj. Lidhni baterinë ose LiPo me mikro: bit. Shtypni butonin B, lexoni vlerën Shtypni butonin A. Shtypni butonin B, lexoni vlerën. Vendoseni pajisjen në dy shtresa të qeseve hermetike, duke lënë vetëm shumë pak ajër në qese. Në rast, vendosni një peshë për të kompensuar forcën e lundrimit. Kontrolloni nëse gjithçka është e papërshkueshme nga uji. Shkoni në pishinë dhe luani.

Hapi 5: Skenari MicroPython

Skenari thjesht merr vlerën e presionit nga sensori, e krahason atë me vlerën e referencës dhe më pas llogarit thellësinë nga diferenca. Për shfaqjen e vlerave si një grafik me shirita, merret pjesa e plotë dhe pjesa e mbetur e vlerës së thellësisë. E para përcakton lartësinë e vijës. Pjesa e mbetur ndahet në pesë kazanë, të cilët vërtet përcaktojnë gjatësinë e shufrave. Niveli i sipërm është 0 - 1 m, më i ulëti 4 - 5 m. Siç u përmend më parë, shtypja e butonit A vendos presionin e referencës, butoni B shfaq "thellësinë relative" në metra, të shfaqur si një vlerë numerike. Deri tani, vlerat negative dhe pozitive paraqiten si bargraf në matricën LED në të njëjtën mënyrë. Ndjehuni të lirë të optimizoni skenarin për nevojat tuaja. Ju mund të çaktivizoni linja të caktuara për të paraqitur vlerat në monitorin serik ose komplotuesin e Arduino IDE. Për të imituar funksionin, mund të ndërtoni pajisjen që kam përshkruar në një udhëzues të mëparshëm.

Unë nuk kam shkruar pjesën e shkrimit që lexon sensorin. Nuk jam i sigurt për burimin, por më pëlqen të falënderoj autorët. Çdo korrigjim ose sugjerim për optimizim është i mirëpritur.

#përfshi

#përfshi mikrobit Adafruit_Microbit_Matrix; #përcakto BME280_ADDRESS 0x76 pa shenjë të gjatë int hum_raw, temp_raw, pres_raw; nënshkruar gjatë int t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; shtypi i dyfishtë_norm = 1015; // një vlerë fillestare dyfish thellësi; // thellësia e llogaritur // ------------------------------------------------ ------------------------------------------------------ ---------------------- void setup () {uint8_t osrs_t = 1; // Mbivendosja e temperaturës x 1 uint8_t osrs_p = 1; // Presioni i tepërt i presionit x 1 uint8_t osrs_h = 1; // Lagështia e tepërt e mostrës x 1 mënyra uint8_t = 3; // Mënyra normale uint8_t t_sb = 5; // Rezistenca 1000ms uint8_t filtri = 0; // Filtroni jashtë uint8_t spi3w_en = 0; // SPI me 3 tela Çaktivizo uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | mënyra; uint8_t config_reg = (t_sb << 5) | (filtri << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.filloj (9600); // vendos shpejtësinë e portit serik Serial.print ("Presioni [hPa]"); // kokë për daljen serike Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); vonesa (1000); } // -------------------------------------------------- -------------------------------------------------- loop void () {temp_act dyfishtë = 0.0, press_act = 0.0, hum_act = 0.0; nënshkruar gjatë int temp_cal; e panënshkruar gjatë int press_cal, hum_cal; int N; int M; shtypi i dyfishtë_delta; // presioni relativ int thellësia_m; // thellësi në metra, pjesë e plotë thellësi e dyfishtë_cm; // pjesa tjetër në cm readData (); // temp_cal = kalibrimi_T (temp_raw); press_cal = kalibrimi_P (pres_raw); // hum_cal = kalibrim_H (hum_raw); // temp_act = (dyfish) temp_cal / 100.0; shtyp_akt = (dyfish) shtyp_kal / 100.0; // hum_act = (dyfish) hum_cal / 1024.0; microbit.qartë (); // rivendos matricën LED // Butoni A vendos vlerën aktuale si referencë (P zero) // Butoni B shfaq vlerën aktuale si thellësi në metra (llogaritur nga diferenca e presionit) nëse (! digitalRead (PIN_BUTTON_A)) {// vendos presionin normal të ajrit si zero press_norm = shtyp_akt; // microbit.print ("P0:"); // microbit.print (shtyp_ normale, 0); // microbit.print ("hPa"); microbit.fillScreen (LED_ON); // vezulloni një herë për të konfirmuar vonesën (100); } tjetër nëse (! digitalRead (PIN_BUTTON_B)) {// shfaq thellësinë në metra microbit.print (thellësi, 2); microbit.print ("m"); // Serial.println (""); } else {// llogaris thellësinë nga diferenca e presionit press_delta = (press_act - press_norm); // llogarit thellësinë relative të presionit = (press_delta/100); // thellësia në metra thellësia_m = int (abs (thellësia)); // thellësia im metra thellësia_cm = (abs (thellësia) - thellësia_m); // pjesa e mbetur /* // përdoret për zhvillim Serial.println (thellësia); Serial.println (thellësia_m); Serial.println (thellësia_cm); */ // Hapat për bargrafin nëse (thellësia_cm> 0.8) {// vendosni gjatësinë e shufrave (N = 4); } tjetër if (thellësia_cm> 0.6) {(N = 3); } tjetër nëse (thellësia_cm> 0.4) {(N = 2); } tjetër nëse (thellësia_cm> 0.2) {(N = 1); } tjetër {(N = 0); }

nëse (thellësia_m == 4) {// niveli i caktuar == metër

(M = 4); } tjetër if (thellësia_m == 3) {(M = 3); } tjetër nëse (thellësia_m == 2) {(M = 2); } tjetër if (thellësia_m == 1) {(M = 1); } tjetër {(M = 0); // rreshti i sipërm} /* // përdoret për qëllime zhvillimi Serial.print ("m:"); Serial.println (thellësia_m); Serial.print ("cm:"); Serial.println (thellësia_cm); Serial.print ("M:"); Serial.println (M); // për qëllime zhvillimi Serial.print ("N:"); Serial.println (N); // për qëllime zhvillimi vonesë (500); */ // vizatoni bargraph microbit.drawLine (0, M, N, M, LED_ON); }

// dërgoni vlerën në portin serik për komplotuesin

Serial.print (press_delta); // vizatoni linjat treguese dhe rregulloni gamën e shfaqur Serial.print ("\ t"); Serial.print (0); Serial.print ("\ t"); Serial.print (-500); Serial.print ("\ t"); Serial.println (500); vonesë (500); // Matni dy herë në sekondë} // -------------------------------------------- ------------------------------------------------------ ------------------------------------------------------ -------- // kërkohet sa vijon për sensorin bmp/bme280, mbajeni si të pavlefshëm readTrim () {uint8_t data [32], i = 0; // Fiks 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Tela. Kërkohet nga (BME280_ADDRESS, 24); // Fix 2014/ndërsa (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // Shto 2014/Wire.write (0xA1); // Shto 2014/Wire.endTransmission (); // Shto 2014/Wire.requestFrom (BME280_ADDRESS, 1); // Shto 2014/të dhëna = Wire.read (); // Shto 2014/i ++; // Shto 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Tela. Kërkohet nga (BME280_ADDRESS, 7); // Fix 2014/ndërsa (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (të dhënat [1] << 8) | të dhëna [0]; dig_P1 = (të dhënat [7] << 8) | të dhëna [6]; dig_P2 = (të dhënat [9] << 8) | të dhëna [8]; dig_P3 = (të dhënat [11] << 8) | të dhëna [10]; dig_P4 = (të dhënat [13] << 8) | të dhëna [12]; dig_P5 = (të dhënat [15] << 8) | të dhëna [14]; dig_P6 = (të dhënat [17] << 8) | të dhëna [16]; dig_P7 = (të dhënat [19] << 8) | të dhëna [18]; dig_T2 = (të dhënat [3] << 8) | të dhëna [2]; dig_T3 = (të dhënat [5] << 8) | të dhëna [4]; dig_P8 = (të dhënat [21] << 8) | të dhëna [20]; dig_P9 = (të dhënat [23] << 8) | të dhëna [22]; dig_H1 = të dhëna [24]; dig_H2 = (të dhënat [26] << 8) | të dhëna [25]; dig_H3 = të dhëna [27]; dig_H4 = (të dhënat [28] << 4) | (0x0F & të dhëna [29]); dig_H5 = (të dhënat [30] 4) & 0x0F); // Fiks 2014/dig_H6 = të dhëna [31]; // Fiksimi 2014/} regjistrimi i pavlefshëm i regjistrimit (uint8_t reg_adresa, uint8_t të dhëna) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_adresa); Wire.write (të dhënat); Wire.endTransmission (); } void readData () {int i = 0; uint32_t të dhëna [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Tela. Kërkohet nga (BME280_ADDRESS, 8); ndërsa (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (të dhënat [0] << 12) | (të dhënat [1] 4); temp_raw = (të dhënat [3] << 12) | (të dhënat [4] 4); hum_raw = (të dhënat [6] 3) - ((nënshkruar gjatë int) dig_T1 11; var2 = (((((adc_T >> 4) - ((nënshkruar gjatë int) dig_T1)) * ((adc_T >> 4) - ((nënshkruar gjatë int) dig_T1))) >> 12) * ((nënshkruar gjatë int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; kthimi T; } kalibrimi i gjatë i panënshkruar int (nënshkruar i gjatë int adc_P) {nënshkruar i gjatë int var1, var2; int i panënshkruar i gjatë P; var1 = (((nënshkruar gjatë int) t_fine) >> 1) - (nënshkruar gjatë int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((nënshkruar gjatë int) dig_P6); var2 = var2 + ((var1 * ((nënshkruar gjatë int) dig_P5)) 2) + (((nënshkruar gjatë int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((nënshkruar gjatë int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((nënshkruar gjatë int) dig_P1)) >> 15); if (var1 == 0) {kthimi 0; } P = (((int e panënshkruar gjatë int) (((nënshkruar gjatë int) 1048576) -adc_P)-(var2 >> 12)))*3125; nëse (P <0x80000000) {P = (P << 1) / ((int pa shenjë e gjatë int) var1); } else {P = (P / (int pa shenjë e gjatë int) var1) * 2; } var1 = (((nënshkruar gjatë int) dig_P9) * ((nënshkruar gjatë int) (((P >> 3) * (P >> 3)) >> 13))] 12; var2 = (((nënshkruar gjatë int) (P >> 2)) * ((nënshkruar gjatë int) dig_P8)) >> 13; P = (int pa shenjë e gjatë int) ((nënshkruar gjatë int) P + ((var1 + var2 + dig_P7) >> 4)); kthimi P; } kalibrim i gjatë i panënshkruar int (h i nënshkruar i gjatë int adc_H) {nënshkrim i gjatë int v_x1; v_x1 = (t_fine - ((nënshkruar gjatë int) 76800)); v_x1 = (((((adc_H << 14) -(((nënshkruar gjatë int) dig_H4) 15) *) ((((((v_x1 * ((nënshkruar gjatë int) dig_H6)] 10)) ((((v_x1 * ((nënshkruar gjatë int) dig_H3)) >> 11) + ((nënshkruar gjatë int) 32768))) >> 10) + ((nënshkruar gjatë int) 2097152)) * ((nënshkruar gjatë int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((nënshkruar gjatë int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); kthimi (int i panënshkruar gjatë) (v_x1 >> 12);

Hapi 6: Një thjeshtim i madh: Kodi MakeCode/JavaScript

Një thjeshtim i madh: Kodi MakeCode/JavaScript
Një thjeshtim i madh: Kodi MakeCode/JavaScript
Një thjeshtim i madh: Kodi MakeCode/JavaScript
Një thjeshtim i madh: Kodi MakeCode/JavaScript

Në maj 2018, Pimoroni ka lëshuar enviro: bit, që vjen me një sensor presioni/lagështie/temperature BME280, një sensor TCS3472 të dritës dhe ngjyrës dhe një mikrofon MEMS. Përveç kësaj ata po ofrojnë një bibliotekë JavaScript për redaktorin MakeCode dhe një bibliotekë MicroPython për këta sensorë.

Unë kam përdorur bibliotekën e tyre MakeCode për të zhvilluar skriptet për pajisjen time. Bashkangjitur gjeni skedarët sipas gjashtëkëndëshit, të cilët mund t'i kopjoni drejtpërdrejt në mikro: bitin tuaj.

Më poshtë gjeni kodin përkatës JavaScript. Testimi në pishinë funksionoi mirë me një version të mëparshëm të skenarit, kështu që unë supozoj se ata do të funksionojnë gjithashtu. Përveç versionit bazë, bargrafik, ekziston edhe një version i kryqëzuar (X) dhe një version L, i synuar për ta bërë leximin më të lehtë, veçanërisht në kushte me dritë të ulët. Zgjidhni atë që preferoni.

le Kolona = 0

le Meter = 0 le të mbetet = 0 le Rresht = 0 le Delta = 0 le Ref = 0 le Is = 0 Is = 1012 themelore.showLeds (` # # # # # # #. # # # #. # # #.. # # # # # # `) Ref = 1180 basic.clearScreen () basic.forever (() => {Basic.clearScreen () if (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () Basic.showLeds (` #. #. #. #. #. # # # # #. #. #. #. #. #`) Basic.pause (1000)} tjetër nëse (input.buttonIsPressed (Button. B)) {Basic.showString ("" + Rreshti + "." + mbeten + "m") bazë. pauzë (200) Basic.clearScreen ()} tjetër {Is = envirobit.getPressure () Delta = Is - Ref Meter = Matematikë.abs (Delta) nëse (Metër> = 400) {Rresht = 4} tjetër nëse (Metër> = 300) {Rresht = 3} tjetër nëse (Metër> = 200) {Rresht = 2} tjetër nëse (Metër> = 100) {Rreshti = 1} tjetër {Rreshti = 0} mbetet = Metër - Rreshti * 100 nëse (mbeten> = 80) {Kolona = 4} tjetër nëse (mbeten> = 60) {Kolona = 3} tjetër nëse (mbeten> = 40) {Column = 2} else if (mbeten> = 20) {Column = 1} else {Column = 0} for (le ColA = 0; ColA <= Column; ColA ++) {led.plot (C olA, Rresht)} Basic.pause (500)}})

Hapi 7: Versioni Enviro: bit

Versioni Enviro: bit
Versioni Enviro: bit
Versioni Enviro: bit
Versioni Enviro: bit
Versioni Enviro: bit
Versioni Enviro: bit

Ndërkohë mora enviro: bit (20 GBP) dhe fuqinë: bit (6 GBP), të dyja nga Pimoroni.

Siç u përmend më herët, enviro: bit vjen me sensorin e presionit, lagështisë dhe temperaturës BME280, por edhe një sensor të dritës dhe ngjyrës (shiko një aplikacion këtu) dhe një mikrofon MEMS.

Fuqia: bit është një zgjidhje e mirë për të fuqizuar mikro: bit dhe vjen me një çelës on/off.

Gjëja e mrekullueshme është se të dyja janë thjesht klikim dhe përdorim, pa saldim, kabllo, tabela buke. Shtoni enviro: bit në mikro: bit, ngarkoni kodin tuaj në mikro: bit, përdorni atë.

Në këtë rast unë përdor mikro, fuqi dhe enviro: bit, i vendosa në një qese Ziploc, e vendosa në një qese plastike të mbyllur me ujë të pastër për celularët, gati. Një zgjidhje shumë e shpejtë dhe e rregullt. Shikoni fotografitë. Çelësi është mjaft i madh për ta përdorur atë përmes shtresave mbrojtëse.

Beenshtë testuar në ujë, po funksiononte mirë. Në një thellësi prej rreth 1.8 m vlera e matur ishte rreth 1.7 m. Jo shumë keq për një zgjidhje të shpejtë dhe të lirë, por larg të qenit perfekte. Duhet pak kohë për tu përshtatur, kështu që mund t'ju duhet të qëndroni në një thellësi të caktuar për rreth 10-15 sekonda.

Hapi 8: Versioni i sondës së kabllit dhe sensorit

Versioni i sondës së kabllit dhe sensorit
Versioni i sondës së kabllit dhe sensorit
Versioni i sondës së kabllit dhe sensorit
Versioni i sondës së kabllit dhe sensorit

Kjo në të vërtetë ishte ideja e parë që kishte një mikometër: thellësia e bitit, e fundit që u ndërtua.

Këtu bashkova sensorin BMP280 në 5 metra të një kabllo me 4 tela dhe vendosa bluzën femër në skajin tjetër. Për të mbrojtur sensorin nga uji, kablli kaloi përmes një tape vere të përdorur. Skajet e tapës u vulosën me zam të nxehtë. Para se të kisha prerë dy nivele në tapë, të dyja shkonin përreth. Pastaj e vendosa sensorin në një sfungjer, vendosa një tullumbace rreth tij dhe fiksova fundin e tullumbace në tapë (niveli i poshtëm). pastaj vendosa 3 copëza 40 g të peshave të plumbit në një tullumbace të dytë, e mbështolla rreth së parës, peshat e vendosura në anën e jashtme dhe fiksova fundin e balonës në shkallën e dytë. Ajri u hoq nga balona e dytë, pastaj gjithçka u fiksua me shirit ngjitës. Shikoni imazhet, ato më të hollësishme mund të ndiqen.

Kërcimtarët u lidhën me mikro: bit përmes një lidhësi buzë, pajisja u ndez dhe presioni i referencës u vendos. Pastaj koka e sensorit u lëshua ngadalë në fund të pishinës (kullë kërcimi 10 m, rreth 4.5 m e thellë).

Rezultatet:

Për habinë time, funksionoi edhe me këtë kabllo të gjatë. Nga ana tjetër, por jo çuditërisht, gabimi i matjes dukej se bëhej më i madh në presione më të larta, dhe një thellësi e vlerësuar prej 4 m u raportua rreth 3 m.

Aplikimet e mundshme:

Me disa korrigjime të gabimeve, pajisja mund të përdoret për të matur thellësinë në rreth 4 m.

Në lidhje me një Arduino ose Raspberry Pi, kjo mund të përdoret për të matur dhe kontrolluar pikën e mbushjes së një pishine ose rezervuari uji, p.sh. për të evokuar një paralajmërim nëse nivelet e ujit shkojnë mbi ose nën pragje të caktuara.

Sfida e Fitnesit në natyrë
Sfida e Fitnesit në natyrë
Sfida e Fitnesit në natyrë
Sfida e Fitnesit në natyrë

Vrapues në Sfidën e Fitnesit në natyrë

Recommended: