Talaan ng mga Nilalaman:

Isang Micro: bit Dive-O-Meter: 8 Hakbang (na may Mga Larawan)
Isang Micro: bit Dive-O-Meter: 8 Hakbang (na may Mga Larawan)

Video: Isang Micro: bit Dive-O-Meter: 8 Hakbang (na may Mga Larawan)

Video: Isang Micro: bit Dive-O-Meter: 8 Hakbang (na may Mga Larawan)
Video: Полный обзор отеля Club Hotel Phaselis Rose 5* Текирова Турция 2024, Nobyembre
Anonim
Isang Micro: bit Dive-O-Meter
Isang Micro: bit Dive-O-Meter
Isang Micro: bit Dive-O-Meter
Isang Micro: bit Dive-O-Meter
Isang Micro: bit Dive-O-Meter
Isang Micro: bit Dive-O-Meter

Narito ang tag-araw, ang oras ng pool!

Isang magandang pagkakataon na dalhin ang iyong sarili at ang iyong micro: medyo labas sa, at sa kasong ito kahit na, sa swimming pool.

Ang micro: bit dive-o-meter na inilarawan dito ay isang simpleng sukat sa lalim ng DIY na nagbibigay-daan sa iyo upang masukat kung gaano ka lalim, o sumisid. Binubuo lamang ito ng isang micro: bit, isang baterya pack o LiPo, isang gilid na konektor para sa micro: bit, isang BMP280 o BME280 sensor ng barometric pressure at ilang mga jumper cables. Ang paggamit ng Pimoroni enviro: ang bit ay ginagawang mas simple ang mga bagay. Ang lahat ng ito ay naka-pack sa dalawang layer ng malinaw na watertight na malinaw na plastic o mga silikon na bag, na may ilang mga timbang na idinagdag upang mabayaran ang lakas na nagpapalakas.

Ito ay isang aplikasyon ng micro: bit pressure sensor sensor na inilarawan ko sa isang nakaraang itinuro.

Maaari mong gamitin ang aparato e. g. para sa mga kumpetisyon sa diving kasama ang mga kaibigan at pamilya, o upang malaman kung gaano talaga kalalim ang pond na iyon. Sinubukan ko ito gamit ang pinakamalalim na pool sa aking kapitbahayan, at nalaman na gumagana ito ng hindi bababa sa lalim na 3.2 metro. Mga limang metro ang maximum na panteorya. Sa ngayon hindi ko pa nasubukan ang katumpakan nito sa anumang detalye, ngunit ang mga naiulat na numero ay hindi bababa sa inaasahang saklaw.

Ang ilang mga pangungusap: Hindi ito sinadya upang maging isang tool para sa totoong mga iba't iba. Ang iyong micro: kaunti ay mapinsala kung basa ito. Ginagamit mo ang itinuturo na ito sa iyong sariling peligro.

I-update ang Mayo 27: Ngayon ay makakahanap ka ng isang MakeCode HEX-script na maaari mong mai-load nang direkta sa iyong micro: bit. Tingnan ang hakbang 6. I-update ang Hunyo 13: Isang Enviro: bit at isang bersyon ng cable ang idinagdag. Tingnan ang mga hakbang 7 at 8

Hakbang 1: Ang Teorya sa Likod ng Device

Nakatira kami sa ilalim ng isang karagatan ng hangin. Ang presyon ng pababa dito ay halos 1020 hPa (hectoPascal) dahil ang bigat ng pormang haligi ng hangin dito sa puwang ay tungkol sa 1 kg bawat square centimeter.

Ang density ng tubig ay mas mataas, bilang isang litro ng mga timbang ng hangin tungkol sa 1.2 g at isang litro ng tubig na 1 kg, ibig sabihin tungkol sa 800-tiklop. Kaya't ang pagbagsak ng presyon ng barometric ay halos 1 hPa para sa bawat 8 metro ang taas, ang pagtaas ng presyon ay 1 hPa para sa bawat sentimeter sa ibaba ng ibabaw ng tubig. Sa lalim na tungkol sa 10 m, ang presyon ay 2000 hPa, o dalawang atmospheres.

Ang sensor ng presyon na ginamit dito ay may saklaw na pagsukat sa pagitan ng 750 at 1500 hPa sa isang resolusyon na halos isang hPa. Nangangahulugan ito na maaari naming sukatin ang lalim hanggang sa 5 metro sa isang resolusyon na tungkol sa 1 cm.

Ang aparato ay magiging isang sukat ng sukat ng uri ng Boyle Marriotte. Ang pagpupulong nito ay medyo simple at inilarawan sa susunod na hakbang. Gumagamit ang sensor ng I2C protocol, kaya't isang edge na konektor para sa micro: medyo madaling gamitin. Ang pinaka-kritikal na bahagi ay ang mga watertight bag, dahil ang anumang kahalumigmigan ay makakasira sa micro: bit, sensor, o baterya. Tulad ng ilang mga hangin ay nakulong sa loob ng mga bag, ang pagdaragdag ng mga timbang ay nakakatulong upang mabayaran ang lakas na nagpapalakas.

Hakbang 2: Paggamit ng Device

Paggamit ng Device
Paggamit ng Device
Paggamit ng Device
Paggamit ng Device
Paggamit ng Device
Paggamit ng Device
Paggamit ng Device
Paggamit ng Device

Ang script, tulad ng ipinakita nang detalyado sa isang susunod na hakbang, ay isang pagkakaiba-iba ng isang script na binuo ko kanina para sa isang pressure meter. Upang subukan ang aparato, maaari mong gamitin ang simpleng silid ng presyon na inilarawan doon.

Para sa mga layuning diving ipinapakita nito ang lalim ng mga metro, tulad ng kinakalkula mula sa mga sukat ng presyon, alinman bilang isang graph ng bar sa 20 cm na mga hakbang o, kapag hiniling, sa mga numero.

Gamit ang pindutan A sa micro: bit, maitatakda mo ang kasalukuyang presyon bilang halaga ng presyon ng sanggunian. Upang kumpirmahin ang pagpasok, ang matrix ay kumikislap nang isang beses.

Maaari mong gamitin ito alinman makita kung gaano kalalim ang iyong pagsisid, o upang maitala kung gaano kalalim ang iyong pagsisid.

Sa unang kaso itakda ang kasalukuyang presyon ng hangin sa labas bilang sanggunian. Sa pangalawang kaso itakda ang presyon sa pinakamalalim na punto kung saan bilang sanggunian sa presyon, na kung saan ay pinapayagan kang ipakita kung gaano ka kalalim nang bumalik ka sa ibabaw. Ipinapakita ng Button B ang lalim, kinakalkula mula sa pagkakaiba ng presyon, bilang isang bilang na bilang sa mga metro.

Hakbang 3: Kinakailangan ang Mga Materyal

Mga Materyal na Kinakailangan
Mga Materyal na Kinakailangan
Mga Materyal na Kinakailangan
Mga Materyal na Kinakailangan
Mga Materyal na Kinakailangan
Mga Materyal na Kinakailangan

Isang micro: kaunti. Hal. sa 13 GBP / 16 Euro sa Pimoroni UK / DE.

Isang gilid na konektor (Kitronic o Pimoroni), 5 GBP. Ginamit ko ang Kitronic na bersyon.

Isang sensor ng BMP / BME280. Gumamit ako ng isang sensor ng BMP280 mula sa Banggood, 4.33 Euro para sa tatlong mga yunit.

Ang mga jumper cable upang ikonekta ang sensor at edge na konektor.

Ang isang mahusay na kahalili sa kombinasyon ng konektor / sensor sa itaas ay maaaring Pimoroni enviro: bit (hindi nasubukan ngayon, tingnan ang huling hakbang).

Isang pack ng baterya o LiPo para sa micro: bit.

Isang power cable na may switch (opsyonal ngunit kapaki-pakinabang). I-clear ang mga watertight bag. Gumamit ako ng isang silicone pouch para sa isang mobile phone at isa o dalawang maliit na mga ziploc bag. Tiyaking ang materyal ay sapat na makapal, kaya't ang mga pin sa gilid na konektor ay hindi makapinsala sa mga bag.

Ilang timbang. Gumamit ako ng mga piraso ng timbang na tingga na ginagamit para sa pangingisda.

Arduino IDE, at maraming mga aklatan.

Hakbang 4: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

I-install ang Arduino IDE at ang mga kinakailangang aklatan. Inilalarawan dito ang mga detalye.

(Hindi kinakailangan para sa script ng MakeCode.) Dahil sa paggamit mo ng Kitronik edge na konektor, mga solder pin sa I2C port 19 & 20. Hindi ito kinakailangan para sa konektor ng Pimoroni edge. Maghinang ang header sa sensor masira at ikonekta ang sensor at edge na konektor gamit ang mga jumper cables. Ikonekta ang VCC sa 3V, GND sa 0 V, SCL sa port 19 at SDA sa port 20. Bilang kahalili solder ang mga cable nang direkta sa breakout. Ikonekta ang micro: bit sa aming computer sa pamamagitan ng isang USB cable. Buksan ang ibinigay na script at i-flash ito sa micro: bit. Gamitin ang serial monitor o plotter, suriin kung ang sensor ay nagbibigay ng makatuwirang data. Idiskonekta ang micro: kaunti mula sa iyong computer. Ikonekta ang baterya o LiPo sa micro: bit. Pindutin ang pindutan B, basahin ang halaga Pindutin ang pindutan A. Pindutin ang pindutan B, basahin ang halaga. Ilagay ang aparato sa dalawang layer ng mga airtight bag, naiwan ang napakakaunting hangin sa mga bag. Sa kaso, maglagay ng isang timbang upang mabayaran ang puwersa ng buoyancy. Suriin kung ang lahat ay walang tubig. Pumunta sa pool at maglaro.

Hakbang 5: Ang MicroPython Script

Kinukuha lamang ng script ang halaga ng presyon mula sa sensor, inihambing ito sa halaga ng sanggunian, at pagkatapos ay kinakalkula ang lalim mula sa pagkakaiba. Para sa pagpapakita ng mga halaga bilang isang graph ng bar, ang integer at natitirang bahagi ng lalim na halaga ay kinukuha. Ang una ay tumutukoy sa taas ng linya. Ang natitira ay nasira sa limang mga talata, na tumutukoy sa haba ng mga bar. Ang nangungunang antas ay 0 - 1 m, ang pinakamababang 4 - 5 m. Tulad ng nabanggit kanina, ang pindutan ng A ay nagtatakda ng presyon ng sanggunian, ipinapakita ng pindutan B ang "kamag-anak na lalim" sa mga metro, na ipinakita bilang isang bilang na bilang. Sa ngayon, ang mga negatibong at positibong halaga ay ipinakita bilang bargraph sa LED matrix sa parehong paraan. Huwag mag-atubiling i-optimize ang script para sa iyong mga pangangailangan. Maaari mong i-unmute ang ilang mga linya upang ipakita ang mga halaga sa serial monitor o plotter ng Arduino IDE. Upang tularan ang pagpapaandar, maaari mong buuin ang aparato na inilarawan ko sa isang nakaraang itinuro.

Hindi ko naisulat ang bahagi ng script na binabasa ang sensor. Hindi ako sigurado tungkol sa pinagmulan, ngunit nais kong pasalamatan ang mga autor. Ang anumang mga pagwawasto o pahiwatig para sa pag-optimize ay tinatanggap.

# isama

# isama ang Adafruit_Microbit_Matrix microbit; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; nilagdaan ng mahabang 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 maghukay_H6; double press_norm = 1015; // isang panimulang halaga ng dobleng lalim; // kinakalkula ang lalim // -------------------------------------------- ---- ----------------- void setup () {uint8_t osrs_t = 1; // Temperature oversampling x 1 uint8_t osrs_p = 1; // Pressure oversampling x 1 uint8_t osrs_h = 1; // Humidity oversampling x 1 uint8_t mode = 3; // Normal mode uint8_t t_sb = 5; // Tstandby 1000ms uint8_t filter = 0; // Filter off uint8_t spi3w_en = 0; // 3-wire SPI Huwag paganahin ang uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | mode; uint8_t config_reg = (t_sb << 5) | (salain << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // set serial port speed Serial.print ("Pressure [hPa]"); // header para sa serial output Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); pagkaantala (1000); } // -------------------------------------------- ---------------------------------------------- void loop () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; nilagdaan ng mahabang int temp_cal; unsigned long int press_cal, hum_cal; int N; int M; i-double press_delta; // kamag-anak presyon int lalim_m; // lalim sa metro, bahagi ng integer dobleng lalim_cm; // natitira sa cm readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = calibration_H (hum_raw); // temp_act = (doble) temp_cal / 100.0; press_act = (doble) press_cal / 100.0; // hum_act = (doble) hum_cal / 1024.0; microbit.clear (); // reset LED matrix // Button A nagtatakda ng aktwal na halaga bilang sanggunian (P zero) // Button B ipakita ang kasalukuyang halaga bilang lalim sa metro (kinakalkula mula sa pagkakaiba-iba ng presyon) kung (! digitalRead (PIN_BUTTON_A)) {// magtakda ng normal na presyon ng hangin bilang zero press_norm = press_act; // microbit.print ("P0:"); // microbit.print (press_norm, 0); // microbit.print ("hPa"); microbit.fillScreen (LED_ON); // blink isang beses upang kumpirmahin ang pagkaantala (100); } iba pa kung (! digitalRead (PIN_BUTTON_B)) {// lalim ng display sa metro microbit.print (lalim, 2); microbit.print ("m"); // Serial.println (""); } iba pa {// kalkulahin ang lalim mula sa pagkakaiba-iba ng presyon press_delta = (press_act - press_norm); // kalkulahin ang kaibuturan ng kamag-anak na presyon = (press_delta / 100); // lalim ng metro ang lalim_m = int (abs (lalim)); // lalim ng im metro lalim_cm = (abs (lalim) - lalim_m); // residder / * // ginamit para sa pagpapaunlad Serial.println (lalim); Serial.println (deep_m); Serial.println (lalim_cm); * / // Mga hakbang para sa bargraph kung (lalim_cm> 0.8) {// itinakda ang haba ng mga bar (N = 4); } iba pa kung (lalim_cm> 0.6) {(N = 3); } iba pa kung (lalim_cm> 0.4) {(N = 2); } iba pa kung (lalim_cm> 0.2) {(N = 1); } iba pa {(N = 0); }

kung (deep_m == 4) {// set level == meter

(M = 4); } iba pa kung (lalim_m == 3) {(M = 3); } iba pa kung (lalim_m == 2) {(M = 2); } iba pa kung (lalim_m == 1) {(M = 1); } iba pa {(M = 0); // upper row} / * // ginamit para sa mga hangarin sa pag-unlad Serial.print ("m:"); Serial.println (deep_m); Serial.print ("cm:"); Serial.println (lalim_cm); Serial.print ("M:"); Serial.println (M); // para sa mga hangarin sa pag-unlad Serial.print ("N:"); Serial.println (N); // para sa pagkaantala ng mga layunin sa pagpapaunlad (500); * / // gumuhit ng bargraph microbit.drawLine (0, M, N, M, LED_ON); }

// magpadala ng halaga sa serial port para sa plotter

Serial.print (press_delta); // gumuhit ng mga linya ng tagapagpahiwatig at ayusin ang ipinakitang saklaw na Serial.print ("\ t"); Serial.print (0); Serial.print ("\ t"); Serial.print (-500); Serial.print ("\ t"); Serial.println (500); pagkaantala (500); // Sukatin nang dalawang beses sa isang segundo} // --------------------------------------- ---- ---- -------- // ang sumusunod ay kinakailangan para sa sensor ng bmp / bme280, panatilihing walang bisa ang readTrim () {uint8_t data [32], i = 0; // Fix 2014 / Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Fix 2014 / habang (Wire.available ()) {data = Wire.read (); ako ++; } Wire.beginTransmission (BME280_ADDRESS); // Add 2014 / Wire.write (0xA1); // Add 2014 / Wire.endTransmission (); // Add 2014 / Wire.requestFrom (BME280_ADDRESS, 1); // Add 2014 / data = Wire.read (); // Add 2014 / i ++; // Add 2014 / Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Fix 2014 / habang (Wire.available ()) {data = Wire.read (); ako ++; } dig_T1 = (data [1] << 8) | data [0]; dig_P1 = (data [7] << 8) | data [6]; dig_P2 = (data [9] << 8) | data [8]; dig_P3 = (data [11] << 8) | data [10]; dig_P4 = (data [13] << 8) | data [12]; dig_P5 = (data [15] << 8) | data [14]; dig_P6 = (data [17] << 8) | data [16]; dig_P7 = (data [19] << 8) | data [18]; dig_T2 = (data [3] << 8) | data [2]; dig_T3 = (data [5] << 8) | data [4]; dig_P8 = (data [21] << 8) | data [20]; dig_P9 = (data [23] << 8) | data [22]; dig_H1 = data [24]; dig_H2 = (data [26] << 8) | data [25]; dig_H3 = data [27]; dig_H4 = (data [28] << 4) | (0x0F & data [29]); dig_H5 = (data [30] 4) & 0x0F); // Fix 2014 / dig_H6 = data [31]; // Fix 2014 /} void writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (data); Wire.endTransmission (); } void readData () {int i = 0; uint32_t data [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); habang (Wire.available ()) {data = Wire.read (); ako ++; } pres_raw = (data [0] << 12) | (data [1] 4); temp_raw = (data [3] << 12) | (data [4] 4); hum_raw = (data [6] 3) - ((sign long int) dig_T1 11; var2 = (((((adc_T >> 4) - ((sign long int) dig_T1)) * ((adc_T >> 4) - ((sign long int) dig_T1))) >> 12) * ((sign long int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; ibalik ang T; } unsigned long int calibration_P (sign long int adc_P) {sign long int var1, var2; unsigned long int P; var1 = (((sign long int) t_fine) >> 1) - (sign long int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((sign long int) dig_P6); var2 = var2 + ((var1 * ((sign long int) dig_P5)) 2) + (((sign long int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((sign long int) dig_P2) * var1) >> 1)) >> 18; var1 = (((((32768 + var1)) * ((sign long int) dig_P1)) >> 15); kung (var1 == 0) {return 0; } P = (((unsigned long int) (((sign long int) 1048576) -adc_P) - (var2 >> 12))) * 3125; kung (P <0x80000000) {P = (P << 1) / ((unsigned long int) var1); } iba pa {P = (P / (unsigned long int) var1) * 2; } var1 = (((sign long int) dig_P9) * ((sign long int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((sign long int) (P >> 2)) * ((sign long int) dig_P8)) >> 13; P = (unsigned long int) ((sign long int) P + ((var1 + var2 + dig_P7) >> 4)); ibalik ang P; } unsigned long int calibration_H (sign long int adc_H) {sign long int v_x1; v_x1 = (t_fine - ((sign long int) 76800)); v_x1 = ((((((adc_H << 14) - (((sign long int) dig_H4) 15) * (((((((v_x1 * ((sign long int) dig_H6)) >> 10) * (((v_x1 * ((sign long int) dig_H3)) >> 11) + ((sign long int) 32768))) >> 10) + ((sign long int) 2097152)) * ((sign long int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - (((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((sign long int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (unsigned long int) (v_x1 >> 12);

Hakbang 6: Isang Pangunahing Pagpapasimple: ang MakeCode / JavaScript Code

Isang Pangunahing Pagpapasimple: ang MakeCode / JavaScript Code
Isang Pangunahing Pagpapasimple: ang MakeCode / JavaScript Code
Isang Pangunahing Pagpapasimple: ang MakeCode / JavaScript Code
Isang Pangunahing Pagpapasimple: ang MakeCode / JavaScript Code

Noong Mayo 2018, inilabas ni Pimoroni ang enviro: bit, na may kasamang presyon ng presyon ng BME280 / kahalumigmigan / temperatura, isang sensor ng ilaw at kulay ng TCS3472 at isang mikropono ng MEMS. Bilang karagdagan ay nag-aalok sila ng isang library ng JavaScript para sa editor ng MakeCode at isang library ng MicroPython para sa mga sensor na ito.

Gumagamit ako ng kanilang MakeCode library upang bumuo ng mga script para sa aking aparato. Nakalakip na mahanap mo ang naaayon na mga hex file, na maaari mong kopyahin nang direkta sa iyong micro: bit.

Sa ibaba makikita mo ang kaukulang JavaScript code. Ang pagsubok sa pool ay gumana nang maayos sa isang naunang bersyon ng script, kaya ipinapalagay ko na gagana rin sila. Bilang karagdagan sa pangunahing, bersyon ng bargraph, mayroon ding isang bersyon ng crosshair (X) at isang L-bersyon, na inilaan upang gawing mas madali ang pagbabasa, lalo na sa ilalim ng mga kundisyon na mababa ang ilaw. Piliin ang gusto mo.

hayaan ang Haligi = 0

hayaan ang Meter = 0 hayaan mananatili = 0 hayaan ang Row = 0 hayaan ang Delta = 0 hayaan ang Ref = 0 hayaan ang Is = 0 Ay = 1012 pangunahing.showLeds (`# # # # # #… # #. #. # #… # # # # # # `` Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () kung (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () basic.showLeds (`#. #. #. #. #. # # # # #. #. #. #. #. #. #`) basic.pause (1000)} iba pa kung (input.buttonIsPressed (Button. B)) {basic.showString ("" + Row + "." + mananatiling + "m") basic.pause (200) basic.clearScreen ()} iba pa {Ay = envirobit.getPressure () Delta = Ay - Ref Meter = Math.abs (Delta) kung (Meter> = 400) {Row = 4} iba pa kung (Meter> = 300) {Row = 3} iba pa kung (Meter> = 200) {Row = 2} iba pa kung (Meter> = 100) {Row = 1} iba pa {Row = 0} mananatiling = Meter - Row * 100 kung (mananatili> = 80) {Column = 4} iba pa kung (mananatili> = 60) {Column = 3} iba pa kung (mananatili> = 40) {Column = 2} iba pa kung (mananatili> = 20) {Column = 1} iba pa {Column = 0} para sa (hayaan ang ColA = 0; ColA <= Column; ColA ++) {led.plot (C olA, Row)} basic.pause (500)}})

Hakbang 7: Ang Enviro: bit na Bersyon

Ang Enviro: bit na Bersyon
Ang Enviro: bit na Bersyon
Ang Enviro: bit na Bersyon
Ang Enviro: bit na Bersyon
Ang Enviro: bit na Bersyon
Ang Enviro: bit na Bersyon

Pansamantala natanggap ko ang enviro: bit (20 GBP) at ang lakas: bit (6 GBP), kapwa mula sa Pimoroni.

Tulad ng nabanggit dati, ang enviro: bit ay may kasamang presyon ng BME280, kahalumigmigan at sensor ng temperatura, ngunit isang ilaw at kulay na sensor (tingnan ang isang application dito) at isang mikropono ng MEMS.

Ang lakas: bit ay isang magandang solusyon upang mapagana ang micro: bit at may kasamang on / off switch.

Ang mahusay na bagay ay ang pareho itong pag-click at paggamit lamang, walang paghihinang, mga kable, breadboard. Idagdag ang enviro: bit sa micro: bit, i-load ang code mo sa micro: bit, gamitin ito.

Sa kasong ito gumamit ako ng micro, power at enviro: bit, inilagay ang mga ito sa isang Ziploc bag, inilagay ito sa isang malinaw na masikip na plastic bag ng plastik para sa mga mobile phone, handa na. Isang napakabilis at malinis na solusyon. Tingnan ang mga larawan. Ang switch ay sapat na malaki upang magamit ito sa pamamagitan ng mga layer ng proteksyon.

Nasubukan ito sa tubig, gumana nang maayos. Sa lalim na tungkol sa 1.8 m ang sinusukat na halaga ay tungkol sa 1.7 m. Hindi masyadong masama para sa isang mabilis at murang solusyon, ngunit malayo sa pagiging perpekto. Ito ay tumatagal ng isang habang upang ayusin, kaya maaaring kailangan mong manatili sa isang tiyak na lalim para sa tungkol sa 10-15 segundo.

Hakbang 8: Bersyon ng Cable at Sensor Probe

Bersyon ng Cable and Sensor Probe
Bersyon ng Cable and Sensor Probe
Bersyon ng Cable and Sensor Probe
Bersyon ng Cable and Sensor Probe

Ito talaga ang unang ideya na mayroon para sa isang micro: medyo lalim na metro, ang huling nabuo.

Dito ko solder ang sensor ng BMP280 sa 5m ng isang 4-wire cable at inilagay ang babaeng lumulukso sa kabilang dulo. Upang maprotektahan ang sensor mula sa tubig, ang cable ay pinatakbo sa pamamagitan ng isang ginamit na cork ng alak. Ang mga dulo ng tapunan ay tinatakan ng mainit na pandikit. Bago ko pinutol ang dalawang mga notch sa tapunan, pareho ang pag-ikot nito. Pagkatapos ay naka-pack ko ang sensor sa isang sponge ball, naglagay ng isang lobo sa paligid nito at naayos ang dulo ng lobo sa cork (mas mababang bingaw). pagkatapos ay naglagay ako ng 3 40 g na mga piraso ng timbang ng tingga sa isang pangalawang lobo, ibinalot ito sa una, mga timbang na inilagay sa panlabas na gilid, at naayos ang dulo ng lobo sa ikalawang bingaw. Ang hangin ay tinanggal mula sa ikalawang lobo, pagkatapos ang lahat ay naayos na may duct tape. Makita ang mga imahe, maaaring masundan ang mas detalyadong mga.

Ang mga jumper ay konektado sa micro: bit sa pamamagitan ng isang gilid na konektor, nakabukas ang aparato at naitakda ang presyon ng sanggunian. Pagkatapos ang ulo ng sensor ay pinakawalan ng dahan-dahan sa ilalim ng pool (10 m jumping tower, halos 4.5 m ang lalim).

Mga Resulta:

Sa aking pagtataka, gumana ito kahit sa mahabang kable na ito. Sa kabilang banda, ngunit hindi nakakagulat, ang error sa pagsukat ay tila naging mas malaki sa mas mataas na presyon, at isang tinatayang lalim na 4 m ang naiulat na mga 3 m.

Mga potensyal na application:

Sa ilang mga pagwawasto ng error, maaaring magamit ang aparato upang masukat ang lalim hanggang sa 4 m.

Kasabay ng isang Arduino o Raspberry Pi, maaari itong magamit upang sukatin at makontrol ang pagpuno ng isang pool o tangke ng tubig, e, g. upang pukawin ang isang babala kung ang antas ng tubig ay umakyat sa itaas o mas mababa sa ilang mga threshold.

Panlabas na Fitness Hamon
Panlabas na Fitness Hamon
Panlabas na Hamon sa Fitness
Panlabas na Hamon sa Fitness

Runner Up sa Panlabas na Hamon ng Fitness

Inirerekumendang: