Benutzer:GpsKarsten/RPI Door Opener: Unterschied zwischen den Versionen
(→Werte) |
K (→Hardware) |
||
| (8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | nutzen des Raspberry Pis zum betätigen des Türsummers | ||
| + | = Hardware = | ||
| + | == Schaltplan == | ||
| + | [[Datei:Schaltplan RPI Door-Opener.svg|thumb|als KiCad Export]] | ||
| + | <code> | ||
| + | |||
| + | PR26MF2xNSZ | ||
| + | +---------+ | ||
| + | (+5V) | | | ||
| + | | -+1 IC1 8+-----o | ||
| + | | +------+ | | | ||
| + | +----| R1 |--+-----i1---+2 | | ||
| + | +------+ | D1 | | | ||
| + | +-|<|--+---+3 6+-----o | ||
| + | | | | | ||
| + | | -+4 5+- | ||
| + | | | | | ||
| + | +------+ | +---------+ | ||
| + | o-----| R2 |------K | ||
| + | +------+ | | ||
| + | | | ||
| + | --- | ||
| + | </code> | ||
| + | bei interesse an den KiCad Dateien bei [[Benutzer:GpsKarsten|mir]] melden | ||
== Werte == | == Werte == | ||
* zu Schaltende Leitung: 15 V Wechselspannung; Strom < 1A | * zu Schaltende Leitung: 15 V Wechselspannung; Strom < 1A | ||
| Zeile 5: | Zeile 29: | ||
** U ~ 1,3V | ** U ~ 1,3V | ||
| − | == | + | * i1 = 20-25mA |
| − | * | + | * R1(5V) = (5V-1.6V)/i1 = hier 150 Ohm => i1 = 22mA |
| + | * R2 = zwischen 1k und 5.2k = hier 3,86k Ohm => ib = TODO | ||
| + | |||
| + | == Teile == | ||
* [http://www.reichelt.de/Solid-State-Relais/S26M-D02/3//index.html?ACTION=3&GROUPID=3298&ARTICLE=15447&SHOW=1&START=0&OFFSET=500& Solid-state-Relais 0,6A] | * [http://www.reichelt.de/Solid-State-Relais/S26M-D02/3//index.html?ACTION=3&GROUPID=3298&ARTICLE=15447&SHOW=1&START=0&OFFSET=500& Solid-state-Relais 0,6A] | ||
| − | |||
* eine Glas-Diode | * eine Glas-Diode | ||
* 150 Ohm | * 150 Ohm | ||
* 3,86 KOhm | * 3,86 KOhm | ||
* [http://www.play.com.br/datasheet/BC547.pdf Bipolar Transistor BC546B] | * [http://www.play.com.br/datasheet/BC547.pdf Bipolar Transistor BC546B] | ||
| + | |||
| + | = Software = | ||
| + | == Python == | ||
| + | * Nachteil - läuft nur als root | ||
| + | |||
| + | <syntaxhighlight lang="python"> | ||
| + | #!/usr/bin/python | ||
| + | import RPi.GPIO as GPIO | ||
| + | import time | ||
| + | |||
| + | def initOpenDoor(): | ||
| + | GPIO.setmode(GPIO.BCM) | ||
| + | GPIO.setup(25, GPIO.OUT) | ||
| + | |||
| + | def OpenDoor(): | ||
| + | GPIO.output(25, GPIO.HIGH) | ||
| + | print("HIGH") | ||
| + | time.sleep(3) | ||
| + | GPIO.output(25, GPIO.LOW) | ||
| + | print("low") | ||
| + | |||
| + | initOpenDoor() | ||
| + | OpenDoor() | ||
| + | GPIO.cleanup() | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | == C == | ||
| + | * nutzen der [http://wiringpi.com/download-and-install/ wiringPi lib] | ||
| + | * [https://projects.drogon.net/raspberry-pi/wiringpi/pins/ pinbelegung für die lib] | ||
| + | |||
| + | <syntaxhighlight lang="c"> | ||
| + | #include <stdio.h> | ||
| + | #include <wiringPi.h> | ||
| + | //gpio 25 | ||
| + | #define DOOR 6 | ||
| + | |||
| + | int main (void) { | ||
| + | printf ("Raspberry Pi - Door Opener\n"); | ||
| + | |||
| + | if (wiringPiSetup () == -1) | ||
| + | return 1; | ||
| + | |||
| + | pinMode (DOOR, OUTPUT); | ||
| + | |||
| + | |||
| + | digitalWrite (DOOR, HIGH); | ||
| + | // On | ||
| + | printf ("on\n"); | ||
| + | delay (3000) ; //in ms | ||
| + | |||
| + | digitalWrite (DOOR, LOW); | ||
| + | // Off | ||
| + | printf ("off\n"); | ||
| + | |||
| + | return 0 ; | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | setzten des [http://en.wikipedia.org/wiki/Sticky_bit Sticky Bits] um das Programm als normaler User ausführen zu können | ||
| + | |||
| + | sudo chmod +s program | ||
Aktuelle Version vom 18. September 2013, 11:00 Uhr
nutzen des Raspberry Pis zum betätigen des Türsummers
Inhaltsverzeichnis
Hardware
Schaltplan
PR26MF2xNSZ
+---------+
(+5V) | |
| -+1 IC1 8+-----o
| +------+ | |
+----| R1 |--+-----i1---+2 |
+------+ | D1 | |
+-|<|--+---+3 6+-----o
| | |
| -+4 5+-
| | |
+------+ | +---------+
o-----| R2 |------K
+------+ |
|
---
bei interesse an den KiCad Dateien bei mir melden
Werte
- zu Schaltende Leitung: 15 V Wechselspannung; Strom < 1A
- verwendes Solid-State-Relais mit 0,6A Schaltstrom
- HIGH: I ~ 22mA LOW: I < 0,1mA
- U ~ 1,3V
- i1 = 20-25mA
- R1(5V) = (5V-1.6V)/i1 = hier 150 Ohm => i1 = 22mA
- R2 = zwischen 1k und 5.2k = hier 3,86k Ohm => ib = TODO
Teile
- Solid-state-Relais 0,6A
- eine Glas-Diode
- 150 Ohm
- 3,86 KOhm
- Bipolar Transistor BC546B
Software
Python
- Nachteil - läuft nur als root
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
def initOpenDoor():
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT)
def OpenDoor():
GPIO.output(25, GPIO.HIGH)
print("HIGH")
time.sleep(3)
GPIO.output(25, GPIO.LOW)
print("low")
initOpenDoor()
OpenDoor()
GPIO.cleanup()
C
- nutzen der wiringPi lib
- pinbelegung für die lib
#include <stdio.h>
#include <wiringPi.h>
//gpio 25
#define DOOR 6
int main (void) {
printf ("Raspberry Pi - Door Opener\n");
if (wiringPiSetup () == -1)
return 1;
pinMode (DOOR, OUTPUT);
digitalWrite (DOOR, HIGH);
// On
printf ("on\n");
delay (3000) ; //in ms
digitalWrite (DOOR, LOW);
// Off
printf ("off\n");
return 0 ;
}
setzten des Sticky Bits um das Programm als normaler User ausführen zu können
sudo chmod +s program

