Hradla, volty, jednočipy
  • index
  • Poděkování
  • Předmluva vydavatele
  • Předmluva mentora
  • Výmluvy místo předmluvy
  • 1 Budu velkým elektronikem a budu stavět hrozně cool obvody!
    • 1.1 Blikač
    • 1.2 „Dílna“
    • 1.3 Kde nakoupit součástky?
    • 1.4 Nákupní seznam: Součástky pro blikač
  • 2 Postavte si blikač – teď už to snad půjde lépe
    • 2.1 Který rezistor je ten pravý?
    • 2.2 Měření multimetrem
    • 2.3 LED podrobněji
  • 3 Hlava, koleno, zem…
    • 3.1 „Nemá to něco společného s atomy?“
    • 3.2 Napětí
    • 3.3 Proud
    • 3.4 Vodič a nevodič
    • 3.5 Odpor
    • 3.6 Měření, měření!
    • 3.7 Ohmův zákon
    • 3.8 Výkon
    • 3.9 … a malé opáčko
    • 3.10 Zkratky u značení
    • 3.11 Vyvolená čísla
    • 3.12 Pro lepší představu
    • 3.13 Střídavý proud
    • 3.14 Zkrat
    • 3.15 Multimetr jako zkrat?
    • 3.16 Elektromagnetická indukce
    • 3.17 Značky pro schémata
  • 4 Zdroje napětí
    • 4.1 Společná zem
  • 5 Vedle sebe, za sebou
    • 5.1 Svítilna s LEDkou
    • 5.2 Sériové zapojení
    • 5.3 Dělič napětí
    • 5.4 Paralelní zapojení
    • 5.5 Kirchhof 2
    • 5.6 Baterie sériově – paralelně
    • 5.7 Potenciometr
    • 5.8 Úbytek napětí na LED
    • 5.9 Co jsou vlastně ty diody zač?
    • 5.10 Datasheet
  • 6 Základní elektronické součástky
    • 6.1 Rezistor
    • 6.2 Kondenzátor
    • 6.3 Cívka
    • 6.4 Transformátor
  • 7 Polovodiče
    • 7.1 P-N přechod
    • 7.2 Dioda
    • 7.3 Tranzistor
    • 7.4 Rozsvítíme prstem LED!
    • 7.5 Tranzistor řízený polem (FET)
    • 7.6 Šoupejte nožkou…
    • 7.7 MOSFET
    • 7.8 A to je všechno s polovodiči?
  • 8 Pouzdra elektronických součástek
    • 8.1 Co je to SMT a THT
    • 8.2 DIP, DIL
    • 8.3 Co s těmi ostatními?
  • 9 Blikač s Arduinem
    • 9.1 Když se řekne Arduino
    • 9.2 Programování Arduina
    • 9.3 Blikání Arduinem
    • 9.4 Krok zpět k drátům
    • 9.5 Arduino a EduShield
  • 10 Fotorezistor
    • 10.1 Obrácená logika
    • 10.2 Trimry
    • 10.3 Lepší řešení detektoru tmy
    • 10.4 Fotorezistor a Arduino
  • 11 Termistor
  • 12 LM35
  • 13 „Jak naučit kámen počítat“
    • 13.1 Stavebnice
    • 13.2 Logické funkce
    • 13.3 TTL a CMOS
    • 13.4 Operace s bity
    • 13.5 Booleova algebra, výroková logika
    • 13.6 Logika v číslicové technice
    • 13.7 U-káz-ka! U-káz-ka!
    • 13.8 Tlačítko a přepínač
    • 13.9 Pull Up a Pull Down
    • 13.10 Pomalé tlačítko
    • 13.11 Schmittův obvod
    • 13.12 Blokovací kondenzátor
    • 13.13 Buzení z Arduina
  • 14 Kombinační logika
    • 14.1 De Morganův zákon
    • 14.2 XOR
    • 14.3 Logické funkce dvou proměnných
    • 14.4 Vícevstupová hradla
    • 14.5 Mimochodem, když máme NAND, co ty ostatní?
    • 14.6 Zjednodušování logických výrazů
    • 14.7 AND-OR-INVERT
    • 14.8 Multiplexor
    • 14.9 Proč slučujeme přes OR?
    • 14.10 Dekodér (demultiplexor) „1-z-N“
    • 14.11 Vícebitové varianty
    • 14.12 Otevřený kolektor, třetí stav, OE
    • 14.13 Dekodéry
    • 14.14 Pojďme, budeme už fakt něco počítat!
    • 14.15 Aritmeticko-logická jednotka (ALU)
  • 15 Sedmisegmentovky LED
    • 15.1 Víc sedmisegmentovek…
  • 16 Jak vypadá hradlo uvnitř
    • 16.1 Proč zapojovat blokovací kondenzátory k napájení
    • 16.2 Negované signály
    • 16.3 MOS, CMOS
  • 17 „Plnou parou vzad!“ – „Ale jak daleko?“
    • 17.1 Ještě pípat!
  • 18 Zpětná vazba
    • 18.1 Astabi-cože?
    • 18.2 Blikač
    • 18.3 Krystalový oscilátor DIL
    • 18.4 Monostabilní klopný obvod
    • 18.5 Detektor pohybu
    • 18.6 Bistabilní klopný obvod R-S
    • 18.7 Zakázané kombinace, zpětná vazba, …
    • 18.8 Hodiny
    • 18.9 Synchronní / Asynchronní
    • 18.10 Symbol pro klopný obvod
    • 18.11 Reálný klopný obvod D: 7474
    • 18.12 Reálný latch 7475
  • 19 Panna, nebo orel?
    • 19. 1 Náhoda? Nemyslím si…
    • 19.2 Střída
    • 19.3 PWM
    • 19.4 Dělení kmitočtů
    • 19.5 Klopný obvod T
    • 19.6 Klopný obvod J-K
  • 20 Čítače
    • 20.1 Čítač s nulováním
    • 20.2 Čítače v praxi
    • 20.3 Hrací kostka
    • 20.4 Další čítače
    • 20.5 Ještě nějaké čítače?
    • 20.6 Rotační enkodér
    • 20.7 Čítač s dekodérem 1-z-10 typu 744017
    • 20.8 Počítadlo k autodráze
  • 21 Posuvné registry
  • 22 Paralelní a sériová rozhraní
    • 22.1 Buzení displeje ze sedmisegmentovek
    • 22.2 Posuvný řadič SIPO 74HCT595
  • 23 Sériová komunikace
    • 23.1 Sériová sběrnice SPI
    • 23.2 Sériová sběrnice I2C
    • 23.3 Prakticky…
    • 23.4 EduShield a displej
    • 23.5 RS-232, UART, Serial…
    • 23.6 Převodník USB na sériové rozhraní
    • 23.7 1-Wire
  • 24 Paměti
    • 24.1 7489 – 64 bitů RAM
    • 24.2 Dynamická RAM
    • 24.3 ROM, PROM a další
    • 24.4 To nejlepší z obou světů
    • 24.5 Několik tipů k pamětem
    • 24.6 Jak se zapisuje do EEPROM či FLASH?
    • 24.7 Sériové paměti
  • 25 Sériová paměť prakticky
  • 26 Hodiny reálného času
  • 27 Paměťové karty
  • 28 Logický analyzátor, logická sonda
  • 29 Elektronika a svět kolem nás
    • 29.1 Ovládáme přírodu elektronikou
    • 29.2 Příroda ovládá elektroniku
  • 30 Meteostanice
    • 30.1 Výběr součástek
    • 30.2 Špinavej trik
    • 30.3 Stavíme z polotovarů
  • 31 Bezdrátový přenos dat
    • 31.1 Vysílání na 433 MHz
    • 31.2 nRF24L01+
  • 32 Procesory, počítače, mikrořadiče
    • 32.1 Mikroprocesor 8080A
    • 32.2 Přerušení
    • 32.3 Periferie
    • 32.4 Složitější periferie
    • 32.5 Jednočipový mikropočítač
    • 32.6 Atmel AVR
    • 32.7 Další mikrokontroléry
    • 32.8 Tak málo nožiček…
    • 32.9 Programování jednočipů
  • 33 Displeje
    • 33.1 Znakový displej 1602, 2004
    • 33.2 Grafický displej 12864
    • 33.3 Další displeje
    • 33.4 Bezdrátový displej k naší meteostanici
  • 34 Klávesnice
    • 34.1 Šetříme vývody
    • 34.2 Připojujeme klávesnici od PC
    • 34.3 Matice tlačítek
    • 34.4 Postavte si třeba… kalkulačku?
  • 35 Osm tlačítek na třech vodičích
    • 35.1 Multiplexior / Demultiplexor
    • 35.2 PISO a SPI
    • 35.3 Analogová cesta
    • 35.4 R-2R
  • 36 Joystick
  • 37 ESP8266 WiFi
    • 37.1 Moduly ESP8266
    • 37.2 Převodník napěťových úrovní
    • 37.3 WeMos D1 Mini, NodeMCU
    • 37.4 Bezdrátový teploměr s WiFi
    • 37.5 Instalace podpory ESP8266 do Arduino IDE
    • 37.6 WiFi Manager
    • 37.7 Klient / server?
  • 38 Low Power
    • 38.1 Solární články
  • 39 Sigfox
    • 39.1 Co je to Sigfox?
    • 39.2 Cloudový teploměr se Sigfoxem
    • 39.3 Co s daty v Sigfoxu?
  • 40 Šťastnou cestu…
  • Přílohy
    • Nástroje a weby
    • Nákupní seznam začínajícího hobby elektronika
    • EduShield
    • Nahrání firmware do EduShieldu
    • Turris Omnia pro experimenty s elektronikou
    • Karnaughova mapa
    • „Dobré rady nad zlato“ na jednom místě
Powered by GitBook
On this page

Was this helpful?

  1. 30 Meteostanice

30.3 Stavíme z polotovarů

Previous30.2 Špinavej trikNext31 Bezdrátový přenos dat

Last updated 5 years ago

Was this helpful?

To byl takový morální apel, a teď se vraťme k meteostanici.

DHT22 i BMP180 jsou součástky, které jsou dostatečně popsané, zdokumentované, je k nim dostatek knihoven… Vy obvykle začínejte prosím s tím, že si zkusíte připojit jednu z nich, podívat se na příklady, vyzkoušíte, že vám to funguje, popřípadě proč ne, pak totéž s druhou…

Teď si to zkusme ale jinak. Třeba s tím barometrem BMP180. Když se na modul s touto součástkou podíváte, najdete většinou čtyři vývody: Vcc, GND, SDA a SCL. Co to znamená?

Vcc a GND je jasné, to je napájení. SCL a SDA napovídá, že se bude zařízení připojovat přes sběrnici I2C. Najděte si datasheet pro BMP180 a ověřte si, že to je opravdu tak.

V datasheetu si všimněte, že napájecí napětí je 3,3 voltů. To by mohl být problém – jenže naštěstí moduly s BMP180 obsahují stabilizátor napětí – je to ta miniaturní černá součástka se třemi vývody:

344-1.jpeg

Letmým googlením najdete i schéma takového modulu:

Vidíte, že je tam stabilizátor, který sníží napájecí napětí 5 V z Arduina na požadované 3,3 V. Pak vidíte, že jsou použité i pull-up rezistory na 3,3 V pro sběrnici I2C. Budeme ji moci připojit k Arduinu, když víme, že to používá 5 V?

No, vzpomeňte si na popis sběrnice I2C: logická 0 je zajištěná tím, že zařízení připojují jednotlivé linky k zemi, logická 1 je zajištěná právě pomocí pull-up rezistorů. Taky víte, že 3,3 V je dostatečné napětí pro logickou 1 i pro zařízení, pracující s pěti volty, takže v tomto ohledu je to bezpečné. Může se tam někudy dostat + 5 voltů? Teoreticky ano, pokud bude na téže sběrnici připojené zařízení s pull-upy na + 5 V, nebo pokud budou zapojené interní pull-upy. Jinak ne.

V datasheetu je dále popsána přesně funkce celého obvodu – jak se adresuje, kde jsou jaké informace, jak se zadávají kalibrační údaje a spousta dalších věcí. A to je přesně okamžik, kde vám doporučím nevynalézat kolo a použít hotovou knihovnu. Vhodné jsou knihovny od výrobců takových modulů – nejčastěji Sparkfun nebo Adafruit.

Pokud najdete knihovnu BMP085, nebojte se – to je starší verze téhož, a v popisu většinou najdete, že umí i BMP180

Součástí těchto knihoven bývá i příklad měření. Podívejte se do něj – zjistíte, že se tam pracuje s aktuální nadmořskou výškou – tedy s tou vaší. Proč? No protože změřený tlak je ten reálný, co je okolo vás, ale aby se tlaky snáze porovnávaly, přepočítávají se na hladinu moře. Přepočet je jednoduchý – počítá se, že na každý metr nadmořské výšky připadá pokles tlaku o 8 Pa (jen pro jistotu: standardní tlak 1013,25 hPa = 101,325 kPa = 101325 Pa).

Například knihovna Adafruit BMP085 Library obsahuje ukázku kódu:

#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp; 
void setup() {
    Serial.begin(9600);
    if (!bmp.begin()) {
        Serial.println(„Could not find a valid BMP085 sensor, check wiring!“);
        while (1) {}
    }

}

void loop() {
    Serial.print(„Temperature = “);
    Serial.print(bmp.readTemperature());
    Serial.println(„ *C“);
    Serial.print(„Pressure = “);
    Serial.print(bmp.readPressure());
    Serial.println(„ Pa“);
    delay(500);
}

V příkladu není použitý přepočet na hladinu moře, proto se nedivte, když výsledky budou výrazně nižší, než očekáváte. Můžete si výsledek přepočítat pomocí výše uvedeného vzorce, nebo použít funkci bmp.readSealevelPressure(altitude), kde altitude je nadmořská výška v metrech.

Senzor dokáže změřit i nadmořskou výšku. Chcete vědět, jak to dělá? No, změří tlak, a předpokládá, že na hladině moře je standardních 101325 Pa. Což bývá málokdy, protože tlak se mění s počasím, rozdíl může být třeba 3 kPa během několika dní, a takový rozdíl představuje přes 350 metrů výškového rozdílu.

U pevné meteostanice bude lepší nastavit výšku odečtem z mapy natvrdo do kódu.

Druhý polotovar, DHT11 nebo DHT22, je nejjednodušší připojit podle standardního zapojení a využít hotovou knihovnu. Když se podíváte do datasheetů, zjistíte, že komunikace s těmito senzory není úplně jednoduchá, a pokud se vám zrovna nechce znovuvynalézat druhé kolo (a komu by se chtělo, když může ušetřený čas věnovat něčemu zajímavějšímu, než je opakování cizích chyb?), použijte ji.

Možné zapojení celé meteostanice ukazuje obrázek. Obvod DHT je připojen podle příkladu z knihovny DHT Simple na pin 2, snímač BMP180 je zapojen na sběrnici I2C. U DHT11 je zapojený i pull-up rezistor 10k.

Když oba příklady spojíme do jednoho, získáme tak kód, který bude vypisovat tlak, vlhkost a dvě různé teploty (jedna je z BMP180, jedna z DHT11). Můžete si vybrat, které budete spíš věřit, nebo je prostě zprůměrovat (anebo použít samostatný teploměr).

Mimochodem, měření teploty není tak triviální, jak vypadá. Teplotu ovlivňuje spousta věcí – například nezapomínejme, že součástky také „topí“. U Arduina to není tak extrémní, ale třeba ESP8266, o němž se ještě budeme bavit, dokáže velmi pěkně ohřívat okolí, i o několik stupňů. Teploměr by samozřejmě neměl být na přímém slunci, měl by být daleko od ploch, které mohou sálat, měl by okolo něho proudit volně vzduch, …

No a když máte data, co s nimi? Zatím si je můžete zpracovat v počítači, nebo je můžete ukládat na SD kartu (o tom jsme se už bavili…) Později si tohle celé vylepšíme o posílání dat na server…

31 Bezdrátový přenos dat

344-2.jpeg

Kde zjistit svou nadmořskou výšku? Můžete použít třeba GPS, ale nejjednodušší způsob je ten, že se podíváte na mapu, tam bude u vaší pozice uvedena i nadmořská výška! Nebo zkuste

Schéma a zdrojový kód najdete na

api.mapy.cz/view?page=altitude
eknh.cz/meteo
346-1.png