Kategorie: Spiegel

Python Unklarheit

Vielleicht hat hier ja irgendjemand ein bisschen mehr Ahnung von Python als ich – vermutlich nicht sonderlich schwer – und kann mir daher erklären, wieso das erste Skript nicht funktioniert, das Zweite hingegen schon. Biteule und ich sind nur soweit gekommen, dass es wohl irgendwas mit dem Threading der GPIO-Callbacks zu tun haben muss aber was jetzt genau das Problem ist, verstehen wir beide nicht. Es ist nicht so, dass zerorpc im ersten Skript beim Aufruf nicht vorhanden ist, immerhin kann es einen Fehler ausgeben (LostRemote: Lost remote after 10s heartbeat), wieso also macht es trotzdem einen Unterschied, an welcher Stelle ich es importiere?

import RPi.GPIO as GPIO
import time
import zerorpc

nodebridge = zerorpc.Client()
nodebridge.connect("tcp://127.0.0.1:4242")

GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.IN)

def switchview(switchview_taster):
    nodebridge.switchview()

try:
    GPIO.add_event_detect(27, GPIO.FALLING, callback=switchview, bouncetime=600)
    while 1:
        time.sleep(100)
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.IN)

def switchview(switchview_taster):
    import zerorpc
    nodebridge = zerorpc.Client()
    nodebridge.connect("tcp://127.0.0.1:4242")
    nodebridge.switchview()

try:
   GPIO.add_event_detect(27, GPIO.FALLING, callback=switchview, bouncetime=600)
   while 1:
      time.sleep(100)
var io = require('socket.io').listen(1234);
var zerorpc = require("zerorpc");

var pythonbridge = new zerorpc.Server({
  switchview: function(reply) {
    io.sockets.emit('switchview');
    reply(null);
  }
});

pythonbridge.on("error", function(error) {
  console.error("RPC server error:", error);
});

pythonbridge.bind("tcp://0.0.0.0:4242");

UPDATE 12.02.15 – 14:51:

Der magische Spiegel – EMV Störungen

Kleines Zwischenupdate! Mein Onkel hat mir ein Spiegelmuster besorgt, so sieht das ganze mit Glas davor aus 🙂
Spiegelmuster

Wie es aussieht, habe ich ein paar Probleme mit der elektromagnetischen Verträglichkeit meiner Komponenten…
Ich habe vor kurzem einen Taster zum herunterfahren des Spiegels eingebaut, der folgendermaßen funktioniert: Ein GPIO-Pin ist ständig auf 3.3V gesetzt, wenn ich den Taster drücke, wird der Pin geerdet und geht auf 0V. Ein Pythonskript bemerkt das und fährt den Raspberry herunter. Seltsamerweise passiert das auch jedes mal, wenn der Bewegungsmelder meinen Monitor anschaltet. Ich dachte zunächst irgendetwas stimmt mit meiner Schaltung nicht und überlegte daher, zusammen mit meinem Onkel, wie die 230V des Monitors den Pi über das Relais beeinflussen könnten. Eine andere Überlegung war, dass der Monitor zuviel Strom zieht und deswegen irgendwie kurz die 3.3V zusammenbrechen- wieso auch immer – da es, wie ich später bemerkt habe, auch passiert, wenn ich den Monitor nicht über das Relais anschließe.

alte Lampe
Gerade habe ich dann aber diese alte Lampe geholt, da ich etwas Licht gebraucht habe, um richtig beurteilen zu können, wie es sich mit der Reflektivität und der Durchlässigkeit verhält, wenn man den Spiegel normal verwendet. Naja. Mit dem, was dann passiert ist, habe ich nicht so ganz gerechnet…
Jedes mal, wenn ich die Lampe entweder ein oder aus schalte (und sie an einer bestimmten Stelle steht), geht der Monitor für 2 Sekunden aus, auf den Raspberry Pi, scheint sie keine Auswirkung zu haben aber es würde nahe liegen, dass es sich bei dem anderen Problem, um etwas ähnliches handelt…

UPDATE 22:22
Ich habe noch ein bisschen mit der Lampe oder besser ihrem Kabel experimentiert. Wenn ich das Kabel über den Pi hänge, passiert beim Anschalten das Selbe, wie beim Einschalten des Monitors. Es liegt also vermutlich tatsächlich an irgendwelchen Abstrahlungen der Stromkabel.

Der magische Spiegel – Raspberry Pi

Ich bin momentan mit einem kleinen Projekt beschäftigt und dachte ich schreibe daher einfach mal wieder einen Artikel! 🙂

In meinem Zimmer steht seit geraumer Zeit ein DVI-Monitor herum. Er war von Anfang an mit einem Raspberry Pi verbunden aber hatte immer wieder wechselnden Aufgaben. Zu beginn hatte ich eine XBMC Installation darauf und benutzte den Bildschirm zum Filme schauen und Musik hören mit meiner Anlage. Danach hatte ich mal den Plan ihn als Informationskiosk einzusetzen, irgendwann fand ich es dann aber doch etwas seltsam und unnötig ein Display herumstehen zu haben, das nur Informationen anzeigt (mal abgesehen davon, dass ich sowieso nicht wirklich wusste, was ich darauf eigentlich anzeigen sollte), also funktionierte ich das Setup wieder in ein Mediencenter um.

Vor kurzem habe ich dann – auf der Suche nach Raspberry Pi Projekten – den „Magischen Spiegel“ von Michael Teeuw wiederentdeckt und ganz spontan beschlossen mir auch so einen zu bauen. Ich habe also das Gehäuse des Monitor auseinandergeschraubt und angefangen zu überlegen, wie ich den Pi am besten darauf unterbringen konnte, an Michaels Interface habe ich auch noch ein bisschen etwas verändert. Das Original zeigte zufällige Komplimenten aus einer Liste, da ich aber eher Tageszeit bezogene Texte wollte, habe ich diese Funktion noch schnell eingebaut (meine erste Git-Pull-Requests; yeah!).

Ich hatte ein bisschen bedenken einen Bildschirm im Zimmer zu haben, der rund um die Uhr läuft, selbst, wenn keiner da ist, der überhaupt darauf schauen könnte, also habe ich mir ein Relais und einen Bewegungsmelder bestellt und ein kleines Pythonskript geschrieben, das den Monitor nur anschaltet, wenn sich auch etwas bewegt; Jonathan vom Studio Einz hat mir währenddessen den benötigten Mini-Schaltkreis zusammengelötet, der, mit den ca. 3 Volt der GPIO-Pins, den 5V Stromkreis für das Relais aktiviert (Man beachte die wunderschöne LED! Wir hatten leider keine Diode zur Hand :D)

Transistor Board

Relais

Bewegungsmelder

Raspberry Pi

Was manche FRITZ!Box Besitzer eventuell wissen: Die Box besitzt einen Anrufsmonitor, den man zum Beispiel per Node.js (sehr praktisches Modul dafür!) abfragen kann. Die eingehenden Anrufe leite ich mithilfe von Socket.IO an das Webinterface des Spiegels weiter, welches dann diese wunderschöne Meldung anzeigt:

Anruf

Eine Meldung, die mich darauf hinweist, wenn jemand an der Tür klingelt, existiert im Code auch schon, bevor der funktioniert, muss ich aber erst noch die Klingel an die FRITZ!Box anschließen. Soweit zu meinem momentanen stand. Jetzt brauche ich noch den Spiegel und ein Gehäuse für das Ganze.

Ah! Falls jemand eine Idee haben sollte, was man noch so sinnvolles auf einem Spiegel anzeigen könnte: Immer her damit!

Copyright © 2024 MeType

Theme von Anders Norén↑ ↑