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


von Sebastian G. (gilly) Benutzerseite


Angehängte Dateien:

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)


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


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


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)


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)


Lesenswert?

Funktioniert das überhaupt mit dem falschen Transistor?

von Sebastian G. (gilly) Benutzerseite


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:

Lesenswert?

Also etwa so?

von batman (Gast)


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)


Lesenswert?

Ok, jetzt stehts da, also NPN.

von batman (Gast)


Lesenswert?

Allerdings der SF816 ist doch ein PNP?!

von Sebastian G. (gilly) Benutzerseite


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)


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


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:

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:

Lesenswert?

Sebastian G. schrieb:
> Ich bin eigentlich Softwareentwickler

Ich verstehe...

von Sebastian G. (gilly) Benutzerseite


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)


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


Lesenswert?

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

von HildeK (Gast)


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)


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)


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:

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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.