ዝርዝር ሁኔታ:

ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር 8 ደረጃዎች (ከስዕሎች ጋር)
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር 8 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር 8 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር 8 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: How to Install Application Software/አፕሊኬሽን ሶፍትዌር እንዴት እንጭናለን 2024, ሀምሌ
Anonim
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር
ማይክሮ: ቢት ዳይቭ-ኦ-ሜትር

ክረምት እዚህ ነው ፣ የመዋኛ ጊዜው!

እራስዎን እና ማይክሮዎን ለመውሰድ ጥሩ አጋጣሚ - ትንሽ ወደ ውጭ ፣ እና በዚህ ሁኔታ ውስጥ እንኳን ወደ መዋኛ ገንዳ።

እዚህ ላይ የተገለጸው ማይክሮ-ቢት ዳይቭ-ኦ-ሜትር ምን ያህል ጥልቅ እንደሆኑ ፣ ወይም እንደነበሩ ጠልቀው እንዲለኩ የሚያስችልዎ ቀላል የ DIY ጥልቀት መለኪያ ነው። እሱ ማይክሮ -ቢት ፣ የባትሪ ጥቅል ወይም LiPo ፣ ለማይክሮው የጠርዝ ማያያዣን ያጠቃልላል -ቢት ፣ BMP280 ወይም BME280 የባሮሜትሪክ ግፊት ዳሳሽ እና አንዳንድ የመዝለያ ገመዶች። የፒሞሮኒን ኢንቫይሮ መጠቀም ቢት ነገሮችን ነገሮችን ቀላል ያደርገዋል። ተንሳፋፊውን ኃይል ለማካካስ አንዳንድ ክብደቶች ሲጨመሩ ይህ ሁሉ ውሃ በማይገባበት ንጹህ የፕላስቲክ ወይም የሲሊኮን ቦርሳዎች በሁለት ንብርብሮች ተሞልቷል።

ቀደም ባለው መመሪያ ውስጥ የገለጽኩት የማይክሮ ቢት ግፊት ዳሳሽ መሣሪያ ትግበራ ነው።

መሣሪያውን ሊጠቀሙ ይችላሉ ሠ. ሰ. ከጓደኞች እና ከቤተሰብ ጋር ለመጥለቅ ውድድሮች ፣ ወይም ያ ኩሬ በእውነት ምን ያህል ጥልቅ እንደሆነ ለማወቅ። እኔ በሰፈሬ ውስጥ ያለውን ጥልቅ ገንዳ በመጠቀም ሞከርኩ እና ቢያንስ እስከ 3.2 ሜትር ጥልቀት ድረስ እንደሚሰራ አገኘሁ። አምስት ሜትር ያህል የንድፈ ሀሳብ ከፍተኛው ነው። እስካሁን ትክክለኛነቱን በማንኛውም ዝርዝር ውስጥ አልሞከርኩም ፣ ግን ሪፖርት የተደረጉት ቁጥሮች ቢያንስ በተጠበቀው ክልል ውስጥ ነበሩ።

አንዳንድ አስተያየቶች - ይህ ለእውነተኛ ጠላፊዎች መሣሪያ ለመሆን የታሰበ አይደለም። የእርስዎ ማይክሮ -ቢት እርጥብ ከሆነ ይጎዳል። ይህንን መመሪያ በራስዎ አደጋ ይጠቀማሉ።

ግንቦት 27 ን ያዘምኑ-አሁን በቀጥታ ወደ ማይክሮ-ቢትዎ ሊጭኑት የሚችሉት የ MakeCode HEX- ስክሪፕት ማግኘት ይችላሉ። ደረጃ 6 ይመልከቱ። ሰኔ 13 ን ያዘምኑ - አንድ ኢንቫይሮ ቢት እና የኬብል ስሪት ታክሏል። ደረጃ 7 እና 8 ን ይመልከቱ

ደረጃ 1 - ከመሣሪያው በስተጀርባ ያለው ንድፈ ሃሳብ

የምንኖረው በአየር ውቅያኖስ ግርጌ ላይ ነው። የአየር ዓምድ ክብደት እዚህ ቦታ ላይ ስለሚፈጠር እዚህ ያለው ግፊት 1020 hPa (ሄክቶፓስካል) ነው ፣ ምክንያቱም በካሬ ሴንቲሜትር 1 ኪ.ግ.

የውሃው ጥግግት በጣም ከፍ ያለ ነው ፣ ምክንያቱም አንድ ሊትር የአየር ክብደት 1.2 ግራም እና አንድ ሊትር ውሃ 1 ኪ.ግ ፣ ማለትም 800 እጥፍ ያህል ነው። ስለዚህ የባሮሜትሪክ ግፊት መውረድ ለእያንዳንዱ 8 ሜትር ከፍታ 1 hPa ያህል እንደመሆኑ መጠን የግፊቱ ትርፍ ከውሃው ወለል በታች ላለው ለእያንዳንዱ ሴንቲሜትር 1 hPa ነው። ወደ 10 ሜትር ጥልቀት ፣ ግፊቱ 2000 hPa ፣ ወይም ሁለት ከባቢ አየር ነው።

እዚህ ጥቅም ላይ የዋለው የግፊት ዳሳሽ በ 750 እና 1500 hPa መካከል በአንድ ኤችኤኤኤ ጥራት ላይ የመለኪያ ክልል አለው። ይህ ማለት 1 ሴንቲ ሜትር በሆነ ጥራት እስከ 5 ሜትር ድረስ ጥልቀቶችን መለካት እንችላለን ማለት ነው።

መሣሪያው የቦይል ማርዮሬት ዓይነት ጥልቀት መለኪያ ይሆናል። የእሱ ስብሰባ በጣም ቀላል እና በኋላ ደረጃ ላይ ተገል describedል። አነፍናፊው የ I2C ፕሮቶኮልን ይጠቀማል ፣ ስለዚህ ለማይክሮ -ቢት የጠርዝ አገናኝ። ማንኛውም እርጥበት ማይክሮ -ቢትን ፣ ዳሳሹን ወይም ባትሪውን ስለሚጎዳ በጣም አስፈላጊው ክፍል ውሃ የማይገባባቸው ቦርሳዎች ናቸው። አንዳንድ አየር በቦርሳዎቹ ውስጥ ተይዞ እንደሚቆይ ፣ የክብደቶች መጨመር ተንሳፋፊ ኃይልን ለማካካስ ይረዳል።

ደረጃ 2 መሣሪያውን መጠቀም

መሣሪያን በመጠቀም
መሣሪያን በመጠቀም
መሣሪያን በመጠቀም
መሣሪያን በመጠቀም
መሣሪያን በመጠቀም
መሣሪያን በመጠቀም
መሣሪያን በመጠቀም
መሣሪያን በመጠቀም

በኋለኛው ደረጃ ላይ በዝርዝር እንደሚታየው ስክሪፕቱ ፣ እኔ ለግፊት መለኪያ ቀደም ብዬ የሠራሁት የስክሪፕት ልዩነት ነው። መሣሪያውን ለመፈተሽ እዚያ የተገለጸውን ቀላል የግፊት ክፍል መጠቀም ይችላሉ።

ለመጥለቅ ዓላማዎች በ 20 ሴ.ሜ እርከኖች ውስጥ እንደ ባር ግራፍ ወይም እንደ ጥያቄ ፣ በቁጥሮች ውስጥ እንደ ግፊት መለኪያዎች እንደተሰላው በሜትር ውስጥ ጥልቀቱን ያሳያል።

በማይክሮ -ቢት ላይ ያለውን አዝራር ሀ በመጠቀም የአሁኑን ግፊት እንደ የማጣቀሻ ግፊት እሴት ያዘጋጃሉ። መግባቱን ለማረጋገጥ ፣ ማትሪክስ አንድ ጊዜ ብልጭ ድርግም ይላል።

እርስዎ ምን ያህል ጥልቅ እንደሆኑ እየጠለቁ እንደሆነ ፣ ወይም ምን ያህል ጥልቅ እንደነበሩ ለመዘገብ ይህንን ሊጠቀሙበት ይችላሉ።

በመጀመሪያው ሁኔታ የአሁኑን የውጭ የአየር ግፊት እንደ ማጣቀሻ ያዘጋጁ። በሁለተኛው ሁኔታ ግፊቱን እንደ ጥልቅ ማጣቀሻ ወደሚገኝበት ጥልቅ ነጥብ ያስቀምጡ ፣ ከዚያ ወደ ላይ ሲመለሱ ምን ያህል ጥልቅ እንደነበሩ ለማሳየት ያስችልዎታል። አዝራር ቢ ጥልቀቱን ያሳያል ፣ ከግፊት ልዩነት የተሰላው ፣ በሜትሮች ውስጥ እንደ የቁጥር እሴት።

ደረጃ 3: የሚያስፈልጉ ቁሳቁሶች

የሚያስፈልጉ ቁሳቁሶች
የሚያስፈልጉ ቁሳቁሶች
የሚያስፈልጉ ቁሳቁሶች
የሚያስፈልጉ ቁሳቁሶች
የሚያስፈልጉ ቁሳቁሶች
የሚያስፈልጉ ቁሳቁሶች

ማይክሮ - ቢት። ለምሳሌ በ 13 GBP/16 ዩሮ በፒሞሮኒ ዩኬ/ዲ.

የጠርዝ አያያዥ (ኪትሮኒክ ወይም ፒሞሮኒ) ፣ 5 ጊባ። የኪትሮኒክን ስሪት እጠቀም ነበር።

BMP/BME280 ዳሳሽ። እኔ ከባንግጉድ የ BMP280 ዳሳሽ ፣ 4.33 ዩሮ ለሦስት አሃዶች እጠቀም ነበር።

አነፍናፊ እና የጠርዝ አያያዥ ለማገናኘት የመዝለያ ገመዶች።

ከላይ ካለው የጠርዝ አያያዥ/ዳሳሽ ጥምረት በጣም ጥሩ አማራጭ የፒሞሮኒ ኢንቪሮ ሊሆን ይችላል - ቢት (አሁን አልተፈተነም ፣ የመጨረሻውን ደረጃ ይመልከቱ)።

ለማይክሮ -ቢት የባትሪ ጥቅል ወይም ሊፖ።

ማብሪያ / ማጥፊያ ያለው የኃይል ገመድ (አማራጭ ግን አጋዥ)። ውሃ የማይገባባቸውን ከረጢቶች ያፅዱ። ለሞባይል ስልክ እና አንድ ወይም ሁለት ትናንሽ የዚፕሎክ ቦርሳዎች የሲሊኮን ቦርሳ ተጠቀምኩ። ቁሱ በቂ መሆኑን ያረጋግጡ ፣ ስለዚህ በጠርዙ አገናኝ ላይ ያሉት ፒኖች ቦርሳዎቹን አያበላሹም።

አንዳንድ ክብደት። ለዓሣ ማጥመድ የሚያገለግሉ የእርሳስ ክብደት ቁርጥራጮችን እጠቀም ነበር።

አርዱዲኖ አይዲኢ ፣ እና በርካታ ቤተ -መጻሕፍት።

ደረጃ 4 - ስብሰባ

ስብሰባ
ስብሰባ
ስብሰባ
ስብሰባ
ስብሰባ
ስብሰባ
ስብሰባ
ስብሰባ

የ Arduino IDE ን እና የሚፈለጉትን ቤተ -ፍርግሞችን ይጫኑ። ዝርዝሮች እዚህ ተብራርተዋል።

(ለ MakeCode ስክሪፕት አስፈላጊ አይደለም።) የ Kitronik ጠርዝ አያያዥ ፣ የሽያጭ ፒኖችን ወደ I2C ወደቦች 19 እና 20. እንዲጠቀሙ ከተደረገ ይህ ለፒሞሮኒ ጠርዝ አያያዥ አያስፈልግም። ራስጌውን ወደ አነፍናፊው ያጥፉት እና የመዝለያ ገመዶችን በመጠቀም ዳሳሽ እና የጠርዝ አያያዥ ያገናኙ። ቪሲሲን ከ 3 ቮ ፣ GND ከ 0 ቮ ፣ SCL ወደብ 19 እና ኤስዲኤን ወደብ ያገናኙ። በአማራጭ ገመዶችን በቀጥታ ወደ መለያየት ይሸጡ። በዩኤስቢ ገመድ አማካኝነት ማይክሮ -ቢት ከኮምፒውተራችን ጋር ያገናኙ። የቀረበውን ስክሪፕት ይክፈቱ እና ወደ ማይክሮ -ቢት ያብሩት። ተከታታይ ማሳያውን ወይም ሴራተኛውን ይጠቀሙ ፣ አነፍናፊው ምክንያታዊ መረጃ ከሰጠ ያረጋግጡ። ማይክሮ -ቢት ከኮምፒዩተርዎ ያላቅቁ። ባትሪውን ወይም LiPo ን ከማይክሮ -ቢት ጋር ያገናኙ። የፕሬስ አዝራር ለ ፣ እሴቱን ያንብቡ የፕሬስ አዝራር ሀ ይጫኑ አዝራር ቢ ፣ እሴቱን ያንብቡ። በከረጢቶች ውስጥ በጣም ትንሽ አየር ብቻ በመተው መሣሪያውን በሁለት ንብርብሮች በማይተከሉ ከረጢቶች ውስጥ ያስቀምጡ። ሁኔታ ውስጥ ፣ የትንፋሽ ኃይልን ለማካካስ ክብደት ያስቀምጡ። ሁሉም ነገር ውሃ የማይገባ ከሆነ ያረጋግጡ። ወደ ገንዳው ይሂዱ እና ይጫወቱ።

ደረጃ 5 የማይክሮ ፓይቶን ስክሪፕት

ስክሪፕቱ የግፊት እሴቱን ከአነፍናፊው ይወስዳል ፣ ከማመሳከሪያው እሴት ጋር ያወዳድራል ፣ ከዚያም ጥልቀቱን ከልዩነቱ ያሰላል። እሴቶቹን እንደ አሞሌ ግራፍ ለማሳየት ፣ የጥልቁ እሴቱ ኢንቲጀር እና ቀሪው ክፍል ይወሰዳል። የመጀመሪያው የመስመሩን ቁመት ይገልጻል። ቀሪው በአምስት ጎድጓዳ ሳህኖች ተሰብሯል ፣ ይህም የአሞሌዎቹን ርዝመት ይገልፃል። የላይኛው ደረጃ 0 - 1 ሜትር ፣ ዝቅተኛው 4 - 5 ሜትር ነው። ቀደም ሲል እንደተጠቀሰው ፣ የመጫን ቁልፍ ሀ የማጣቀሻ ግፊትን ያዘጋጃል ፣ አዝራር ቢ በቁጥር ውስጥ የሚታየውን “አንጻራዊ ጥልቀት” በሜትር ያሳያል። በአሁኑ ጊዜ አሉታዊ እና አወንታዊ እሴቶች በተመሳሳይ መንገድ በ LED ማትሪክስ ላይ እንደ ባርግራፍ ቀርበዋል። ለፍላጎቶችዎ ስክሪፕቱን ለማመቻቸት ነፃ ይሁኑ። በ Arduino IDE ተከታታይ ሞኒተር ወይም ሴራ ላይ ያሉትን እሴቶች ለማቅረብ የተወሰኑ መስመሮችን ድምጸ -ከል ማድረግ ይችላሉ። ተግባሩን ለመኮረጅ ፣ ቀደም ሲል በተሰጠ መመሪያ ውስጥ የገለጽኩትን መሣሪያ ሊገነቡ ይችላሉ።

አነፍናፊውን የሚያነብ የስክሪፕቱን ክፍል አልጻፍኩም። ስለ ምንጩ እርግጠኛ አይደለሁም ፣ ግን አውቶሞቢሎችን ማመስገን እወዳለሁ። ማሻሻል ማንኛውም እርማቶች ወይም ፍንጮች እንኳን ደህና መጡ።

#ያካትቱ

#አዳፍሩት_Microbit_Matrix ማይክሮቢት ያካትቱ; #ጥራት BME280_ADDRESS 0x76 ያልተፈረመ ረጅም int hum_raw ፣ temp_raw ፣ pres_raw; ረጅም 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; ድርብ press_norm = 1015; // የመነሻ እሴት ድርብ ጥልቀት; // የተሰላ ጥልቀት // -------------------------------------------- -------------------------------------------------- ---------------------- ባዶነት ማዋቀር () {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); Serial.begin (9600); // ተከታታይ የወደብ ፍጥነት ያዘጋጁ Serial.print ("ግፊት [hPa]"); // ራስጌ ለተከታታይ ውፅዓት Wire.begin (); ጻፍ (0xF2 ፣ ctrl_hum_reg); ጻፍ (0xF4 ፣ ctrl_meas_reg); ጻፍ (0xF5 ፣ config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); መዘግየት (1000); } // ---------------------------------------------- ---------------------------------------------- ባዶ ክፍተት () {ድርብ temp_act = 0.0 ፣ press_act = 0.0 ፣ hum_act = 0.0; የተፈረመ ረጅም int temp_cal; ያልተፈረመ ረጅም int press_cal ፣ hum_cal; int N; int M; ድርብ press_delta; // አንጻራዊ ግፊት int deep_m; // ጥልቀት በሜትሮች ፣ ኢንቲጀር ክፍል ድርብ ጥልቀት_ሲሜ; // ቀሪ በ cm readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = መለካት_ኤች (hum_raw); // temp_act = (ድርብ) temp_cal / 100.0; press_act = (ድርብ) press_cal / 100.0; // hum_act = (ድርብ) hum_cal / 1024.0; microbit.clear (); // የ LED ማትሪክስን ዳግም ያስጀምሩ // አዝራር ሀ ትክክለኛውን እሴት እንደ ማጣቀሻ (ፒ ዜሮ) ያዘጋጃል // አዝራር ቢ የአሁኑን እሴት በሜትሮች ውስጥ እንደ ጥልቀት ያሳያል (ከግፊት ልዩነት የተሰላ) ከሆነ (! digitalRead (PIN_BUTTON_A)) {// መደበኛ የአየር ግፊትን ያዘጋጁ እንደ ዜሮ press_norm = press_act; // microbit.print ("P0:"); // microbit.print (press_norm ፣ 0); // microbit.print ("hPa"); microbit.fillSreen (LED_ON); // መዘግየትን ለማረጋገጥ አንድ ጊዜ ብልጭ ድርግም (100); } ሌላ ከሆነ (! 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 ሜትር ጥልቀት_cm = (abs (ጥልቀት) - ጥልቀት_ም); // ቀሪ /* // ለልማት የሚያገለግል Serial.println (ጥልቀት); Serial.println (deep_m); Serial.println (deep_cm); (/ ጥልቀት_ሲሜ> 0.8) {// የአሞሌዎች ርዝመት (N = 4) ከሆነ */ // ለባርግራፍ እርምጃዎች } ሌላ ከሆነ (deep_cm> 0.6) {(N = 3); } ሌላ ከሆነ (deep_cm> 0.4) {(N = 2); } ሌላ ከሆነ (deep_cm> 0.2) {(N = 1); } ሌላ {(N = 0); }

ከሆነ (deep_m == 4) {// set level == meter

(M = 4); } ሌላ ከሆነ (deep_m == 3) {(M = 3); } ሌላ ከሆነ (deep_m == 2) {(M = 2); } ሌላ ከሆነ (deep_m == 1) {(M = 1); } ሌላ {(M = 0); // የላይኛው ረድፍ} /* // ለልማት ዓላማዎች ያገለግላል Serial.print ("m:"); Serial.println (deep_m); Serial.print ("cm:"); Serial.println (deep_cm); Serial.print ("M:"); Serial.println (M); // ለልማት ዓላማዎች Serial.print ("N:"); Serial.println (N); // ለልማት ዓላማ መዘግየት (500); */ // ባለግራፍ ማይክሮቢት.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 ዳሳሽ የሚከተለው ያስፈልጋል ፣ ባዶ ሆኖ እንደተነበበ ይቆዩTrim () {uint8_t ውሂብ [32] ፣ i = 0; // አስተካክል 2014/Wire.begin ማስተላለፊያ (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS ፣ 24); // 2014/ሳለ ያስተካክሉ (Wire.available ()) {data = Wire.read (); i ++; } Wire.begin ማስተላለፊያ (BME280_ADDRESS); // አክል 2014/Wire.write (0xA1); // አክል 2014/Wire.endTransmission (); // 2014/Wire.requestFrom (BME280_ADDRESS ፣ 1) ያክሉ; // 2014/ውሂብ አክል = Wire.read (); // 2014/i ++ ን ይጨምሩ; // አክል 2014/Wire.begin ማስተላለፊያ (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS ፣ 7) ፤ // 2014/ሳለ ያስተካክሉ (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); // ያስተካክሉ 2014/dig_H6 = ውሂብ [31]; // ያስተካክሉ 2014/} ባዶ መጻፍ Reg (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.begin ማስተላለፊያ (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS ፣ 8); ሳለ (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) - ((ረጅም የተፈረመ) dig_T1)) * ((adc_T >> 4) - - ((የተፈረመ ረጅም int) dig_T1))) >> 12) * ((ረጅም የተፈረመ int) dig_T3)) >> 14 ፤ t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; ተመለስ T; } ያልተፈረመ ረጅም int calibration_P (የተፈረመ ረጅም int adc_P) {የተፈረመ ረጅም int var1 ፣ var2 ፤ ያልተፈረመ ረጅም int P; var1 = (((የተፈረመ ረጅም int) t_fine) >> 1) - (ረጅም int int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((የተፈረመ ረዥም int) dig_P6); var2 = var2 + ((var1 * ((የተፈረመ ረጅም int) dig_P5)) 2) + () ((የተፈረመ ረጅም int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((የተፈረመ ረጅም int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((ረጅም int int የተፈረመ) dig_P1)) >> 15); ከሆነ (var1 == 0) {መመለስ 0; } P = (((ያልተፈረመ ረጅም int)) (((የተፈረመ ረጅም int) 1048576) -adc_P)-(var2 >> 12)))*3125; ከሆነ (P <0x80000000) {P = (P << 1) / ((ያልተፈረመ ረጅም int) var1); } ሌላ {P = (P / (ያልተፈረመ ረጅም int) var1) * 2; } var1 = (((የተፈረመ ረጅም int) dig_P9) * ((ረጅም የተፈረመ int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((ረጅም int int የተፈረመ)) (P >> 2)) * ((ረጅም የተፈረመ int) dig_P8)) >> 13; P = (ያልተፈረመ ረጅም int) ((ረጅም የተፈረመ int) P + ((var1 + var2 + dig_P7) >> 4)); ተመለስ ፒ; } ያልተፈረመ ረጅም int calibration_H (የተፈረመ ረጅም int adc_H) {ረጅም int v_x1 ተፈርሟል ፤ v_x1 = (t_fine - ((ረጅም የተፈረመ int) 76800)); v_x1 = (((((adc_H << 14) -(((የተፈረመ ረጅም int) dig_H4) 15) * (((((((v_x1 * ((የተፈረመ ረጅም int)) dig_H6)) >> 10) * (((v_x1 * ((የተፈረመ ረጅም int) dig_H3)) >> 11) + ((ረጅም ረጅም የተፈረመበት) 32768))) >> 10) + ((ረጅም የተፈረመ int) 2097152)) * ((ረጅም ረጅም int የተፈረመ) dig_H2) + 8192) >> 14)););

ደረጃ 6 - ዋና ማቃለል - MakeCode/JavaScript ኮድ

አንድ ዋና ማቃለል - MakeCode/JavaScript ኮድ
አንድ ዋና ማቃለል - MakeCode/JavaScript ኮድ
አንድ ዋና ማቃለል - MakeCode/JavaScript ኮድ
አንድ ዋና ማቃለል - MakeCode/JavaScript ኮድ

በግንቦት ወር 2018 ፣ ፒሞሮኒ ኤቪሮውን - ቢት ፣ ከ BME280 ግፊት/እርጥበት/የሙቀት ዳሳሽ ፣ ከ TCS3472 ብርሃን እና ቀለም ዳሳሽ እና ከኤምኤምኤስ ማይክሮፎን ጋር የሚመጣ። በተጨማሪም ለሜክኮድ አርታኢ እና ለእነዚህ ዳሳሾች የማይክሮ ፓይቶን ቤተ -መጽሐፍትን የጃቫስክሪፕት ቤተ -መጽሐፍትን እያቀረቡ ነው።

ለመሣሪያዬ ስክሪፕቶችን ለማዘጋጀት የእነሱን MakeCode ቤተ -መጽሐፍትን እየተጠቀምኩ ነበር። ተያይዘህ በቀጥታ ወደ ማይክሮ ቢትህ መገልበጥ የምትችለውን የሄክስ ፋይሎችን ታገኛለህ።

ከዚህ በታች ተጓዳኝ የጃቫስክሪፕት ኮድ ያገኛሉ። በገንዳው ውስጥ መሞከር ከቀደመው የስክሪፕት ስሪት ጋር በደንብ ሠርቷል ፣ ስለሆነም እነሱ እንዲሁ ይሰራሉ ብዬ እገምታለሁ። ከመሠረታዊው ፣ ከባርግራፍ ሥሪት በተጨማሪ ፣ በተለይም በዝቅተኛ ብርሃን ሁኔታዎች ውስጥ ንባብን ለማቃለል የታሰበ የመስቀለኛ መንገድ ስሪት (X) እና ኤል-ስሪት አለ። የሚመርጡትን ይምረጡ።

ዓምድ = 0 ይሁን

let Meter = 0 let remain = 0 let Row = 0 let Delta = 0 let Ref = 0 let Is = 0 Is = 1012 basic.showLeds (« # # # # # # #… # #. #. # #…. basic.showLeds (` # #. #. #. #. #. # # # # # # # # # # # # # # # # # # # # # # # # #.) {basic.showString ("" + ረድፍ + ".abs (ዴልታ) ከሆነ (ሜትር> = 400) {ረድፍ = 4} ሌላ ከሆነ (ሜትር> = 300) {ረድፍ = 3} ሌላ ከሆነ (ሜትር> = 200) {ረድፍ = 2} ሌላ ከሆነ (ሜትር> = 100)) {ረድፍ = 1} ሌላ {ረድፍ 0 40) {ዓምድ = 2} ሌላ ከሆነ (ይቀራል> = 20) {ዓምድ = 1} ሌላ {ዓምድ = 0} ለ (ColA = 0; ColA <= Column <Column ++) {led.plot (C olA ፣ ረድፍ)} basic.pause (500)}})

ደረጃ 7 Enviro: bit ስሪት

The Enviro: bit ስሪት
The Enviro: bit ስሪት
The Enviro: bit ስሪት
The Enviro: bit ስሪት
The Enviro: bit ስሪት
The Enviro: bit ስሪት

እስከዚያ ድረስ ኤቪሮውን: ቢት (20 ጊባ) እና ኃይሉን: ቢት (6 ጊባ) ፣ ከፒሞሮኒ ተቀበልኩ።

ቀደም ሲል እንደተጠቀሰው ፣ ኤንቪሮ -ቢት ከ BME280 ግፊት ፣ እርጥበት እና የሙቀት ዳሳሽ ጋር ይመጣል ፣ ግን ደግሞ የብርሃን እና የቀለም ዳሳሽ (እዚህ ማመልከቻ ይመልከቱ) እና የ MEMS ማይክሮፎን።

ኃይሉ -ቢት ማይክሮ -ቢት ኃይልን ለማብራት ጥሩ መፍትሄ ነው እና ማብሪያ/ማጥፊያ/ማብሪያ/ማጥፊያ ጋር ይመጣል።

በጣም ጥሩው ነገር ሁለቱም ጠቅ ማድረጋቸው እና መጠቀማቸው ፣ ምንም ብየዳ ፣ ኬብሎች ፣ የዳቦ ሰሌዳዎች አለመኖራቸው ነው። ኢንቪሮውን: ቢት ወደ ማይክሮ -ቢት ይጨምሩ ፣ ኮድዎን ወደ ማይክሮ -ቢት ይጫኑ ፣ ይጠቀሙበት።

በዚህ ሁኔታ እኔ ማይክሮ ፣ ኃይል እና ኤንቪሮ ተጠቀምኩ - ቢት ፣ በዚፕሎክ ቦርሳ ውስጥ አስቀምጣቸው ፣ ለሞባይል ስልኮች በንጹህ ውሃ ጠባብ ፕላስቲክ ከረጢት ውስጥ አስቀምጠው ፣ ዝግጁ። በጣም ፈጣን እና የተስተካከለ መፍትሄ። ስዕሎቹን ይመልከቱ። መቀየሪያው በመከላከያ ንብርብሮች በኩል ለመጠቀም በቂ ነው።

በውሃ ውስጥ ተፈትኗል ፣ በጥሩ ሁኔታ እየሠራ ነበር። በ 1.8 ሜትር ጥልቀት ላይ የሚለካው እሴት 1.7 ሜትር ያህል ነበር። ለፈጣን እና ርካሽ መፍትሄ በጣም መጥፎ አይደለም ፣ ግን ፍጹም ከመሆን የራቀ ነው።ለማስተካከል ትንሽ ጊዜ ይወስዳል ፣ ስለዚህ በተወሰነ ጥልቀት ለ 10-15 ሰከንዶች ያህል መቆየት ያስፈልግዎታል።

ደረጃ 8 - የኬብል እና ዳሳሽ የምርመራ ሥሪት

የኬብል እና ዳሳሽ የምርመራ ሥሪት
የኬብል እና ዳሳሽ የምርመራ ሥሪት
የኬብል እና ዳሳሽ የምርመራ ሥሪት
የኬብል እና ዳሳሽ የምርመራ ሥሪት

ይህ በእውነቱ ለማይክሮ -ቢት ጥልቀት ሜትር የመጀመሪያው ሀሳብ ነበር ፣ ለመገንባት የመጨረሻው።

እዚህ የ BMP280 ዳሳሹን በ 4-ገመድ ገመድ 5 ሜትር ሸጥኩ እና በሌላኛው ጫፍ ላይ የሴት ዝላይን አኖርኩ። ዳሳሹን ከውኃ ለመጠበቅ ፣ ገመዱ በተጠቀመበት የወይን ጠጅ ቡሽ ውስጥ ነበር። የቡሽ ጫፎች በሞቃት ሙጫ ተዘግተዋል። እኔ ሁለት ደረጃዎችን ወደ ቡሽ ከመቁረጥዎ በፊት ፣ ሁለቱም በዙሪያው እየዞሩ ነበር። ከዚያ አነፍናፊውን ወደ ስፖንጅ ኳስ እጭናለሁ ፣ ፊኛውን በዙሪያው አስቀመጥኩ እና የፊኛውን መጨረሻ በቡሽ ላይ (የታችኛው ደረጃ) ላይ አስተካክለው። ከዚያም 3 40 ግራም የእርሳስ ክብደቶችን ወደ ሁለተኛ ፊኛ አስገባሁ ፣ በመጀመሪያው ዙሪያ ጠቅለልኩት ፣ በውጭ በኩል የተቀመጡ ክብደቶች ፣ እና የፊኛውን መጨረሻ በሁለተኛው ደረጃ ላይ አስተካክዬ። አየር ከሁለተኛው ፊኛ ተወግዷል ፣ ከዚያ ሁሉም ነገር በተጣራ ቴፕ ተስተካክሏል። ምስሎችን ይመልከቱ ፣ የበለጠ ዝርዝር እነዚያ ሊከተሉ ይችላሉ።

መዝለሎቹ ከማይክሮው ጋር ተገናኝተዋል - በጠርዝ አያያዥ በኩል ቢት ፣ መሣሪያው በርቷል እና የማጣቀሻው ግፊት ተዘጋጅቷል። ከዚያ አነፍናፊው ጭንቅላቱ ወደ ገንዳው ታች (10 ሜትር የሚዘል ግንብ ፣ ወደ 4.5 ሜትር ጥልቀት) በዝግታ ተለቀቀ።

ውጤቶች

በጣም ይገርመኛል ፣ በዚህ ረጅም ገመድ እንኳን ሰርቷል። በሌላ በኩል ፣ ግን አያስገርምም ፣ የመለኪያ ስህተቱ በከፍተኛ ግፊቶች ትልቅ እየሆነ ይመስላል ፣ እና በግምት 4 ሜትር ጥልቀት እንደ 3 ሜትር ያህል ሪፖርት ተደርጓል።

ሊሆኑ የሚችሉ መተግበሪያዎች:

በአንዳንድ የስህተት እርማቶች መሣሪያው ጥልቀቱን ወደ 4 ሜትር ያህል ለመለካት ሊያገለግል ይችላል።

ከ Arduino ወይም Raspberry Pi ጋር በመተባበር ይህ የመዋኛ ገንዳ ወይም የውሃ ማጠራቀሚያ ፣ ኢ ፣ ጂ የመለኪያ ቦታን ለመለካት እና ለመቆጣጠር ሊያገለግል ይችላል። የውሃው ደረጃዎች ከተወሰኑ ገደቦች በላይ ወይም በታች ከሄዱ ማስጠንቀቂያ ለመስጠት።

ከቤት ውጭ የአካል ብቃት ፈተና
ከቤት ውጭ የአካል ብቃት ፈተና
ከቤት ውጭ የአካል ብቃት ፈተና
ከቤት ውጭ የአካል ብቃት ፈተና

ከቤት ውጭ የአካል ብቃት ፈተና ውስጥ ሯጭ

የሚመከር: