====== Nyomásérzékelés ======
{{ :wiki:arduino:mps20n0040d.png?150|MPS20N0040D}}
===== MPS20N0040D =====
{{anchor:mps20n0040d}}
Az egy DIP-tokozású, univerzális légköri nyomásmérő szenzor, mely széles körben használható légnyomásmérésre, mint például:
* Gépkocsi: gumiabroncsnyomásmérő, légszivattyú, MAP érzékelők, diagnosztikai berendezések, autóérzékelők.
* Ipari felhasználás: légfék nyomáskapcsolók, hordozható nyomásmérők, környezetvédelmi monitorok.
* Orvosi felszerelések: betegmonitorozás és diagnosztikai berendezések, mint például vérnyomásmérő, orvosi műszerek és monitorok.
A nyomásmérő gyakorlatilag egy Wheatstone-híd, mely 0-25 mV jelet ad ki. Ez az Arduino számára közvetlenül nem értékelhető, ezért a jelátalakításhoz egy műveleti erősítőt kell beiktatni.
==== Technikai jellemzők ====
* Mérőközeg: levegő \\
* Mérési tartomány: 0-40 kPa (0-58 psi) \\
* Működési hőmérséklet tartomány: -40 ℃ ~ + 125 ℃ \\
* Tárolási hőmérséklet: -40 ℃ ~ + 150 ℃ \\
* Páratartalom: (50% ± 10%) RH \\
* Környezeti hőmérséklet: (25 ± 1) ℃ \\
* Közepes hőmérséklet: (25 ± 1) ℃ \\
* Kimeneti impedancia: 4kΩ ~ 6kΩ \\
* Nulla kimenet: -15mV ~ + 15mV \\
* Hiszterézis: + -0,7% FS \\
* Tápellátás: ≤10V DC vagy ≤2.0mA DC \\
* Szigetelési ellenállás: 100MΩ, 100VDC \\
A szenzor adatlapja: https://softroboticstoolkit.com/files/sorotoolkit/files/mps20n0040d-s_datasheet.pdf
==== Az MPS20N0040D lábkiosztása ====
{{:wiki:arduino:mps20n0040d_sema.png?300|Az MPS20N0040D lábkiosztása}}
==== Kapcsolás ====
{{:wiki:arduino:mps20n0040d_kapcsolas.png|MPS20N0040D áramút}}
Ez a kapcsolás Alexander Lang-tól származik, ő egy LM358-as műveleti erősítőn keresztül juttatta a nyomásmérő jelét az Arduno analóg bemenetére. Egy komment szerint (lásd az oldalon) a HX711 is tökéletesen alkalmas a jelátalakításra, a gain-t ezesetben 32-re kell állítani.
A fenti kapcsolást innen másoltam ide: http://langster1980.blogspot.de/2014/11/how-to-use-pressure-sensor-with.html
==== Forrás ====
http://langster1980.blogspot.de/2014/11/how-to-use-pressure-sensor-with.html
{{ :wiki:arduino:bme280.png?200|BME280}}
===== BME280 =====
A BME20 egy nagyfelbontású légköri nyomást mérő szenzor. Az interneten sokféle modulba szervezett változata elérhető, ezeknek a közös vonása, hogy szerepel a nevükben a "280". Ez annyira nem véletlen, ugyanis ezek a Bosch BME280-as szenzorát (https://www.bosch-sensortec.com/bst/products/all_products/bme280) (rosszabb esetben enek valamely utángyártott klónját) használják a méréshez.
Specifikáció
* Tápfeszültség a szenzornak: 1.71 V - 3.6 V
* Áramfelvétel készenléti állapotban: 0.1 μA
* Relatív páratartalom: 0 ~ 100%
* Hőmérséklettartomány: -40 ° C ~ + 85 ° C
* Válaszadási idő: 1 sec
* Hiszterézis: 2% relatív páratartalom
* Mérési hibahatár: ± 0.25 %
* Nyomáshatár: 300 ~ 1100 hPa
* Kommunikációs interfész: [[hu:arduino:start#arduino_i2c|I²C]], [[hu:arduino:start#arduino_spi|SPI]]
{{ :wiki:arduino:bme280_modul.png?200|BME280 Modul}}
===== BME280 légköri nyomásmérő modul =====
{{anchor:bme280}}
Ez a CJMCU modul a BME280 nyomásszenzoron kívül páratartalom- és hőmérséklet-mérést is tartalmaz. Technikai jellemzői megegyeznek a **CJMCU-280E** modullal.
^port^leírás|
|Vcc|Tápfeszültség|
|GND|grund|
|SDI|[[hu:arduino:start#arduino_i2c|I²C]] SDA (adat) port|
|SCK|[[hu:arduino:start#arduino_i2c|I²C]] SCL (órajel) port|
|CSB|[[hu:arduino:start#arduino_i2c|I²C]] kommunikáció esetén a Vcc-re kell kötni. SPI esetén a GND-re.|
|SDO|Az [[hu:arduino:start#arduino_i2c|I²C]] slave cím kiválasztása: a GND-re kötve 0x76, a Vcc-re kötve 0x77 lesz. \\ Az SDO-t mindenképpen le kell kötni, egyébként a modul címe bizonytalan lesz.|
A modul használata ESP8266-tal: https://myesp8266.blogspot.de/2016/12/bmp280-and-esp8266.html
==== Példa ====
library: https://github.com/sparkfun/SparkFun_BME280_Arduino_Library
* Vin → 5V
* GND → grund
* SCK → pin #13
* SDO → pin #12
* SDI → pin #11
* CSB → pin #10
#include
#include "SparkFunBME280.h"
#include "Wire.h"
#include "SPI.h"
//Global sensor object
BME280 mySensor;
void setup()
{
Serial.begin(57600);
//SPI
mySensor.settings.commInterface = SPI_MODE;
mySensor.settings.chipSelectPin = 10;
//Operation settings
mySensor.settings.runMode = 3; //Normal mode
mySensor.settings.tStandby = 0;
mySensor.settings.filter = 0;
mySensor.settings.tempOverSample = 1;
mySensor.settings.pressOverSample = 1;
mySensor.settings.humidOverSample = 1;
Serial.print("Starting BME280... result of .begin(): 0x");
delay(10); //BME280 requires 2ms to start up.
Serial.println(mySensor.begin(), HEX);
}
void loop()
{
//Each loop, take a reading.
Serial.print("Temperature: ");
Serial.print(mySensor.readTempC(), 2);
Serial.println(" degrees C");
Serial.print("Temperature: ");
Serial.print(mySensor.readTempF(), 2);
Serial.println(" degrees F");
Serial.print("Pressure: ");
Serial.print(mySensor.readFloatPressure(), 2);
Serial.println(" Pa");
Serial.print("Altitude: ");
Serial.print(mySensor.readFloatAltitudeMeters(), 2);
Serial.println("m");
Serial.print("Altitude: ");
Serial.print(mySensor.readFloatAltitudeFeet(), 2);
Serial.println("ft");
Serial.print("%RH: ");
Serial.print(mySensor.readFloatHumidity(), 2);
Serial.println(" %");
Serial.println();
delay(1000);
}
forrás: http://arduinolearning.com/code/bme280-sensor-example.php
{{ :wiki:arduino:gy_65.png?150|BMP085 (GY-65) légköri nyomásmérő modul}}
===== BMP085 (GY-65) légköri nyomásmérő modul =====
{{anchor:bmp085}}
{{anchor:gy65}}
A GY-65 a Bosch BMP085 légnyomás és hőmérsékletmérő szenzor modul-változata, [[hu:comm:bus_i2c|I²C]] kommunikációval.
A BMP085 4 üzemmóddal (OSS) rendelkezik (ultra low power, standard, high resolution, ultra high resolution). Ezek egyrészt a kommunikáción keresztül paraméterezhetők, másrészt függenek a mérések gyakoriságától.
Az Arduino I²C összefoglalása itt található: [[hu:arduino:start#arduino_i2c|Arduino I²C]]. \\
==== Technikai adatok ====
* **Légnyomásmérés:** 300 .. 1100 hPa (-500 m-től 9000 m-ig)
* **Felbontás:** 0,06 hPa (0,5 m)
* **Hőmérséklet mérés:** 0 °C .. 65 °C (hőmérséklet / nyomás kompenzációval)
* **Mérés válaszideje:** 7,5 ms
* **Alkalmazott kommunikáció:** [[hu:comm:bus_i2c|I²C]]
* **Tápfeszültség:** 1.8V .. 3.6V (VDDA), 1.62V .. 3.6V (VDDD)
* **Áramfelvétel:** 5μA szabványos üzemmódban
* Alapértelmezett [[hu:comm:bus_i2c|I²C]] cím: 0x77
A kommunikáció összekötése után érdemes az [[hu:arduino:soft_basic#i_c_scanner|Arduino I²C scanner]] programmal tesztelni a modul jelenlétét.
Vigyázat, a legtöbb ilyen modulban nincs 5V-os feszültségszabályozó, így a leírásokat nem érdemes figyelmen kívül hagyni és a tápellátást is a 3.3V-tal kell megoldani.
Egyszerre csak egy ilyen modul lehet egy [[hu:comm:bus_i2c|I²C]] vonalon, mivel fix címe van.
Az I²C vezetékeket felhúzóellenállásokkal az 5V DC-re át kell kötni (a lenti vezetékezés-példánál ez nincs feltüntetve)
==== Pinek ====
^BMP085 pin^pin funkció|
|VCC|Táp (1.8V .. 3.6V)|
|GND|Grund|
|EOC|"konverzió vége" kimenet: aktiv, ha a mérés készen van (opcionális)|
|XCLR|master reset (low-active): ha GND-re kapcsoljuk, visszaállítja a BMP085 kezdeti értékeit (opcionális)|
|SCL|soros órajel I/O|
|SDA|soros adatjel I/O|
==== Vezetékezés ====
{{:wiki:arduino:gy_65_wiring.png?400|GY-65 vezetékezés}}
forrás: https://www.sparkfun.com/tutorials/253
==== Szoftver ====
Könyvtár a Githubon: https://github.com/hackabletype/37-Sensors-Code/tree/master/arduino/gy_65 \\
Github / Adafruit könyvtár: https://github.com/adafruit/Adafruit-BMP085-Library \\
Vagy a Sparkfun-tól: https://dlnmh9ip6v2uc.cloudfront.net/assets/b/9/5/3/f/512d1197ce395fcc3f000001.zip