Bücher online kostenlos Kostenlos Online Lesen
Raspberry Pi - Einstieg, Optimierung, Projekte

Raspberry Pi - Einstieg, Optimierung, Projekte

Titel: Raspberry Pi - Einstieg, Optimierung, Projekte
Autoren: Maik Schmidt
Vom Netzwerk:
Meldung aus, wenn sich jemand bewegt und wenn sich innerhalb eines Zeitraums von zwei Sekunden niemand bewegt hat.
    Sensors/pir_demo.py
    Zeile 1   from  pir  import  *
      -   import  time
      -
      -  PIR_PIN = 23
      5  pir = PassiveInfraredSensor(PIR_PIN)
      -
      -  last_state = False
      -   while  True:
      -      if  (pir.motion_detected() == True):
     10         if  (last_state == False):
      -         print  
"Bewegung erkannt"

      -        last_state = True
      -   else:
      -      if  (last_state == True):
     15         print  
"Keine Bewegung erkannt"

      -        time.sleep(2)
      -        last_state = False;
    In den ersten beiden Zeilen importieren wir die Klasse
PassiveInfrared-Sensor
und die Python-Funktionen, um Datum und Uhrzeit zu bearbeiten. Dann definieren wir eine Konstante namens
PIR_PIN
und setzen sie auf die Nummer unseres Signalpins. Wir verwenden die Konstante in der folgenden Zeile, wenn wir erstmalig ein neues
PassiveInfraredSensor
-Objekt erstellen.
    Der Erkennungsalgorithmus beginnt in Zeile 7. Wir legen den letzten Status des PIR-Sensors in einer Variablen namens
last_state
ab. Dann starten wir eine Endlosschleife und prüfen, ob der PIR-Sensor gerade eine Bewegung erkannt hat. Wenn ja, prüfen wir, ob dies eine »neue« Bewegung ist oder ob wir sie bereits vorher erkannt haben. Ist sie neu, geben wir die Meldung »Bewegung erkannt« aus.
    Hat der PIR-Sensor keine Bewegung erkannt, prüfen wir, ob vorher eine Bewegung erkannt wurde. In diesem Fall geben wir die Meldung »Keine Bewegung erkannt« aus und warten zwei Sekunden, bevor wir wieder von vorn beginnen. Damit stellen wir sicher, dass nur dann eine Meldung ausgegeben wird, wenn sich der Status tatsächlich verändert hat. Dadurch macht unser Bewegungssensor keinen so nervösen Eindruck.
    Führen Sie das Programm jetzt aus, bewegen Sie sich etwas vor dem PIR-Sensor und bleiben Sie von Zeit zu Zeit stehen.
    pi@raspberry:~$
 
sudo python pir_demo.py
Bewegung erkannt
Keine Bewegung erkannt
    Das war alles, um den Pi in einen Bewegungssensor zu verwandeln. Eine Meldung auszugeben ist nicht besonders spannend, aber Sie können das Programm etwas verbessern, indem Sie sich eine E-Mail senden lassen oder eine Lampe einschalten. So verwandeln Sie Ihren Pi in eine Alarmanlage oder machen ihn zur Basis für Ihre Hausautomatisierung.
    Der Anschluss der meisten Digitalsensoren ist ebenso einfach, solange ihre Ausgangsspannung der Pi-Spezifikation entspricht und solange die Digitalsensoren nicht von exaktem Timing abhängen. Mit Analogsensoren zu arbeiten ist etwas komplizierter, aber im nächsten Abschnitt erfahren Sie, dass auch das keine Kunst ist.
10.3 Mit dem Pi Temperaturen messen
    Digitalsensoren bieten viele Anwendungsmöglichkeiten und sind einfach einzusetzen, aber in vielen Fällen haben Analogsensoren Vorteile. Die meisten Vorgänge in der Natur verhalten sich analog. Um beispielsweise eine Temperatur oder Beschleunigung zu messen, sind deshalb Analogsensoren besser geeignet.
    Analogsensoren messen normalerweise einen bestimmten Parameter und geben eine Spannung aus, die dem aktuellen Eingangssignal entspricht. Ein Temperatursensor wie der TMP36 gibt z.B. für höhere Temperaturen eine höhere Spannung aus als für niedrigere Temperaturen.
    Und obwohl sich das logisch und einfach anhört, haben wir ein Problem: Digitale Computer wie der Raspberry Pi verstehen keine Analogsignale. Sie können nur digitale Signale interpretieren, also Spannungen, die
High
oder
Low
sind. Microcontroller-Boards wie Arduino bieten von Haus aus Unterstützung für Analogsignale, weil sie einen Analog-Digital-Wandler (A/D) besitzen, der eine Spannung in eine Binärzahl umwandelt. Um dasselbe mit dem Raspberry Pi zu erreichen, müssen wir einen A/D-Wandler an den Pi anschließen.
Der MCP3008
    Der MCP3008 7 ist ein A/D-Wandler, der gut zum Pi passt. Er ist kostengünstig, einfach anzuwenden und kann bis zu acht Analogsignale gleichzeitig einlesen. Seine Ausgabeauflösung beträgt 10 Bit, er gibt also Zahlen zwischen 0 und 1023 zurück, die einer Spannung an einem Analogeingang entsprechen.

    Abb. 10–4 Das Anschlussschema des MCP3008
    In Abbildung 10–4 sehen Sie die Pins des MCP3008. Sie können die Pins 1 bis 8 auf der
Vom Netzwerk:

Weitere Kostenlose Bücher