Archiv der Kategorie: Sensoren

GY-302 mit Sensor BH1750

Der BH1750 ist ein Sensor zur Lichtstärkenmessung. Ich verwende den Sensor nicht diskret sondern auf dem Board GY-302. Es wird über den I2c (Wire) Bus angesteuert. Da das GY-302 Board mit 5V betrieben wird, ist es zur Ansteuerung über den Ardunio Uno geeignet.

Ansicht

 

Daten

NameGY-302 mit Sensor BH1750
SensortypLuxmeter (Lichtstärkemessung)
Betriebsspannung5V
Sensorspannung 1,8-3,6V
BusI2c ( 0x23 / 0x5C )
Genauigkeit1 Lux
Messbereiche1 - 65535 Lux

Schaltung

Die Schaltung ist ähnlich (siehe Skizze) wie bei anderen GY Boards. Das GY-302 bietet zusätzlich die Möglichkeit zwischen zwei Bus-Adressen zu wählen. Dies ermöglicht es 2 Chips der gleichen Art am selben Bus zu betreiben. Standardeinstellung ist Masse oder einfach unbeschaltet lassen.

 

Anschluss

GND Masse
ADDR I2c Adresse Masse = 0x23 / + 5v = 0x5C
SDA I2C SDA
SCL I2C SCL
VCC 5 V

Einsatzzwecke

  • Steuerung von Jalousien oder Rollos
  • Findung der hellsten Stelle
  • Lichtmessung im Büro
  • Zeitsteuerung nach Sonnenauf/untergang

Programmierung

Bibliothek

Im Github gibts eine Bibliothek, welche den Sensor ansteuern kann.
Diese habe ich für meine Tests verwendet. Der Eintrag im Git hat auch eine detaillierte Beschreibung zu Verkabelung und Verwendung.

https://github.com/claws/BH1750

Die Bibliothek als Zip-Datei herunterladen und über den Bibliotheksmanager installieren.

 

Testprogramm

Bei der Bibliothek sind 3 Testprogramme enthalten, ich habe mich für BH1750test.ino entschieden.

Per Beispielmenü auswählen, kompilieren und den Uno programmieren.

Ausgabe

Die Ausagbe ist schlicht und zeigt den aktuell gemessenen Lux Wert.

Leider kann ich mangels Referenzwert nicht vergleichen wie genau die Messungen sind.

Probleme

Generelle I2c Probleme

http://fambach.net/uno-wire-scannen/

Quellen

https://github.com/claws/BH1750

https://www.mysensors.org/build/light-bh1750

http://www.mouser.com/ds/2/348/bh1750fvi-e-186247.pdf

GY-68 mit Sensor BMP85/BMP180

Der Bosch BMP85 ist ein barometrischer Sensor.  Er kann den Luftdruck und die Temperatur messen, um daraus die aktuelle Höhe über 0 zu berechnen.  Der BMP85 wird nicht mehr hergestellt und wurde durch den BMP180 abgelöst. Der BMP180 ist von der Bauform kleiner aber ansonsten fast baugleich mit seinem Vorgänger.  Unterschiede können den gelinkten Datenblättern entnommen werden.  Bei den Kerndaten habe ich bis auf den höheren Stromverbauch beim BMP180 keine Unterschiede feststellen können. (Datenblätter BMP85 / BMP180)
Der Sensor kann mit 1,8v bis 3,6V betrieben werden. Da der Arduino einen 5V I2c Bus hat empfiehlt es sich ein Sensorboard wie das GY-68 zu verwenden.

Ansicht

Daten

NameGY-68 mit Sensor BMP85/180
SensortypBarometer
Thermometer
Betriebsspannung5V
Sensorspannung 1,8-3,6V
BusI2c
Genauigkeit0,01 hPa
0,1°C
Messbereiche300hPa bis 1100 hPa
0°C bis +65°C

Schaltung

Anschluss

GND Masse
SDA I2C SDA
SCL I2C SCL
Vin 5 V

 

Einsatzzwecke

  • Bestimmung der Höhe über 0
  • Ausgleich/Vergleich von Aussen- und Innendruck
  • Warnung vor Überdruck
  • Erhöhung der Genauigkeit bei GPS

Programmierung

Bibliothek

Es gibt von Adafruit zwei Treiber-Bibliotheken. Eine ältere und die neue „Unified“. Beide leisten das Gleiche. Die „Unified“ folgt den Adafruit Programmierrichtlinien für Sensoren und ist somit bei einem Sensorwechsel leichter austauschbar.

Testprogramm

Das Beispielprogramm ist  in der Bibliothek enthalten. Diese habe ich für meine ersten Test verwendet.

Ausgabe

Die Ausgabe sieht erstmal OK aus. Mangels Vergleichswerten konnte ich diese, bis auf die Temperatur, nicht auf ihre Genauigkeit überprüfen. Die Temperatur war rund 2 Grad zu hoch.

Probleme

Generelle I2c Probleme

http://fambach.net/uno-wire-scannen/

Quellen

https://github.com/adafruit/Adafruit-BMP085-Library

https://github.com/adafruit/Adafruit_BMP085_Unified

Feuchtigkeitsmesser DHT11

Der DHT kann die Luftfeuchtigkeit mit einer Genauigkeit von 5% und die Temperatur mit einer Genauigkeit von 2°C bestimmen.

Wertebereich

Luftfeuchte: 20-80%
Temperatur: 0-50°C

Pinning

Bildergebnis für DHT11

Lib

Ardunio liefert eine Lib mit. DHT11.h Heisst  sie und es muss im Konsturktor der Sensortyp (DHT11/22)  und der verwendete Daten Pin angegeben werden.

Die Lib muss zuvor über den Library Manger der Arduino GUI installiert werden. Zusätzlich wird der generelle  Treiber für Sensoren von Adafruit benötigt.

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE); // Konstruktor

Versuchsaufbau

Ardunino

DHT10 mit Arduino Uno

ESP8266

DHT10 mit ESP8266

Probleme

fatal error: DHT.h 

Code compiliert nicht. Evtl. wurden die DHT  Bibliotheken nicht insalliert.

Installiere die DHT lib von Adafruit:

fatal error: Adafruit_Sensor.h

Installiere die Standardlib von Adafruit:

 

Quellen

Nr.16 – DHT11 und DHT22

https://www.adafruit.com/product/386

https://learn.adafruit.com/dht

 

Mit dem Raspberry PI 3 den Entfernungsmesser US-100 ansteuern

Ansteuerung eines Ultraschall-Entfernungsmessers US-100 mit dem Raspberry PI3 ( oder früher). Ich habe nur Tutorials für den SR-04 gefunden, dieser wird allerdings analog zum US-100 eingebunden.


Hardware

PI3 (oder älter bitte auf die richtigen Pins achten)
US-100 ( Ultraschallsensor)
Brot-Board (zum leichteren Aufbau)
Diverse Kabel ( Vorgefertigte Pin-Header Kabel)


Aufbau

Der US-100 arbeitet mit 3.3V womit man ihn direkt am Raspberry betreiben kann.

Verdrahtung

  • Trigger Pin am GPIO 28
  • Echo Pin an den GPIO 25

(Die GPIOs gelten nur in Verbindung mit pi4j und wirePi)

 


Software

Entwicklungsumgebung

Als Entwicklungsumgebung verwende ich BlueJ auf dem PI selbst. Hiermit habe ich zwei Klassen erstellt.


Code

Distance-Klasse

Klasse zur Steuerung des US-015, mit den Methoden

  • getDistanceMM – Entfernung in Millimetern
  • getDistanceCM – Entfernung in Zentimetern

[gistpen id=“156″]

Test-Klasse

Klasse mit Main-Methode zum Testen der Distance-Klasse. In der Main-Methode wird alle 5 Sekunde ein neuer Wert vom Sensor abgefragt und auf die Console geschrieben.

[gistpen id=“158″]

Tips

Bei größerer Beanspruchung des PI ist zu beachten, dass Java die zeitlichen Abfolgen nicht garantiert. Somit kann es zu verfälschten oder keinen Ergebnissen bei der Messung kommen.

Quellen

https://www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi

http://t1m0b0t.blogspot.de/2014/04/using-ultrasonic-range-sensor-on.html

http://www.lediouris.net/RaspberryPI/HC-SR04/readme.htmlhttps://github.com/OlivierLD/raspberry-pi4j-samples/tree/master/RangeSensor

http://pi4j.com/pins/model-3b-rev1.html

Interfacing HC-SR04 Ultrasonic Sensor with Raspberry Pi

 

Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry Pi

Anhang

Pin-Belegung

 

US-100

Der US-100 ist ein Ultraschall-Enfernungsmesser mit einer Versorgungsspannung von 3V – 5V.  Er kann somit direkt an modernen Microcontrollern mit 3.3V Versorgungspannung betrieben werden.

Allgemein

Technische Daten

BeschreibungWert
Messung [mm]20 - 3500
Winkel [Grad]15
Genauigkeit [mm]3
Spannung [V]3-5
Strom [mA]2

Technische Daten US-100

Pin-Belegung

  1.  Versorgungsspannung 3-5V
  2. Trigger (Auslöser)
  3. Echo („Empfänger“)
  4. Masse
  5. Masse

Besonderheiten

Der US-100 kann in zwei Modi betrieben werden

  1. Im seriellen modus, Jumper auf der Rückseite ist gesetzt.
  2. Entfernungsmessung per Puls, der Jumper auf der Rückseite ist nicht gesetzt.
Serieller Modus

Hier wird der Trigger-Pin dan den TX port der UART-Schnittstelle (Serielle Schnittstelle) und der Echo-Pin an den RX-Port der UART-Schnittstelle angeschlossen.

Um den serielle port mit einem Microcontroller auslesen zu können muss dieser auf 9600 boud, 8 Datenbits, keine Parität und 1 Stopbit eingestellt werden.

Um die Messung zu starten muss ein einzelnes Byte 0x55 über den seriellen Port an den US-100 gesendet werden. Dananch kann die Enfernung mit 2 Bytes gelesen werden (High und Low byte). Um die Entfernung in Millimeter zu berechnen kann die folgenden Formel vewendet werden.

EntfernungInMM = ErstesByte * 256 + ZweitesByte

Durch senden eine Byte 0x50 kann zusätlich die Temperatur abgefragt werden. Die Anwort ist in diesem Fall 1 Byte lang und die Tempatur kann wie folgt berechnet werden

Temperatur °C  = GelesenesByste – 45

Pulsmessung

Hierfür müssenen der Trigger Pin und der Echo pin mit zwei digitalen Pins des Mircocontrollers verbunden werden.

Um die Entfernung abzufragen muss muss der Trigger für mindestens 50 micorsekunden auf low gesetzt werden.

Danach wird der Echo-Pin auf High gesetzt bis das Ultraschallsignal zum Hinderniss und wieder zurück gereist ist. Durch die Messung der Zeit kann die Entfernung mit der folgenden Formel errechnet werden.

Entfernung [cm] = Reisedauer [ms] / 58,2

Quellen

Datenblatt

SR-04

Der SR-04 ist einer der weit verbreitetsten Entfernungssensoren und dementsprechend günstig.

Allgemein

Technische Daten

BeschreibungWert
Messung [mm]20 - 4000
Winkel [Grad]15
Genauigkeit [mm]3
Spannung [V]5
Strom [mA]<2

Technische Daten SR-04

Pin-Belegung

  1.  Versorgungsspannung 5V
  2. Trigger (Auslöser)
  3. Echo („Empfänger“)
  4. Masse

Quellen

Datenblatt

Guter Einführung in den SR04

Super Einführungsvideo in englisch (eher technisch)

US-015

Der US-015 ist eine Ultraschall Entfernungsmesser, er kann Reichweiten bis zu 7m messen und ist gering im Stromverbrauch.

Allgemein

 

Technische Daten

BeschreibungWert
Messung [mm]20 - 7000
Winkel [Grad]15
Genauigkeit [mm]3
Spannung [V]5
Strom [mA]2

Technische Daten US-015

Pin-Belegung

  1.  Versorgungsspannung 5V
  2. Trigger (Auslöser)
  3. Echo („Empfänger“)
  4. Masse

Quellen

Tech Blog

Sensoren zur Entfernungsmessung

Hier sollen einige Sensoren zur Entfernungsmessung gezeigt werden. Die Aufstellung erhebt keinen Anspruch auf Vollständigkeit. Es werden nur die Sensoren beschrieben, die ich in meinen Projekten gerade verwende.


Ultraschallsensoren

Ultraschallsensoren senden einen Schallimpuls aus und warten dann auf eine Reflektion des Impulses durch ein Hinderniss. Trifft der Impuls nicht auf ein Hinderniss, wird er auch nicht zurück geworfen und der Sensor läuft auf eine Timeout. Dies ist bei der Verwendung dieser Sensoren zu berücksitigen.

SR-04 – Ultraschall Entfernungsmesser

US-015 Ultraschall Entfernungsmesser

US-100

 

 IR-Sensoren

Gegenüberstellung

SensornameEntfernung [mm]Genauigkeit [mm]Winkel [Grad]Spannung [V]Strom [mA]
US-01520 - 7000 3 155<2mA
SR-0420 - 40003155<2mA
US-10020 - 35003153-5<2mA