Forum: Mikrocontroller und Digitale Elektronik HC-SR501 + Shelly1, kann man das so machen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sebastian G. (gilly) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

Ich möchte folgendes erreichen. Der Bewegungssensor HC-SR501 soll bei 
Bewegung den Schalter-Pin des Shelly(1) auf GND ziehen, also eine 
Schaltung auslösen.

Mein erster Versuch war mit einem 5V SSR Relais (das schon bei 3V 
schaltet), leider hatte der Sensorausgang zu wenig mA. Das Shelly selbst 
liefert auch 3V, also hab ich als nächstes versucht mit einem Transistor 
die 3V des Shellies zu verwenden um das Relais zu schalten, das ging 
aber nur Invers (also das eine Bewegung die SW<->GND unterbricht). Ich 
vermute es geht nicht, da Source und Gatespannung identisch sind.

Ich bin eigentlich Softwareentwickler, brauche aber für ein Projekt 
einen MQTT fähigen Bewegungsmelder, daher das Projekt.

Meine Schaltung funktioniert soweit hatte Sie mehrere Stunden im 
Testaufbau.
Ich kann mir auch logisch erklären warum, sobald am Gate 3V anliegt, 
fließen diese zusammen mit dem Source nach GND.

Meine Frage: kann ich das so machen, oder sollte ich noch irgendwas 
verändern oder anpassen?

von Heinz R. (heijz)


Bewertung
-1 lesenswert
nicht lesenswert
von hinten durch die Brust ins Auge :-)


Keine Ahnung ob das geht, dazu müsste man mehr über den Shelly wissen

Der Shelly ist für den Anschluss direkt an 230V gedacht, kann also sein 
das Du 230V an Deinem 12-Netzteil hast, der Gefahr bist DU Dir bewusst?

Besser nur ein 5V-Netzteil, wozu müssen in der Schaltung 230V sein?

Auch hier kann ich wieder nur ESPEasy empfehlen, macht genau das was Du 
willst, kannst den Bewegungsmelder direkt anschließen, unterstützt MQTT

Den Sr501 kannst Du übrigens sogar mit 3,3V betreiben, die musst halt 
hinter dem Spannungsregler einspeisen



(nein, ich bekomme keine Provision, bin einfach begeistert...)

von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wo siehst Du denn da 230V in meiner Schaltung?

Der Shelly 1 kann mit 230V AC, 30-50V DC oder wenn man den Jumper 
umsteckt mit 12V DC Betrieben werden.

Das passt also schon.

https://shelly.cloud/documents/user_guide/shelly_1.pdf

: Bearbeitet durch User
von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
ESPEasy habe ich aber auch auf dem Schirm gehabt. Verwende ich vieleicht 
beim nächsten mal. Ich muss noch einen CO2 Sensor ins Netz bringen, der 
wird über USB ausgelesen, vieleicht wäre das mal ein Einsatzgebiet, 
kleiner als ein PiZero nehm ich an.

von Mike J. (linuxmint_user)


Bewertung
0 lesenswert
nicht lesenswert
Dein NPN-Tranistor benötigt zwei Widerstände, einen um den Strom in die 
Basis zu begrenzen (10 bis 47kOhm) und einen von der Basis nach GND 
(etwa 100kOhm).

von Georg M. (g_m)


Bewertung
0 lesenswert
nicht lesenswert
Funktioniert das überhaupt mit dem falschen Transistor?

von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Das funktioniert erstaunlich gut so wie es aufgebaut ist.

Vielen Dank für den Hinweis, die Widerstände werde ich einbaun.

: Bearbeitet durch User
von Sebastian G. (gilly) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also etwa so?

von batman (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was ist das denn nun für ein Transistortyp? Für einen NPN (hat aber kein 
Gate) brauchst hier nur den Basiswiderstand, da der SR501 einen 
CMOS-Ausgang hat aber wenn das zuverlässig funktionieren soll, sollte 
man Widerstände auch nicht raten sondern ausrechnen, so daß die 
Spezifikationen der Teile eingehalten werden. Dazu müßte man u.a. den 
Schaltstrom vom Shelly wissen. Für bis zu 10mA Schaltstrom, 0.5mA aus 
dem SR501 und üblichem Universaltransistor wäre das z.B. ein 
4,7k-Widerstand.

von batman (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ok, jetzt stehts da, also NPN.

von batman (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Allerdings der SF816 ist doch ein PNP?!

von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich hab den Transistor aus einer Kiste hier genommen. Kenne die 
technischen Daten nicht. Was wäre denn ein Universaltransistor? Dann 
kann ich einen passenden besorgen.

Aber Du hast Recht, das ist ein PNP und kein NPN.... ist mir ein Fehler 
unterlaufen. Wie gesagt Funktionieren tut die Schaltung (bisher ohne 
Widerstände - hab das mal 12h laufen lassen).

: Bearbeitet durch User
von Mike J. (linuxmint_user)


Bewertung
0 lesenswert
nicht lesenswert
Sebastian G. schrieb:
> Also etwa so?

Nein, der 100kOhm Widerstand liegt jetzt an dem Emitter und GND an.

Er muss aber von der Basis nach GND geschaltet sein.

Der SF816 scheint gar kein NPN-Transistor zu sein.
https://www.web-bcs.com/js/geoms/RF/SF/SF816.jpg

Besorge dir einen BC547C oder nimm irgend einen anderen NPN-Transistor 
den du in deiner Grabbelkiste findest.

von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich glaub solche müsste ich noch haben. Ich setzt mich morgen mal ran. 
Vielen Dank für die Hilfe erstmal.

von Sebastian G. (gilly) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So einen BC547C habe ich leider nicht gefunden, ich habe es mit einem 
BC547B versucht und einem 100kOhm zwischen Basis und GND, aber das 
Schaltergebnis war nicht sauber.

Beim Shelly kann man einstellen nach wieviel ms ein Schaltimpulse als 
lang erkannt wird. Ich habe das auf 5000ms gestellt und bei einer 
Bewegung vor dem Sensor wird "zufällig" ein langer oder ein kurzer 
Schaltimplus erkannt. Ich habe an der Basis auch nur noch 0,7V gemessen.

Mit einem BC327 funktioniert es sauber. An der Basis liegen bei einer 
Bewegung 3,3V (ohne Widerstand) bzw. 3,2V (mit 100kOhm Widerstand) an. 
Der Shelly erkennst sauber kurze Schaltimpulse.

Die Schaltung wie im Bild, also mit 100kOhm Widerstand ist dann OK 
soweit?
Oder fehlt noch ein Widerstand?

: Bearbeitet durch User
von Georg M. (g_m)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Sebastian G. schrieb:
> Ich bin eigentlich Softwareentwickler

Ich verstehe...

von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank erstmal.

Ich hab das jetzt so aufgebaut und dabei ist mir aufgefallen, das ich im 
Shelly noch "reverse input" an hatte. Nachdem ich das ausgeschaltet habe 
zeigt er mit Bewegungen korrekt als kurze Schaltimpulse an.

Ich habe jetzt den BC547B verwendet. Ohne Bewegung liegen etwa 170mV an 
der Basis an, bei Bewegung knapp 700mV es fließen dabei knapp 240µA.

Noch irgendwas das ich messen sollte, bevor ich das auf Lochstreifen 
löte?

: Bearbeitet durch User
von Georg M. (g_m)


Bewertung
0 lesenswert
nicht lesenswert
Sebastian G. schrieb:
> Ohne Bewegung liegen etwa 170mV an der Basis an

Viel zu viel. Etwas ist nicht ganz in Ordnung. Woher kommt diese 
Spannung?

Der unbelastete Output vom PIR-Modul muss liefern:
ON:  3.3V
OFF: 0.0V

von Sebastian G. (gilly) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Du hast völlig recht. Ich hab mich da verlesen. 0.19 mV sind es ohne 
Bewegung.

von HildeK (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Sebastian G. schrieb:
> So einen BC547C habe ich leider nicht gefunden, ich habe es mit einem
> BC547B versucht und einem 100kOhm zwischen Basis und GND, aber das
> Schaltergebnis war nicht sauber.

Der BC547B geht genauso. Man muss ihn nur richtig anschließen - nicht 
mit dem Kollektor an GND!

Und irgendwelche Widerstände kann man sich sparen, die SR-501 Module 
haben einen 1k oder 2k2 Serienwiderstand auf der Platine, der IC kann 
5mA Push-Pull treiben.
Das kann man aber leicht kontrollieren: vom mittleren Pin muss eine 
Leitung zum Pin 2 des BISS0001 gehen und dazwischen ist direkt rechts 
neben dem Steckverbinder ein 1k Widerstand (zumindest bei meinem 
Exemplar). Das könnte man auch einfach mit dem Ohmmeter ausmessen.

Sebastian G. schrieb:
> An der Basis liegen bei einer
> Bewegung 3,3V (ohne Widerstand) bzw. 3,2V (mit 100kOhm Widerstand) an.
> Der Shelly erkennst sauber kurze Schaltimpulse.
An der Basis kann nur 0V bei AUS oder ca. 0.7V bei EIN anliegen. Ob mit 
oder ohne Widerstand.
Dein erstes Bild im Eröffnungspost war richtig, auch alles richtig 
angeschlossen, auch der Transistor ist richtig als NPN eingezeichnet, 
nur wurde der falsche Transistor verwendet. Es muss ein NPN sein, der 
alte DDR-Transistor ist ein PNP.

von Georg M. (g_m)


Bewertung
0 lesenswert
nicht lesenswert
HildeK schrieb:
> Und irgendwelche Widerstände kann man sich sparen, die SR-501 Module
> haben einen 1k oder 2k2 Serienwiderstand auf der Platine

Ja, dieses PIR-Modul hat einen 1k-Widerstand am Ausgang. Aber ein 
anderes Modul vielleicht nicht.
Wenn man also eine saubere universelle Lösung machen möchte, sollte man 
die Widerstände doch einplanen.

von Mike J. (linuxmint_user)


Bewertung
0 lesenswert
nicht lesenswert
Die SR-501 Module haben einen 1k Serienwiderstand auf der Platine.

Braucht sein "shelly" nun einen Spannungsimpuls oder einen Stromimpuls 
um an dem Eingang etwas zu detektieren?

Hat der Eingang eine PullUp auf 12V oder arbeitet der Eingang mit einer 
niedrigeren Spannung (5V, 3,3V oder 1,8V)?
Das User-Manual gibt dazu nichts her.

von Sebastian G. (gilly) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
laut Zeichnung wird der SW auf GND gezogen. Dabei kann man im Shelly 
einstellen ob kurz, lang oder jeder Zustandswechsel (edge) als 
"Schaltimpuls" gewertet werden soll, usw...

Ich möchte den "Detached Switch"-Modus nehmen, da ich das Relais nicht 
schalten will.

Auf den Debug-Pins am Shelly liegen 3V3 an, ich nehme an, das ist die 
interne Spannung mit der, der Shelly arbeitet.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.