Mündəricat:
- Addım 1: İstifadə olunan materiallar
- Addım 2: Montaj Təlimatları
- Addım 3: Bir az nəzəriyyə və bəzi praktiki ölçülər
- Addım 4: MicroPython Script
- Addım 5: MakeCode/JavaScript Skriptləri
Video: Mikrofonunuzla təzyiqi ölçün: bit: 5 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Aşağıdakı təlimat, BMP280 təzyiq/temperatur sensoru ilə birlikdə mikro ölçmə istifadə edərək, təzyiq ölçmələri aparmaq və Boyle qanunu nümayiş etdirmək üçün qurulması asan və ucuz bir cihazı təsvir edir.
Bu şpris/təzyiq sensoru birləşməsi əvvəlki təlimatlarımdan birində artıq təsvir edildiyi halda, micro: bit ilə birləşmə yeni imkanlar təqdim edir, məsələn. sinif otaqları layihələri üçün.
Bundan əlavə, mikro: bitin I2C idarəedici sensoru ilə birlikdə istifadə edildiyi tətbiqlərin təsvirlərinin sayı bu günə qədər olduqca məhduddur. Ümid edirəm ki, bu təlimat digər layihələr üçün bir başlanğıc nöqtəsi ola bilər.
Cihaz, kəmiyyət hava təzyiqi ölçmələri aparmağa və nəticəni mikro: bit LED massivində və ya bağlı bir kompüterdə, sonradan Arduino IDE -nin seriyalı monitorundan və ya serial plotter funksiyalarından istifadə etməklə göstərməyə imkan verir. Əlavə olaraq, şprisin pistonunu özünüz itələyəcəyiniz və ya çəkəcəyiniz və bununla da lazımi gücü hiss etdiyiniz üçün, bir rəyiniz var.
Varsayılan olaraq, ekran təzyiqi LED matrisində göstərilən səviyyə göstəricisi ilə qiymətləndirməyə imkan verir. Arduino IDE -nin serial qurucusu eyni şeyi etməyə imkan verir, lakin daha yaxşı bir qətnamə ilə (videoya baxın). Daha ətraflı həllər də mövcuddur, məsələn. emal dilində. A və ya B düymələrinə basdıqdan sonra LED matrisində təzyiq və temperaturun dəqiq ölçülmüş dəyərlərini göstərə bilərsiniz, ancaq Arduino IDE -nin serial monitoru daha sürətlidir və dəyərləri yaxın vaxtda göstərməyə imkan verir.
Cihazın qurulması üçün tələb olunan ümumi xərclər və texniki bacarıqlar olduqca aşağıdır, buna görə müəllimin nəzarəti altında gözəl bir sinif layihəsi ola bilər. Əlavə olaraq cihaz, fizikaya diqqət yetirən və ya gücün və ya çəkinin rəqəmsal bir dəyərə çevriləcəyi digər layihələrdə istifadə olunan STEM layihələri üçün bir vasitə ola bilər.
Bu prinsip çox sadə bir mikro qurmaq üçün istifadə edilmişdir: bit dive-o-meter, nə qədər dərinliyə daldığınızı ölçən bir cihaz.
Əlavə 27 May-2018:
Pimoroni, BMP280 sensoru üçün MakeCode kitabxanası hazırladığı üçün mənə burada təsvir edilən cihaz üçün istifadə ediləcək bir skript hazırlamaq imkanı verdi. Skript və müvafiq HEX faylını bu təlimatın son addımında tapa bilərsiniz. İstifadə etmək üçün HEX faylını micro: bit -ə yükləyin. Xüsusi bir proqrama ehtiyac yoxdur və skriptin redaktəsi üçün onlayn MakeCode redaktorundan istifadə edə bilərsiniz.
Addım 1: İstifadə olunan materiallar
- Mikro: bit, Pimoroni -dən mənimkini aldı - 13.50 GBP
- Kitronic Edge Connector for micro: bit - Pimoroni vasitəsi ilə - 5 GBP, Qeyd: Pimorini indi I2C portlarında pinləri olan pin: bit adlanan çörək bortu dostu bir kənar bağlayıcı təklif edir.
- 2 x 2 pinli başlıq zolaqları
- Mikro üçün batareya və ya LiPo: bit (lazım deyil, amma faydalı), açarı olan batareya kabeli (dito) - Pimoroni
- Sensorların Edge konnektoruna qoşulması üçün keçid kabelləri
- Sensor üçün uzun (!) tullanan kabellər, ən azından şpris, f/f və ya f/m
- BMP280 təzyiq və temperatur sensoru - Banggood - Üç ədəd üçün 5 ABŞ dolları Bu sensorun ölçü aralığı 550 ilə 1537 hPa arasındadır.
- Kauçuk contalı 150 ml plastik kateter şpris - Amazon və ya hardware və bağ mağazaları - təxminən 2-3 ABŞ dolları
- isti yapışqan/isti yapışqan tapança
- lehimleme dəmir
- Arduino IDE quraşdırılmış bir kompüter
Addım 2: Montaj Təlimatları
Lehim başlıqları, BMP280 sensoru qırılmasına.
İki 2 pinli başlığı, Edge konnektorunun pin 19 və pin 20 bağlayıcılarına lehimləyin (şəklə baxın).
Mikro: biti Edge bağlayıcısına və kompüterinizə qoşun.
Adafruit micro: bit təlimatında göstərildiyi kimi proqram və mikro: bit hazırlayın. Onları diqqətlə oxuyun.
Lazımi kitabxanaları Arduino IDE -yə quraşdırın.
Sonrakı bir addımda əlavə edilmiş BMP280 skriptini açın.
Sensoru Edge konnektoruna qoşun. GND - 0V, VCC - 3V, SCL - pin 19, SDA - pin 20.
Skriptini mikro: bitə yükləyin.
Sensorun ağlabatan məlumat verdiyini yoxlayın, təzyiq dəyərləri serial monitorda göstərilən 1020 hPa ətrafında olmalıdır. Bu vəziyyətdə əvvəlcə kabelləri və əlaqələri yoxlayın, sonra proqramın quraşdırılmasını yoxlayın və düzəldin.
Mikro: biti söndürün, sensoru çıxarın.
Uzun tullanan kabelləri şprisin çıxışından keçirin. Açığı genişləndirmək lazım gələ bilər. Kabellərin zədələndiyini unutmamaq üçün diqqətli olun.
Sensoru keçid kabellərinə qoşun. Bağlantıların düzgün və yaxşı olduğunu yoxlayın. Mikro: bitə qoşulun.
Sensorun düzgün işlədiyini yoxlayın. Kabelləri diqqətlə çəkərək sensoru şprisin üstünə aparın.
Pistonu daxil edin və istədiyiniz istirahət vəziyyətindən (100 ml) bir qədər irəli aparın.
Şpris çıxışının ucuna isti yapışqan əlavə edin və pistonu bir qədər geri çəkin. Şprisin hava keçirmədiyini yoxlayın, əks halda daha çox isti yapışqan əlavə edin. İsti yapışqan sərinləsin.
Sensorun işlədiyini bir daha yoxlayın. Pistonu hərəkət etdirsəniz, seriyalı monitorda və mikro: bitin ekranındakı nömrələr dəyişməlidir.
Gerekirse, şprisin həcmini contanın yanında sıxaraq və pistonu hərəkət etdirərək tənzimləyə bilərsiniz.
Addım 3: Bir az nəzəriyyə və bəzi praktiki ölçülər
Burada təsvir olunan cihazla, sadə fizika təcrübələrində sıxılma və təzyiqin əlaqəsini nümayiş etdirə bilərsiniz. Şprisin üzərində "ml" ölçüsü olduğu üçün hətta kəmiyyət təcrübələri də yerinə yetirmək asandır.
Bunun arxasındakı nəzəriyyə: Boyle qanununa görə, [Həcm * Təzyiq] müəyyən bir temperaturda qaz üçün sabit bir dəyərdir.
Bu o deməkdir ki, verilmiş bir qaz həcmini N qat sıxsanız, yəni son həcmi orijinalın 1/N qatını təşkil edərsə, təzyiqi N qat artacaq: P0*V0 = P1*V1 = eksi t. Daha ətraflı məlumat üçün qaz qanunları haqqında Vikipediya məqaləsinə baxın. Dəniz səviyyəsində, barometrik təzyiq ümumiyyətlə 1010 hPa (hekto Paskal) aralığındadır.
Beləliklə, istirahət nöqtələrindən başlayaraq, məsələn. V0 = 100 ml və P0 = 1000 hPa, havanın təxminən 66 ml qədər sıxılması (yəni V1 = 2/3 * V0) təxminən 1500 hPa (P1 = 3/2 P0) təzyiqlə nəticələnəcək. Pistonu 125 ml (5/4 qat həcmdə) çəkmək təxminən 800 hPa (4/5 təzyiq) təzyiqlə nəticələnir. Ölçmələr belə sadə bir cihaz üçün təəccüblü dərəcədə dəqiqdir.
Cihaz, şprisdəki nisbətən az miqdarda havanı sıxmaq və ya genişləndirmək üçün nə qədər qüvvə lazım olduğunu birbaşa təsəvvür etməyə imkan verir.
Ancaq bəzi hesablamalar apara və onları eksperimental olaraq yoxlaya bilərik. Güman edək ki, havanı 1500 hPa -ya, 1000 hPa bazal barometrik təzyiqdə sıxırıq. Yəni təzyiq fərqi 500 hPa və ya 50 000 Pa -dir. Şprisim üçün pistonun diametri (d) təxminən 4 sm və ya 0,04 metrdir.
İndi pistonu bu vəziyyətdə tutmaq üçün lazım olan gücü hesablaya bilərsiniz. Verilmiş P = F/A (Təzyiq Sahəyə Bölünmüş Gücdür) və ya F = P*A çevrilmişdir. SI güc vahidi "Newton" N, uzunluğu "Metr" m üçün və 1 Pa hər kvadrat metrə 1N -dir. Dairəvi bir piston üçün, sahə şprisim üçün 0,00125 kvadrat metr verən A = ((d/2)^2)*pi istifadə edərək hesablana bilər. Belə ki
50.000 Pa * 0.00125 m^2 = 63 N.
Yer üzündə 1 N 100 qram çəki ilə əlaqədardır, buna görə 63 N 6,3 kq ağırlığa bərabərdir.
Ölçəkdən istifadə edərək bunu asanlıqla yoxlamaq olar. Təxminən 1500 hPa təzyiqə çatana qədər pistonu olan şprisi tərəziyə itələyin, sonra tərəzi oxuyun. Ya da miqyası təxminən 6-7 kq olana qədər itələyin, sonra "A" düyməsini basın və mikro: bitin LED matrisində göstərilən dəyəri oxuyun. Məlum oldu ki, yuxarıdakı hesablamalara əsaslanan qiymətləndirmə pis deyildi. 1500 hPa -dan bir qədər yuxarı bir təzyiq, bədən çəkisində təxminən 7 kq olan "çəki" ilə əlaqələndirilir (şəkillərə baxın). Bu konsepsiyanı çevirə və təzyiq ölçmələrinə əsaslanan sadə bir rəqəmsal tərəzi qurmaq üçün cihazı istifadə edə bilərsiniz.
Diqqət yetirin ki, sensorun yuxarı həddi təxminən 1540 hPa -dır, buna görə yuxarıdakı təzyiq ölçülə bilməz və sensora zərər verə bilər.
Pistonu bu və ya digər şəkildə hərəkət etdirməyə çalışan qüvvələri kəmiyyətcə ölçməyə imkan verdiyi üçün təhsil məqsədləri ilə yanaşı, bəzi real dünya tətbiqləri üçün də sistem istifadə edilə bilər. Beləliklə, pistonun üstünə qoyulan bir ağırlığı və ya pistona vurulan bir zərbə qüvvəsini ölçə bilərsiniz. Və ya müəyyən bir eşik dəyərinə çatdıqdan sonra işığı və ya siqnalı işə salan və ya səs verən bir keçid qurun. Və ya pistona tətbiq olunan qüvvənin gücündən asılı olaraq tezliyi dəyişən bir musiqi aləti qura bilərsiniz. Və ya bir oyun nəzarətçisi olaraq istifadə edin. Təsəvvürünüzdən istifadə edin və oynayın!
Addım 4: MicroPython Script
Mikro: bit üçün BMP280 skriptimi tapa bilərsiniz. Adafruit -in Microbit kitabxanası ilə birlikdə Banggood veb saytında tapdığım BMP/BME280 skriptinin bir törəməsidir. Birincisi, Banggood sensorundan istifadə etməyə imkan verir, ikincisi 5x5 LED ekranın işlənməsini asanlaşdırır. Hər ikisini hazırlayanlara təşəkkürümü bildirirəm.
Varsayılan olaraq, skript, təzyiq ölçmələrinin nəticələrini mikro: bitin 5x5 LED displeyində 5 addımda göstərir və dəyişiklikləri az gecikmə ilə görməyə imkan verir. Dəqiq dəyərlər Arduino IDE seriyalı monitorda paralel olaraq göstərilə bilər və ya daha ətraflı bir qrafik Arduino IDE seral plotterində göstərilə bilər.
A düyməsini basarsanız, ölçülmüş təzyiq dəyərləri mikro: bitin 5x5 LED massivində göstərilir. B düyməsini basarsanız, temperatur dəyərləri göstərilir. Bu dəqiq məlumatları oxumağa imkan versə də, ölçü dövrlərini əhəmiyyətli dərəcədə yavaşlatır.
Əminəm ki, tapşırıqları proqramlaşdırmaq və ssenarini yaxşılaşdırmaq üçün daha zərif yollar var. Hər hansı bir kömək xoş gəlir.
#xxx daxil edin
#Adafruit_Microbit_Matrix mikrobini daxil edin; #define BME280_ADDRESS 0x76 işarəsiz uzun int hum_raw, temp_raw, pres_raw; imzalanmış uzun 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; // ölçülmüş dəyərlər üçün qablar int value0; int dəyəri1; int dəyəri2; int dəyəri3; int dəyəri 4; // ------------------------------------------------ -------------------------------------------------- ------------------ void setup () {uint8_t osrs_t = 1; // İstilik həddindən artıq seçmə x 1 uint8_t osrs_p = 1; // Təzyiq həddindən artıq nümunə götürmə x 1 uint8_t osrs_h = 1; // Nəmlik həddindən artıq seçmə x 1 uint8_t rejimi = 3; // Normal rejim uint8_t t_sb = 5; // Tstandby 1000ms uint8_t filter = 0; // Süzün uint8_t spi3w_en = 0; // 3 telli SPI Disable uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | rejim; uint8_t config_reg = (t_sb << 5) | (filtr << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, GİRİŞ); pinMode (PIN_BUTTON_B, GİRİŞ); Serial.begin (9600); // Serial.println ("Temperatur [dərəcə C]"); // Serial.print ("\ t"); Serial.print ("Təzyiq [hPa]"); // başlıq Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); gecikmə (1000); } // ----------------------------------------------- -------------------------------------------------- -------- void loop () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; imzalanmış uzun int temp_cal; imzasız uzun int press_cal, hum_cal; int N; // LED matris ekranı üçün eşik dəyərləri təyin edin, hPa cüt max_0 = 1100; ikiqat max_1 = 1230; ikiqat max_2 = 1360; ikiqat max_3 = 1490; readData (); temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); hum_cal = calibration_H (hum_raw); temp_act = (ikiqat) temp_cal / 100.0; press_act = (ikiqat) press_cal / 100.0; hum_act = (ikiqat) hum_cal / 1024.0; microbit.clear (); // LED matrisini sıfırlayın /* Serial.print ("PRESS:"); Serial.println (press_act); Serial.print ("hPa"); Serial.print ("TEMP:"); Serial.print ("\ t"); Serial.println (temp_act); */ if (! digitalRead (PIN_BUTTON_B)) {// dəyərlərin rəqəmlərlə göstərilməsi dairələrin ölçülməsini gecikdirir microbit.print ("T:"); microbit.print (temp_act, 1); microbit.print ("'C"); // Serial.println (""); } else if (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (press_act, 0); microbit.print ("hPa"); } başqa {// təzyiq dəyərlərinin müəyyən bir səviyyədə piksel və ya xətlər şəklində göstərilməsi // 5 addım: 1490 hPa // max_n dəyərləri ilə təyin olunan eşiklər (press_act> max_3) {(N = 0); // yuxarı sıra} başqa halda (press_act> max_2) {(N = 1); } başqa əgər (press_act> max_1) {(N = 2); } başqa əgər (press_act> max_0) {(N = 3); } başqa {(N = 4); // əsas sıra} // Serial.println (N); // inkişaf məqsədləri üçün // microbit.print (N); // Line kimi // microbit.drawLine (N, 0, 0, 4, LED_ON); // dəyərləri növbəti sətir dəyərinə keçir4 = dəyər3; dəyər3 = dəyər2; dəyər2 = dəyər1; dəyər1 = dəyər 0; dəyər 0 = N; // şəkil çəkmək, sütun -sütun microbit.drawPixel (0, dəyər0, LED_ON); // Piksel olaraq: sütun, satır. 0, 0 sol yuxarı künc microbit.drawPixel (1, dəyər1, LED_ON); microbit.drawPixel (2, dəyər2, LED_ON); microbit.drawPixel (3, dəyər3, LED_ON); microbit.drawPixel (4, dəyər4, LED_ON); } // məlumatları serial monitoruna və serial plotterə göndərmək // Serial.println (press_act); // rəqəmsal ekran üçün dəyər (lər) göndərin, isteğe bağlıdır
Serial.print (press_act); // plotter üçün serial portuna dəyər göndərin
// göstərici xətləri çəkin və göstərilən aralıqları düzəldin Serial.print ("\ t"); Serial.çap (600); Serial.print ("\ t"); Serial.print (1100), Serial.print ("\ t"); Serial.println (1600); gecikmə (200); // Saniyədə üç dəfə ölçün} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // bmp/bme280 sensoru üçün aşağıdakılar tələb olunur, oxunmadığı kimi saxlayın 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/while (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // 2014/Wire.write əlavə et (0xA1); // 2014/Wire.endTransmission () əlavə edin; // 2014/Wire.requestFrom əlavə edin (BME280_ADDRESS, 1); // Əlavə et 2014/data = Wire.read (); // 2014/i ++ əlavə edin; // 2014/Wire.beginTransmission (BME280_ADDRESS) əlavə edin; Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Fix 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (məlumatlar [1] << 8) | məlumatlar [0]; dig_P1 = (məlumat [7] << 8) | məlumatlar [6]; dig_P2 = (məlumatlar [9] << 8) | məlumatlar [8]; dig_P3 = (məlumatlar [11] << 8) | məlumatlar [10]; dig_P4 = (məlumatlar [13] << 8) | məlumatlar [12]; dig_P5 = (məlumat [15] << 8) | məlumatlar [14]; dig_P6 = (məlumatlar [17] << 8) | məlumatlar [16]; dig_P7 = (məlumatlar [19] << 8) | məlumatlar [18]; dig_T2 = (məlumat [3] << 8) | məlumatlar [2]; dig_T3 = (məlumat [5] << 8) | məlumatlar [4]; dig_P8 = (məlumatlar [21] << 8) | məlumatlar [20]; dig_P9 = (məlumatlar [23] << 8) | məlumatlar [22]; dig_H1 = məlumat [24]; dig_H2 = (məlumatlar [26] << 8) | məlumatlar [25]; dig_H3 = məlumatlar [27]; dig_H4 = (məlumatlar [28] << 4) | (0x0F & data [29]); dig_H5 = (məlumatlar [30] 4) & 0x0F); // Fix 2014/dig_H6 = data [31]; // Düzəlt 2014/} etibarsız writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (məlumatlar); Wire.endTransmission (); }
etibarsız readData ()
{int i = 0; uint32_t məlumatları [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (məlumat [0] << 12) | (məlumatlar [1] 4); temp_raw = (məlumat [3] << 12) | (məlumatlar [4] 4); hum_raw = (məlumat [6] << 8) | məlumatlar [7]; }
imzalanmış uzun int calibration_T (imzalanmış uzun int adc_T)
{imzalanmış uzun int var1, var2, T; var1 = (((((adc_T >> 3) - ((imzalanmış uzun int) dig_T1 11; var2 = {) - ((imzalanmış uzun int) dig_T1))) >> 12) * ((imzalanmış uzun int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; qayıt T;} işarəsiz uzun int calibration_P (imzalanmış uzun int adc_P) {imzalanmış uzun int var1, var2; işarəsiz uzun int P; var1 = (((uzun imzalı uzun int) t_fine) >> 1) - (uzun int) 64000; var2 = ((((var1 >> 2) * (var1 >> 2)) >> 11) * ((imzalanmış uzun int) dig_P6); var2 = var2 + ((var1 * ((imzalanmış uzun int) dig_P5)) 2) + (((imzalanmış uzun int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((((uzun imzalı uzun int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((uzun imzalanmış int) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((işarəsiz uzun int) (((imzalanmış uzun int) 1048576) -adc_P)-(var2 >> 12)))*3125; əgər (P <0x80000000) {P = (P << 1) / ((işarəsiz uzun int) var1); } başqa {P = (P / (işarəsiz uzun int) var1) * 2; } var1 = (((imzalanan uzun int) dig_P9) * ((uzun imza) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((imzalanmış uzun int) (P >> 2)) * ((imzalanmış uzun int) dig_P8)) >> 13; P = (işarəsiz uzun int) ((imzalanmış uzun int) P + ((var1 + var2 + dig_P7) >> 4)); qaytarılması P; } imzasız uzun int calibration_H (imzalanmış uzun int adc_H) {imzalanmış uzun int v_x1; v_x1 = (t_fine - ((imzalanmış uzun int) 76800)); v_x1 = ((((((adc_H << 14) -(((uzun imzalanmış int) dig_H4) 15) * (((((((v_x1 * ((imzalanmış uzun int) dig_H3)) >> 11) + ((uzun imza uzun 32) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) 7) * ((imzalanmış uzun int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); qaytar (işarəsiz uzun int) (v_x1 >> 12);}
Addım 5: MakeCode/JavaScript Skriptləri
Pimoroni, bu yaxınlarda BMP280 təzyiq sensoru, işıq/rəng sensoru və MEMS mikrofonu ilə birlikdə gələn: bit mühitini buraxdı. Bir MicroPython və MakeCode/JavaScript kitabxanası da təklif edirlər.
Daha sonra təzyiq sensoru üçün MakeCode skript yazmaq üçün istifadə etdim. Müvafiq hex faylı birbaşa micro: bit -ə kopyalana bilər. Kod aşağıda göstərilir və onlayn MakeCode redaktoru istifadə edərək dəyişdirilə bilər.
Mikro: bit dive-o-meter üçün skriptin bir variantıdır. Varsayılan olaraq təzyiq fərqini bir çubuq qrafiki olaraq göstərir. A düyməsinə basmaq istinad təzyiqini təyin edir, B düyməsini basmaq hPa -da faktiki və istinad təzyiqi arasındakı fərqi göstərir.
Əsas barkod versiyasına əlavə olaraq oxumağı asanlaşdırmaq üçün nəzərdə tutulmuş "X", crosshair versiyası və "L" versiyasını da tapa bilərsiniz.
Sütun = 0 olsun
qalsın = 0 edək Satır = 0 olsun Metr = 0 edək Delta = 0 edək Ref = 0 edək Is = 0 olsun = 1012 əsas.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 ("" + Delta + "hPa") basic.pause (200) basic.clearScreen ()} else {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) if (Metr> = 400) {Satır = 4} başqa halda (Metr> = 300) {Satır = 3} başqa halda (Metr> = 200) {Satır = 2} başqa (Metr> = 100) {Satır = 1} else {Satır = 0} qalır = Metr - Satır * 100 əgər (qalsa> = 80) {Sütun = 4} başqa (qalsa> = 60) {Sütun = 3} başqa (qalsa> = 40) {Sütun = 2 } else if (qalın> = 20) {Sütun = 1} başqa {Sütun = 0} üçün (edək ColA = 0; ColA <= Sütun; ColA ++) {led.plot (ColA, Satır)} əsas.pauza (500)}})
Tövsiyə:
M5STACK Visuino istifadə edərək M5StickC ESP32 -də Temperaturu, Nəmliyi və Təzyiqi Necə Göstərmək olar - Etmək asan: 6 addım
M5STACK Visuino istifadə edərək M5StickC ESP32 -də İstilik, Rütubət və Təzyiqi Necə Göstərmək olar - Bunu etmək üçün bu dərslikdə ENV sensoru (DHT12, BMP280, BMM150)
Altimetr (Hündürlük Ölçer) Atmosfer Təzyiqi əsasında: 7 addım (şəkillərlə)
Altimetr (hündürlük ölçən) Atmosfer Təzyiqinə əsaslanaraq: [Redaktə edin]; Əl ilə bazal yüksəklik girişi ilə 6 -cı addımdakı 2 -ci versiyaya baxın.Bu, Arduino Nano və Bosch BMP180 atmosfer təzyiqi sensoru əsasında qurulmuş bir Altimetr (Yüksəklik Ölçən) quruluş təsviridir. Dizaynı sadədir, lakin ölçüləri
Külək Sürətini Mikro ilə ölçün: bit və Snap sxemləri: 10 addım
Külək Sürətini Mikro: Bit və Sürətli Dövrlərlə Ölçün: Hekayə Qızımla bir hava layihəsi anemometri üzərində işləyərkən proqramlaşdırma ilə əyləncəni genişləndirmək qərarına gəldik. Anemometr nədir? edir. Küləyin gücünü ölçən bir cihaz
Raspberry Pi istifadə edərək, MPL3115A2 ilə Yüksəkliyi, Təzyiqi və Temperaturu Ölçün: 6 Addım
MPL3115A2 ilə Raspberry Pi, Yüksəkliyi, Təzyiqi və Temperaturu Ölçün: Sahib olduğunuzu bilin və niyə sahib olduğunuzu bilin! Maraqlıdır. Bir çox yeni tətbiqə girən İnternet Avtomatlaşdırma əsrində yaşayırıq. Kompüter və elektronika həvəskarları olaraq, Raspberry Pi a ilə çox şey öyrənmişik
Raspberry Pi və TE Connectivity MS8607-02BA01 istifadə edərək İstilik, Nisbi Rütubət, Atmosfer Təzyiqi Kaydedicisi: 22 Addım (Şəkillərlə)
Raspberry Pi və TE Connectivity MS8607-02BA01 istifadə edərək Temperatur, Nisbi Nəmlik, Atmosfer Təzyiqi Qeydiyyatı: Giriş: Bu layihədə, temperatur rütubəti və atmosfer təzyiqi üçün addım-addım giriş sistemini necə quracağınızı sizə göstərəcəyəm. Bu layihə Raspberry Pi 3 Model B və TE Connectivity ətraf mühit sensoru çipinə əsaslanır MS8607-02BA