Jednoduchá meteostanica s BMP180: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 14: | Riadok 14: | ||
[ | Vývody senzora: | ||
[[Súbor:senzor_bmp180_pins.jpg|center|300px]] | |||
'''Literatúra:''' | '''Literatúra:''' | ||
* | [https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf * Datasheed BMP180] | ||
Verzia z 14:41, 21. máj 2016
Autori: | Martin Valášek, Tomáš Timoranský | |
Študijný odbor: | Aplikovaná mechatronika a elektromobilita | 1. Ing. (2016) |
Zadanie
Senzor BMP180 vyrába firma Bosch, ide o nástupcu veľmi obľúbeného senzora BMP085. Senzor disponuje meraním atmosferického absolútného tlaku v rozsahu 300 až 1100 hPa (9000 až -500m nadmorskej výšky). Pre kompenzáciu tepelných vplyvov na meranie atmosferického tlaku, má senzor integrovaný teplomer (merací rozsah -40 až +85°C), ktorý je taktiež možno vyčítať. Komunikácia je digitalná prostredníctvom I2C zbernice.
Vývody senzora:
Literatúra: * Datasheed BMP180
Analýza
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:
- popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
- obrázok zapojenia vývodov použitej súčiastky
- odkaz na katalógový list
- priebehy dôležitých signálov
- este jedna polozka
Popis riešenia
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru (nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.
Algoritmus a program
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:
#!/usr/bin/python
import Adafruit_BMP.BMP085 as BMP085
import time
import serial
port = serial.Serial("/dev/ttyAMA0", baudrate=9600)
sensor = BMP085.BMP085()
while 1:
temp = sensor.read_temperature()*10
pressure = sensor.read_pressure()/10.0
print 'Temp = {0:0.2f} *C'.format(temp)
print 'Pressure = {0:0.2f} Pa'.format(pressure)
temp_h = int(temp/255)
temp_l = int(temp%255)
press_h = int(pressure/255)
press_l = int(pressure%255)
port.write("%s" % chr(temp_h) + chr(temp_l) + chr(press_h) + chr(press_l) + chr(255) )
time.sleep(1)
port.close
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
Zdrojový kód: serial.h a main.c
Overenie
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje). Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, odfotografujte ho.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.