Мазмуну:

A Micro: bit Dive-O-Meter: 8 кадам (Сүрөттөр менен)
A Micro: bit Dive-O-Meter: 8 кадам (Сүрөттөр менен)

Video: A Micro: bit Dive-O-Meter: 8 кадам (Сүрөттөр менен)

Video: A Micro: bit Dive-O-Meter: 8 кадам (Сүрөттөр менен)
Video: сен эмнесиң?! 2024, Июль
Anonim
Микро: бит Dive-O-Meter
Микро: бит Dive-O-Meter
Микро: бит Dive-O-Meter
Микро: бит Dive-O-Meter
Микро: бит Dive-O-Meter
Микро: бит Dive-O-Meter

Жаз келди, анын бассейн мезгили!

Өзүңүздү жана микроңузду алуу үчүн жакшы мүмкүнчүлүк: бир аз сыртка, бул учурда да бассейнге.

Бул жерде сүрөттөлгөн micro: bit dive-o-meter-бул канчалык терең экениңизди же сууга секиргениңизди өлчөөгө мүмкүндүк берген жөнөкөй DIY термометр. Бул жөн эле микро: бит, батарея топтому же LiPo, микро: бит, BMP280 же BME280 барометрдик басым сенсорунан жана кээ бир секирүүчү кабелдерден турат. Pimoroni чөйрөсүн колдонуу: бит баарын жөнөкөй кылат. Мунун баары суу өткөрбөөчү тунук пластик же силикон баштыктардын эки катмарына салынып, көтөрүлүү күчүнүн ордун толтуруу үчүн кээ бир салмактар кошулган.

Бул мен мурунку инструкцияда сүрөттөгөн микро: бит басым сенсорунун колдонмосу.

Сиз аппаратты колдоно аласыз e. ж. достор жана үй -бүлө менен сууга түшүү боюнча мелдештер үчүн же бул көлмөнүн канчалык терең экенин билүү үчүн. Мен аны коңшумдагы эң терең бассейн аркылуу сынап көрдүм, ал жок дегенде 3,2 метр тереңдикте иштээрин аныктадым. Болжол менен беш метр теориялык максимум. Азырынча мен анын тактыгын деталдуу түрдө текшере элекмин, бирок билдирилген сандар жок дегенде күтүлгөн диапазондо болгон.

Кээ бир эскертүүлөр: Бул чыныгы суучулдар үчүн курал эмес. Сиздин микро: бит нымдалса бузулат. Сиз бул көрсөтмөнү өз тобокелчилигиңиз боюнча колдоносуз.

Жаңыртуу 27-май: Эми сиз түздөн-түз микро: битке жүктөй турган MakeCode HEX-скриптин таба аласыз. 6 -кадамды караңыз. 13 -июнда жаңыртуу: Enviro: бит жана кабелдик версия кошулду. 7 жана 8 -кадамдарды караңыз

1 -кадам: Түзмөктүн артындагы теория

Биз аба океанынын түбүндө жашап жатабыз. Бул жердеги басым болжол менен 1020 гПа (гектоПаскаль), анткени космоско аба мамычасынын салмагы чарчы сантиметрге болжол менен 1 кг түзөт.

Суунун тыгыздыгы алда канча жогору, анткени бир литр абанын салмагы болжол менен 1,2 г жана бир литр суунун салмагы 1 кг, б.а. болжол менен 800 эсе. Ошентип, барометрдик басымдын төмөндөшү ар бир 8 метр бийиктикте болжол менен 1 гПа болгондуктан, басымдын өсүшү суунун астындагы ар бир сантиметр үчүн 1 гПа. Болжол менен 10 м тереңдикте басым 2000 гПа, же эки атмосфера.

Бул жерде колдонулган басым сенсорунун өлчөө диапазону 750 жана 1500 hPa ортосунда, болжол менен бир hPa чечилишинде. Бул 5 метрге чейинки тереңдикти болжол менен 1 см чечиле алат дегенди билдирет.

Аппарат Boyle Marriotte тибиндеги тереңдик өлчөгүч болмок. Анын курулушу абдан жөнөкөй жана кийинки кадамда сүрөттөлөт. Сенсор I2C протоколун колдонот, андыктан micro: bit үчүн четки туташтыргычы ыңгайлуу келет. Эң маанилүү бөлүгү суу өткөрбөгөн баштыктар, анткени ар кандай нымдуулук микро: битке, сенсорго же батареяга зыян келтирет. Каптардын ичинде бир аз аба тыгылып кала тургандыктан, салмактын кошулушу сүзүү күчүнүн ордун толтурууга жардам берет.

2 -кадам: Түзмөктү колдонуу

Түзмөктү колдонуу
Түзмөктү колдонуу
Түзмөктү колдонуу
Түзмөктү колдонуу
Түзмөктү колдонуу
Түзмөктү колдонуу
Түзмөктү колдонуу
Түзмөктү колдонуу

Сценарий, кийинчерээк майда -чүйдөсүнө чейин көрсөтүлгөндөй, мен басым өлчөгүч үчүн мурда иштеп чыккан сценарийдин вариациясы. Түзмөктү сыноо үчүн, ал жерде сүрөттөлгөн жөнөкөй басым камерасын колдонсоңуз болот.

Сууга түшүү максатында, ал тереңдикти метр менен көрсөтөт, басымдын өлчөөлөрүндө эсептелгендей, же 20 см кадамдык штрихтик график катары же суроо боюнча сандар менен.

Микро: бит баскычын колдонуу менен сиз учурдагы басымды шилтеме басымынын мааниси катары коёсуз. Жазууну ырастоо үчүн матрица бир ирет жарк этет.

Сиз муну канчалык терең чумкуп жатканыңызды көрүү үчүн же канчалык терең секиргениңизди жазуу үчүн колдоно аласыз.

Биринчи учурда тышкы аба басымын шилтеме катары коюңуз. Экинчи учурда, басымды эң терең чекитке коюңуз, бул жерде басым шилтемеси катары, бул сиз кайра бетке чыкканыңызда канчалык терең болгонуңузду көрсөтүүгө мүмкүндүк берет. Баскыч В басымдын айырмасынан эсептелген тереңдикти метр менен сандык мааниге көрсөтөт.

3 -кадам: Керектүү материалдар

Керектүү материалдар
Керектүү материалдар
Керектүү материалдар
Керектүү материалдар
Керектүү материалдар
Керектүү материалдар

Микро: бит. Мисалы боюнча 13 GBP/16 Euro Pimoroni UK/DE боюнча.

Бир четки туташтыргычы (Kitronic же Pimoroni), 5 GBP. Мен Kitronic версиясын колдондум.

BMP/BME280 сенсору. Мен Banggood BMP280 сенсорун колдонгом, 4.33 евро үч бирдик үчүн.

Өткөргүч кабели сенсор менен четки туташтыргычты туташтырат.

Жогорудагы четки туташтыргычка/сенсор айкалышына сонун альтернатива Pimoroni чөйрөсү болушу мүмкүн: бит (азырынча текшериле элек, акыркы кадамды караңыз).

Micro: bit үчүн батарейка же LiPo.

Коммутатору бар электр кабели (милдеттүү эмес, бирок пайдалуу). Таза суу өткөрбөгөн баштыктар. Мен уюлдук телефонго жана бир же эки кичинекей ziploc bags. Make үчүн силикон баштыкчаны колдондум, материал жетишерлик калың экенине ынангыла, андыктан четиндеги туташтыргычтагы казыктар баштыктарга зыян келтирбейт.

Кээ бир салмактар. Мен балык уулоодо колдонулган коргошун салмагын колдондум.

Arduino IDE жана бир нече китепканалар.

4 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Arduino IDE жана керектүү китепканаларды орнотуңуз. Чоо -жайы бул жерде сүрөттөлгөн.

(MakeCode сценарийи үчүн талап кылынбайт.) Сиз Kitronik edge коннекторун колдонгонуңузду эске алып, I2C 19 & 20 портторуна туташтыргычтарды орнотуңуз. Бул Pimoroni edge коннектору үчүн талап кылынбайт. Баштыкты сенсорго туташтырып, сенсор менен четки туташтыргычты кабель аркылуу туташтырыңыз. VCC'ди 3Vга, GNDди 0 Vга, SCLди 19 портуна жана SDAны 20 портуна туташтырыңыз. Же болбосо кабелдерди үзүлүүгө түз ээрчиңиз. Micro: bitти компьютерибизге USB кабели аркылуу туташтырыңыз. Берилген скриптти ачыңыз жана микро: битке жаркылдатыңыз. Сериялык мониторду же плоттерди колдонуңуз, сенсор акылга сыярлык маалымат берерин текшериңиз. Компьютериңизден микро: битти ажыратыңыз. Батареяны же LiPo микро: битке туташтырыңыз. B баскычын басыңыз, маанини окуңуз. А баскычын басыңыз. В баскычын басыңыз, маанини окуңуз. Түзмөктү аба өткөрбөгөн баштыктардын эки катмарына салып, баштыктарда өтө аз аба калтырыңыз. Качан, сүзүү күчүн компенсациялоо үчүн салмакты коюңуз. Баары суу өткөрбөй турганын текшериңиз. Бассейнге барып ойноңуз.

5 -кадам: MicroPython Script

Скрипт жөн гана сенсордон басымдын маанисин алат, аны шилтеме мааниге салыштырат, андан кийин айырманы тереңдикти эсептейт. Бааларды график катары көрсөтүү үчүн тереңдиктин бүтүн жана калган бөлүгү алынат. Биринчиси, сызыктын бийиктигин аныктайт. Калгандары барлардын узундугун аныктоочу беш урнага бөлүнөт. Жогорку деңгээл 0 - 1 м, эң төмөн 4 - 5 м. Жогоруда айтылгандай, А баскычын басуу шилтеме басымын орнотот, В баскычы "салыштырмалуу тереңдикти" метр менен көрсөтөт, сандык мааниге ээ. Азырынча терс жана оң баалуулуктар LED матрицасында bargraph катары көрсөтүлөт. Ардуино IDEнин сериялык мониторунда же плоттеринде баалуулуктарды көрсөтүү үчүн кээ бир саптардын үнүн өчүрө аласыз. Функцияны тууроо үчүн, мен мурунку инструкцияда сүрөттөгөн түзмөктү кура аласыз.

Мен сценарийдин сенсорду окуган бөлүгүн жазган жокмун. Мен булакты так билбейм, бирок авторлорго ыраазычылык билдирем. Оптималдаштыруу үчүн ар кандай оңдоолор же кеңештер ачык.

#кошуу

#Adafruit_Microbit_Matrix микробитин кошуу; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; long 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; double press_norm = 1015; // баштапкы мааниси эки эсе тереңдик; // эсептелген тереңдик // -------------------------------------------- -------------------------------------------------- ---------------------- void setup () {uint8_t osrs_t = 1; // Температуранын ашыкча тандалышы x 1 uint8_t osrs_p = 1; // басымдын ашыкча тандалышы x 1 uint8_t osrs_h = 1; // Нымдуулук oversampling x 1 uint8_t режими = 3; // Кадимки режим uint8_t t_sb = 5; // Tstandby 1000ms uint8_t чыпкасы = 0; // Чыпкалоо uint8_t spi3w_en = 0; // 3 зымдуу SPI өчүрүү uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | режим; uint8_t config_reg = (t_sb << 5) | (фильтр << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // сериялык порт ылдамдыгын коюу Serial.print ("Басым [hPa]"); // сериялык чыгаруу үчүн баш Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); кечигүү (1000); } // ----------------------------------------------- ---------------------------------------------- void loop () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; long int temp_cal кол коюлган; белгисиз узак int press_cal, hum_cal; int N; int M; double press_delta; // салыштырмалуу басым int deep_m; // метрдеги тереңдик, бүтүн сандагы кош тереңдик_см; // см калдыктары readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = calibration_H (hum_raw); // temp_act = (кош) temp_cal / 100.0; press_act = (кош) press_cal / 100.0; // hum_act = (кош) hum_cal / 1024.0; microbit.clear (); // LED матрицасын баштапкы абалга келтирүү // А баскычы реалдуу маанини шилтеме катары коёт (P нөл) // B баскычы учурдагы маанини тереңдик катары метр менен көрсөтөт (басымдын айырмасынан эсептелет) эгер (! digitalRead (PIN_BUTTON_A)) {// кадимки аба басымын орнотсо нөл катары press_norm = press_act; // microbit.print ("P0:"); // microbit.print (press_norm, 0); // microbit.print ("hPa"); microbit.fillScreen (LED_ON); // кечиктирүүнү ырастоо үчүн бир ирет ирмелүү (100); } else if (! digitalRead (PIN_BUTTON_B)) {// метрди тереңдикте көрсөтүү microbit.print (тереңдик, 2); microbit.print ("m"); // Serial.println (""); } else {// тереңдикти басымдын айырмасынан эсептөө press_delta = (press_act - press_norm); // салыштырмалуу басым тереңдигин эсептөө = (press_delta/100); // метр тереңдик тереңдик_m = int (abs (тереңдик)); // тереңдик им метр тереңдик_см = (абс (тереңдик) - тереңдик_м); // калган /* // өнүктүрүү үчүн колдонулат Serial.println (тереңдик); Serial.println (тереңдик_м); Serial.println (тереңдик_см); */ // bargraph үчүн кадамдар, эгерде (тереңдик_см> 0,8) {// тилкелердин узундугун коюңуз (N = 4); } else if (deep_cm> 0.6) {(N = 3); } else if (deep_cm> 0.4) {(N = 2); } else if (deep_cm> 0.2) {(N = 1); } else {(N = 0); }

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

(M = 4); } else if (deep_m == 3) {(M = 3); } else if (deep_m == 2) {(M = 2); } else if (deep_m == 1) {(M = 1); } else {(M = 0); // жогорку катар} /* // өнүктүрүү максатында колдонулат Serial.print ("m:"); Serial.println (тереңдик_м); Serial.print ("см:"); Serial.println (тереңдик_см); Serial.print ("M:"); Serial.println (M); // өнүктүрүү максатында Serial.print ("N:"); Serial.println (N); // өнүктүрүү максатында кечиктирүү (500); */ // draw bargraph microbit.drawLine (0, M, N, M, LED_ON); }

// плоттер үчүн сериялык портко маанини жөнөтүү

Serial.print (press_delta); // индикатор сызыктарын чийип, көрсөтүлгөн диапазонду оңдоо Serial.print ("\ t"); Serial.print (0); Serial.print ("\ t"); Serial.print (-500); Serial.print ("\ t"); Serial.println (500); кечигүү (500); // Секундуна эки жолу өлчөө} // ----------------------------------------- -------------------------------------------------- -------------------------------------------------- -------- // bmp/bme280 сенсору үчүн төмөнкүлөр талап кылынат, ал бош болгондуктан readTrim () {uint8_t маалыматтары [32], i = 0; // Оңдоо 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Fix 2014/while (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // 2014/Wire.write кошуу (0xA1); // 2014/Wire.endTransmission кошуу (); // 2014/Wire.requestFrom кошуу (BME280_ADDRESS, 1); // 2014/маалыматтарды кошуу = Wire.read (); // 2014/i ++ кошуу; // 2014/Wire.beginTransmission кошуу (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Fix 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (маалыматтар [1] << 8) | маалыматтар [0]; dig_P1 = (маалыматтар [7] << 8) | маалыматтар [6]; dig_P2 = (маалыматтар [9] << 8) | маалыматтар [8]; dig_P3 = (маалыматтар [11] << 8) | маалыматтар [10]; dig_P4 = (маалыматтар [13] << 8) | маалыматтар [12]; dig_P5 = (маалыматтар [15] << 8) | маалыматтар [14]; dig_P6 = (маалыматтар [17] << 8) | маалыматтар [16]; dig_P7 = (маалыматтар [19] << 8) | маалыматтар [18]; dig_T2 = (маалыматтар [3] << 8) | маалыматтар [2]; dig_T3 = (маалымат [5] << 8) | маалыматтар [4]; dig_P8 = (маалыматтар [21] << 8) | маалыматтар [20]; dig_P9 = (маалыматтар [23] << 8) | маалыматтар [22]; dig_H1 = маалыматтар [24]; dig_H2 = (маалыматтар [26] << 8) | маалыматтар [25]; dig_H3 = маалыматтар [27]; dig_H4 = (маалыматтар [28] << 4) | (0x0F & маалыматтар [29]); dig_H5 = (маалыматтар [30] 4) & 0x0F); // Fix 2014/dig_H6 = маалыматтар [31]; // Оңдоо 2014/} жараксыз WriteReg (uint8_t reg_address, uint8_t маалыматтар) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (маалыматтар); Wire.endTransmission (); } void readData () {int i = 0; uint32_t маалыматтары [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (маалымат [0] << 12) | (маалыматтар [1] 4); temp_raw = (маалымат [3] << 12) | (маалыматтар [4] 4); hum_raw = (маалыматтар [6] 3) - ((узун int) dig_T1 11; var2 = ((((((adc_T >> 4) - ((long int int) dig_T1)))) * ((adc_T >> 4) - ((long long int) dig_T1))) >> 12) * ((long int int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; return T; } unsigned long int calibration_P (long long int adc_P) {sign long long int var1, var2; unsigned long int P; var1 = (((long long int) t_fine) >> 1) - (long int int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((кол коюлган long int) dig_P6); var2 = var2 + ((var1 * ((long long int) dig_P5)) 2) + (((long long int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((((long long int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((long int) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((unsigned long int) (((long long int) 1048576) -adc_P)-(var2 >> 12)))*3125; if (P <0x80000000) {P = (P << 1) / (((unsigned long int) var1); } else {P = (P / (unsigned long int) var1) * 2; } var1 = (((кол коюлган long int) dig_P9) * ((кол коюлган long int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((long long int) (P >> 2)) * ((long long int) dig_P8)) >> 13; P = (unsigned long int) ((long long int) P + ((var1 + var2 + dig_P7) >> 4)); return P; } unsigned long int calibration_H (long long int adc_H) {sign long int v_x1; v_x1 = (t_fine - ((long int) 76800))); v_x1 = ((((((adc_H << 14) -(((узак кол коюлган int) dig_H4) 15) * (((((((v_x1 * ((long long int) dig_H3)) >> 11) + ((long long int) 32768)))) >> 10) + ((long long int) 2097152)) * ((long long int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((узун int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (unsigned long int) (v_x1 >> 12);

6 -кадам: Негизги жөнөкөйлөтүү: MakeCode/JavaScript Code

Негизги жөнөкөйлөштүрүү: MakeCode/JavaScript Code
Негизги жөнөкөйлөштүрүү: MakeCode/JavaScript Code
Негизги жөнөкөйлөштүрүү: MakeCode/JavaScript Code
Негизги жөнөкөйлөштүрүү: MakeCode/JavaScript Code

2018 -жылдын май айында Pimoroni BME280 басым/нымдуулук/температура сенсору, TCS3472 жарык жана түстүү сенсору жана MEMS микрофону менен келген enviro: bit чыгарды. Мындан тышкары, алар MakeCode редактору үчүн JavaScript китепканасын жана бул сенсорлор үчүн MicroPython китепканасын сунуштап жатышат.

Мен алардын MakeCode китепканасын түзмөгүмө скрипттерди иштеп чыгуу үчүн колдонуп келе жатам. Тиркелгенде, сиз өзүңүздүн micro: bitке түз көчүрө ала турган Hex файлдарын таба аласыз.

Төмөндө сиз тиешелүү JavaScript кодун таба аласыз. Бассейнде тестирлөө сценарийдин мурунку версиясы менен жакшы иштеген, ошондуктан алар да иштейт деп ойлойм. Негизги, bargraph версиясынан тышкары, айрыкча жарык аз шарттарда окууну жеңилдетүү үчүн кроссейшер версиясы (X) жана L-версиясы дагы бар. Өзүңүзгө жакканды тандаңыз.

Колонна = 0 болсун

let Meter = 0 let = 0 let Row = 0 let Delta = 0 let Ref = 0 let Is = 0 Is = 1012 basic.showLeds (` # # # # # #.. # #. #. # #.. # # # # # # ') Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () if (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () basic.showLeds (` #. #. #. #. #. # # # # #. #. #. #. #. #`) basic.pause (1000)} else if (input.buttonIsPressed (Button. B)) {basic.showString ("" + Row + "." + + + m ") basic.pause (200) basic.clearScreen ()} else {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) if (Meter> = 400) {Row = 4} else if (Meter> = 300) {Row = 3} if if (Meter> = 200) {Row = 2} if if (Meter> = 100)) {Row = 1} else {Row = 0} stay = Meter - Row * 100 if if (stay> = 80) {Column = 4} if if (stay> = 60) {Column = 3} else if (stay> = 40) {Column = 2} else if (stay> = 20) {Column = 1} else {Column = 0} for (let ColA = 0; ColA <= Column; ColA ++) {led.plot (C olA, Row)} basic.pause (500)}})

7 -кадам: Enviro: бит версиясы

Enviro: бит версиясы
Enviro: бит версиясы
Enviro: бит версиясы
Enviro: бит версиясы
Enviro: бит версиясы
Enviro: бит версиясы

Ал ортодо мен Pimoroni эквивалентин алдым: бит (20 GBP) жана кубат: бит (6 GBP).

Жогоруда айтылгандай, enviro: bit BME280 басымы, нымдуулугу жана температурасы сенсору менен келет, бирок жарык жана түстүү сенсор (бул жерден тиркемени караңыз) жана MEMS микрофону.

Power: bit микро: битти иштетүү үчүн жакшы чечим болуп саналат жана күйгүзүү/өчүрүү которгучу менен коштолот.

Эң сонун жери - бул экөө тең чыкылдатуу жана колдонуу, эч кандай ширетүү, кабель, нан тактасы. Enviro: bitти micro: bitке кошуңуз, micro: bitке кодду жүктөңүз, колдонуңуз.

Бул учурда мен micro, power жана enviro: bit колдондум, аларды Ziploc баштыгына салып, уюлдук телефондор үчүн таза сууга бекем пластик баштыкка салып койдум, даяр. Абдан тез жана тыкан чечим. Сүрөттөрдү карагыла. Коммутатор аны коргоо катмарлары аркылуу колдонуу үчүн жетишерлик чоң.

Ал сууда сыналган, жакшы иштеген. Болжол менен 1,8 м тереңдикте өлчөнгөн мааниси болжол менен 1,7 м болгон. Тез жана арзан чечим үчүн өтө жаман эмес, бирок идеалдуу болуудан алыс. Тууралоо үчүн бир аз убакыт талап кылынат, андыктан белгилүү бир тереңдикте болжол менен 10-15 секунд калуу керек болот.

8 -кадам: Cable жана Sensor Probe Version

Кабелдик жана сенсордук пробанын версиясы
Кабелдик жана сенсордук пробанын версиясы
Кабелдик жана сенсордук пробанын версиясы
Кабелдик жана сенсордук пробанын версиясы

Бул чындыгында микро: бит тереңдик өлчөгүчтүн биринчи идеясы болчу, акыркы курула турган.

Бул жерде мен BMP280 сенсорун 5м 4 зымдуу кабель менен ширетип, экинчи четине аял секиргичти койгом. Сенсорду суудан коргоо үчүн кабель колдонулган шарап тыгынынан өткөрүлгөн. Тыгындын учтары ысык желим менен жабылган. Мен тыгындын ичине эки оюк кесип кире электе, экөө тең тегерегинде. Андан кийин мен сенсорду губка шарына салып, анын тегерегине шар салып, шардын учун тыгынга бекиттим (ылдыйкы оюк). анда мен коргошундун 3 40 г бөлүгүн экинчи шарга салып, биринчисине ороп, сырткы жагына салмактарды салып, экинчи учуна шардын учун бекиттим. Экинчи шардан аба чыгарылды, андан кийин баары скотч менен бекитилди. Сүрөттөрдү караңыз, кийинчерээк кененирээк болот.

Секиргичтер микро: битке коннектор аркылуу туташып, түзмөк күйгүзүлүп, шилтеме басымы коюлган. Андан кийин сенсордун башы акырындык менен бассейндин түбүнө чыгарылды (10 м секирүүчү мунара, тереңдиги болжол менен 4,5 м).

Жыйынтыктар:

Мени таң калтырганы, бул узун кабель менен да иштеген. Башка жагынан алганда, бирок таң калыштуу эмес, өлчөө катасы жогорку басымдарда чоңураак болуп көрүндү жана болжол менен 4 м тереңдик болжол менен 3 м деп билдирди.

Потенциалдуу колдонмолор:

Кээ бир каталарды оңдоо менен, түзмөк болжол менен 4 м тереңдикти өлчөө үчүн колдонулушу мүмкүн.

Arduino же Raspberry Pi менен бирдикте, бул бассейндин же суу сактагычтын толтуруу чекитин өлчөө жана көзөмөлдөө үчүн колдонулушу мүмкүн, ж. Эгерде суунун деңгээли белгилүү бир чектерден жогору же ылдый түшсө, эскертүү берүү.

Outdoor Fitness Challenge
Outdoor Fitness Challenge
Outdoor Fitness Challenge
Outdoor Fitness Challenge

Тышкы фитнес чакырыгында экинчи орун

Сунушталууда: