Orodha ya maudhui:
- Hatua ya 1: Utaftaji wa BME280
- Hatua ya 2: Orodha ya Mahitaji ya Vifaa
- Hatua ya 3: Kuingiliana
- Hatua ya 4: Msimbo wa Ufuatiliaji wa Joto, Shinikizo na Unyevu
- Hatua ya 5: Maombi:
- Hatua ya 6: Mafunzo ya Video
Video: Unyevu, Shinikizo na Usomaji wa Joto Kutumia BME280 na Photon Interfacing .: 6 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:49
Tunakutana na miradi anuwai ambayo inahitaji joto, shinikizo na ufuatiliaji wa unyevu. Kwa hivyo tunatambua kuwa vigezo hivi kweli vina jukumu muhimu katika kuwa na makadirio ya ufanisi wa kazi wa mfumo katika hali tofauti za anga. Wote katika kiwango cha viwanda na mifumo ya kibinafsi joto bora, unyevu na kiwango cha shinikizo la kibaometri inahitajika kwa utendaji wa kutosha wa mfumo.
Hii ndio sababu tunatoa mafunzo kamili kwenye sensa hii, katika mafunzo haya tutaelezea kazi ya BME280 ya unyevu, shinikizo na sensorer ya joto na chembe chembe.
Hatua ya 1: Utaftaji wa BME280
Sekta ya elektroniki imeongeza mchezo wao na sensorer ya BME280, sensorer ya mazingira na joto, shinikizo la kibaometri na unyevu! Sensor hii ni nzuri kwa kila hali ya hali ya hewa / mazingira na inaweza hata kutumika katika I2C.
Sura hii ya usahihi BME280 ni suluhisho bora ya kuhisi ya kupima unyevu na ± 3% usahihi, shinikizo la kijiometri na ± 1 hPa usahihi kamili, na joto na usahihi wa ± 1.0 ° C. Kwa sababu shinikizo hubadilika na urefu, na vipimo vya shinikizo ni nzuri sana, unaweza pia kuitumia kama altimeter yenye mita ± 1 au usahihi bora! Sura ya joto imeboreshwa kwa kelele ya chini kabisa na azimio kubwa zaidi na hutumiwa kwa fidia ya joto ya sensor ya shinikizo na pia inaweza kutumika kwa makadirio ya joto la kawaida. Vipimo na BME280 vinaweza kufanywa na mtumiaji au kufanywa mara kwa mara.
Hati ya data: Bonyeza kukagua au kupakua data ya sensorer ya BME280.
Hatua ya 2: Orodha ya Mahitaji ya Vifaa
Tulitumia Sehemu za Duka la Dcube kwa sababu ni rahisi kutumia, na kitu juu ya kila kitu kinachofaa vizuri kwenye gridi ya sentimita hutupatia. Unaweza kutumia chochote unachotaka, lakini mchoro wa wiring utafikiria unatumia sehemu hizi.
- Sura ya BME280 I²C Mini
- I²C Shield kwa Particle Photon
- Chembe Photon
- I²C Cable
- Adapta ya umeme
Hatua ya 3: Kuingiliana
Sehemu ya kuingiliana kimsingi inaelezea uunganisho wa wiring unaohitajika kati ya sensa na chembe chembe. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.
BME280 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa. Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza kutumia mwingiliano huu ikiwa wewe ni agnostic. Unachohitaji ni waya nne! Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C. Uunganisho huu umeonyeshwa kwenye picha hapo juu.
Hatua ya 4: Msimbo wa Ufuatiliaji wa Joto, Shinikizo na Unyevu
Toleo safi la nambari ambayo tutatumia kuendesha hii inapatikana HAPA.
Wakati tunatumia moduli ya sensorer na Arduino, tunajumuisha application.h na maktaba ya spark_wiring_i2c.h. "application.h" na maktaba ya spark_wiring_i2c.h ina kazi ambazo zinawezesha mawasiliano ya i2c kati ya sensa na chembe.
Bonyeza HAPA kufungua ukurasa wa wavuti kwa ufuatiliaji wa kifaa
Pakia nambari kwenye ubao wako na inapaswa kuanza kufanya kazi! Takwimu zote zinaweza kupatikana kwenye ukurasa wa wavuti kama inavyoonekana kwenye picha.
Nambari imetolewa hapa chini:
// Imesambazwa na leseni ya hiari.// Itumie njia yoyote unayotaka, faida au bure, mradi inalingana na leseni za kazi zake zinazohusiana. // BME280 // Nambari hii imeundwa kufanya kazi na BME280_I2CS I2C Mini Module inayopatikana kutoka ControlEverything.com. # pamoja na # pamoja na // BME280 Anwani ya I2C ni 0x76 (108) #fafanua Addr 0x76 mara mbili cTemp = 0, fTemp = 0, shinikizo = 0, unyevu = 0; usanidi batili () {// Weka chembe inayobadilika. inayobadilika ("i2cdevice", "BME280"); kifungu kinachoweza kubadilika ("cTemp", cTemp); Chembe. Hubadilika ("fTemp", fTemp); Chembe inaweza kubadilika ("shinikizo", shinikizo); Chembe inaweza kubadilika ("unyevu", unyevu); // Anzisha mawasiliano ya I2C kama MASTER Wire. Kuanza (); // Anzisha mawasiliano ya serial, weka kiwango cha baud = 9600 Serial.begin (9600); kuchelewesha (300); } kitanzi batili () {unsigned int b1 [24]; data isiyoingia [8]; int dig_H1 = 0; kwa (int i = 0; i <24; i ++) {// Anzisha waya wa Uhamisho wa I2C. anza Uwasilishaji (Addr); // Chagua rejista ya data Wire.write ((136 + i)); // Acha waya wa usambazaji wa I2C.endUsambazaji (); // Omba 1 byte ya data Wire.requestFrom (Addr, 1); // Soma ka 24 za data ikiwa (Wire.available () == 1) {b1 = Wire.read (); }} // Badilisha data // coefficents ya muda int dig_T1 = (b1 [0] & 0xff) + ((b1 [1] & 0xff) * 256); int dig_T2 = b1 [2] + (b1 [3] * 256); int dig_T3 = b1 [4] + (b1 [5] * 256); // coefficents ya shinikizo int dig_P1 = (b1 [6] & 0xff) + ((b1 [7] & 0xff) * 256); int dig_P2 = b1 [8] + (b1 [9] * 256); int dig_P3 = b1 [10] + (b1 [11] * 256); int dig_P4 = b1 [12] + (b1 [13] * 256); int dig_P5 = b1 [14] + (b1 [15] * 256); int dig_P6 = b1 [16] + (b1 [17] * 256); int dig_P7 = b1 [18] + (b1 [19] * 256); int dig_P8 = b1 [20] + (b1 [21] * 256); int dig_P9 = b1 [22] + (b1 [23] * 256); kwa (int i = 0; i <7; i ++) {// Anzisha waya wa Uhamisho wa I2C. anza Uwasilishaji (Addr); // Chagua rejista ya data Wire.write ((225 + i)); // Acha waya wa usambazaji wa I2C.endUsambazaji (); // Omba 1 byte ya data Wire.requestFrom (Addr, 1); // Soma kaiti 7 za data ikiwa (Wire.available () == 1) {b1 = Wire.read (); }} // Badilisha data // coefficents ya unyevu int dig_H2 = b1 [0] + (b1 [1] * 256); int dig_H3 = b1 [2] & 0xFF; int dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF); int dig_H5 = (b1 [4] / 16) + (b1 [5] * 16); int dig_H6 = b1 [6]; // Anzisha waya wa usambazaji wa I2C. Anza Uwasilishaji (Addr); // Chagua rejista ya data Wire.write (161); // Acha waya wa usambazaji wa I2C.endUsambazaji (); // Omba 1 byte ya data Wire.requestFrom (Addr, 1); // Soma kaiti 1 ya data ikiwa (Wire.available () == 1) {dig_H1 = Wire.read (); } // // Anzisha waya wa usambazaji wa I2C. Anza Uwasilishaji (Addr); // Chagua daftari la unyevu la kudhibiti Wire.write (0xF2); // Unyevu juu ya kiwango cha sampuli = 1 Waya. Andika (0x01); // Acha waya wa usambazaji wa I2C.endUsambazaji (); // Anzisha waya wa usambazaji wa I2C. Anza Uwasilishaji (Addr); // Chagua rejista ya kipimo cha kudhibiti Wire.write (0xF4); // Hali ya kawaida, temp na shinikizo juu ya kiwango cha sampuli = 1 Waya. Andika (0x27); // Acha waya wa usambazaji wa I2C.endUsambazaji (); // Anzisha waya wa usambazaji wa I2C. Anza Uwasilishaji (Addr); // Chagua sajili ya usanidi Wire.write (0xF5); // Wakati wa Kusimama = 1000ms Waya. Andika (0xA0); // Acha waya wa usambazaji wa I2C.endUsambazaji (); kwa (int i = 0; i <8; i ++) {// Anzisha I2C Transmission Wire. anzaUwasilishaji (Addr); // Chagua rejista ya data Wire.write ((247 + i)); // Acha waya wa usambazaji wa I2C.endUsambazaji (); // Omba 1 byte ya data Wire.requestFrom (Addr, 1); // Soma kaiti 8 za data ikiwa (Wire.available () == 1) {data = Wire.read (); }} // Badilisha data ya shinikizo na joto kuwa 19-bits ndefu adc_p = (((ndefu) (data [0] & 0xFF) * 65536) + ((ndefu) (data [1] & 0xFF) * 256) + (muda mrefu) (data [2] & 0xF0)) / 16; muda mrefu adc_t = (((mrefu) (data [3] & 0xFF) * 65536) + ((ndefu) (data [4] & 0xFF) * 256) + (ndefu) (data [5] & 0xF0)) / 16; // Badilisha data ya unyevu kwa muda mrefu adc_h = ((ndefu) (data [6] & 0xFF) * 256 + (ndefu) (data [7] & 0xFF)); // Mahesabu ya kukabiliana na joto mara mbili var1 = ((((double) adc_t) / 16384.0 - ((double) dig_T1) / 1024.0) * ((double) dig_T2); var2 = mara mbili); mara mbili t_fine = (ndefu) (var1 + var2); mara mbili cTemp = (var1 + var2) / 5120.0; fTemp mara mbili = cTemp * 1.8 + 32; // Mahesabu ya kukabiliana na shinikizo var1 = ((mara mbili) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((mara mbili) dig_P6) / 32768.0; var2 = var2 + var1 * ((mara mbili) dig_P5) * 2.0; var2 = (var2 / 4.0) + (((mara mbili) dig_P4) * 65536.0); var1 = (((mara mbili) dig_P3) * var1 * var1 / 524288.0 + ((mara mbili) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((mara mbili) dig_P1); mara mbili p = 1048576.0 - (mara mbili) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((mara mbili) dig_P9) * p * p / 2147483648.0; var2 = p * ((mara mbili) dig_P8) / 32768.0; shinikizo mara mbili = (p + (var1 + var2 + ((mara mbili) dig_P7)) / 16.0) / 100; // Mahesabu ya kukabiliana na unyevu mara mbili var_H = ((((mara mbili) t_fine) - 76800.0); var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_H))); unyevu mara mbili = var_H * (1.0 - dig_H1 * var_H / 524288.0); ikiwa (unyevu> 100.0) {unyevu = 100.0; } kingine ikiwa (unyevu <0.0) {unyevu = 0.0; } // Pato la data kwa dashibodi Particle.publish ("Joto katika Celsius:", String (cTemp)); Kuchapisha chembe ("Joto katika Fahrenheit:", Kamba (fTemp)); Kuchapisha chembe ("Shinikizo:", Kamba (shinikizo)); Chembe.chapisha ("Unyevu wa Jamaa:", Kamba (unyevu)); kuchelewesha (1000); }
Hatua ya 5: Maombi:
Joto la BME280, shinikizo na sensorer ya unyevu ina matumizi anuwai ya viwandani kama ufuatiliaji wa joto, kinga ya mafuta ya pembeni, ufuatiliaji wa shinikizo kwenye tasnia. Tumetumia pia sensor hii katika matumizi ya kituo cha hali ya hewa na pia mfumo wa ufuatiliaji wa chafu.
Programu zingine zinaweza kushawishi:
- Uelewa wa muktadha, k.m. kugundua ngozi, kugundua mabadiliko ya chumba.
- Ufuatiliaji wa ustawi / ustawi - Onyo kuhusu ukame au joto kali.
- Upimaji wa kiasi na mtiririko wa hewa.
- Udhibiti wa mitambo ya nyumbani.
- Dhibiti inapokanzwa, uingizaji hewa, kiyoyozi (HVAC).
- Mtandao wa vitu.
- Uboreshaji wa GPS (k.m uboreshaji wa kurekebisha-wakati-wa-kwanza, hesabu iliyokufa, kugundua mteremko).
- Urambazaji wa ndani (mabadiliko ya kugundua sakafu, kugundua lifti).
- Urambazaji wa nje, matumizi ya burudani na michezo.
- Utabiri wa hali ya hewa.
- Dalili ya kasi ya wima (kasi ya kupanda / kuzama)..
Hatua ya 6: Mafunzo ya Video
Tazama mafunzo yetu ya video kupitia hatua zote katika kuingiliana na kukamilisha mradi.
Endelea kufuatilia uingiliano wa sensa nyingine na blogi inayofanya kazi.
Ilipendekeza:
M5STACK Jinsi ya Kuonyesha Joto, Unyevu na Shinikizo kwenye M5StickC ESP32 Kutumia Visuino - Rahisi Kufanya: Hatua 6
M5STACK Jinsi ya Kuonyesha Joto, Unyevu na Shinikizo kwenye M5StickC ESP32 Kutumia Visuino - Rahisi Kufanya: Katika mafunzo haya tutajifunza jinsi ya kupanga ESP32 M5Stack StickC na Arduino IDE na Visuino kuonyesha Joto, Unyevu na Shinikizo ukitumia sensa ya ENV (DHT12, BMP280, BMM150)
Jinsi ya kutumia DHT22 Unyevu wa unyevu na joto la joto na Arduino: Hatua 6
Jinsi ya kutumia unyevu wa DHT22 na sensorer ya joto na Arduino: Katika mafunzo haya tutajifunza jinsi ya kutumia unyevu wa DHT22 na Sensor ya Joto na Arduino na kuonyesha maadili kwenye OLED Onyesha video
Kituo cha Hali ya Hewa cha Arduino Kutumia BMP280-DHT11 - Joto, Unyevu na Shinikizo: Hatua 8
Kituo cha Hali ya Hewa cha Arduino Kutumia BMP280-DHT11 - Joto, Unyevu na Shinikizo: Katika mafunzo haya tutajifunza jinsi ya kutengeneza kituo cha hali ya hewa ambacho kitaonyesha TEMPERATURE, UNYENYEKEVU NA SHINIKIZO kwenye LCD Onyesha TFT 7735Tazama video ya onyesho
Jinsi ya kutumia Sensor ya Joto la DHT11 na Arduino na Joto la Uchapishaji wa Joto na Unyevu: Hatua 5
Jinsi ya Kutumia Sensorer ya Joto la DHT11 Na Arduino na Joto la Uchapishaji Joto na Unyevu: Sura ya DHT11 hutumiwa kupima joto na unyevu. Unyevu wa DHT11 na sensorer ya joto hufanya iwe rahisi sana kuongeza data ya unyevu na joto kwenye miradi yako ya elektroniki ya DIY. Ni kwa kila
Joto, Unyevu wa Jamaa, Akili ya Shinikizo la Anga Kutumia Raspberry Pi na Uunganisho wa TE MS8607-02BA01: Hatua 22 (na Picha)
Joto, Unyevu wa Jamaa, Mguu wa Shinikizo la Anga Kutumia Raspberry Pi na TE Uunganisho MS8607-02BA01: Utangulizi: Katika mradi huu nitakuonyesha jinsi ya kuunda usanidi kwa hatua mfumo wa kukata miti kwa unyevu wa joto na shinikizo la anga. Mradi huu unategemea Raspberry Pi 3 Model B na TE Muunganisho wa sensa ya mazingira ya chip MS8607-02BA