Aansluitschema om bedraade 12v pir aan te sluiten op een ESP

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik wil een 12v pir aansluiten op een ESP8266 device. Je kan deze uiteraard op een digitale ingang aansluiten middels een pull-up resistor. Maar indien je hem op een analoge input aansluit kan je meerdere statussen herkennen middels 2 draden.

Nu is mijn vraag of het volgende aansluitschema correct is?

Afbeeldingslocatie: https://tweakers.net/i/Oa4wLU2FuW4v4VEJIbxp3-h0WXQ=/800x/filters:strip_icc():strip_exif()/f/image/E8giZIAOls1pKJKafQqXnseH.jpg?f=fotoalbum_large


Ook zit op mijn een pir een optie om de led op afstand aan of uit te zetten. Door deze aansluiting te verbinden op de ground van de 12 voeding is de led geactiveerd. Indien deze connectie niet verbonden is met de 12 ground is de led niet geactiveerd.

Het gaat om deze pir: Satel SLIM-PIR https://www.google.com/ur...Vaw09cXZdjF-cM2fuSVNuvCWm

Nu vraag ik me af hoe ik dat op de ESP kan verbinden aangezien die een andere voeding gebruikt dan de 12v voeding van de pir.

1 optie is om een relais te gebruiken dat werk sowieso. Maar liever gebruik ik geen mechanisch onderdeel hiervoor.

Een andere optie is om een solid state relais te gebruiken. Maar nou zag ik dat die alleen voor AC zijn en niet voor DC.

Ik heb niet veel electronica kennis maar ik dacht ergens gezien te hebben dat het ook met een mosfet/triac zou kunnen. Heeft iemand daar wat meer informatie over en hoe dat aangesloten zou moeten worden?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Inktvlek
  • Registratie: December 2020
  • Niet online

Inktvlek

Overal veel verstand van

<knip> GoT is eigenlijk wel een cursuslokaal. Je komt hier om van elkaar te leren en eigen inzet wordt beloont. Heb je inhoudelijk niets te melden mag je ook buiten het lokaal blijven staan / niet reageren :)

[ Voor 89% gewijzigd door Septillion op 24-06-2022 15:10 ]


Acties:
  • 0 Henk 'm!

  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 26-09 21:04
wat precies wil je uitlezen (ik neem aan signalen van de PIR naar de D1 mini toe)?

Wat is het bereik van de analoge uitsturing die je wilt uitlezen? waarom zit je pin 1-2-3-4 middels weerstanden aan elkaar te knopen?

Simpelste, als het geheel spanning gestuurd een analoog signaal verzend, is om een weerstandsdeling te gebruiken om het grotere uitsturend bereik te verlagen naar het lees bereik van de D1. De common zal je dan aan elkaar moeten hangen inderdaad zodat beide dezelfde referentie gebruiken.

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Als ik het antwoord zou weten, zou ik het hier niet vragen!

Acties:
  • 0 Henk 'm!

  • Inktvlek
  • Registratie: December 2020
  • Niet online

Inktvlek

Overal veel verstand van

<knip>

[ Voor 92% gewijzigd door Septillion op 24-06-2022 15:11 ]


Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik wil de verschillende status uitlezen, zoals men dat ook hier doet:

Het enige verschil is dat dat op basis van een Arduino is die op 5 volt werkt, terwijl mijn Wemos D1 Mini op 3,3 volt werkt.

De 4 pinnen worden met weerstanden aan elkaar verbonden zodat je de verschillende statussen kan herkennen. Dit is hoe het altijd aangesloten wordt in deze pirs.

De Wemos D1 mini heeft 1 analoge input(3.2V max input)

Acties:
  • 0 Henk 'm!

  • Inktvlek
  • Registratie: December 2020
  • Niet online

Inktvlek

Overal veel verstand van

<knip>

[ Voor 93% gewijzigd door Septillion op 24-06-2022 15:11 ]


Acties:
  • 0 Henk 'm!

  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 26-09 21:04
Ah, ik zie wat ze gedaan hebben. Ze maken een spanningsdeler waarmee je verschillende spanningen kan uitlezen tussen 0 en 5V. Als ik het goed zie (maar ik ken die PIR verder niet, maar dit kun je ook meten) zetten ze over het geheel 5 volt vanuit de Arduino over de poorten. Als vervolgens relais 1, 2 of 1 en 2 "gesloten" worden, krijg je andere spanningswaardes door de spanningsdeler. Op zich hoef je aan de setup dan niets te veranderen, maar in de code zal de spanning wel aangepast moeten worden (je deelt immers tussen 0 en 3,3 en niet tussen 0 en 5). Door een multimeter te gebruiken kan je dit aardig snel testen en meten welke waardes je nodig hebt. Je kan dan ook kijken of de relais juist open of dicht gaan bij een bepaalde staat.

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Okay bedankt dan ga ik het zo live testen en hopen dat er maar niks door fikt :)

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 00:07

Septillion

Moderator Wonen & Mobiliteit
Meer iets voor MME => verplaatst

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 00:07

Septillion

Moderator Wonen & Mobiliteit
En inhoudelijk, de datasheet is aardig maar niet 100%... Op pagina 3 lijken ze te zeggen dat de uitgang op NC van een relais komt. Het zijn ook twee contacten, dan zou suggereren dat deze contacten potentiaalvrij schakelen. Ik zie alleen geen relays op het bord maar zou gedaan kunnen zijn met een AC optocoupler. De term NC zou Normally Connected suggereren.

De temper is volgens mij gewoon een micro schakelaar, waarschijnlijk ook NC.

Nu heeft de handleiding het erover dat je hem al single wire (+ een return) moet kunnen aansluiten als je de 2EOL (End Of Line) jumpers plaatst. Volgens mij heb je dan iets als:
Afbeeldingslocatie: https://static.helpjuice.com/helpjuice_production/uploads/upload/image/4806/direct/1596516229817-1596516229817.png
Alleen spreekt de handleiding van 2x 1.1k en zit het ingebakken.

Maar of je nu extern weerstanden plaatst of de interne EOL weerstanden gebruikt zal je er een spanningsdeler mee kunnen bouwen. Maar dan moet je wel een verbinding naar zowel GND als een spanning hebben. En dat is een beetje waar ik de tekening en de forum post niet geloof... Met alleen een verbinding tussen een analog in en GND kan je gewoon niets meten...

Voor je de boel aan sluit aan een ESP of Arduino zou ik de boel dus eens nameten. Zou eens beginnen met kijken of de uitgang van de PIR (NC contacten) echt potentiaalvrij zijn. Ofwel, van die contacten naar pir GND zou je geen spanning mogen zien (met of zonder beweging). En daarna met de meter op continuety kijken of de contacten in rust inderdaad verbonden zijn en verbroken worden als er beweging is. Als laatste zou je dan moeten kunnen meten of je de 1,1k weerstanden kan meten zoals in mijn plaatje. Om ze echt als 1k1 te meten zal je beweging moeten detecteren omdat anders de twee NC contacten verbonden zijn.

En voor de led, als je deze naar GND moet trekken om aan te doen dan is het makkelijkste om een common GND te maken. Of wel, de GND van de ESP en de 12V-/GND naar de aan elkaar koppelen. Dan kan je een simpele NPN transistor gebruiken vanaf de GPIO om de led te schakelen. Iets als
Afbeeldingslocatie: https://i.stack.imgur.com/PcVSf.png
Maar zou ik de super gangbare BC547 pakken en een 1k base weerstand.

Acties:
  • 0 Henk 'm!

  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 26-09 21:04
Ik vermoed (cq. herinner me) dat de wemos D1 ook nog pull up/down weerstanden heeft op het bordje zelf. Ik kon in de schakeling dat deel van de spanningsdeler ook niet zo snel gevonden krijgen.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 00:07

Septillion

Moderator Wonen & Mobiliteit
@Aragnut Mm, een WeMos heeft inderdaad nog een spanningsdeler en dus effectief een pull down op de ingang. Kan je misschien wel mee rekenen maar makkelijker wordt het er niet van.

Maar in de blog post gebruiken ze een Arduino Uno, misschien dat het technisch mogelijk is de pull up aan te zetten terwijl je hem in analog mode hebt staan (maar dacht het niet) maar die weerstand is echt afhankelijk van de stand van de maan en de hoek van je tong :+ Zou dus zeker externe weerstand nog aanraden.

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik heb het inmiddels werkend. Op de Wemos D1 mini moest ik inderdaad ook de ground connecten.

Klopt het ook hoe ik die BC547 ingetekend heb?

Afbeeldingslocatie: https://tweakers.net/i/-Y_fzhL1oU8BV4-YCCeYXebPO2g=/800x/filters:strip_icc():strip_exif()/f/image/1LgDhCgyuO4ACpTc8RXmUgAX.jpg?f=fotoalbum_large


Echter ik heb nog wel wat moeite om de verschillende statussen te herkennen (soms geeft die even een keer een verkeerde door):

- short
- normaal
- tamper
- alarm
- alarm + tamper
- cut


Nu heeft de Wemos D1 Mini een 10-bit resolution ipv een 12-bit resolution op een ESP32. Zou daarmee beter het onderscheid gemaakt kunnen worden?

Ook heb ik de weerstand waardes overgenomen van voorbeeldjes waarbij de Arduino gebruikt werd en die dus met 5V werkt ipv bij mij 3,3 V. Moeten daarom de weerstand waardes aangepast worden?


Ik kom op de andere vragen nog terug van potentiaal vrij contact en ook van het eventueel gewoon gebruiken van de 2 ingebouwde weerstanden.

Acties:
  • +1 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 00:07

Septillion

Moderator Wonen & Mobiliteit
Zo lijkt me goed als je extere weerstanden wilt gebruiken. De BC547 staat ook prima.

En 10-bit (= 1024 levels) lijkt me meeeeeer dan genoeg om 6 levels te herkennen :D Denk vooral dus dat je moet kijken of je wat ruimere marges kan maken.

Op zich hoeven de waardes niet aangepast te worden ook al weet ik niet hoe slim ze exact gekozen zijn. Welke levels + marge heb je nu voor de statussen?

Nouwja, als het zo werkt zal het allemaal wel potentiaalvrij zijn. Jij durft schijnbaar meer dan ik om het zomaar aan te sluiten en niet te checken of het misschien 12V uit stuurt :+

Acties:
  • 0 Henk 'm!

  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 26-09 21:04
laat hem via de seriele uitgang eens de waardes uitpoepen en maak dan "kortsluiting" over de verschilllende pinnen aan de PIR kant. Je kan dan kijken hoe erg de waardes schommelen (en mischien hoe snel ze stabiliseren). Het kan ook nog zijn dat je veel te snel meet omdat de WeMos hoger klokt dan de Arduino standaard (op te lossen met running average oid?).

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik heb vanochtend wat lopen testen en ben tot deze waardes gekomen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void loop(void)
{
  pirState = analogRead(analogInPin);
 
  int sensorState = STATE_UNKNOWN;
  String sensorStateDescription = "";

  if (pirState >= 0 && pirState <= 100)             // Meting: van 4 t/m 14
  {
    sensorState = STATE_SHORT;
    sensorStateDescription = "short";
  } 
  else if (pirState >= 101 && pirState <= 450)      // Meting: van 336 t/m 387
  {
    sensorState = STATE_NORMAL;
    sensorStateDescription = "normaal";
  } 
  else if (pirState >= 451 && pirState <= 600)      // Meting: van 501 t/m 584
  {
    sensorState = STATE_TAMPER;
    sensorStateDescription = "tamper";
  } 
  else if (pirState >= 601 && pirState <= 684)      // Meting: van 641 t/m 675
  {
    sensorState = STATE_ALARM;
    sensorStateDescription = "alarm";
  } 
  else if (pirState >= 685 && pirState <= 900)      // Meting: van 700 t/m 758
  {
    sensorState = STATE_ALARM_TAMPER;
    sensorStateDescription = "alarm + tamper";
  } 
  else if (pirState >= 901)                         // Meting: 1005 t/m 1024
  {
    sensorState = STATE_CUT;
    sensorStateDescription = "cut";
  } 
  
  Serial.println("Sensor RAW: " + String(pirState) + " / State: " + sensorStateDescription); 

  delay(250);
}


Nou zit 'alarm' en 'alarm+tamper' nog best dicht bij mekaar.

Ik kreeg op een gegeven moment nog een verkeerde waarde en heb nog iets getweaked. Nu ga ik het ff verder aan kijken of die nu echt de juiste statussen geeft.

Misschien een domme vraag: maar zijn deze waardes ook met een formule te bereken of is het altijd een kwestie van zorgen dat het apparaat een tijd lang in een specifieke status staat en dan de min en max waardes vast houden van deze status?

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik zit dus nog te testen. Nu met de pir open.

Je hebt dan dus 2 mogelijkheden:

- tamper
- tamper + alarm

Op een gegeven moment krijg ik dit:

Afbeeldingslocatie: https://tweakers.net/i/bd_SUu0ihARcl9zMIWavKVlXMqQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/RTXXgG1MLT0ZTK6igzqlCNjT.png?f=user_large

Je ziet dus een waarde van 680 met status ALARM.

Deze status mag die dus nooit hebben omdat de behuizing continu open ligt. Nou moet ik dus weer die min waarde van 'ALARM + TAMPER' gaan verlagen en dus ook de max waarde van ALARM.

Maar het zit vreselijk dicht bij mekaar. Hoe kan ik dit verschil vergroten?

Acties:
  • 0 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 24-09 23:04
domoti schreef op zaterdag 25 juni 2022 @ 13:03:
Ik zit dus nog te testen. Nu met de pir open.

Je hebt dan dus 2 mogelijkheden:

- tamper
- tamper + alarm

Op een gegeven moment krijg ik dit:

[Afbeelding]

Je ziet dus een waarde van 680 met status ALARM.

Deze status mag die dus nooit hebben omdat de behuizing continu open ligt. Nou moet ik dus weer die min waarde van 'ALARM + TAMPER' gaan verlagen en dus ook de max waarde van ALARM.

Maar het zit vreselijk dicht bij mekaar. Hoe kan ik dit verschil vergroten?
Is het niet gemakkelijker om de deel code die de alarm+tamper activeerd te verwijderen in plaats van waardes lopen veranderen?

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik snap je opmerking niet helemaal?

Je bedoelt de status 'ALARM + TAMPER' helemaal verwijderen uit het if statement?

Acties:
  • 0 Henk 'm!

  • jbhc
  • Registratie: Juli 2007
  • Laatst online: 26-09 17:30
Je kunt toch ook gewoon de weerstand waarden wat verder uit elkaar leggen?

Acties:
  • 0 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik heb het inmiddels wat gewijzigd. Ik gebruik nu 2 ingebouwde EOL weerstanden inclusief 1extra eigen weerstand.

Afbeeldingslocatie: https://tweakers.net/i/3lqTzXCVzuun-q1JrFLxPe-HdyE=/x800/filters:strip_icc():strip_exif()/f/image/5ds4SyPj0dambmggFB1H8p1Z.jpg?f=fotoalbum_large

Eerst gebruikte ik optie A (jumpers op NC mode op de pir): dus allemaal eigen weerstanden.

Nu gebruik ik optie B (jumpers op EOL mode op de pir): deze heeft 2 ingebouwde weerstanden van 1.1K en over de tamper heb ik zelf een 2.2 K weerstand geplaatst.

Nu lijkt het er op dat de verschillende statussen beter te ondersheiden zijn.

Acties:
  • +1 Henk 'm!

  • domoti
  • Registratie: Januari 2022
  • Laatst online: 26-09 19:08
Ik heb inmiddels de BC547 aangesloten en het werkt perfect.

Bedankt!
Pagina: 1