Mixing BMP085

Uit V.O.C. Electronics
Ga naar: navigatie, zoeken

Wat gaan we maken

De opstelling

Een kleine introductie in het combineren van de BMP085 met een AM2302 en wat [LED]s

  • LED1=Rood
  • LED2=Geel
  • LED3=Groen
  • LED4=Blauw

Doel:

  • Bij het opmeten gaat LED1 branden.
  • Bij een luchtvochtigheid van meer dan 40% gaat LED2 branden
  • Bij een gemiddeld gemeten temperatuur door beide sensoren van onder de 22C gaat LED3 branden.
  • Bij een luchtdruk van tussen de 101480.00 Pa en 101497.00 Pa gaat LED5 aan.

Benodigdheden

1x breadboard

1x wirebundle

1x Cobbler of Pi T Cobbler

1x AM2302 of AM2301

1x BMP085

4x LEDS (kleuren bovenaan) 4x Weerstandjes van 220 Ohm.

En natuurlijk een Raspberry Pi met een nieuwe installatie van Raspian of Occidentalis
Als voorkeur geniet hier Occidentalis van Adafruit.
Maar je kan natuurlijk ook een BananaPi of een Hummingboard gebruiken.

Fritzing Diagram

Fritzingdiagram

Dit is en Fritzing tekening waarop je de onderdelen ziet:

Laten we beginnen

Sluit alle onderdelen aan zoals op het Fritzing te zien is. Indien nodig, soldeer eerst je Pi Cobbler.

Nadat je alles aangesloten hebt aan je Rapsberry Pi (Die nog steeds UIT staat).

Voorzie je je SDCard van Occidentalis. Als de SD klaar is stop je hem netjes in de Pi en start je hem op.

(Ik ga er vanuit dat je je Pi voorzien hebt van een muis/toetsenbord, netwerk en aangesloten op een monitor)

Ok.. en nu?

Nadat je Pi gestart is open je een terminal scherm (als je in grafiche mode start) of log je in op de console prompt.

Console Grafische login

Nu gaan we eerst het besturingsysteem bijwerken naar de meest recente versie:

sudo apt-get update
sudo apt-get upgrade

Als je toch Raspbian gebruikt lees je op de pagina van I2C hoe je je GPIO tools installeerd.

Nadat je Occidentalis bijgewerkt is, wat wel even kan duren gezien er veel updates zijn sinds het uitkomen van Occidentalis v2, herstart je je pi

sudo reboot

Nadat je weer bent ingelogd kunnen we verder gaan.

WiringPi

Ga nu verder met : Installatie_WirePi

Installatie Python tools

sudo apt-get install python python-dev libjpeg-dev libfreetype6-dev python-setuptools python-pip


De Python bibliotheek van Adafruit

Hiervoor het je git nodig. Als je deze niet hebt, is deze zo te installeren met:

 sudo apt-get install git build-essential

Zelf werk ik graag in aparte sub directories. Dus hiervoor maak ik eerst de directory: Projects aan

mkdir Projects

In de Projects directory voor je het volgende uit:

 git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

Je ziet nu de directory: Adafruit-Raspberry-Pi-Python-Code in Projects staan. Adafruit is zo vriendelijk geweest om een heleboel python code beschikbaar te stellen.

Adafruit_ADS1x15
Adafruit_ADXL345
Adafruit_BMP085
Adafruit_CharLCD
Adafruit_CharLCDPlate
Adafruit_DHT_Driver
Adafruit_DHT_Driver_Python
Adafruit_I2C
Adafruit_LEDBackpack
Adafruit_LEDpixels
Adafruit_LSM303
Adafruit_MCP230xx
Adafruit_MCP3002
Adafruit_MCP3008
Adafruit_MCP4725
Adafruit_PWM_Servo_Driver
Adafruit_TCS34725
Adafruit_VCNL4000

Voor deze tutorial gaan we de code van: Adafruit_BMP085 nodig hebben.

Sinds kort is er een nieuwe source beschikbaar. Deze kan je clonen met de volgende regel:

https://github.com/adafruit/Adafruit_Python_BMP

[pi:raspberrypi2][~/Projects] $ git clone  https://github.com/adafruit/Adafruit_Python_BMP
Cloning into 'Adafruit_Python_BMP'...
remote: Counting objects: 38, done.
remote: Total 38 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (38/38), done.

in de directory: Adafruit_Python_BMP doe je het volgende:

sudo python setup.py install

Dit installeerd de BMP bibliotheek en kijkt gelijk of je de meest recente versie van de Adafruit_GPIO spullen hebt.
Zo niet, worden deze erbij gezet.

Testen

Als alles klaar is kunnen we testen of de BMP085 werkt.

[pi:rpi-proto][~/Adafruit_Python_BMP]  *[master]* $ sudo python examples/simpletest.py
Temp = 23.70 *C
Pressure = 100156.00 Pa
Altitude = 98.03 m
Sealevel Pressure = 100153.00 Pa

Krijg je een soort gelijk antwoord, dan zitten we goed.
Zo niet, check je bedrading, aansluitingen etc.


De AM2302

Tijd om die AM2302 eens in te zetten voor wat data vergaring.

In die lijst met python code staat ook de code voor de DHT.
Helaas is deze sinds enige tijd niet meer onderhouden.
Maar Adafruit heeft een nieuwe gemaakt die ook geschikt is voor de BeagleboneBlack.

Dus we gaan naar de Project directory. (cd ~/Projects)>br? en typen:

https://github.com/adafruit/Adafruit_Python_DHT.git

Voor het gemakt is de AM2302 aangesloten op de GPIO poort 4. Dat doe je door de gele draad van de AM2302 in je breadboard aan te sluiten naast je T-Cobbler met de tekst: #4 Zie de fritzing tekening bovenaan.

Testen

cd ~/Adafruit_Python_DHT/examples
[pi:rpi-proto][~/Adafruit_Python_DHT/examples]  *[master]* $ sudo python AdafruitDHT.py 2302 4
Temp=25.9*C  Humidity=41.7%


LEDS

Leuk die LEDS, maar waarvoor zijn ze er.
Als het goed is zitten ze aan GPIO poorten: 18,23,24 en 25.
Je kan ze aanzetten in je python code met: Defineer je LEDS in de python code:

# Defineer de LED GPIO PINNUMMERS
LED1=18
LED2=23
LED3=24
LED4=25
# Zet de GPIO mode correct.
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED1_GPIO_PIN, GPIO.OUT)
GPIO.setup(LED2_GPIO_PIN, GPIO.OUT)
GPIO.setup(LED3_GPIO_PIN, GPIO.OUT)
GPIO.setup(LED4_GPIO_PIN, GPIO.OUT)
# Aanzetten van de LEDS
GPIO.output(LED1_GPIO_PIN, GPIO.HIGH)
GPIO.output(LED2_GPIO_PIN, GPIO.HIGH)
GPIO.output(LED3_GPIO_PIN, GPIO.HIGH)
GPIO.output(LED4_GPIO_PIN, GPIO.HIGH)
#Uitzetten van de LEDS:
GPIO.output(LED1_GPIO_PIN, GPIO.LOW)
GPIO.output(LED2_GPIO_PIN, GPIO.LOW)
GPIO.output(LED3_GPIO_PIN, GPIO.LOW)
GPIO.output(LED4_GPIO_PIN, GPIO.LOW)

Als laatste regel van je python code doe je:

GPIO.cleanup()

Nu verder?

  • Leef je uit.
  • Verzin zelf wat leuke extensies
  • Maak een weerstation