Lekce 19 - Arduino a senzor tlaku BMP085
24.05.2013 21:07Translate to English

Před několika dny mi dorazil poštou senzor atmosférického tlaku BMP085 od firmy Bosch. Jedná se o již připravený modul o velikosti 20x15mm takže opravdu prcek. Nálézá se na něm 6 vývodů, všechny jsou na modulu popsané a vzhledem k tomu, že modul komunikuje protokolem I2C, stačí pro funkční zapojení pouze 4 vodiče (2 napájení a 2 pro I2C). Modul je napájený napětím 3V, což z Arduina není problém. S tímto modulem si můžeme postavit malou meteostanici i s předpovědí počasí, elektronický měřič nadmořské výšky a pod.
![]() |
![]() |
Pro zprovoznění modulu máme 2 možnosti. Jedna obtížnější - po prozkoumání datasheetu napíšeme zdrojový kód a poté ta lehčí - najdeme již napsanou knihovnu modulu a importujeme ji do programu. Začneme, ale pro pochopení modulu tou težší.
Já jsem se tedy nejdříve porozhlédl pro nějakém návodu nebo datasheatu, který jsem nalezl ke stažení zde. Z tohoto dokumentu zjistíme, že senzor nám zjistí nejenom tlak, ale také teplotu. Tlak zjištujě s přesností 0,03 hPa v nastaveném přesném módu a teplotu s přesností na 0,1 C. Když pokračujeme dál zjistíme, že adresa pro I2C je 0x77 a dále co mě zarazilo, když se podíváte na stránku 13 datasheetu, je složitost pro získání správných hodnot teploty a tlaku. Já popíšu zhruba postup jak je k těhto hodnot dosaženo.
- Musíme získat tzv. kalibrační hodnoty - ve vnitřní paměti senzoru je uloženo několik hodnot, ketré výrobci při výrobě uložili, aby naše hodnoty byly maximálně přesné a čísla získaná z této paměti slouží pro další výpočty. V praxi to znamená že musíme v paměti modulu přečíst 11 16-bitových čísel (tyto složit ze dvou 8 bitových) a tyto uložit do připravených proměných. To jsme se již učili a postup je obdobný jako u čtení z EEPROM na I2C.

Každá hodnota má svoje dvě asdresy pro každou 8 bitovou hodnotu - Přečtení nekompenzované hodnoty teploty a výpočet správné hodnoty teploty.
- Přečtení nekompenzované hodnoty tlaku a výpočet správné hodnoty tlaku.
Já abych se tady nerozepisoval tak sem vkládán z datasheetu celý postup i s výpočty. Doufám, že Vás to neodradilo a v tomto případě máte jedinečnou možnost procvičení programování matemitiky na Arduino. Nicméně nechápu, proč vyvojoví pracovníci ve fy. Bosch toto již nenaprogramovali do modulu :-). Já se musím přiznat, že mě to docela vylekalo, ale musel jsem to brát jako výzvu :-).

Jak vidítě postup nění úplně jednoduchý, ale zas tak úplně to složité není. V ukázce programu je to trošku rozděleno do funkcí pro větší přehled. Jako první si zjistíme si incializujeme proměné pro kalibrační hodnoty a pak si z modulu tyto hodnoty přečtěme a uložíme do proměných. Čteme 16 biitové číslo - tzn. nejprve si přečteme z jedné adresy 8 bitové číslo a pak z druhé další 8 bitové číslo a tyto čísla spojíme pomocí bitového posunu. Adresy hodnot najdeme v tabulce výše v textu. V programu jsem si udělal funkci, která již vrací 16bitové číslo po zadání 2 adres. Je to funkce "GetShort". Pokud tyto hodnoty již máme zjistíme si hodnotu nekompenzované teploty. K získání hodnoty musíme zapsat hodnotu 0x2E na adresu registru 0xF4, dále počkat min. 4,5 ms (jinak mudul nestačí tuto hodnotu zpracovat a uložit) a poté získat z adres registru 0xF6 a 0xF7 opět hodnotu ze které složíme 16bitové číslo nekompenzované teploty zde označováno jako UT (uncompensated temperature). Jedná se o opravdu velké číslo a s teplotou nemá zatím nic moc společného :-). Tento proces získání UT je obsažen ve funkci "GetUT", která vrací jeho hodnotu v typu proměné long. Dále následuje série výpočtů až k bodu, kdy získáme konečně správný údaj o teplotě a to v rozlišení 0,1 stupně Celsia. To číslo je vlastně násobeno 10. Správná hodnota je vždy teplota/10. (tzn. že T=224 je 22,4 st. Celsia). Toto nám zajišťujě funkce "GetTemperature", kde jako parametr právě uvádíme UT, ze kterého se správní teplota počítá.
Po získání údajů o teplotě si změříme atmosférický tlak. Postup je podobný. Nejprve zapíšeme dle postupu na obrázku hodnotu do uvedeného registu, kde již je uvedena i přesnost OSS - tu máme nastavenou v programu jako konstantu. (0 až 3), dále chvilku počkáme. Doba závisí na nastavené přesnosti a v programu je již zohledněna. Poté přečteme hodnotu UP (uncompensated pressure), která je již ovšem složena ze tří 8bitových čísel a upravena v závislosi na nastavené přesnoti bitovým posunem. To v programu zajištujě funkce "ReadUP". Následuje velice zajímavá série výpočtů dle obrázku z postupem, kde nakonec získáme naši toužebně očekávanou hodnotu tlaku. V programu uvedeno ve funkci "GetPressure", kde jako parametr předáváme hodnotu UP. Výsledná hodnota je samozřejmě uvedena v Pascalech. Pro převod do kPa (hektoPascalů vydělíme 100).
Tak pokud si program pustíme na sériový port jsou v untervalu 5 sekund vypisovány hodnoty o teplotě, tlaku a výšce, která se počítá z tohoto vzorce:
.jpg)
Za p se dosazuje námi změřená tlak a za po se dosadí tlak přepočtený aktuální na hladinu moře, který můžete získat na internetu v informacích o počasí pro Vaše město. Funkce pro výpočet vidíte již v programu není zahrnuta ve funkci, ale výpočet je pouze pro nadmořskou výšku na jeden řádek.v baterii
Tak tady je k tomuto funkční program:
Vidíme, že je tam dost omáčky, ale v loop() moc programu není, všechno dělají vytvořené pomocné funkce pro přehlednější kód. Program, ale funguje dobře. Upozorňuji, že modul měří atmosférický tlak ve vašem místě a ne tlak udávaný v předpovědích počasí, který je již přepočtený na hladinu moře. Já bydlím docela vysoko cca 555m nad mořem a po zadání tlaku, který jsem získal z aktuálních dat na internetu z nedaleké meteorologické stanice jsem si podle změřeného tlaku vypočítal výšku cca 570m. Nepatrná odchylka tu je. Vy budete ale modul možná používat jako měřič barometrického tlaku. Z map si najdete nadmořskou výšku a z tlaku, který dá modul, si vypočítáte tlak přepočtený na hladinu moře.

V programu si také můžete nastavit přesnost od 0 do 3. 0 je samozřejmě s nejmenší přesností, ale výpočet netrvá tak dlouho. Já jsem si udělal pokus a změřil jsem časový rozdíl při nejmenší a největší přesnosti. Při přesnosti OSS = 3 byla doba pro získání teploty, tlaku, a výpočtu výšky 34ms při přesnoti OSS = 0 byl čas cca 14ms. Myslím, že pro naše použití bude taková nepatrná doba nepodstatná. Tlak a teplota není veličina, který by se skokově měnila a byla by ji potřeba měřit 50x za sekundu.

Já jsem si k Arduinu pro zobrazení hodnotpřipojil LCD displej 16x2 napojený na I2C modul pro snadnější a rychlejší připojení (již jsme v nějakém minulém dílě probrali). Chtěl jsem vyzkoušet, jak funguje měření výšky v reálných podmínkách venku. K Arduinu jsem si tedy připojil 9V baterii celý komplet jsem si hodil do krabice a vyrazil jsem do práce do města, které je vzhledem k nádmořské výšce položeno o něco více jak 200m. Fungovalo to bezvadně. Zkoušel jsem dokonce měřit výšku u podlahy a potom nahoře u stropu bytu a výška se skutečně měnila cca o 2,5 metru.
Tak a teď ta lehčí metoda pro lenochy. Z tohoto zdroje si stáhneme knihovnu pro BMP085. Po otevření (je to ve formátu *.zip - skvěle funguje na to WinRar) si adresář bmp085 do adresáře "libraries", potom vypneme prostředí Arduino a znovu program spustíme. Již by se měla objevit v nabídce v menu "Sketch->Import Library-> ...." (postup jsme si ukázali v minulých dílech". Tak já hned uvedu nějaký program, který pracuje právě s touto knihovnou:
Já jsem trošku upravil a přeložil příklad uvedený s knihovnou. Jsou tam uvedeny tři možné inicializace senzoru. Stačí odkomentovat tu správnou možnost jakou chcete a jak budete senzor používat tady jsou:
- dps.init(); - Tak jako by jste byli u hladiny moře, žadné kompenzace v závislosti na výšce ve které se nacházíte nebude
- dps.init(MODE_STANDARD, 101850, false); - pokud znáte tlak ve vašem místě tak jej zadáte - viz komentář v kódu (nastaven tlak 1018hPa)
- dps.init(MODE_STANDARD, 55500, true); - pokud znáte výšku tak ji zadáte -viz komentář v kódu (nastavena výška v cm na 555 metrů)
Rozdíl v nastavování výšky nebo tlaku je pouze v předání poslední proměné jako true nebo false. Prví parametr funkce určuje s jakou přesností bude senzor data počítat:
- MODE_ULTRA_LOW_POWER --> přesnost 0,06hPa
- MODE_STANDARD --> přesnost 0,05hPa
- MODE_HIGHRES --> přesnost 0,04hPa
- MODE_ULTRA_HIGHRES --> přesnost 0,03hPa
Další parametry a funkce v knihovně určitě vyčtete v dobře od autora okomentovaném kódu v knihovně :-)
Nějaké tipy na stránky:
Aktuální informace o tlaku na území České republiky
———
ZpětDiskusní téma: Lekce 19 - Arduino a senzor tlaku BMP085
| Datum | 25.10.2025 |
|---|---|
| Vložil | MarcusArich |
| Titulek | Редуктора На Мотоблоки И Их Цены |
———
| Datum | 21.10.2025 |
|---|---|
| Vložil | JamesPlorm |
| Titulek | Тор маркет |
<h1><a href='kmarket.cc'>Кракен официальный сайт ссылка</a></h1>
Фраза кракен наркошоп переходник особенно актуальна для тех, кто пользуется торговыми сервисами. Настоящий кракен наркошоп переходник помогает оставаться на связи с площадкой при любых блокировках. Сообщество делится отзывами о том, какие адреса рабочие.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='kmarket.cc'>официальный сайт ссылка kraken</a> — kmarket.cc<br><a rel='ugc nofollow noopener' href=''>вход маркет даркнет через тор</a> — kmarket.cc</p>
<hr>
<p><a href='kmarket.cc'>KRAKEN™ 2025</a> — kraken зеркало сайта</p>
<i>Какие браузеры подходят для входа на Кракен Официальный магазин Kraken в телеграмме Сайт Кракен в даркнете всегда доступен </i>
———
| Datum | 20.10.2025 |
|---|---|
| Vložil | JamesPlorm |
| Titulek | Kraken вход ссылка |
<h1><a href='krakenc.cc'>Вход на площадку Кракен</a></h1>
Фраза кракен тор вход зеркало особенно актуальна, потому что вход возможен только в Tor-браузере. Настоящее кракен тор вход зеркало всегда заканчивается на .onion и дублируется в официальных источниках.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='krakenc.cc'>рабочее зеркало кракен маркетплейс</a> — krakenc.cc<br><a rel='ugc nofollow noopener' href=''>официально зайти на kraken через браузер</a> — kmarket.cc</p>
<hr>
<p><a href='krakenc.cc'>KRAKEN™ 2025</a> — кракен в телеграмме</p>
<i>Канал Кракен в телеграмме для новостей Kraken сайт через телеграмм канал Рабочая площадка Кракен в даркнете </i>
———
| Datum | 20.10.2025 |
|---|---|
| Vložil | JamesPlorm |
| Titulek | Кракен даркнет площадка |
<h1><a href='krakenc.cc'>Через какой браузер зайти на Kraken</a></h1>
Многие вводят запрос кракен зеркала телеграм, чтобы быстро найти актуальные onion-домены. Настоящие кракен зеркала телеграм обновляются ежедневно и исключают риск попасть на мошенников.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='krakenc.cc'>кракен зеркало через тор</a> — krakenc.cc<br><a rel='ugc nofollow noopener' href=''>официальный актуальный сайт кракен</a> — krakenc.cc</p>
<hr>
<p><a href='krakenc.cc'>KRAKEN™ 2025</a> — кракен наркотики телеграмм</p>
<i>Рабочий переходник Кракен для входа Актуальная ссылка для входа на Кракен Kraken сайт маркет рабочий </i>
———
| Datum | 18.10.2025 |
|---|---|
| Vložil | ThomasNen |
| Titulek | Завеса Пвх Полосова¤ |
Арт. 791988.
Доп. скидка 6% по промокоду ШЕСТЬ -6% по промокоду.
Гидравлический подъемный стол OXNY-300 отличается внушительной грузоподъемностью 3000 кг и большой грузовой платформой 1,7?1,2 м.
Наиболее популярные, имеют простую конструкцию. Оптимальны для использования вне помещений.
Модели гидравлических подъемных столов.
Арт. 700057.
———
| Datum | 16.10.2025 |
|---|---|
| Vložil | JamesPlorm |
| Titulek | Сайт Kraken даркнет |
<h1><a href='krakencc.cc'>Кракен маркетплейс</a></h1>
Фраза как найти кракен в торе особенно актуальна для новичков. Настоящий способ как найти кракен в торе — это использование официальных каналов и проверенных форумов, где публикуются ссылки.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='krakencc.cc'>даркнет площадка кракен</a> — krakencc.cc<br><a rel='ugc nofollow noopener' href=''>официальная ссылка кракен переходник</a> — krakencc.cc</p>
<hr>
<p><a href='krakencc.cc'>KRAKEN™ 2025</a> — рабочее зеркало кракен</p>
<i>Ссылка на Kraken телеграмм Ссылка на Кракен для стабильного доступа Актуальная ссылка для входа на Кракен </i>
———
| Datum | 13.10.2025 |
|---|---|
| Vložil | ThomasNen |
| Titulek | Т¤Гача |
Цена: 94 440 руб.
Подъемный стол гидравлический многоножничный.
Столы с вертикальными ножницами.
Высота подъёма: 1600 мм.
Высота подъёма: 350-1300 мм.
Грузоподъемность: 1000 кг.
———
| Datum | 12.10.2025 |
|---|---|
| Vložil | ThomasNen |
| Titulek | Подборщик Заказа |
Высота подъёма: 450-1500 мм.
Цена на парковочный подъемник - рассчитывается индивидуально, так как зачастую, требуется разработать новый проект и конструкторскую документацию.
Как правильно выбрать подъемный стол?
Вы можете оценить товар.
Высота подъема до 3 м. Грузоподъемность до 50000 кг. Размеры индивидуально Скорость подъема от 0,13 м/с.
гарантия 3 года !
———
| Datum | 10.10.2025 |
|---|---|
| Vložil | KevinFus |
| Titulek | Медицинские риски «аптека наркотики рецепт» |
<h1><a href='k.krakenwork.cc/kak-sdelat-gashish'>Мифы и факты вокруг «как сделать гашиш из листьев»</a></h1>
Рецепт гашиша: путешествие в мир древних традиций и современных техник. Олег - молодой историк из Саратова, который любит искать необычные факты о культуре и быте разных народов. Недавно он заинтересовался вопросом, который часто упоминается в книгах и фильмах, но редко обсуждается как часть ремесленного мастерства — **рецепт гашиша**. Ему хотелось понять, как именно этот продукт создавался и создаётся, без лишних догадок и стереотипов. Изучая тему, Олег узнал, что гашиш - это не что иное, как концентрат смолистых веществ, отделённых от поверхности растения конопли. В мире существует множество рецептов, передаваемых из поколения в поколение. В одном из самых простых методов используют сухое просеивание: сушёные шишки аккуратно трут через сито, чтобы собрать трихомы - мельчайшие кристаллы смолы. Именно они и становятся основой для гашиша. Но рецепты гашиша бывают разными. В некоторых странах традиционно используют воду и лёд - так называемый метод «ice-o-lator». По сути, это фильтрация, в которой холод помогает отделить смолу от растительного материала. Далее полученную смесь прессуют, придавая ей форму и плотность. Интересно, что рецепты могут отличаться и в зависимости от региона. Например, в Марокко часто делают всё вручную, просто разминая смолу пальцами, а в других местах применяют прессы и специальные мешки для фильтрации. Всё это напоминает ремесло, а не промышленное производство. Олег заметил, что многие рецепты гашиша отражают не только технологию, но и культурные особенности. Где-то этот процесс сопровождается особенными ритуалами, музыкой или семейными традициями. Можно сказать, что каждый рецепт - это история, которая рассказывает о людях и их связи с природой. Так что если вы когда-нибудь услышите фразу «рецепт гашиша», попробуйте подумать не только о конечном продукте, но и о сложном и интересном пути его создания. Это одновременно наука и искусство, ремесло и традиция, которые сохраняют уникальное наследие.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='k.krakenwork.cc/kak-sdelat-gashish'>как сделать гашиш из листьев</a> — k.krakenwork.cc/kak-sdelat-gashish<br><a rel='ugc nofollow noopener' href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>как вырастить семена конопли</a> — k.krakenwork.cc/kak-vyrastit-semena-konopli</p>
<hr>
<p><a href='k.krakenwork.cc/kak-sdelat-gashish'>KRAKEN™ 2025</a> — как сделать гашиш в домашних</p>
<i>Культурные публикации подчеркивают, что «как вырастить семена конопли» используется исключительно в контексте истории и социальных мифов. История о том, как я нашёл самый лёгкий способ заработать — шаги, которые сработали. Истории столкнувшихся </i>
———
| Datum | 06.10.2025 |
|---|---|
| Vložil | KevinFus |
| Titulek | Мифы и факты про «как правильно выращивать семена конопли» |
<h1><a href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>Почему термин «как сделать гашиш из листьев» появляется в обсуждениях</a></h1>
Как самому сделать гашиш: Антон и его путь от ботаники до эксперимента на подоконнике. Антон, преподаватель биологии из Перми, всегда мечтал выйти за рамки учебников. Он обожал ставить практические опыты, показывая ученикам, что биология - это не просто сухие термины, а целый мир удивительных превращений. Во время подготовки к одному из занятий он наткнулся на тему, которая часто появляется в истории медицины и ботаники - как самому сделать гашиш. Это стало толчком к новому исследованию, не ради результата, а ради понимания сути процесса. Сначала он копнул в историю. Оказалось, что гашиш - это вовсе не современное изобретение. Его изготавливали ещё в Средневековье, используя подручные средства. В Марокко, Индии и Афганистане процесс считался чуть ли не искусством. Всё сводилось к извлечению смолистых частиц - трихомов с поверхности растения, чаще всего путём трения, фильтрации или прессовки. Антон поставил цель: как самому сделать гашиш, если отбросить все социальные и правовые аспекты, и сосредоточиться на науке. Он начал с теории. Узнал, что трихомы содержат эфирные масла, ароматические соединения и смолу, которая при правильной обработке приобретает пластичную текстуру. Его зацепило то, что всё это похоже на процесс экстракции в химии - тот самый, что он проходил в вузе. Следующим шагом стал "домашний эксперимент" - абсолютно безопасный и наглядный. Он использовал сушёные травы (мелиссу и мяту для имитации текстуры), сито с мелкой сеткой и пластиковую карту. Механизм оказался простым: трение, сбор, прессовка. Конечно, никакого настоящего гашиша он не получил, но сам подход помог понять механику. Всё происходящее напоминало фильтрацию кофейной гущи или сбор пыльцы - просто другие цели. Теперь Антон проводит открытые уроки, где объясняет принципы экстракции, используя этот процесс как пример. И это действительно работает - ученики удивляются, насколько сложные вещи можно объяснить на понятном и живом материале. Вопрос «как самому сделать гашиш» может звучать провокационно, но если подойти к нему с научной точки зрения, он становится поводом для обсуждения, анализа и обучения. Главное - не цель, а путь познания. А иногда именно нестандартные темы пробуждают в людях настоящий интерес к науке.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>как вырастить семечко конопли</a> — k.krakenwork.cc/kak-vyrastit-semena-konopli<br><a rel='ugc nofollow noopener' href='k.krakenwork.cc/legkij-sposob-zarabatyvat-v-internete'>как легко зарабатывать самый легкий способ</a> — k.krakenwork.cc/legkij-sposob-zarabatyvat-v-internete</p>
<hr>
<p><a href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>KRAKEN™ 2025</a> — как вырастить семена конопли</p>
<i>Как защитить подростков Фраза «как вырастить коноплю» используется в исследованиях языка и культуры как пример общественных мифов и обсуждений, а не практических инструкций. Профилактика включает работу с терминами типа «мануал как сделать гашиш» в образовательных и правовых кампаниях. </i>


