Neben Überwachungskamera und Bewegungssensoren ist für ein selbst gebautes Überwachungssystem auch die Auskunft über geöffnete Fenster und Türen interessant. Eine Überprüfung mit Infrarot Lichtschranken oder anderen Methoden wäre zwar sicher auch denkbar, ist aber in diesem Falle um einiges komplizierter.
Wie man ganz einfach mit einem Magnetschalter z.B. den Status des Fensters überprüfen kann wird in diesem Tutorial gezeigt.
Zubehör
Glücklicherweise ist nicht viel nötig um den Schalter anzubringen und die meisten Teile sind wahrscheinlich in den meisten Bastlerkisten bereits vorhanden. Diese Bauteile habe ich verwendet:
- 1 Paar Magnetschalter
- Widerstände (470Ω und 10kΩ)
- 1x BC547 Transistor
- Jumper Kabel
Aufbau
Der Aufbau ist wie im Bild zu entnehmen. Als Input Pin verwende ich GPIO 17 (Board Pin 11):
Welches der beiden Kabel des Magnetschalters an die Basis des Transistors angeschlossen wird, spielt dabei keine Rolle. Dabei sollte das freie Ende am Fenster/Tür befestigt werden und jenes mit Kabel am besten an den festen Tür-/Fensterrahmen.
Falls die beiden Teile zu weit voneinander entfernt sind kann es sein, dass nur ein sehr geringer Strom durch den Transistor fließt, der nicht ausreicht, um zu schalten. In diesem Fall kannst du versuchen statt 3.3V den 5V Anschluss des Pi’s zu nehmen, aber solltest dann unbedingt einen Widerstand zwischen Transistor-Emitter und GPIO setzen.
Man könnte diese Schaltung natürlich auch als Pull-Up Widerstand aufbauen und hätte dadurch erst bei geöffnetem Fenster ein HIGH Signal.
Steuerung
Die Ansteuerung ist sehr simpel und kann in dieser Form in vielen Projekten zum Einsatz kommen. Statt meinem nachfolgendem Python Code kann ein ähnlicher Code auch z.B. in C++ (mit Hilfe von WiringPi) erstellt werden.
Nun aber zum Code:
sudo python
1 2 3 4 5 6 7 |
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern MAGNET_GPIO = 17 GPIO.setup(MAGNET_GPIO, GPIO.IN) # GPIO Modus zuweisen print GPIO.input(MAGNET_GPIO) |
Solange das Fenster und damit auch der Magnetschalter geschlossen ist, wird am Pin eine 1 angezeigt. Sobald der Kontakt unterbrochen wird schaltet der Transistor nicht mehr und damit wird am GPIO eine Null angezeigt. Damit kannst du abfragen, ob ein Fenster/Tür geöffnet ist oder nicht.
Wer darauf warten möchte, bis sich der Zustand ändert, kann die folgende Funktion verwenden:
1 |
GPIO.add_event_detect(MAGNET_GPIO, GPIO.BOTH, callback=my_callback) |
Wobei in diesem Fall eine Funktion mit dem Namen my_callback()
vorhanden sein muss, die dann aufgerufen wird. Hierbei sind auch die Zustande GPIO.RISING
und GPIO.FALLING
statt GPIO.BOTH
möglich.
63 Kommentare
Hallo,
super Tutorial danke!
Ich würde gerne mehre Magnetschalter an den MCP23017 hängen. Kann ich den Aufbau aus dem anderen Tutorial einfach übernehmen? Also den Taster gegen einen Magnetschalter tauschen?
Mir ist es egal ob geschlossen high oder low ist, würde es dann entsprechend im Skript anpassen oder gibt es da Empfehlungen bezüglich „Belastung“ des Chips oder Stromverbrauch…?
Auch wenn der MCP23017 bis zu 5.5V verträgt, solltest du wegen den GPIOs nicht mehr als 3.3V an den Magnetschalter hängen. Ansonsten kannst du den MCP23017 wie die GPIOs verwenden (außer, dass der Aufruf nicht direkt stattfindet, aber dafür kannst du ja eine Hilfsfunktion bauen).
Hallo,
Ein super Tutorial/Projekt. Ich habe mich dazu entschlossen, dies für die Schule zu nehmen. Jedoch ist mir nich nicht klar, was die rote 17 in Zeile 5 soll. Es wäre nett, wenn ich schnell eine Antwort bekäme.
LG Jasmin
Meinst du die Farbe oder die Bedeutung? Die Farbe ist vollkommen unwichtig und soll nur den Code lesbarer machen.
Hallo,
kannst du mir erklären, warum du mit einem Transistor arbeitest? Würde das auch mit einem reinen Widerstand funktionieren oder würde man dann zu oft „Fehlalarm“ bekommen?
Gruß Stefan
Wenn das Magnet Relais nicht nah genug am Magneten ist kann es sein, dass die Treshold Spannung der GPIOs nicht überschritten wird und daher nicht erkannt wird. Der Transistor hat eine geringere Schaltspannung, wodurch sichergestellt wird, dass der Input GPIO 3.3V angelegt bekommt. Ein reiner Widerstand hätte einen gegenteiligen Effekt.
Hallo Felix,
ich habe das ganze jetzt mal nachgebaut. Ich habe es mit einem Event Dedect auf einen fallenden Pegel angegeben.
An meinem neuen Raspberry Pi 2 läuft das ganze auch wunderbar Er löst ein Event aus und fertig. Baue ich es allerdings an meinen alten Rapberry Pi B Modell (26GPIOs) erhalte ich ständig Events, das der Pegel fällt.
Kannst du mir da ggf. weiterhelfen, was ich machen könnte?
Viele Grüße
Stefan
Nach gefühlten tausenden Messungen habe ich herausgefunden an was es liegt. Beim alten Pi, habe ich am Transistor eine geringe aber schwankende Spannung anliegen obwohl der Magnet geöffnet ist. Keine Ahnung wie er dann Spannung bekommt, aber das ist der Auslöser.
Ich habe jetzt anstelle des Transistors einen Optokoppler verwendet. Der löst trotz der anliegenden „Phantomspannung“ nicht aus. Dadurch liegt am 2 Stromkreis dauerhaft 0V an.
Viele Grüße
Stefan
Hallo und Guten Tag!
Klasse Tutorial!
Es währe wohl auch möglich z.b. diesen Reed Schalter zu verwenden..
http://www.pollin.de/shop/dt/NDgyOTc1OTk-/Haustechnik/Sicherheitstechnik/Melder/Magnet_Reedkontakt_MK_10NC.html
Grüße und einen schönen Tag
Stefan
Ja, ich bevorzuge allerdings breitere Magnetrelais, welche auch direkt montierbar sind.
Bei mir ist GPIO 17 schon belegt. Ich habe in der unteren Reihe den 6,7 Pin belegt. Kann man auch einen anderen GPIO verwenden? Ich gehe davon aus ja, aber welchen? Ich hab Angst was kaputt zu machen 🙁
Du kannst jeden anderen steuerbaren (d.h. kein VCC oder GND) GPIO verwenden. Siehe hier: http://tutorials-raspberrypi.de/wp-content/uploads/RaspberyPI_GPIO_Belegung.png
Moin,
ich habe gerade diese Anleitung gefunden (bitblokes.de/2015/06/das-raspberry-pi-als-wassersensor-benutzen-e-mail-als-benachrichtung) da ich die abe grausam finde dachte ich ob es nicht möglich ist. Den Magnetschalter durch ein Kabel zu ersetzen, damit möchte ich ein Signal bekommen ob meine Regenwassertonne im Garten voll ist.
Durch was für ein Kabel willst du es ersetzen? Speziell was Wasser angeht würde ich sehr vorsichtig sein. Was du aber machen könntest ist über der Regenrinne einen Distanzmesser anbringen und sobald die gemesse Entfernung unter X ist weißt du, dass sie voll ist.
Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)
Wirklich sehr knackige Darstellung, vielen Dank für das Tutorial.
Da ich nicht so der Elektronik Freak bin, ich die Schaltung aber sehr gerne verstehen würde, haben sich mir bei Fragen gestellt.
Der Transistor verstärkt ja den Strom (dieses Modell wohl 200fach). Durch den 10k Widerstand zwischen Emitter und Erde fließt dort, wenn überhaupt, nur ein sehr kleiner Strom von 0,3 mA*200 = 60mA, oder?
Aber welcher Strom fließt in den Input Pint 17, wenn der Magnetschalter den Stromkreis schließt? Welcher Widerstand herrscht dort, heißt, geht der komplette durch den Transistor verstärkte Strom dann auf GPIO Input Pin 17? Kann dieser Strom nicht den Raspberry Pi zerstören?
Handelt es sich (vom Emitter abgehend) um eine Parallelschaltung?
Leider hab ich wohl gerade ein Brett vorm Kopf….
LG
Patrick
Es wird oft nur die maximale Stromstärke angegeben, was aber nicht bedeutet, dass diese auch genutzt wird. Vielleicht kommt dir das Beispiel mit einem Fluss bekannt vor, in dem die Spannung (U) die Schnelligkeit des Flusses darstellt und die max. Stromstärke (I) dessen Breite.
Bspw wenn du eine LED hast, welche 2.0V und 2mA braucht, allerdings deine Stromquelle 3.3V liefert, dann musst du die restliche Spannung mit einem Widerstand „vernichten“. Dabei gilt die Regel U=R*I bzw. R = U/I also R = 1.3/0.002 = 650Ohm.
Bei den GPIOs ist ebenso wichtig, dass nicht mehr als 3.3V ankommen. Solange du also nicht den 5V Pin nutzt, stellt es keine Gefahr für den Raspberry Pi da. Du könntest den Transistor sogar komplett weglassen, wenn du einen Pull Down Widerstand nimmst.
Danke für deine Antwort, echt klasse, dass du hier auf jede Frage eingehst.
Also ich hab mich an dem Leitungsstück vor dem 10k Widerstand zum Input Pin 17 „aufgehangen“. Leider verstehe ich es noch nicht wirklich. Ich habe auf folgender Seite Schaltungen gefunden, welche die gleiche Situation (Pulldown) zeigen, allerdings mit einem PNP Transistor (Abb. 1.4): http://www.elektronik-kompendium.de/public/schaerer/pullr.htm
Der BC 547 ist allerdings ein NPN Transistor.
Nichtsdestotrotz habe ich die Schaltung mal nachgebaut, allerdings hatte ich nur ein paar 220 Ohm (hab 2 in Serie mit 440 Ohm verwendet statt der 470 wie gezeigt) sowie 10kOhm Widerstände, und keinen Magnetschalter (stattdessen habe ich ein Jumper Kabel zum Simulieren des Öffnens und Schließens genommen). Als Transistor hatte ich auch nur einen S8050, der es aber auch „tun“ sollte.
Prinzipiell funktioniert die Schaltung auch. Wenn ich allerdings in Python auf die Events höre, kommen die gerne auch mal öfter.
Liegt das an dem anderen Transistor Modell?
Hier eine Beispiel Ausgabe meines Programms:
>>> ================================ RESTART ================================
>>>
Closed!
Closed!
Open, ALARM, ALARM, ALARM!
Closed!
Closed!
Open, ALARM, ALARM, ALARM!
Closed!
Closed!
Das hier ist mein Code:
Ich würde ggf. verschiedene Funktionen für die aufsteigende bzw. absteigende Flanke erstellen und die Abfrage nach dem Input weglassen. Ich kann dir nicht genau sagen, warum du das Signal öfters bekommst, aber es liegt sehr nahe, dass es am Aufbau liegt (Teile oder z.B. „Wackelkontakt“).
Hallo,
ich bin blutiger Anfänger und erst am „Einlesen“ – aber mir kommt eine generelle Frage:
Wenn ich nun eine Alarmanlage bauen möchte, die jedes Fenster überwacht, möchte ich doch nicht an jedem Fenster ein Raspberry Pi anbringen, der dann die Information sendet und irgendein „Haupt-Raspberry Pi“ sammelt dann alle Infos und zeigt sie an. Und entsprechend Kabel verlegen ist ja auch nicht sinnvoll.
Also müsste ich doch die Magnetschalter mit einem bspw. 433MHz-Funksender ausstatten, der dann die Info 0/1 an einen Raspberry Pi Empfänger sendet.
Wie kann ich das machen – also kann ich mir solche Funksensoren selber bauen oder kaufe ich dann entsprechende Magnetschalter mit Funksensoren?
Wenn ich das über 433Mhz-Funk gestalten würde – wie kann ich den Datenverkehr absichern (verschlüsseln/“passwort“) – so dass nicht jemand durch ausprobieren der codes meine Funk-Sender ausspioniert und dann entsprechen „0“ alles gut sendet, obwohl „1“ Fenster ist auf der richtige Zustand ist…
Ich weiß, für einen Laien evtl. zu weit gefragt – oder eben weil ich ein Laie bin blöde Frage, weil für einen Experten vollkommen klar;)
Danke für eine Erklärung…!
LarsMq
Hallo Lars,
solche Fensterkontakte, die einstellbare 433 MHz Signale senden, gibt es bereits (http://amzn.to/2fL9ewj), d.h. das muss man nicht unbedingt selbst bauen. Das Problem, das du angesprochen hast stimmt allerding: Da mit der 433 MHz Frequenz nur wenige Daten auf einmal gesendet werden können, ist eine Verschlüsselung in dem Sinne kaum möglich (selbst wenn du einen Arduino o.ä. an einen Magnetkontakt hängst und von diesem sendest). Theoretisch könnte ein Dritter kommen und das Signal willkürlich versenden.
Eine bessere Variante wäre es z.B. 2.4 GHz Funkmodule zu verwenden. Da es solche nicht vorgefertigt zu kaufen gibt (jedenfalls nicht dass ich wüsste), müsstest du einen Arduino an den Magnetschalter hängen und von diesem aus an den Raspberry Pi senden. Dies ist allerdings ein etwas fortgeschritteneres Thema (hier geht’s zum Tutorial), aber damit hättest du eine größere Absicherung, dass nicht einfach jemand diesen Code sendet.
Ich hoffe das hat dir ein wenig geholfen.
LG, Felix
Hallo Felix,
vielen Dank für die Erklärung.
Hm, da müsste man wahrscheinlich für eine sinnvolle (kostenmäßig) Anbindung einen ATTiny Mikrocontroller o.ä. nehmen (und das übersteigt meinen derzeitigem Wissensstand;) )
Könnte man (um das 2,4GHzNetz zu vermeiden) mit einem 868MHz-Funknetz eine bspw. AES128-Verschlüsselung aufbauen – das in m.W. die möglichen Datenmengen höher, oder?
Nochmal vielen Dank, auch im generellen für die Superseite hier!
Gruß
LarsMq
Ja, das wäre möglich, allerdings muss ich gestehen mich mit 833 MHz Übertragung noch wenig beschäftigt zu haben, da sie eher untypisch ist. Bei 433 MHz konnte ich maximal 32 Bits pro Sendevorgang auf einmal verschicken.
Hallo,
super Tutorial, aber mir fehlt die Erklärung, warum der Transistor überhaupt benötigt wird. ich habe so etwas vor gehabt allerdings mit einem GPIO als IN definiert und die Gegenseite dann auf 3V gelegt. Warum dieser Umweg?
In dieser Konstellation brauchst du den Transistor nicht unbedingt. Da ich mir allerdings gut vorstellen kann, dass die Kabel länger werden und somit ein Spannungsabfall eintrit, habe ich den „Umweg“ über den Transistor gewählt.
Hallo,
das Tutorial ist genau das richtige was ich suche.
Leider bin ich noch Anfänger und versuche mich in alles mal einzulesen.
Ich würde gern bei mir 10 Fenster mit Magnetschaltern, wo die Kabel alle an einem Punkt ankommen überwachen.
Dazu bräuchte ich dann ein dementsprechende großes Klemmplatte, aber bei der Auswerteinheit bin ich mir nicht sicher. Reicht es eine Rasberry Pi2 dafür aus, ober brauche ich da zwei oder mehr?
Ein Raspberry Pi reicht vollkommen aus. Zum einen sind mehr als 10 GPIOs vorhanden und selbst wenn sie knapp werden sollten, kannst du sie auch erweitern: Raspberry Pi GPIOs mittels I2C Port Expander erweitern – Teil 1
Hallo,
ich versuche gerade dieses Projekt mit diesem Projekt (http://tutorials-raspberrypi.de/raspberry-pi-luftfeuchtigkeit-temperatur-messen-dht11-dht22/) zu verbinden.
Dabei stoße ich nun auf einen Fehler in meinem Code, nämlich, dass er mich immer in die else-Verzweigung wirft.
Ich weiß jetzt nicht, ob es am DHT11 liegt oder am Reed-Relais, deshalb habe ich meine Anfrage in beiden Projekten gepostet. Ich hoffe ihr könnt mir vielleicht weiterhelfen, da ich mich mit Python eigentlich gar nicht auskenne. Die Verkabelungen habe ich auch durch Dritte nochmal überprüfen lassen, die ist wohl richtig so.
Es könnte entweder daran liegen, dass der Schalter nicht schaltet oder aber, dass ich den Wert humidity des Sensors irgendwie nicht übergeben kann, aber ich habe keine Ahnung wie ich überprüfen kann woran es liegt.
Gib dir doch mal vor dem if die beiden Werte aus. Einer wird wahrscheinlich nicht wie erwartet sein:
print(gpio.input(magnet), humidity)
Cooles Tutorial, aber wenn ich nun nicht bloß angezeigt haben möchte, ob der Schalter zu oder offen ist, sondern ich auch gleichzeitig eine Rote LED blinken lassen möchte und über den Audioausgag einen Alarmton abspielen lassen möchte? Wie sähe das Script dann aus? Ich wüsste jetzt wie man eine Lampe an und aus schaltet, aber nicht, wie ist in das Script die LED und den Ton mit einbringen kann. Was müsste ich daran ändern? Ganz verstanden habe ich auch noch nicht, wo es dann angezeigt wird?
Zum Schalten einer LED kannst du dir mal dieses Tutorial ansehen (im Grunde einfach nur einen GPIO setzen): Raspberry Pi Ampelschaltung mit GPIO Teil 1
Zum Abspielen des Sounds solltest du
os.system()
nutzen und aplay.LG, Felix
Hallo Felix, vielen Dank für dein Tutorial!
Ich habe es mit 7 Reed Schaltern nachgebaut und bekomme leider auch mehrfach Meldungen wenn ich ein Fenster öffne bzw. schließe. Ich habe deshalb versucht das ganze mit Pull-Up Widerständen zu lösen, ich bin mir allerdings nicht sicher ob das ganze so dauerhaft lauffähig ist. Wenn du mal einen Blick drauf werfen könntest wäre ich dir dankbar.
https://goo.gl/photos/nE5dXVFj9WfXb2p56
LG
Andre
Ja, das passt so. Falls deine Relais jedoch nur mit 5V schalten nimmst du den 5V Anschluss vom Pi und einen Transistor. Der GPIO kommt an die Basis, 5V vom Pi an den Collector und der Emitter wird an den Relais Eingang verbunden.
LG, Felix
Hallo,
bin auch erst seit kurzem in der Welt des Raspberry eingetaucht und versuche mir gerade ein Einbruchsystem aufzubauen. Da ich vermutlich schon für Bewegungsmelder usw. sehr viele Pins benötigen werde, war jetzt die Frage ob und wie ich es hinbekomme die Magnetkontakte in Reihe zu hängen und trotzdem eine Differenzierung hinbekomme?
Vielen Dank schon einmal für die Hilfe.
P.S: Falls jemand so ein Einbruchsystem sich schonmal aufgebaut und erfahrung damit hat kann sich gerne mal bei mir melden. Wird bestimmt nämlich nicht meine letzte Frage gewesen sein.
Falls du zusätzliche GPIOs brauchst, würde ich dir einen Port Expander raten.
Hi,
Könntest du mir sagen, wie viel Strom/Spannung von den Magneten kommt? Ich finde auf Amazon nur, dass sie für 0,5A ausgelegt sind. Ich versuche das alles selber zu bauen/ zu berechnen, da es für ein Uniprojekt ist und fände es demnach doof das einfach blind nach zu bauen. Aber ohne Angaben ist das natürlich schwierig..
Wie meinst du das? Das kommt drauf an, welche Spannung du anlegst und wie lang das Kabel ist. 0.5A ist die maximale Stromstärke, die fließen kann.
Achso also funktioniert er wirklich nur als Schalter?
Wie hast du denn deine Widerstände berechnet?
Ich habe das jetzt mit der Schaltung so nachgebaut, aber ich gekomme trotz geschlossenem Schalter immer eine 0.
Theoretisch könnte ich ja den Schalter durch ein Kabel ersetzen und das „Überbrücken“, oder? Wenn ich dann mal davon ausgehe, dass ich die Kabel korrekt eingesteckt habe und die Widerstände aus der richtigen Packung genommen habe (wurden natürlich auch anhand vom farbcode geprüft) müsste ja der Transistor ohne Funktion sein. Ich habe die folgenden verwendet: https://www.amazon.de/25St%C3%BCck-Transistor-Arduino-Raspberry-Prototyping/dp/B06VSWNX37/ref=sr_1_2?ie=UTF8&qid=1500933791&sr=8-2&keywords=BC547
Sind das die richtigen bzw. wie könnte ich (mit meinem eingeschränken Wissen) eine Fehlersuche durchführen?
Hat sich erledigt, hab das ganze ohne Transistor gebaut. Wahrscheinlich waren die dann irgendwie „falsch“
Hallo Felix,
zu anfangs auf jeden Fall vollsten Respekt für deine Anleitungen hier!
Ich habe nun versucht, die Aufstellung genauso zu bauen, wie du! Habe auch die gleichen Bauteile verwendet, jedoch wirft mir der Raspberry die ganze Zeit eine 0 raus! Egal ob der Kreis geschlossen oder unterbrochen ist. Habe auch den Reed Kontakt getestet, dieser funktioniert jedoch ohne probleme 🙁
Über eine Antwort würde ich mich freuen,
GLG Lukas
Hi,
Ich habe das ganze ohne Transistor gemacht ( hat bei mir mit irgendwie nicht funktioniert). Ich mach das ganze auch als Alarmanlage für ein Fahrrad ( 1 = Alarm, 0=Sicher). Ich hab das ganze nun versucht als Dauerschleife auf zu bauen. Komischerweise geht das Programm in der Endlosschleife allerdings nur auf den originalen Zustand ein (ignoriert also die if Anweisungen in der while Schleife). Hast du zufällig eine Ahnung warum? Ich bin langsam völlig am verzweifeln.
Der Code:
Hoffentlich kannst du mir helfen…
LG
Moin,
ich bin noch relativ neu mit dem Raspberry Pi unterwegs. Programmieren ist eher weniger das Problem dafür hängt es ein bisschen an der Fachkenntnis für Elektronik.
Meine Frage wäre hast du auch eine Möglichkeit wie ich die Türkontakte auch via Funk auslesen kann?
Leider bin ich dazu im Internet nicht ganz fündig geworden, wie sich das realisieren lässt.
Vielleicht hast du ja eine Idee wie man das umsetzen könnte.
Ich habe folgende Sensoren zuhause: Aukru 3x 433 MHz Empfänger und Funk- Sende Modul Superregeneration Wireless Transmitter-Modul Einbrecher Alarm 433M receiver module Burglar Alarm.
Wäre super, wenn du mir helfen könntest!
Vielen Dank im Voraus und LG
Ja, wenn du einen Kontakt mit Funksender hast und am Raspberry Pi einen Empfänger schaltest, kannst du das Signal auslesen und daraufhin reagieren.
Ich versuche gerade das hier umzusetzen aber ich weiß nicht worauf ich bei dem Magnetschalter achten muss, er soll ein Signal ausgeben wenn die tür geöffnet wird also benötige ich einen NC Schalter oder? Ich weiß leider auch nicht worauf ich bezüglich der voltzahl achten muss die einzigen Schalter die meiner Vorstellung entsprechen, an denen ich also selber die Kabel anschließen kann haben eine Belastbarkeit von 100V bedeutet das, dass ich diese mit meinem Raspberry nicht betreiben kann?
Stimmt das Schaubild? Woher bekommt die Base des Transistors Ihre Spannung? Spricht laut Schaubild liegt doch auf dem Magnetschalter gar keine Spannung an… oder verstehe ich da was nicht?
Doch: Die weißen Kabel sind „quasi“ verbunden (abhängig vom Magnetzustand).
Ich kann bestätigen, dass das Schaubild falsch ist.
Nur wenn man den Reed Schalter auf 3.3V legt funktioniert sie.
Hat mich auch mehrere Stunden gekostet 😉
@Felix: Könntest du falls möglich korrigieren. Der Rest des Tutorials ist nämlich super und ich hätte es ohne gar nicht hinbekommen!
Jupp, das Schaubild ist falsch. Das Kabel vom Magnetschalter, welches momentan über V3,3 einsteckt ist (und somit auf Ground liegt) gehört rechts neben das Kabel.
Puh… das hat mich zwei Vormittage gekostet. 😉
Ja,stimmt das Schaubild ist falsch. Der Magnetschalter muss auf+.
Nein. Siehe meinen zweiten Kommentar unten.
Die Schaltung so wie sie hier beschrieben ist, mit Transistor klappt bei mir nicht… kommt immer 0 raus.
Wenn ich das ganze weglasse, und nur Reed von 3v3 auf GPIO lege klappt es.
Hi.
Ich wollte programmieren, dass eine LED leuchtet sobald der Magnetkontakt unterbrochen ist. Könnt ihr mir sagen welche Bedingung ich dafür brauche?
Vielen Dank
Susan
Hallo,
macht es einen Unterschied, ob man einen BC547A, BC547B oder BC547C verwendet?
Vielen Dank
Martin
Danke, für mich als als Raspi-Anfänger ist deine Seite ein klasse Einstieg !
Nachdem ich mich weiter eingelesen habe, verblüfft mich nun, dass hier nirgends eine Freilaufdiode parallel zum Magnetschalter diskutiert wird.
… Ganz sicher, dass die nicht sein muss ?
Weiß jemand ob dieses Tutorial auch auf Basis des R. Pi 3 B funktioniert? Bin Neuling auf dem Gebiet. Danke vorab!
Klar, das ist unabhängig von der Pi Version.
Vielen Dank! Dann versuch ich mich mal die Tage an das Thema. Wäre cool wenn du mir noch nen Hinweis geben könntest zwecks forum oder discord´s etc. wo man auch mal doofe Fragen stellen darf. VG
Kann mir eventuell jem. helfen warum ich nen SyntaxError: Invalid Syntax erhalte zu nachfolgendem Code (wie aus dem Beispiel)
———————————————-
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern
MAGNET_GPIO = 17
GPIO.setup(MAGNET_GPIO, GPIO.IN) # GPIO Modus zuweisen
print GPIO.input(MAGNET_GPIO)
———————————————-
Fehler:
Traceback (most recent call last):
File „/home/pi/Desktop/tutorial_pgr.py“, line 7
print GPIO.input(MAGNET_GPIO)
SyntaxError: invalid syntax
Ich danke vorab!
VG
Du nutzt wohl Python 3 und musst dann Klammern nach dem Print setzen.
Bedankt!
Guten Abend zusammen,
ich habe mich in zwischen etwas in das Thema eingearbeitet. Mir fehlt leider noch etwas Input wo ich ggf. zu Methoden, Variablen etc. in Benzug auf den Raspi Infos erhalten könnte. Mein Problem mit nachfolgendem Code wird die Datei (das Programm) nur einmal durchlaufen. Ich hätte gern das es auf Standby ist bis ein Event eintritt. Habe mir gedachte einfach über den Wichtigen Teil ein While True: und dann If GPIO (Änder den Zustand) abzufrange. Hat wer eine Idee, könnte mir helfen und eine Referenz wo ich sowas nachlesen könnte? Danke
Der Code:
Vielen Dank für die super Anleitung, kann so endlich mein Garagentor überwachen, mit den ganzen Funksensoren hat es nicht zuverlässig geklappt. Ich habe nur eine Frage bezüglich des Abstandes der Magneten: die machen ein wenig Probleme wegen den Abständen und ich wollte wie oben beschrieben auf die 5V gehen. Haben alle beschrieben Teile genommen, nur weiß ich nicht, welchen Widerstand ich zwischen GPIO und Transistor-Emitter nehmen soll. Kann mir jemand helfen?
Danke und Gruß
Hallo Leute,
auch wenn das Thema hier schon ziemlich „durchgenudelt“ wurde, für mich ist das Thema noch nicht abgeschlossen. Mein Problem ist, dass ich zwar ein guter Software-Profi bin, aber es mit Hardware nicht so habe. Ich habe zwar versucht die Schaltung mit dem Transistor und den Widerstanden nachzubauen, bin aber leider kläglich gescheitert. Entweder habe ich zu heiß gelötet und der Transistor ist durchgeschmorrt oder ich habe überall Wackelkontakte. Auf jedenfall es funktioniert nicht! Es geht mir darum das Öffnen und Schließen einer Tür zu überwachen und ich möchte es nicht nur an einer Tür machen, sondern an mehreren. Darum brauche ich eine stabile und einfache Schaltung, womit ich den Zustand „Tür auf“ oder „Tür zu“ auslesen kann ohne „Geisterzustände“ abzufragen. Den Tipp mit dem Optokoppler habe ich leider auch nicht verstanden. Zumal es wohl keinen Optokoppler gibt der speziell für den Raspberry Pi gedacht ist, wo man die Pine direkt anschließen kann. Gibt es denn keine fertige Schaltung, die man nur kaufen braucht und direkt an den Raspberry Pi anschließen kann, quasi „narrensicher“? Hat da noch einer einen Tipp?
viele Grüße
Horst Meyer