Jump to content

Felix

Members
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

Felix's Achievements

Newbie

Newbie (1/14)

0

Reputation in der Community

  1. Klar gerne, wenn die Kategorie steht schreib ich das nochmal wikifreundlich auf. Vielleicht bin ich dann auch schon weiter. Gruß Felix
  2. Hui ihr Menschen, nachdem nun auch meine zweite Rutsche an Hardware eingetroffen ist, kann's auch etwas konkreter werden. Ich habe heute angefangen eine primitive Jalousiesteuerung zu basteln, mit folgenden Zutaten: - Master Brick - IO 16 Bricklet - Ambient light Brickelt - Qnap NAS - Außenjalousie mit Funkfernbedienung [*]Fernbedienung vorbereiten Das Gehäuse wurde entfernt, genause wie die (in meinem Fall) 12V Batterie. Nach einem Test hat die Fernbedienung auch mit 5V noch sicher geschaltet, also habe ich sie direkt an die Spannungsversorgungsklemmen vom IO Modul angschlossen, das spart die Batterie. Die Taster der Fernbedienung sind Active-High, weshalb ich direkt die Ausgänge A0 & A1 vom IO16 auf die Tasterausgänge gelegt habe. Nun lässt sich über den Brickviewer ein Tastendruck simulieren. [*]QNAP vorbereiten hier muss über ipkg erst noch python installiert werden, zusammen mit dem twisted paket (die Kombination gab es bei mir in der Version 2.6). Gudev ist nicht verfügbag, das ist aber nicht schlimm, man muss nur beachten, dass USB Hotplug dann nicht funktioniert. Anschließend wird das source Paket von brickd auf dem NAS entpackt (vorzugsweise auf einem Bereich der Festplatte, der Flashspeicher ist sehr knapp bemessen). Nachdem der Masterbrick angeschlossen wurde, kann brickd direkt mit dem Startskript gestartet werden. [*]Lustigen Code schreiben Ich habe mich für Python entschieden. Python sei für Anfänger toll, sagt man, und deshalb wollte ich das mal ausprobieren. Ich war begeistert, wie einfach und schnell alles ging. Anbei mein Code, der bestimmt auf einen Profi wie Dilettantentum wirkt, ich hoffe jedoch, das andere Anfänger wie ich mit den Kommentaren zurecht kommen und auch soviel Spaß damit haben. Das Skript schaut alle 10 min wie hell es draußen ist, und wenn ein Grenzwert unterschritten ist, schließt es die Jalousie und andersrum. Das ist natürlich noch nicht praxistauglich, weil der Lichtsensor in einem anderen Raum sein muss, als die Jalousie, aber es ist ein Anfang. Weitere Dinge die interessant sein könnten: - Zeitabhängigkeit als zusätzliche Bedingung hineinbringen - Script durch cron zyklisch aufrufen, dafür doofe Sleep-Funktion rausschmeißen - Deine Ideen... Ich hoffe der ein oder andere konnte hiermit was anfangen, bei Fragen stehe ich gern zur Verfügung (auch wenn die Antwort mal etwas dauern könnte). So und nu der Code (der natürlich auf den hervorragenden Tinkerforge examples basiert: #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "192.168.0.122" # Change to "localhost" if brickd runs one the same machine PORT = 4223 # Some definitions UP = 0 # IO Port for UpButton DOWN = 1 # IO Port for DownButton UPPER_LIMIT = 0.8 # Illumniance when the jalousie should go up LOWER_LIMIT = 0.5 # Illumniance when the jalousie should go down # Bricklet UIDs UID_IO16 = "XXX" # Change to your UID for 16IO Bricklet UID_ALIGHT = "XXX" # Change to your UID for Ambient Light Bricklet import time from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_io16 import IO16 from tinkerforge.bricklet_ambient_light import AmbientLight # Function to move the Jalousie def move_jalousie(direction): # Set pin on port a to output high io.set_port_configuration('a', 1 << direction, 'o', True) if direction == 0: print ('Holding UP Button...') if direction == 1: print ('Holding DOWN Button...') time.sleep(2) # Hold 'Button' for 2 secs # Release Button io.set_port_configuration('a', 1 << direction, 'o', False) if __name__ == "__main__": ipcon = IPConnection(HOST, PORT) # Create ip connection to brickd io = IO16(UID_IO16) # Create device object ipcon.add_device(io) # Add device to ip connection al = AmbientLight(UID_ALIGHT) # Create device object ipcon.add_device(al) # Add device to ip connection # Don't use device before it is added to a connection while 1: # Run endlessly # Get current illuminance (unit is Lux/10) illuminance = al.get_illuminance()/10.0 # Get it on the screen (not really necessary) print('Illuminance: ' + str(illuminance) + ' Lux') # Don't use device before it is added to a connection # Jalousie goes up if illuminance > UPPER_LIMIT: move_jalousie(UP) # Jalousie goes down if illuminance < LOWER_LIMIT: move_jalousie(DOWN) # Wait 10 minutes, should be done by cron later time.sleep(600) # You will never get here ipcon.destroy()
  3. Hi ihr tollen tinkerforge Menschen, ich habe nun endlich meine Ware (Master Brick + Ambient Light) bekommen, und konnte es nicht erwarten das gleich mal zu testen. Etwas skeptisch habe ich zunächst den daemon und den viewer installiert, und war positiv überrascht, dass alles auf Anhieb ohne Konfiguration funktioniert hat. Alles weitestgehend selbsterklärend, super! Dann dachte ich, is ja ganz nett, aber wenn ich (als absoluter Anfänger) jetzt selbst was programmieren möchte... Also flugs die Python Beispiele geladen, und dank der hervorragenden Dokumentation innerhalb von <10min ein eigenes kleines lauffähiges Programm gebastelt, was genau das machte, was ich wollte. Das macht Spaß & motiviert. Ich freue mich schon auf's Wochenende, dann werde ich mich etwas genauer damit befassen.
  4. Hi there, we used to have the same discussion during another project a couple of years ago. It turned out, that some of the guys there, who were able to understand both languages, volunteered for writing some kind of weekly summary of the most interesting topics. This was very much apprechiated and we called it the "Forum Gazette". Maybe we'll find some members who would make the effort to do something like this here as well.
  5. Ui klasse, fein, dass es jetzt losgeht. Dann hab ich endlich eine sinnvolle Beschäftigung für die Osterzeit. Ich freu mich!
×
×
  • Neu erstellen...