Chytrá WiFi zásuvka Sonoff S26
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
Modul pro měření teploty a barometrického tlaku obsahuje precizní senzor BMP280. Tento měřící senzor od firmy Bosch komunikuje přes rozhraní I2C a zvládá komunikovat rychlostí až 3,4 MHz. Co se týká provozních a měřících rozsahů senzoru BMP280, tak u teploty je to -40 až +85 stupňů Celsia a tlak lze měřit v rozsahu 300 až 1100 hektoPascalů. Rozlišení u měřených veličin je 0,01 stupně Celsia u teploty a 0,16 Pascalů u tlaku. Přesnost těchto veličin je pak +- 1 stupeň Celsia u teploty (okolo 25°C dokonce +-0,5) a +- 100 Pascal u tlaku. Pro napájení modulu se senzorem BMP280 můžeme použít rozsah napájecího napětí 1,8 až 3,6 Voltů.
Pro úspěšné propojení modulu se senzorem BMP280 a Arduino desky je nutné zapojit celkem 4 propojovací piny. Propojíme VIN s 3,3 Arduina, GND se zemí Arduina, SCL s pinem A5 a SDA s pinem A4. Datové piny SCL a SDA je nutné zapojit na I2C piny použité Arduino desky, kdy například u Arduino Uno desky jsou to zmíněné piny A4 a A5.
Pro správnou funkci uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu BMP280, návod jak na to je uveden zde. Ukázkový kód obsahuje na svém začátku připojení potřebných knihoven, definování adresy 0x76 pro komunikaci po I2C rozhraní, inicializaci senzoru z připojené knihovny a vytvoření korekční konstanty. V podprogramu setup jako první nastavíme komunikaci po sériové lince a následně zahájíme komunikaci se senzorem BMP280. Pokud by však selhalo nastavení komunikace, vytiskne se po sériové lince chybová hláška a program se zastaví. Nekonečná smyčka loop pak obsahuje na začátku načtení údajů o teplotě a tlaku do samostatných proměnných. Pro získání hodnoty tlaku jsem také započítal korekci, kdy toto číslo nejprve přičteme v milibarech (vynásobené 100) a celkový tlak pak vydělíme 100 pro získání tlaku v hekto Pascalech. Poté v programu přejdeme k vytištění všech dostupných údajů, tedy teploty a barometrického tlaku, následované pauzou po dobu dvou vteřin.
// BMP280 // Modul pro měření teploty a barometrického tlaku // připojení potřebných knihoven #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BMP280.h> // nastavení adresy senzoru #define BMP280_ADRESA (0x76) // inicializace senzoru BMP z knihovny Adafruit_BMP280 bmp; // konstanta s korekcí měření v hPa int korekce = 32; void setup() { // komunikace po sériové lince rychlostí 9600 baud Serial.begin(9600); // zahájení komunikace se senzorem BMP280, // v případě chyby je vypsána hláška po sériové lince // a zastaven program if (!bmp.begin(BMP280_ADRESA)) { Serial.println("BMP280 senzor nenalezen, zkontrolujte zapojeni!"); while (1); } } void loop() { // načtení naměřené teploty ze senzoru float teplota = bmp.readTemperature(); // načtení naměřeného tlaku ze senzoru float tlak = (bmp.readPressure()/100.00) + korekce; // výpis všech dostupných informací ze senzoru BMP // výpis teploty Serial.print("Teplota: "); Serial.print(teplota); Serial.println(" stupnu Celsia."); // výpis barometrického tlaku v hekto Pascalech Serial.print("Barometricky tlak: "); Serial.print(tlak); Serial.println(" hPa"); // vytištění prázdného řádku a pauza po dobu 2 vteřin Serial.println(); delay(2000); }
Po nahrání ukázkového kódu do Arduino desky s připojeným modulem se senzorem BMP280 dostaneme například tento výsledek:
Teplota: 31.24 stupnu Celsia. Barometricky tlak: 1015.55 hPa Teplota: 31.22 stupnu Celsia. Barometricky tlak: 1015.59 hPa Teplota: 31.20 stupnu Celsia. Barometricky tlak: 1015.54 hPa
Modul pro měření teploty a barometrického tlaku se senzorem BMP280 je jednoduše použitelným nástrojem pro měření zmíněných dvou veličin. Díky jeho univerzálnosti ho tedy můžeme využít například v domácích měřících systémech či při stavbě vlastní meteostanice. Pro přesnější měření se ale příliš nehodí, hlavně díky svým horším přesnostem měřených veličin, které jsou popsány v prvním odstavci. Avšak jako jeho velkou výhodu vidím velmi dobrou cenu a malé rozměry měřícího modulu. Jako poznámku bych rád uvedl svoji zkušenost, kdy po delším používání jsem při porovnání s hodnotami naměřeného tlaku meteorologickou stanicí v okolí zjistil konstantní rozdíl mezi mnou a stanicí naměřenou hodnotou tlaku. Tento konstantní rozdíl činil v mém případě 32 hPa, stačilo tedy tuto hodnotu vždy přičíst k mé naměřené a výsledkem byly hodnoty odpovídající udávaným meteorologickou stanicí.
Seznam použitých komponent:
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/1488-iic-i2c-senzor-tlaku-a-teploty-bmp280-3-3v-1484126320.html
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
e-Paper displeje už jsou dostupné i pro bastlení za rozumné ceny a pro jejich ovládání se hodí tento Driver.