Benutzer:GpsKarsten/RPI Door Opener: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
K (desc)
K (Software - c code)
Zeile 48: Zeile 48:
 
* nutzen der [http://wiringpi.com/download-and-install/ wiringPi lib]
 
* nutzen der [http://wiringpi.com/download-and-install/ wiringPi lib]
 
* [https://projects.drogon.net/raspberry-pi/wiringpi/pins/ pinbelegung für die 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>

Version vom 7. September 2013, 12:32 Uhr

nutzen des Raspberry Pis zum betätigen des Türsummers

Hardware

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

Bestellte Teile

Teile aus der Kramkiste

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

<syntaxhighlight lang="c">

  1. include <stdio.h>
  2. include <wiringPi.h>

//gpio 25

  1. 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>