blog.ijacek007.cz

Blog o všem trochu jinak.

Dnes si představíme opravdu malé čidlo BMP180, pomocí kterého lze měřit atmosférický tlak a v omezeném rozsahu také teplotu.

Tento modu je dle specifikací měří v rozsahu 300 až 1100 hPa. Zároveň umožnuje měřit teplotu v rozsahu 0 až 65 °C. Přesnost měření tlaku je –4 až +2 hPa. U měření teploty je přesnost + – 2 °C. Modul se k desce Arduino připojuje pomocí sběrnice I2C a na jeho těle nenajdete možnost změny adresy. Počítejte tedy s tím, že můžete připojit pouze jeden modul na jednu I2C sběrnici. Modul je od výroby nastaven na adresu 0×77. Tuto adresu nicméně znát nemusíte, pokud budete modul obsluhovat pomocí připravené knihovny.


obrázek čídlo DHT22 a BMP180

Jak si můžete prohlédnout, tak modul je opravdu velmi malých rozměrů. Na fotce je vedle nepříliš velkého čidla teploty DHT22. Na modulu najdete pouze čtveřici přípojných míst, kdy dvě jsou na samotné napájení 3,3V nebo 5V a další dva kontakty pak na samotnou I2C komunikaci. Na obrázku najdete schéma zapojení LCD, který se zároveň bude starat o zobrazení naměřených hodnot.


obrázek arduino esp8266 I2C lcd bmp180

Komunikace s čidlem je velmi jednoduchá. Slouží k němu knihovna BPM085. Celý zdrojový kód příkladu naleznete níže.

#include "SSD1306.h" // alias for `#include "SSD1306Wire.h"`

// Initialize the OLED display using Wire library
SSD1306  display(0x3c, 5,4);
// https://github.com/ThingPulse/esp8266-oled-ssd1306
// (adresa , sda,scl)

#include <Wire.h>
#include <Adafruit_BMP085.h>

// inicializace senzoru BMP180 z knihovny BMP085
Adafruit_BMP085 bmp180;



void setup(void)
{



  display.init();

  display.flipScreenVertically();   // rotace displeje
  display.setFont(ArialMT_Plain_16);

      // zapnutí komunikace se senzorem BMP180
    bmp180.begin();


}



  void tlak( ) {

  display.setFont(ArialMT_Plain_24);
  display.setTextAlignment(TEXT_ALIGN_CENTER); // The coordinates define the center of the screen!
  display.drawString(64,0,String(((bmp180.readPressure() )/100.0)) +"hPa");
  display.drawString(64,2,String(bmp180.readTemperature() )+" °C");
  }

void loop(void)
{





   display.clear();  // clear the display
   display.setTextAlignment(TEXT_ALIGN_RIGHT);
   tlak();
   display.display();
   delay(500);



}

Mohlo by Vás zajímat

Sběrnice I2C a proč jí používat

Minimalistický tepoměr ESP8266 s čidlem DHT22


Štítky článku elektronika | programovani | zajimavosti |
Autor Ijacek.007 14.08.2018 zobrazeno 117x
Předchozí článek Sběrnice i2c a proč ji využívat


gravatar

Vložit komentář

Nick *:
WWW:
Email * (nezobrazuje se ):
Gravatar:
Pamatuj si mě:
Komentář článku *:
Opiš následující text: *

* - vyžadované údaje. RSS kanál s komentáři