Benutzer:GpsKarsten/RPI Door Opener
Aus Stratum 0
< Benutzer:GpsKarsten
Version vom 11:00, 18. Sep. 2013 von GpsKarsten (Diskussion | Beiträge)
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