PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQ+DQogICAgIChhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7DQogICAgICAgICAgZ29vZ2xlX2FkX2NsaWVudDogImNhLXB1Yi0xOTIwMTM0MzQxMjUxMDg0IiwNCiAgICAgICAgICBlbmFibGVfcGFnZV9sZXZlbF9hZHM6IHRydWUNCiAgICAgfSk7DQo8L3NjcmlwdD4=

Nachdem der Aufbau der Hardware nun abgeschlossen ist, fehlt nur noch die Software um das ganze System in Betrieb nehmen zu können.

Sketch einrichten

Das notwendige Arduino-Sketch vom Treppen-Lauflicht mit Bewegungserkennung könnt ihr unter dem folgenden Link downloaden.
Treppenlauflicht mit LAN (zwei Register) (845 Downloads)

Oder als Alternative ohne benötigte Librarys:
Treppenlauflicht ohne LAN (zwei Register) (1214 Downloads)

Die beiden Varianten unterscheiden sich nur durch die Verwendung des Ethernet-Shields. Wer also kein Netzwerk an der Treppe haben möchte um die Bewegungsdaten an die Haussteuerung zu übermitteln, sollte direkt das alternative Sketch verwenden, da die Ethernet-Librarys mit aktuelleren Arduino Versionen scheinbar eh etwas Probleme haben. 

Die Variante ohne LAN gibt es auch noch mal für nur ein Schieberegister (also bis maximal 8 Stufen)
Treppenlauflicht ohne LAN mit nur einem Register (636 Downloads)

Öffnet die Datei mit dem Arduino-Editor. Wie Ihr die Arduino-Software einrichtet, falls noch nicht geschehen, erfahrt Ihr hier:
https://smarthomeyourself.de/anleitung-zum-selber-bauen/arduino-ide-installieren/

Am Anfang des Sketchs findet Ihr die folgenden Einstellungen. Passt diese frei nach euren Bedürfnissen an und ladet anschließend das Sketch auf euren Arduino.

(Hier der zu konfigurierbare AUSSCHNITT des Sketches)

//--------------------------------------
// Configuration Start
//--------------------------------------

// PIR-Data-Pins
#define PIR_TOP_PIN 3
#define PIR_BOTTOM_PIN 4

// All LEDs on Switch
#define ALL_ON_SWITCH_PIN 5

// Helligkeitssensor-Pin
int lightPin = 7;

// Schieberegister-Pins
int latchPin = 8;
int dataPin = 11;
int clockPin = 12;




// Allgemeine Einstellungen
//---------------------------------
// Gibt an, ob eine Animation erfolgen soll, 
// solange die Treppe aktiv ist. (Während alle Stufen an sind)
boolean activeAnimation = true;

// Gibt ab, ob ein Lichtsensor angeschlossen ist und verwendet werden soll
boolean lightSensorActive = false;

// Gibt an, ob ein Dauer-An Schalter angeschlossen wurde 
// Sollte hier ohne Schalter am Pin hier trotzdem true eingestellt sein, 
// blinken die LEDs zufällig, da der INPUT-Pin ohne Pull-Down einen Zufallswert liefert!
boolean allOnSwitchActive = false;

// Gibt an, ob die Werte an den Server gesendet werden sollen
boolean sensorValueSendToServerActive = false;




// Bewegungsmelder Einstellungen
//---------------------------------
// Gibt an, ob der Lichtsensor bei Bewegung HIGH oder LOW zurück gibt
// Wenn HIGH eine erkannte Bewegung bedeutet, muss der Wert auf true stehen, sonst auf false.
boolean pirSensorSignalInverted = false;

//PIR Timings
// Dauer der Initialisierung
int calibrationTime = 10;        

// Wie viele ms nach der letzten erkannten Bewegung 
// soll der Bewegungsmelder wieder auf LOW schalten
long unsigned int pirPause = 2000;  

// PIR-Sensor-IDs (nur notwendig wenn sensorValueSendToServerActive=true)
long pirTopSensorId = 22637;
long pirBottomSensorId = 22638;


// Hellligkeitssensor Settings  *optional 
// (nur notwendig wenn lightSensorActive=true)
//-----------------------------------------
// Gibt an, ob der Lichtsensor bei voller Helligkeit den maximal oder minimalwert angibt
// Wenn der maximalwert (HIGH bei digital, 1023 bei analog) volle Helligkeit bedeutet, 
// muss der Wert auf false stehen. Gibt der Sensor bei voller Helligkeit 0 zurueck muuss hier true gesetzt werden.
boolean lightSensorSignalInverted = true;
// Gibt an ob der Sensor digital oder analog betrieben wird
boolean lightSensorDigital = true;

// Der maximale Helligkeitswert unter dem die Beleuchtung automatisch aktiviert wird. 
// bei analog: 0-1023 / bei digitalen immer 1 
int lightValueMax = 300;

// Gibt an, wie viele ms Pause zwischen den Helligkeitsmessungen liegen soll
int lightRefreshTime = 5000;



// Geschwindigkeits-Einstellungen
//---------------------------------
// gibt an, wie lang die Verzögerung zwischen den einzelnen Stufen beim einschalten in ms ist
int switchOnDelayTimeInit = 100;
// gibt an, wie lang die Verzögerung zwischen den einzelnen Stufen beim ausschalten in ms ist
int switchOffDelayTimeInit = 500;
// gibt an, wie lang die Verzögerung zwischen den einzelnen Stufen während der Animation in ms ist
int animationDelayTime = 70;


//Maximale Wartezeit bis zur automatischen 
//Abschaltung der LEDs falls der andere
//Bewegungsmelder nicht aktiviert wird.
int maxTimeLightsOn = 30000;

// Dauer in ms, die nach der Bewegungserkennung 
// bis zur Abschaltung gewartet werden soll
int waitBeforeSwitchOff = 3000;

// Wartezeit in ms, die nach dem Abschalten der Beleuchtung 
// gewartet werden soll, bevor die Sensoren wieder aktiviert werden.
int sleepAfterLightsOff = 5000;



// Netzwerk-Einstellungen
// Diese sind nur notwendig wenn sensorValueSendToServerActive aktiviert ist.
//--------------------------------------
// IP-Adresse des SmartHome yourself Servers
byte _piAddress[] =  {192, 168, 1, 98};

byte _mac[]  = {0xDF, 0x8D, 0xCB, 0x37, 0xC4, 0xED  };
byte _ip[]   = { 192, 168, 1, 28 };
byte _dns[]  = { 192, 168, 1, 1  };
byte _gate[] = { 192, 168, 1, 1  };
byte _mask[] = { 255, 255, 255, 0  };

//--------------------------------------
// Configuration End
//--------------------------------------

Ich denke der gesamte Sketch so wie auch die Einstellungen darin sind ausreichend Dokumentiert, so dass ich hier zusätzlich zu dem Auszug des Konfigurationsbereichs nicht mehr viel zu schreibe.

DQo8Y2VudGVyPjxpZnJhbWUgc3JjPSJodHRwczovL3JjbS1ldS5hbWF6b24tYWRzeXN0ZW0uY29tL2UvY20/bz0zJnA9NDgmbD11cjEmY2F0ZWdvcnk9YW1hem9uX2J1c2luZXNzJmJhbm5lcj0wMDcwRVlTNFY3WFBETTNUWDcwMiZmPWlmciZsaW5rSUQ9MzE1ZGUwNGE1OGY1NjQ4YmIyMTU3OTViOGExYmY1ZTImdD1kYW5pZXNjaGVpLTIxJnRyYWNraW5nX2lkPWRhbmllc2NoZWktMjEiIHdpZHRoPSI3MjgiIGhlaWdodD0iOTAiIHNjcm9sbGluZz0ibm8iIGJvcmRlcj0iMCIgbWFyZ2lud2lkdGg9IjAiIHN0eWxlPSJib3JkZXI6bm9uZTsiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4NCjxpIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OjEwcHg7dGV4dC10cmFuc2Zvcm06IG5vbmU7Ij4oKiA9IEFmZmlsaWF0ZS1MaW5rIC8gQmlsZHF1ZWxsZTogQW1hem9uLVBhcnRuZXJwcm9ncmFtbSk8L2k+PGJyLz4NCjwvY2VudGVyPg0K

Sonstige Bemerkungen

Was evtl. noch erwähnenswert ist:
Wenn Ihr nicht das alternative Sketch ohne LAN verwendet, ist es so vorbereitet, dass die Sensoren ihre Werte an Euren SmartHome yourself-Server senden können. Dafür wird auch die SHYS_Sensor Library benötigt. Aus diesem Grund sind in den Einstellungen auch Sensor-IDs einstellbar.

Wer die Treppe als „Stand alone System“  verwenden möchte, kann diese Einstellungen einfach ignorieren oder das Alternative Sketch verwenden. Standardmäßig ist diese Funktion deaktiviert. Wer sie allerdings nutzen möchte muss den Parameter sensorValueSendToServerActive = true  setzen und die passenden Sensor-IDs eintragen.

Wie neue Sensoren in der Haussteuerung zu integrieren sind wird z.B. in dem folgenden Beitrag (incl. Video) anhand eines Klima-Sensors erklärt:
https://smarthomeyourself.de/anleitung-zum-selber-bauen/geraete-vorbereiten/sensoren/arduino-klimasensor-modul/

Nach hochladen des Sketchs auf den Arduino sollte bei korrekter Verkabelung und richtiger PIN-Auswahl in den Einstellungen die Treppenbeleuchtung nun funktionieren.

Solltet Ihr noch auf Probleme stoßen oder Fragen haben, stellt diese gerne per Email an: support@smarthomeyourself.de.

Ich werde mich bemühen euch schnellstmöglich weiter zu helfen.

Dann bleibt mir jetzt nur noch, Euch viel Spaß und Erfolg beim nachbauen zu wünschen.

Hier gibts noch das Video zur Treppenbeleuchtung:



Ein-/Ausfaden des Treppenlauflichtes (auch bei anderen LED-Stripes anwendbar)

Ein-/Ausfaden des Treppenlauflichtes (auch bei anderen LED-Stripes anwendbar)

Das wohl meistgefragte Feature, welches bisher noch nicht in die Treppe integriert ist, war wohl das ein-/ausfaden der LED-Stripes. Da das ganze Softwareseitig doch ein sehr aufwändiger Umbau des Sketches geworden wäre, wozu mir leider die Zeit f...


Bei Links auf Amazon-Artikel handelt es sich um Affiliate-Links. In diesen Links wird meine Amazon-Partner-Id mit übergeben, wodurch ich eine kleine Provision für eure Käufe erhalte. Ihr zahlt natürlich das gleiche wie sonst auch.
Ich würde mich freuen, wenn Ihr bei eurer Bestellung die Links verwendet und mich so einfach und für euch kostenlos unterstützt, um weiterhin neue Projekte mit euch teilen zu können.

Vielen Dank für euer Verständnis und eure Unterstützung!


DQo8Y2VudGVyPg0KPGlmcmFtZSBzcmM9Imh0dHBzOi8vcmNtLWV1LmFtYXpvbi1hZHN5c3RlbS5jb20vZS9jbT9vPTMmcD00OCZsPXVyMSZjYXRlZ29yeT1hdWRpYmxlJmJhbm5lcj0wNVJaN0NBQVBHWEpLWEhWWlg4MiZmPWlmciZsaW5rSUQ9MjNjMmMxMzAyNWMwNDA5OTgxMTQ0NjI0ZjEzZWU4ZjQmdD1kYW5pZXNjaGVpLTIxJnRyYWNraW5nX2lkPWRhbmllc2NoZWktMjEiIHdpZHRoPSI3MjgiIGhlaWdodD0iOTAiIHNjcm9sbGluZz0ibm8iIGJvcmRlcj0iMCIgbWFyZ2lud2lkdGg9IjAiIHN0eWxlPSJib3JkZXI6bm9uZTsiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4NCjxpIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OjEwcHg7dGV4dC10cmFuc2Zvcm06IG5vbmU7Ij4oKiA9IEFmZmlsaWF0ZS1MaW5rIC8gQmlsZHF1ZWxsZTogQW1hem9uLVBhcnRuZXJwcm9ncmFtbSk8L2k+PGJyLz4NCjwvY2VudGVyPg0K