Агуулгын хүснэгт:

Микро: битийн шумбах тоолуур: 8 алхам (зурагтай)
Микро: битийн шумбах тоолуур: 8 алхам (зурагтай)

Видео: Микро: битийн шумбах тоолуур: 8 алхам (зурагтай)

Видео: Микро: битийн шумбах тоолуур: 8 алхам (зурагтай)
Видео: Как сделать колодец за 2 часа за 40 долларов? / фильм с субтитрами 2024, Арваннэгдүгээр
Anonim
Микро: битийн шумбах-тоолуур
Микро: битийн шумбах-тоолуур
Микро: битийн шумбах-тоолуур
Микро: битийн шумбах-тоолуур
Микро: битийн шумбах-тоолуур
Микро: битийн шумбах-тоолуур

Зун ирлээ, усан сангийн цаг боллоо!

Өөрийгөө болон бичил биетээ авах сайхан боломж.

Энд тайлбарласан микро: бит шумбах-хэмжигч нь энгийн DIY гүн хэмжигч бөгөөд та хэр гүнзгий шумбаж буйгаа хэмжих боломжийг олгодог. Энэ нь зөвхөн микро: бит, батерейны багц эсвэл LiPo, микро: битийн ирмэг холбогч, BMP280 эсвэл BME280 барометрийн даралт мэдрэгч болон зарим холбогч кабелаас бүрдэнэ. Pimoroni enviro: bit -ийг ашиглах нь бүх зүйлийг илүү хялбар болгодог. Энэ бүгдийг ус нэвтэрдэггүй тунгалаг хуванцар эсвэл силикон уутанд хоёр давхаргад хийж, хөвөх хүчийг нөхөхийн тулд зарим жинг нэмж оруулсан болно.

Энэ бол миний өмнөх зааварт дурдсан микро: битийн даралт мэдрэгч төхөөрөмжийн хэрэглээ юм.

Та төхөөрөмжийг ашиглаж болно e. g. найз нөхөд, гэр бүлийнхэнтэйгээ усанд шумбах тэмцээнд оролцох, эсвэл энэ цөөрөм хэр гүн болохыг олж мэдэх. Би үүнийг хөрш зэргэлдээх хамгийн гүн усан санг ашиглан туршиж үзээд дор хаяж 3.2 метрийн гүнд ажилладаг болохыг олж мэдэв. Онолын хамгийн дээд тал нь ойролцоогоор таван метр юм. Одоогоор би түүний нарийвчлалыг нарийвчлан туршиж үзээгүй байгаа боловч мэдээлсэн тоо нь наад зах нь хүлээгдэж буй хязгаарт байсан.

Зарим тайлбар: Энэ бол жинхэнэ шумбагчдад зориулсан хэрэгсэл биш юм. Таны микро: бит нойтон байвал гэмтэх болно. Та энэ зааварчилгааг өөрийн эрсдэлээр ашиглаж байна.

5-р сарын 27-ны шинэчлэлт: Одоо та өөрийн micro: bit рүү шууд ачаалж болох MakeCode HEX скриптийг олж чадна. 6 -р алхамыг үзнэ үү. 6 -р сарын 13 -ны өдөр шинэчлэх: Enviro: бит ба кабелийн хувилбарыг нэмсэн. 7 ба 8 -р алхамыг үзнэ үү

Алхам 1: Төхөөрөмжийн ард байгаа онол

Бид агаарын далайн ёроолд амьдарч байна. Энд даралтын хэмжээ ойролцоогоор 1020 гПа (гектоПаскаль) байна, учир нь энд байгаа агаарын баганын жин нь сансарт 1 см орчим байдаг.

Усны нягтрал нь илүү өндөр байдаг, учир нь нэг литр агаарын жин 1.2 гр орчим, нэг литр ус 1 кг, өөрөөр хэлбэл 800 дахин их байдаг. Барометрийн даралт буурах нь 8 метр өндөр тутамд 1 гПа байдаг тул даралтын өсөлт нь усны гадаргаас доош см тутамд 1 гПа байна. Ойролцоогоор 10 м -ийн гүнд даралт нь 2000 гПа буюу хоёр атмосфер юм.

Энд ашигласан даралтын мэдрэгч нь ойролцоогоор нэг гПа нарийвчлалтайгаар 750-1500 гПа хооронд хэлбэлздэг. Энэ нь бид 5 см хүртэлх гүнийг 1 см орчим нарийвчлалтай хэмжих боломжтой гэсэн үг юм.

Энэхүү төхөөрөмж нь Boyle Marriotte төрлийн гүн хэмжигч байх болно. Түүний угсралт нь маш энгийн бөгөөд дараагийн алхамд тайлбарласан болно. Мэдрэгч нь I2C протоколыг ашигладаг тул micro: bit -ийн ирмэг холбогч нь тохиромжтой байдаг. Хамгийн чухал хэсэг нь ус нэвтэрдэггүй уут байдаг, учир нь ямар ч чийгшил нь микро: бит, мэдрэгч эсвэл батерейг гэмтээж болзошгүй юм. Цүнхэнд бага зэрэг агаар хуримтлагдах тул жин нэмэх нь хөвөх хүчийг нөхөхөд тусалдаг.

Алхам 2: Төхөөрөмжийг ашиглах

Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь
Төхөөрөмжийг ашиглах нь

Дараагийн алхамд нарийвчлан үзүүлсэн шиг скрипт бол миний даралтын тоолуурт зориулж өмнө нь боловсруулсан скриптийн хувилбар юм. Төхөөрөмжийг туршихын тулд та энд тайлбарласан энгийн даралтын камерыг ашиглаж болно.

Усанд шумбах зорилгоор даралтын хэмжилтээр тооцоолсон гүнийг метрээр, 20 см -ийн алхамаар зураасан графикаар эсвэл хүсэлтийн дагуу тоогоор харуулна.

Micro: bit дээрх А товчлуурыг ашигласнаар та одоогийн даралтыг лавлах даралтын утга болгон тохируулна. Оруулгыг баталгаажуулахын тулд матриц нэг удаа анивчдаг.

Та үүнийг хэр гүн шумбаж байгаагаа харах эсвэл хэр гүн шумбаж байснаа тэмдэглэх зорилгоор ашиглаж болно.

Эхний тохиолдолд гаднах агаарын даралтыг лавлагаа болгоно. Хоёрдахь тохиолдолд даралтыг хамгийн гүн цэгтээ даралтын лавлагааны хувьд тохируулна уу. B товчлуур нь даралтын зөрүүгээр тооцоолсон гүнийг метрээр тоон утга болгон харуулна.

Алхам 3: Шаардлагатай материал

Шаардлагатай материал
Шаардлагатай материал
Шаардлагатай материал
Шаардлагатай материал
Шаардлагатай материал
Шаардлагатай материал

Микро: жаахан. Жишээлбэл 13 GBP/16 Евро дээр Pimoroni UK/DE дээр.

Ирмэг холбогч (Kitronic эсвэл Pimoroni), 5 GBP. Би Kitronic хувилбарыг ашигласан.

BMP/BME280 мэдрэгч. Би Banggood -аас авсан BMP280 мэдрэгчийг 4.33 евро гурван нэгжээр ашигласан.

Мэдрэгч ба ирмэг холбогчийг холбох кабель.

Дээрх ирмэгийн холбогч/мэдрэгчийн хослолын маш сайн хувилбар бол Pimoroni enviro: bit (одоогоор шалгагдаагүй байгаа, сүүлийн алхамыг үзнэ үү) байж болно.

Микро: битийн батерейны багц эсвэл LiPo.

Шилжүүлэгчтэй цахилгаан кабель (заавал биш боловч тустай). Ус нэвтэрдэггүй уутыг цэвэрлээрэй. Би гар утас, нэг хоёр жижиг зиплок уутанд силикон уут ашигласан бөгөөд материал нь хангалттай зузаан байгаа тул ирмэгийн холбогч дээрх тээглүүр нь уутыг гэмтээхгүй.

Зарим жин. Би загас барихад ашигладаг хар тугалганы жинг ашигласан.

Arduino IDE болон хэд хэдэн номын сан.

Алхам 4: угсрах

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

Arduino IDE болон шаардлагатай номын санг суулгана уу. Дэлгэрэнгүй мэдээллийг энд тайлбарласан болно.

(MakeCode скриптэд шаардлагагүй.) Та Kitronik edge холбогчийг ашигладаг тул 19 ба 20 -р I2C портууд руу гагнах зүү хийдэг. Мэдрэгчийн толгойг гагнах, холбогч кабель ашиглан мэдрэгч ба ирмэгийн холбогчийг холбох. VCC -ийг 3V, GND -ийг 0 V -д, SCL -ийг 19 -р портод, SDA -ийг 20 -р портод холбоно уу. Эсвэл кабелийг таслах хэсэгт шууд гагнана. USB кабелиар манай компьютерт микро: бит холбоно уу. Өгөгдсөн скриптийг нээгээд micro: bit рүү асаана уу. Цуваа монитор эсвэл плоттер ашиглана уу, мэдрэгч нь боломжийн мэдээлэл өгч байгаа эсэхийг шалгаарай. Микро: битийг компьютерээсээ салга. Батерей эсвэл LiPo -г микро: битэд холбоно уу. B товчлуурыг дарж утгыг уншина уу. А товчийг дарна уу. Төхөөрөмжийг хоёр давхар агаар нэвтрэхгүй уутанд хийж, уутанд маш бага агаар үлдээгээрэй. Энэ тохиолдолд хөвөх хүчийг нөхөхийн тулд жинг тавь. Бүх зүйл ус нэвтэрдэггүй эсэхийг шалгаарай. Усан бассейнд очиж тоглоорой.

Алхам 5: MicroPython скрипт

Скрипт нь даралтын утгыг мэдрэгчээс аваад жишиг утгатай харьцуулж, дараа нь зөрүүгээс гүнийг тооцоолно. Тооцоолсон график хэлбэрээр утгыг харуулахын тулд гүний утгын бүхэл тоо болон үлдсэн хэсгийг авна. Эхнийх нь шугамын өндрийг тодорхойлдог. Үлдсэн хэсгийг баарны уртыг тодорхойлдог таван хогийн сав болгон хуваасан. Дээд түвшин нь 0 - 1 м, хамгийн бага нь 4-5 м байна. Өмнө дурьдсанчлан, А товчлуурыг дарахад лавлах даралтыг тогтоодог бол В товчлуур нь "харьцангуй гүн" -ийг метрээр харуулдаг бөгөөд үүнийг тоон утгаар харуулдаг. Одоогийн байдлаар сөрөг ба эерэг утгыг LED матриц дээр ижил төстэй байдлаар харуулсан болно. Та Arduino IDE -ийн цуваа дэлгэц эсвэл плоттер дээр утгыг харуулахын тулд тодорхой мөрүүдийг нээж болно. Функцийг дуурайхын тулд та миний өмнө тайлбарласан төхөөрөмжийг бүтээж болно.

Би скриптийн мэдрэгчийг уншдаг хэсгийг бичээгүй байна. Би эх сурвалжийг нь сайн мэдэхгүй байна, гэхдээ би авторуудад талархах дуртай. Оновчлолын талаархи аливаа залруулга, зөвлөмжийг хүлээн авна уу.

#оруулах

#Adafruit_Microbit_Matrix микробитийг оруулах; #тодорхойлох BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; урт гарын үсэг зурсан 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; давхар дарах_норм = 1015; // эхлэх утга нь давхар гүн; // тооцоолсон гүн // -------------------------------------------- -------------------------------------------------- ---------------------- void setup () {uint8_t osrs_t = 1; // Температурын хэт дээж авах x 1 uint8_t osrs_p = 1; // Даралт хэт дээж авах x 1 uint8_t osrs_h = 1; // Чийглэгээс хэт дээж авах 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); Цуваа эхлэх (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 () {давхар temp_act = 0.0, press_act = 0.0, hum_act = 0.0; гарын үсэг зурсан урт int temp_cal; гарын үсэггүй урт int press_cal, hum_cal; int N; int M; давхар дарах_дельта; // харьцангуй даралт int гүн_m; // метр дэх гүн, бүхэл тоо нь давхар гүн_см; // см -ээр үлдсэн үлдэгдэл readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = шалгалт тохируулга_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); } if if (! digitalRead (PIN_BUTTON_B)) {// гүнийг метрээр харуулна microbit.print (гүн, 2); microbit.print ("m"); // Serial.println (""); } өөр {// даралтын зөрүүнээс гүнийг тооцоолох press_delta = (press_act - press_norm); // харьцангуй даралтын гүнийг тооцоолох = (press_delta/100); // метр дэх гүн гүн_m = int (abs (гүн)); // гүн im метр гүн_см = (abs (гүн) - гүн_м); // үлдэгдэл /* // хөгжүүлэхэд ашигладаг Serial.println (гүн); Serial.println (гүн_м); Serial.println (гүн_см); */ // bargraph хийх алхамууд (гүн_см> 0.8) {// баарны уртыг тохируулах (N = 4); } if if (deep_cm> 0.6) {(N = 3); } if if (deep_cm> 0.4) {(N = 2); } if if (deep_cm> 0.2) {(N = 1); } өөр {(N = 0); }

if (гүн_м == 4) {// түвшинг тохируулах == метр

(М = 4); } if if (deep_m == 3) {(M = 3); } if if (deep_m == 2) {(M = 2); } if if (deep_m == 1) {(M = 1); } өөр {(M = 0); // дээд мөр} /* // хөгжүүлэлтийн зорилгоор ашиглаж байна Serial.print ("m:"); Serial.println (гүн_м); Serial.print ("см:"); Serial.println (гүн_см); Serial.print ("M:"); Serial.println (M); // хөгжүүлэх зорилгоор Serial.print ("N:"); Serial.println (N); // хөгжлийн зорилгоор хойшлуулах (500); */ // bargraph microbit.drawLine зурах (0, M, N, M, LED_ON); }

// плоттер хийх цуваа порт руу утга илгээх

Цуваа.хэвлэх (press_delta); // заагч шугам зурж, Serial.print ("\ t") харуулсан мужийг засах; Цуваа.хэвлэх (0); Serial.print ("\ t"); Цуваа.хэвлэх (-500); Serial.print ("\ t"); Serial.println (500); саатал (500); // Секундэд хоёр удаа хэмжих} // ----------------------------------------- -------------------------------------------------- -------------------------------------------------- -------- // bmp/bme280 мэдрэгчийн хувьд дараах зүйлсийг хийх шаардлагатай байна: readTrim () {uint8_t data [32], i = 0; // 2014 оныг засах/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // 2014 оныг засах (while Wire.available ()) {data = Wire.read (); би ++; } 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); // 2014 оныг засах (while Wire.available ()) {data = Wire.read (); би ++; } 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); // Засварлах 2014/dig_H6 = өгөгдөл [31]; // Засварлах 2014/} хүчингүй writeReg (uint8_t reg_address, uint8_t өгөгдөл) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (өгөгдөл); Wire.endTransmission (); } хүчингүй 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 (); би ++; } pres_raw = (өгөгдөл [0] << 12) | (өгөгдөл [1] 4); temp_raw = (өгөгдөл [3] << 12) | (өгөгдөл [4] 4); hum_raw = (өгөгдөл [6] 3) - ((гарын үсэг зурсан урт int) dig_T1 11; var2 = (((((adc_T >> 4) - ((урт гарын үсэг зурсан) dig_T1)) * ((adc_T >> 4) - ((гарын үсэг зурсан урт int) dig_T1))) >> 12) * ((урт гарын үсэг зурсан) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; буцах T; } гарын үсэг зураагүй long int calibration_P (гарын үсэг зурсан урт int adc_P) {гарын үсэг зурсан урт int var1, var2; гарын үсэггүй урт int P; var1 = (((урт гарын үсэг зурсан урт) t_fine) >> 1) - (урт гарын үсэг зурсан) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((гарын үсэг зурсан урт int) dig_P6); var2 = var2 + ((var1 * ((урт гарын үсэг зурсан) dig_P5)) 2) + (((гарын үсэг зурсан урт int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((((урт гарын үсэг зурсан) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((урт гарын үсэг зурсан) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((гарын үсэг зураагүй урт int) (((гарын үсэг зурсан урт int) 1048576) -adc_P)-(var2 >> 12)))*3125; if (P <0x80000000) {P = (P << 1) / ((unsigned long int) var1); } өөр {P = (P / (unsigned long int) var1) * 2; } var1 = (((гарын үсэг зурсан урт int) dig_P9) * ((урт гарын үсэг зурсан) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((гарын үсэг зурсан урт int) (P >> 2)) * ((гарын үсэг зурсан урт int) dig_P8)) >> 13; P = (гарын үсэг зураагүй урт int) ((гарын үсэг зурсан урт int) P + ((var1 + var2 + dig_P7) >> 4)); буцах P; } гарын үсэг зураагүй long int calibration_H (гарын үсэг зурсан урт int adc_H) {гарын үсэг зурсан урт int v_x1; v_x1 = (t_fine - ((урт int) 76800)); v_x1 = ((((((adc_H << 14) -((((урт гарын үсэг зурсан) dig_H4) 15) *) (((((((v_x1 * ((урт гарын үсэг) dig_H6) (v_x1 * ((гарын үсэг зурсан урт int) dig_H3)) >> 11) + ((урт гарын үсэг зурсан 32768)))) 10) + ((урт гарын үсэг зурсан 2097152))) * ((урт гарын үсэг зурсан) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) 7) * ((урт гарын үсэг зурсан) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); буцах (гарын үсэг зураагүй урт int) (v_x1 >> 12);

Алхам 6: Үндсэн хялбарчлал: MakeCode/JavaScript код

Гол хялбарчлал: MakeCode/JavaScript код
Гол хялбарчлал: MakeCode/JavaScript код
Гол хялбарчлал: MakeCode/JavaScript код
Гол хялбарчлал: MakeCode/JavaScript код

2018 оны 5 -р сард Pimoroni нь BME280 даралт/чийгшил/температур мэдрэгч, TCS3472 гэрэл, өнгөний мэдрэгч, MEMS микрофонтой хамт орчныг: бит гаргажээ. Нэмж дурдахад тэд MakeCode засварлагчийн JavaScript номын сан болон эдгээр мэдрэгчдэд зориулсан MicroPython номын санг санал болгож байна.

Би тэдний MakeCode номын санг ашиглан төхөөрөмжийнхөө скриптүүдийг боловсруулж ирсэн. Хавсаргасан байгаа тул та өөрийн micro: bit рүү шууд хуулж болох Hex файлуудыг олж болно.

Доор та харгалзах JavaScript кодыг олох болно. Усан санд тест хийх нь скриптийн өмнөх хувилбартай сайн ажилласан тул тэд бас ажиллах болно гэж бодож байна. Баграфын үндсэн хувилбараас гадна ялангуяа гэрлийн багатай нөхцөлд уншихад хялбар болгох зорилготой crosshair хувилбар (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)} if if (input.buttonIsPressed (Button. B)) {basic.showString ("" + Row + "." + хэвээр + "m") basic.pause (200) basic.clearScreen ()} өөр {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) if (Meter> = 400) {Row = 4} if if (Meter> = 300) {Row = 3} if if (Meter> = 200) {Row = 2} if if (Meter> = 100)) {Мөр = 1} өөр {Мөр = 0} үлдэх = Тоолуур - Мөр * 100 бол (үлдэх> = 80) {Багана = 4} бол (үлдэх> = 60) {Багана = 3} өөр бол (үлдэх> = 40) {Багана = 2} өөр бол (үлдэх> = 20) {Багана = 1} өөр {Багана = 0} for (ColA = 0; ColA <= Багана; ColA ++) {led.plot (C olA, Row)} basic.pause (500)}})

Алхам 7: Enviro: bit хувилбар

Enviro: битийн хувилбар
Enviro: битийн хувилбар
Enviro: битийн хувилбар
Enviro: битийн хувилбар
Enviro: битийн хувилбар
Enviro: битийн хувилбар

Энэ хооронд би орчныг авсан: бит (20 GBP) ба хүч: бит (6 GBP), хоёулаа Пиморонигоос.

Өмнө дурьдсанчлан, орчин: бит нь BME280 даралт, чийгшил, температурын мэдрэгчтэй боловч гэрэл, өнгө мэдрэгч (эндээс програмыг үзнэ үү) болон MEMS микрофонтой ирдэг.

Power: bit нь микро: битийг асаах сайхан шийдэл бөгөөд асаах/унтраах товчлууртай ирдэг.

Хамгийн гайхалтай зүйл бол хоёулаа зүгээр л дарж, ашиглах боломжтой, гагнуур, кабель, талхны хавтан байхгүй. Enviro: bit -ийг micro: bit дээр нэмээд кодоо micro: bit дээр ачаалж ашиглаарай.

Энэ тохиолдолд би микро, хүч, орчин: битийг Ziploc уутанд хийж, гар утсанд зориулагдсан тунгалаг ус нэвтрүүлдэггүй гялгар уутанд хийж бэлэн болгосон. Маш хурдан бөгөөд цэгцтэй шийдэл. Зургуудыг үзнэ үү. Шилжүүлэгч нь хамгаалалтын давхаргаар дамжуулан ашиглахад хангалттай том хэмжээтэй.

Үүнийг усанд туршиж үзсэн, сайн ажиллаж байсан. Ойролцоогоор 1.8 м -ийн гүнд хэмжсэн утга нь ойролцоогоор 1.7 м байв. Хурдан, хямд шийдэлд тийм ч муу биш, гэхдээ төгс байхаас хол байна. Тохируулга хийхэд хэсэг хугацаа шаардагддаг тул тодорхой гүнд 10-15 секунд орчим байх шаардлагатай болдог.

Алхам 8: Кабель ба мэдрэгчийн датчик хувилбар

Кабель ба мэдрэгчийн туршилтын хувилбар
Кабель ба мэдрэгчийн туршилтын хувилбар
Кабель ба мэдрэгчийн туршилтын хувилбар
Кабель ба мэдрэгчийн туршилтын хувилбар

Энэ нь микро: битийн гүн хэмжигчийн анхны санаа байсан бөгөөд хамгийн сүүлд баригдсан юм.

Энд би BMP280 мэдрэгчийг 5 м-ийн 4 утастай кабель дээр гагнаж, эмэгтэй холбогчийг нөгөө үзүүрт байрлуулав. Мэдрэгчийг уснаас хамгаалахын тулд кабелийг ашигласан дарсны бөглөөгөөр дамжуулсан. Үйсэн үзүүрийг халуун цавуугаар битүүмжилсэн байна. Би үйсэнд хоёр зүсэлт хийхээс өмнө хоёуланг нь тойрон эргэлдэв. Дараа нь би мэдрэгчийг хөвөн бөмбөгөнд хийж, бөмбөлөг тойруулан бөмбөлөг байрлуулж, бөмбөлөгний үзүүрийг үйсэн дээр (доод ховил) бэхлэв. Дараа нь би 40 г хар тугалганы жинг хоёр дахь бөмбөлөгт хийж, эхнийхээр нь боож, жинг гадна талд байрлуулж, бөмбөлөгний үзүүрийг хоёр дахь ховил дээр бэхлэв. Хоёр дахь бөмбөлөгөөс агаарыг зайлуулж, дараа нь бүх зүйлийг наалдамхай туузаар засав. Зургийг үзнэ үү, илүү нарийвчлалтай зургуудыг дагаж болно.

Холбогчийг микро: битэд ирмэгийн холбогчоор холбож, төхөөрөмжийг асааж, даралтын даралтыг тогтоов. Дараа нь мэдрэгчийн толгойг усан сангийн ёроолд аажмаар суллав (10 м үсрэх цамхаг, ойролцоогоор 4.5 м гүн).

Үр дүн:

Миний гайхсан зүйл бол энэ урт кабелиар ажилласан. Нөгөөтэйгүүр, өндөр даралтын үед хэмжилтийн алдаа томорч, 4 м орчим гүнийг ойролцоогоор 3 м гэж мэдээлсэн нь гайхах зүйл биш юм.

Боломжит програмууд:

Зарим алдааг залруулснаар төхөөрөмжийг 4 м орчим гүнийг хэмжихэд ашиглаж болно.

Arduino эсвэл Raspberry Pi -тай хамт үүнийг усан сан, усны сав дүүргэх цэгийг хэмжих, хянахад ашиглаж болно, e, g. усны түвшин тодорхой босго хэмжээнээс доогуур буюу доогуур байвал анхааруулга өгөх.

Гадна фитнессийн сорилт
Гадна фитнессийн сорилт
Гадна фитнессийн сорилт
Гадна фитнессийн сорилт

Гадна фитнессийн тэмцээнд хоёрдугаар байр эзэлсэн

Зөвлөмж болгож буй: