Indholdsfortegnelse:
- Trin 1: BME280 -efterforskning
- Trin 2: Liste over krav til hardware
- Trin 3: Grænseflade
- Trin 4: Overvågningskode for temperatur, tryk og luftfugtighed
- Trin 5: Ansøgninger:
- Trin 6: Videovejledning
![Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og fotoninterface: 6 trin Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og fotoninterface: 6 trin](https://i.howwhatproduce.com/images/003/image-6140-j.webp)
Video: Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og fotoninterface: 6 trin
![Video: Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og fotoninterface: 6 trin Video: Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og fotoninterface: 6 trin](https://i.ytimg.com/vi/zqJRNGECAvw/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
![Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og Photon Interfacing Fugtighed, tryk og temperaturberegning ved hjælp af BME280 og Photon Interfacing](https://i.howwhatproduce.com/images/003/image-6140-1-j.webp)
Vi støder på forskellige projekter, som kræver temperatur-, tryk- og fugtighedsovervågning. Således indser vi, at disse parametre faktisk spiller en afgørende rolle for at have et skøn over et systems effektivitet ved forskellige atmosfæriske forhold. Både på industrielt niveau og personlige systemer er en optimal temperatur, fugtighed og barometrisk tryk påkrævet for systemets tilstrækkelige ydeevne.
Det er derfor, vi giver en komplet vejledning om denne sensor, i denne vejledning skal vi forklare funktionen af BME280 fugtigheds-, tryk- og temperatursensor med partikelfoton.
Trin 1: BME280 -efterforskning
![BME280 Efterforskning BME280 Efterforskning](https://i.howwhatproduce.com/images/003/image-6140-2-j.webp)
Elektronisk sektor har forstærket deres spil med BME280 -sensoren, en miljøsensor med temperatur, barometrisk tryk og fugtighed! Denne sensor er fantastisk til al slags vejr/miljøfornemmelse og kan endda bruges i I2C.
Denne præcisionssensor BME280 er den bedste sanseløsning til måling af fugtighed med ± 3% nøjagtighed, barometrisk tryk med ± 1 hPa absolut nøjagtighed og temperatur med ± 1,0 ° C nøjagtighed. Fordi trykket ændres med højden, og trykmålingerne er så gode, kan du også bruge det som en højdemåler med ± 1 meter eller bedre nøjagtighed! Temperatursensoren er optimeret til den laveste støj og højeste opløsning og bruges til temperaturkompensation på trykføleren og kan også bruges til estimering af omgivelsestemperatur. Målinger med BME280 kan udføres af brugeren eller udføres med jævne mellemrum.
Datablad: Klik for at få vist eller downloade databladet til BME280 -sensoren.
Trin 2: Liste over krav til hardware
![Hardware kravliste Hardware kravliste](https://i.howwhatproduce.com/images/003/image-6140-3-j.webp)
Vi brugte udelukkende Dcube Store Parts, fordi de er nemme at bruge, og noget om alt, der passer fint til et centimeter gitter, får os virkelig til at gå. Du kan bruge, hvad du vil, men ledningsdiagrammet antager, at du bruger disse dele.
- BME280 Sensor I²C Mini -modul
- I²C -skærm til partikelfoton
- Partikel foton
- I²C kabel
- Strømadapter
Trin 3: Grænseflade
![Grænseflade Grænseflade](https://i.howwhatproduce.com/images/003/image-6140-4-j.webp)
Interfacesektionen forklarer grundlæggende de ledningsforbindelser, der kræves mellem sensoren og partikelfonen. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:
BME280 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren. Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne grænseflade, hvis du ellers er agnostiker. Alt du behøver er fire ledninger! Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel. Disse forbindelser er vist på billederne ovenfor.
Trin 4: Overvågningskode for temperatur, tryk og luftfugtighed
![Overvågningskode for temperatur, tryk og luftfugtighed Overvågningskode for temperatur, tryk og luftfugtighed](https://i.howwhatproduce.com/images/003/image-6140-5-j.webp)
![Overvågningskode for temperatur, tryk og luftfugtighed Overvågningskode for temperatur, tryk og luftfugtighed](https://i.howwhatproduce.com/images/003/image-6140-6-j.webp)
Den rene version af koden, som vi vil bruge til at køre denne, er tilgængelig HER.
Mens vi bruger sensormodulet med Arduino, inkluderer vi application.h og spark_wiring_i2c.h bibliotek. "application.h" og spark_wiring_i2c.h biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og partiklen.
Klik HER for at åbne websiden til enhedsovervågning
Upload koden til dit bord, og den skal begynde at fungere! Alle data kan hentes på websiden som vist på billedet.
Koden er angivet herunder:
// Distribueret med en fri vilje-licens. // Brug den, som du vil, profit eller gratis, forudsat at den passer ind i licenserne til de tilhørende værker. // BME280 // Denne kode er designet til at fungere med BME280_I2CS I2C Mini -modulet tilgængeligt fra ControlEverything.com. #include #include // BME280 I2C -adressen er 0x76 (108) #define Addr 0x76 dobbelt cTemp = 0, fTemp = 0, tryk = 0, luftfugtighed = 0; void setup () {// Angiv variabel Particle.variable ("i2cdevice", "BME280"); article.variable ("cTemp", cTemp); Particle.variable ("fTemp", fTemp); Partikel.variabel ("tryk", tryk); Partikel.variabel ("fugtighed", fugtighed); // Initialiser I2C -kommunikation som MASTER Wire.begin (); // Initialiser seriel kommunikation, indstil baudhastighed = 9600 Serial.begin (9600); forsinkelse (300); } void loop () {unsigned int b1 [24]; usignerede int -data [8]; int dig_H1 = 0; for (int i = 0; i <24; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Vælg dataregister Wire.write ((136+i)); // Stop I2C Transmission Wire.endTransmission (); // Anmod om 1 byte data Wire.requestFrom (Addr, 1); // Læs 24 bytes data hvis (Wire.available () == 1) {b1 = Wire.read (); }} // Konverter data // tempkoefficienter 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); // trykkoefficienter 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); for (int i = 0; i <7; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Vælg dataregister Wire.write ((225+i)); // Stop I2C Transmission Wire.endTransmission (); // Anmod om 1 byte data Wire.requestFrom (Addr, 1); // Læs 7 bytes data hvis (Wire.available () == 1) {b1 = Wire.read (); }}} // Konverter data // fugtighedskoefficienter 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]; // Start I2C Transmission Wire.beginTransmission (Addr); // Vælg dataregister Wire.write (161); // Stop I2C Transmission Wire.endTransmission (); // Anmod om 1 byte data Wire.requestFrom (Addr, 1); // Læs 1 byte data hvis (Wire.available () == 1) {dig_H1 = Wire.read (); } // Start I2C Transmission Wire.beginTransmission (Addr); // Vælg kontrolfugtighedsregister Wire.write (0xF2); // Fugtighed over prøveudtagningshastighed = 1 Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Vælg kontrolmåleregister Wire.write (0xF4); // Normal tilstand, temp og tryk over samplingshastighed = 1 Wire.write (0x27); // Stop I2C Transmission Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Vælg konfigurationsregister Wire.write (0xF5); // Standby -tid = 1000ms Wire.write (0xA0); // Stop I2C Transmission Wire.endTransmission (); for (int i = 0; i <8; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Vælg dataregister Wire.write ((247+i)); // Stop I2C Transmission Wire.endTransmission (); // Anmod om 1 byte data Wire.requestFrom (Addr, 1); // Læs 8 bytes data hvis (Wire.available () == 1) {data = Wire.read (); }}} // Konverter tryk- og temperaturdata til 19-bit lange adc_p = (((long) (data [0] & 0xFF) * 65536) + ((long) (data [1] & 0xFF) * 256) + (lang) (data [2] & 0xF0)) / 16; long adc_t = (((long) (data [3] & 0xFF) * 65536) + ((long) (data [4] & 0xFF) * 256) + (long) (data [5] & 0xF0)) / 16; // Konverter fugtighedsdataene lange adc_h = ((long) (data [6] & 0xFF) * 256 + (long) (data [7] & 0xFF)); // Temperaturforskydningsberegninger dobbelt var1 = (((dobbelt) adc_t) / 16384.0 - ((dobbelt) dig_T1) / 1024.0) * ((dobbelt) dig_T2); dobbelt var2 = ((((dobbelt) adc_t) / 131072.0 - ((dobbelt) dig_T1) / 8192.0) * (((dobbelt) adc_t) /131072.0 - ((dobbelt) dig_T1) /8192.0)) * ((dobbelt) dig_T3); dobbelt t_fine = (lang) (var1 + var2); dobbelt cTemp = (var1 + var2) / 5120,0; dobbelt fTemp = cTemp * 1,8 + 32; // Trykforskydningsberegninger var1 = ((dobbelt) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((dobbelt) dig_P6) / 32768,0; var2 = var2 + var1 * ((dobbelt) dig_P5) * 2,0; var2 = (var2 / 4,0) + (((dobbelt) dig_P4) * 65536,0); var1 = (((dobbelt) dig_P3) * var1 * var1 / 524288.0 + ((dobbelt) dig_P2) * var1) / 524288.0; var1 = (1,0 + var1 / 32768,0) * ((dobbelt) dig_P1); dobbelt p = 1048576.0 - (dobbelt) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((dobbelt) dig_P9) * p * p / 2147483648.0; var2 = p * ((dobbelt) dig_P8) / 32768,0; dobbelt tryk = (p + (var1 + var2 + ((dobbelt) dig_P7)) / 16,0) / 100; // Fugtighedsforskydningsberegninger dobbelt var_H = (((dobbelt) t_fin) - 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))); dobbelt luftfugtighed = var_H * (1,0 - dig_H1 * var_H / 524288,0); hvis (fugtighed> 100,0) {luftfugtighed = 100,0; } ellers hvis (fugtighed <0,0) {luftfugtighed = 0,0; } // Outputdata til instrumentbrættet Particle.publish ("Temperature in Celsius:", String (cTemp)); Particle.publish ("Temperatur i Fahrenheit:", String (fTemp)); Particle.publish ("Tryk:", String (tryk)); Particle.publish ("Relativ luftfugtighed:", streng (fugtighed)); forsinkelse (1000); }
Trin 5: Ansøgninger:
![Ansøgninger Ansøgninger](https://i.howwhatproduce.com/images/003/image-6140-7-j.webp)
BME280 temperatur-, tryk- og relativ fugtighedsføler har forskellige industrielle applikationer som temperaturovervågning, computer perifer termisk beskyttelse, trykovervågning i industrien. Vi har også brugt denne sensor til vejrstationsapplikationer samt drivhusovervågningssystem.
Andre applikationer kan omfatte:
- Kontekstbevidsthed, f.eks. hudregistrering, registrering af rumskift.
- Fitnessovervågning / trivsel - Advarsel vedrørende tørhed eller høje temperaturer.
- Måling af volumen og luftstrøm.
- Hjemmeautomatiseringskontrol.
- Kontroller varme, ventilation, aircondition (HVAC).
- Tingenes internet.
- GPS-forbedring (f.eks. Forbedring af tid til første-fix, dødregning, hældningsdetektering).
- Indendørs navigation (ændring af gulvregistrering, elevatorregistrering).
- Udendørs navigation, fritid og sport applikationer.
- Vejrudsigt.
- Vertikal hastighedsindikation (stigning/synkehastighed)..
Trin 6: Videovejledning
![](https://i.ytimg.com/vi/oQzwTSxhVKA/hqdefault.jpg)
Se vores videoundervisning for at gennemgå alle trin i grænseflade og færdiggørelse af projektet.
Hold øje med andre sensorers grænseflade og arbejdsblogs.
Anbefalede:
M5STACK Sådan vises temperatur, fugtighed og tryk på M5StickC ESP32 ved hjælp af Visuino - let at gøre: 6 trin
![M5STACK Sådan vises temperatur, fugtighed og tryk på M5StickC ESP32 ved hjælp af Visuino - let at gøre: 6 trin M5STACK Sådan vises temperatur, fugtighed og tryk på M5StickC ESP32 ved hjælp af Visuino - let at gøre: 6 trin](https://i.howwhatproduce.com/images/001/image-312-6-j.webp)
M5STACK Sådan vises temperatur, luftfugtighed og tryk på M5StickC ESP32 ved hjælp af Visuino - let at gøre: I denne vejledning lærer vi, hvordan du programmerer ESP32 M5Stack StickC med Arduino IDE og Visuino til at vise temperatur, luftfugtighed og tryk ved hjælp af ENV -sensor (DHT12, BMP280, BMM150)
Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin
![Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin Højde, tryk og temperatur ved hjælp af Raspberry Pi med MPL3115A2: 6 trin](https://i.howwhatproduce.com/images/004/image-10425-j.webp)
Højde, tryk og temperatur ved hjælp af Raspberry Pi Med MPL3115A2: Det lyder interessant. Det er ganske muligt i denne tid, hvor vi alle går ind i IoT -generationen. Som elektronikfreak har vi leget med Raspberry Pi og besluttet at lave interessante projekter ved hjælp af denne viden. I dette projekt vil vi
Arduino vejrstation ved hjælp af BMP280 -DHT11 - Temperatur, luftfugtighed og tryk: 8 trin
![Arduino vejrstation ved hjælp af BMP280 -DHT11 - Temperatur, luftfugtighed og tryk: 8 trin Arduino vejrstation ved hjælp af BMP280 -DHT11 - Temperatur, luftfugtighed og tryk: 8 trin](https://i.howwhatproduce.com/images/009/image-26305-j.webp)
Arduino vejrstation ved hjælp af BMP280 -DHT11 - Temperatur, luftfugtighed og tryk: I denne vejledning lærer vi, hvordan man laver en vejrstation, der viser en TEMPERATUR, Fugtighed og tryk på LCD -displayet TFT 7735 Se en demonstrationsvideo
Bestemmelse af tryk og højde ved hjælp af GY-68 BMP180 og Arduino: 6 trin
![Bestemmelse af tryk og højde ved hjælp af GY-68 BMP180 og Arduino: 6 trin Bestemmelse af tryk og højde ved hjælp af GY-68 BMP180 og Arduino: 6 trin](https://i.howwhatproduce.com/images/001/image-2773-22-j.webp)
Bestemmelse af tryk og højde ved hjælp af GY-68 BMP180 og Arduino: Oversigt I mange projekter såsom flyvende robotter, vejrstationer, forbedring af routingydelse, sport osv. Er måling af tryk og højde meget vigtig. I denne vejledning lærer du, hvordan du bruger BMP180 -sensoren, som er en af de mest
Byg en Apple HomeKit -temperatursensor (BME280) ved hjælp af en RaspberryPI og en BME280: 5 trin
![Byg en Apple HomeKit -temperatursensor (BME280) ved hjælp af en RaspberryPI og en BME280: 5 trin Byg en Apple HomeKit -temperatursensor (BME280) ved hjælp af en RaspberryPI og en BME280: 5 trin](https://i.howwhatproduce.com/images/002/image-4763-30-j.webp)
Byg en Apple HomeKit -temperatursensor (BME280) Ved hjælp af en RaspberryPI og en BME280: Jeg har leget rundt med IOT -enheder i de sidste par måneder og har implementeret omkring 10 forskellige sensorer til at overvåge forhold omkring mit hus og sommerhus. Og jeg var oprindeligt begyndt at bruge AOSONG DHT22 tempereret fugtighedsføler