====== Hardware für den Raspberry Pi ======
===== Bewegungsmelder =====
==== PIXNOR HC-SR501 ====
Unglaublich billig: 5Stck für 8 EU bei Amazon
* 5 Stück der HC-SR501Human Körper Pyroelektrizität Infrared Motion Sensormodule in einem Satz soll zusammen verkauft werden.
* Modell: HC-SR501. Farbe: wie in den Abbildungen gezeigt. Material: Durable Staku laminate (CCL).
* Infrarot-Sensor Control-Platine. Die Empfindlichkeit und Haltezeit einstellbar.
* Arbeitsbereich Spannung: DC 5V-20V. Stromverbrauch: weniger als 60uA. Ausgangsspannung: 3,3 V (hoch) 0V (niedrig).
* Ausgangsspannung: 3,3 V (hoch) 0V (niedrig). Triggermodus: L (nicht wiederholbare Trigger), H (wiederholbare) (Standard).
{{:raspberry_pi:raspberry_bewegungsmelder.jpg?400|}}
Auf dem Bild http://ecx.images-amazon.com/images/I/71-MkGGzyzL._SL1200_.jpg sind links unten 3 Lötpunkte zu sehen, beschriftet mit MD, L und H. Bei dem Exemplar, das ich damals gekauft hatte, sind an dieser Stelle drei Pins mit einem Jumper. Der Jumper verbindet den mittleren Pin wahlweise mit einem der äusseren Pins (L oder H).
{{ :raspberry_pi:31227sc.pdf |Datenblatt/Schaltplan/Anschlussplan/Anleitung}}
Welche belastung in ma kann ich dem bewegungsmelder bei einem ausgang von3,3volt zumuten? wie viele miliampere? danke christian
Antwort:
Die Strombelastbarkeit liegt bei dem Modul bei < 10mA! Hier muss ein Transistor/Mosfet zwischengeschaltet werden, möchte man größere Lasten betreiben.
ich würde über einen Arduino oder Raspberry PI die Werte auslesen und dann entsprechend verarbeiten, um andere Geräte anzusteuern.
Kann mir jemand einen Mosfet oder Transistor empfehlen das ich am ende knapp 100ma bei 3,6V betreiben kann
Antwort:
BC47 npn oder mosfet 2N7000 oder: 2N700X ist eine gute Wahl!
=== Bewegungsmelder direkt an RaspberryPi anschliessen ===
[[fhem:bewegungsmelder|Bewegungsmelder in FHEM]]
[[http://www.computerhilfen.de/info/bewegungsmelder-hc-sr501-an-die-raspberry-pi-gpio-ports-anschliessen.html]]
{{ :raspberry_pi:pir.jpg?direct&400|}}
==== GPIO auslesen ====
[[https://www.phpclasses.org/blog/package/12182/post/2-How-to-Use-a-PHP-Raspberry-PI-GPIO-Library-To-Communicate-with-the-Hardware-Ports-Directly-Without-Using-shellexec.html|Howto GPIO direkt via PHP ohne shellexec]]
=== Transistoren vorschalten ===
[[https://tutorials-raspberrypi.de/ueberwachung-von-fenstern-und-tueren-mit-dem-raspberry-pi/]]
# GPIO 11 auslesen:
gpio -g read 11
#Alle:
gpio readall
Bewegungsmelder in FHEM definieren
Für die Einrichtung des Bewegungsmelders in FHEM definiert man dann zunächst den Eingang, auf den man reagieren möchte: In unserem Beispiel wie oben beschrieben ist das Pin 8 (GPIO 14). Wie man Daten (z.B. ein neuer Define, Attribute oder Änderungen) in FHEM eingibt und was man beachten muss, zeigen wir in diesem Artikel!
# Pin8 als Eingang definieren
define RPIPin8 RPI_GPIO 14
attr RPIPin8 direction input
attr RPIPin8 interrupt both
# Auf Bewegung reagieren
define act_on_BewegungGPIO notify RPIPin8 {\
if ("$EVENT" ne "off") { fhem("set ALARM on-for-timer 5;;");;}}
Gefunden bei http://www.computerhilfen.de ((https://www.computerhilfen.de/info/bewegungsmelder-hc-sr501-an-die-raspberry-pi-gpio-ports-anschliessen.html)) Vielen Dank! Superseite!!
===== Porterweiterung via I2C =====
Raspberry Pi GPIOs mittels I2C Port Expander erweitern
[[https://tutorials-raspberrypi.de/gpios-mittels-i2c-port-expander-erweitern/]]
[[http://www.elektronx.de/tutorials/porterweiterung-mit-mcp23017-und-i2c/]]
{{ :raspberry_pi:gpio-expander.jpg?direct|}}
i2cset -y 1 0x20 0x15 0xff
Der 1. Hexwert ist die Adresse von der Porterweiterung (rauszubekommen mit sudo i2cdetect 1), der 2. Wert kommt aus der Tabelle (in diesen Fall ein/ausschalten, wenn das Ding vorher asl Output definiert wurde (mit i2cset -y 1 0x20 0x00 0x00 alle auf output schalten)) und der 3. Wert ist in dem Fall ein/aus.
==== PCF8574 ====
[[https://www.mikrocontroller.net/articles/Port-Expander_PCF8574]]
===== Tasten =====
==== Matrix-Zahlentastatur ====
{{ :raspberry_pi:rbs11089-keypad3x4.pdf |Datenblatt für 3x4-Tastatur}}
[[https://tutorials-raspberrypi.de/raspberry-pi-keypad-tastatur/]]
===== 433MHz Sender/Empfänger =====
{{ :raspberry_pi:s-l400.jpg?direct&400|}}
5 paar 433 mhz hf-sender module+receiver kit für arduino arm mcu wl te122
Funktionen
Tx technischen Spezifikationen
* Betriebsspannung: 3v-12v
* Arbeitsstrom: 20-28ma.
* Arbeiten temperatur:-10 Grad zu +70 Grad
* Resonanz Modus: Schallwelle Resonanz( saw)
* Modulation Modus: fragen/ook
* Arbeitsfrequenz: 315mhz-433.92mhz, individuelle frequenz ist.
* Reichweite:> 500m, Empfindlichkeit gegenüber- 103 dBm, in offenen Gebieten.
* Sendeleistung: 25mw( 315mhz bei 12V)
* Frequenz Fehler: +150khz( max)
* Geschwindigkeit: ≤10kbps
* Selbst- Besitz Codes: negativen
Rx technischen Spezifikationen
* Betriebsspannung: 5,0 VDC
* Statische aktuellen: 4ma
* Arbeiten temperatur:-10 Grad zu +70 Grad
* Funktionsprinzip: chip superregeneration erhalten
* Arbeitsweise: ook/fragen
* Arbeitsfrequenz: 315mhz-433.92mhz, individuelle frequenz zur Verfügung( 266- 433mhz).
* Bandbreite: 2 MHz( 315mhz, mit sich aus Tests bei gende die Empfindlichkeit 3dbm)
* Empfindlichkeit: Excel–100dbm( 50ohm)
* Übertragung Geschwindigkeit:< 9,6 kbps( at 315 mhz und- 95dbm)
Paket enthalten
* 5 stück 433 mhz hf-sender
* 5 stück 433 mhz rf-empfänger
===== E-Paper Display =====
{{ :raspberry_pi:epaper_raspberrypi.pdf |}}
===== Waage =====
Waage bauen mit Raspberry: [[https://tutorials-raspberrypi.de/raspberry-pi-waage-bauen-gewichtssensor-hx711/]]
Das Wichtigste, um eine eigene Waage zu bauen, ist eine sog. „Load Cell“ / Wägezelle, welches ein Metallbalken mit Loch in der Mitte ist (siehe Bild rechts). Dies gibt es für verschiedene Gewichtsklassen (bis 1kg, bis 5kg, bis 50kg, etc.). Auch wenn manche eine andere Form haben, so sind alle jedoch mit vier Kabeln versehen. Um Die Werte auszulesen ist außerdem noch der HX711 Gewichtssensor nötig. (Der HX711 ist offenbar 'nur' ein Analog-Digitalwandler. eBay: 5 Stck unter 6 Euro...)
===== Bildschirm an- ausschalten =====
https://www.raspberrypi.org/forums/viewtopic.php?t=149614
{{:raspberry_pi:lcd_backlight_high-side_switch.png?400|}}
scheint nicht zu funktionieren (emulator). besser?
https://www.mikrocontroller.net/topic/332076
{{:raspberry_pi:7.5v-via-3.3v.png?direct&400|}}
Ach was, da ha ich zu wenig Ahnung, ich mach das Screen-Backlight jetzt mit einem Relais an&aus. Klickt halt.
Ein Python-skript habe ich gefunden, das bei Nicht-Bewegung den Screensaver einschaltet. Kann ich umschreiben, damit es bei Bewegung die Beleuchtung einschaltet:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# pir_test.py
#
# Copyright 2013 Ed Baker 05.07.2013
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
#
#
# sample Program by Ed Baker - 2013
# for Raspberry Pi using the Gertboard and PIR sensor.
#
# PIR Sensor Data on Pin 25, Positive and ground hooked to 3.3v on Gert-
# board. Run the program from a terminal window in the same directory
# as pir_test.py
# use the comand: sudo paython pir_test.py
#
# NOTE: Won't work with power saving screen blanking.
# Written for Raspberry Pi 2 rev. B using Raspbian with the xscreensaver
# installed. (if your screen lock does not work, install xscreensaver)
#
import os #for OS program calls
import sys #For Clean sys.exit command
import time #for sleep/pause
import RPi.GPIO as io #read the GPIO pins
io.setmode(io.BCM)
pir_pin = 25 # Sensor pin 25 for data out of the PIR sensor
io.setup(pir_pin, io.IN)
print("Motion Activated (PIR) Screen Saver")
print("less than 30 seconds to leave the sensor area...")
time.sleep(20)
os.system("xscreensaver-command -activate") #OS command for Xscreensaver program = Activate, turns on screensaver instantly
while True: # endless loop, waiting for nothing. Use Control+C to exit
if io.input(pir_pin): # Waits for motion signal from PIR on GPIO pin 25, then com[plete rest and exit
os.system("xscreensaver-command -deactivate") ##OS command for Xscreensaver program = Activate, turns on screensaver instantly
print("PIR Screen Saver Deactivated")
io.cleanup() #reset GPIO
sys.exit() #exit cleanly to the command prompt.
Oder:
import RPi.GPIO as GPIO
import os
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(11, GPIO.IN)
while True:
if GPIO.input(11): # Waits for motion signal from PIR on GPIO pin 11 then complete rest and exit
print ("deactivating screensaver")
os.system("xscreensaver-command -deactivate")
Das Display lässt sich auch ein/ausschalten mit (leider ohne Hintergrundbeleuchtung):
DISPLAY=:0 xset dpms force off
DISPLAY=:0 xset dpms force on
===== Fingerabdrucksensor =====
[[https://tutorials-raspberrypi.de/raspberry-pi-fingerprint-sensor-authentifizierung-nutzen/]]
{{ :raspberry_pi:r308-fingerprint-module-user-manual_english.pdf |User Man Engl.}}
{{ :raspberry_pi:adafruit-optical-fingerprint-sensor.pdf | Anleitung (Eng) mir versch. Pinbelegungen}}
{{ :raspberry_pi:fingerprint_arduino_library.zip |Arduino Bibliothek}}
wget -O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg | sudo apt-key add -
sudo wget http://apt.pm-codeworks.de/pm-codeworks.list -P /etc/apt/sources.list.d/
sudo apt-get update
sudo apt-get install python-fingerprint --yes
# Anlernen:
python2 /usr/share/doc/python-fingerprint/examples/example_enroll.py
#Lesen:
python /usr/share/doc/python-fingerprint/examples/example_search.py
# Index anzeigen (freier Platz):
python /usr/share/doc/python-fingerprint/examples/example_index.py
Die Bilddateien werden offenbar auf dem Gerät selbst verarbeitet. Der Download des Bildes (siehe Beispielscript) dauert recht lange...
===== Ambilight selber bauen =====
[[https://tutorials-raspberrypi.de/raspberry-pi-ambilight-fuer-alle-geraete-selber-bauen/]]
[[https://hyperion-project.org/threads/raspberry-pi-3-mediacenter-hyperion-ambilight-ohne-l%C3%B6ten.112/]]
[[http://powerpi.de/atemberaubendes-ambilight-am-eigenen-tv-selber-bauen-raspberry-pi-2-tutorial-teil-1/]]
Sempi-Kommerziell: [[https://lightberry.eu]]
===== Touch-Taster =====
Hardware:
3 Anschlüsse: VCC (3,3V), I/O (GPIO), Ground. Easy
Software:
Wie normaler Taster:
[[http://dev-blog.vcp.de/raspberry-pi-taster-als-einfaches-eingabegeraet/]]
Python (GPIO ist nach GPIO-Nummer nummeriert, nicht nach Pin):
import RPi.GPIO as GPIO #allgemeines Einbinden der GPIO-Funktion
import time
GPIO.setmode(GPIO.BCM) #Zaehlweise der GPIO-PINS auf der Platine, analog zu allen Beispielen
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Taster ist an GPIO-Pin 23 angeschlossen
while True:
input_state = GPIO.input(23)
if input_state == False:
print('Taster gedrueckt')
time.sleep(2) # war 0.2, aber Quatsch, weil man den touch-Taster ja länger drueckt...
===== Dot Matrix =====
Raspberry Pi LED MAX7219 DotMatrix – Projektübersicht:
[[https://tutorials-raspberrypi.de/led-max7219-dot-matrix-projekt-uebersicht/]]
Die Bibliothek für mehrzellige DotMatrix-LEDs hab ich nicht zum Laufen gebracht (zumindest nicht mit nur einem 8x8-Modul).((https://tutorials-raspberrypi.de/bibliothek-fuer-mehrzeilige-m-x-n-max7219-led-matrizen/))
GRafik-Editor (online): [[https://tutorials-raspberrypi.de/graphiken-auf-mehrzeiligen-led-matrizen-zeichnen/]]
==== Max7219 ====
Quelle((https://tutorials-raspberrypi.de/led-dot-matrix-zusammenbau-und-installation/))
Funktioniert
Dann hatte ich das Problem, das bei mir im SPI-Bus der CS0 (Chip Select 0) schon belegt war, weil ich auf CS0 schon den RFID-Reader hatte. Also Änderung auf CS1. Man kann problemlos beide Ports quasi gleichzeitig verwenden. Von den 4 Anschlüssen gehen 3 auf beide Geräte, der 4. entsprechend zu CS0 oder CS1 auf dem Raspi....
Dann muss man bei den Beispielen den Befehl zur Öffnung des seriellen SPI-Ports ändern:
serial = spi(port=0, device=0, gpio=noop())
in
serial = spi(port=0, device=1, gpio=noop())
wenn man den Port von SP0 auf SP1 ändern will
===== Kamera Camera =====
raspistill
{{ :raspberry_pi:raspicam-documentation.pdf |RaspiCam Dokumentation}}
===== Frequenzgenerator (eigenes Bauteil) =====
Signal Generator PWM Pulse Frequency Duty Cycle Adjustable Module LCD 3.3V-30V
{{:raspberry_pi:frequenzgenerator.jpg?400|}}