INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
24.02.2016, 20:15 (Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2016 20:22 von renmet.)
Beitrag #1
Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
Hallo,

ich wollte mir einen Sketch für meinen HC-SR501 basteln. Wenn Bewegung erkannt wird soll eine bestimmte URL aufgerufen werden, wenn keine Bewegung erkannt wird eine Andere. Die URL's unterscheiden sich nur am STATE also

.STATE(1) // für HIGH bzw. Bewegung erkannt
.STATE(0) // für LOW bzw. keine Bewegung erkannt

Hier wäre der gesamte Sketch

Code:
/*
*  WeMos HC-SR501
*/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>

// ******* Netzwerkeinstellungen, bitte anpassen! *******
const char* ssid = "xxxxxx"; // SSID des vorhandenen WLANs
const char* password = "xxxxxx"; // Passwort für das vorhandene WLAN
IPAddress gateway(xxx,xxx,xxx,xxx); // IP-Adresse des WLAN-Gateways
IPAddress subnet(xxx,xxx,xxx,xxx); // Subnetzmaske
IPAddress ip(xxx,xxx,xxx,xxx); // feste IP-Adresse für den WeMos
const char* host = "xxx,xxx,xxx,xxx"; // IP-Adresse der CCU

// ******* Aktoreinstellung, bitte anpassen! *******
String aktor = "BidCos-RF.LEQxxxxxxx";                     // Anzusprechender Aktor

int calibrationTime = 30;

//the time when the sensor outputs a low impulse
long unsigned int lowIn;

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped
long unsigned int pause = 5000;

boolean lockLow = true;
boolean takeLowTime;

int pirPin = 2; //the digital pin connected to the PIR sensor's output
int trigger = 0;
String url ="";

void setup(){
Serial.begin(115200);
pinMode(pirPin, INPUT);
digitalWrite(pirPin, LOW);

//give the sensor some time to calibrate
Serial.print("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
delay(1000);
}
Serial.println(" done");
Serial.println("SENSOR ACTIVE");
delay(50);
}

void melde_CCU() {                                           // Bewegung erkannt
  WiFiClient client;                                            // Webclient initialisieren
  if (!client.connect(host, 80)) {                              // mit dem CCU-Port 80 verbinden
     url = "GET /cuxd.exe?Antwort=dom.GetObject('" + aktor + "').State('" + trigger + "')";
     client.println(url);
     delay(100);
    return;
  }
}

void loop(){

if(digitalRead(pirPin) == HIGH){
   trigger = 1;
   if(trigger == 1){
    melde_CCU();
    }
   if(lockLow){
     //makes sure we wait for a transition to LOW before any further output is made:
     lockLow = false;            
     Serial.println("---");
     Serial.print("motion detected at ");
     Serial.print(millis()/1000);
     Serial.println(" sec");
     delay(50);
     }        
     takeLowTime = true;
   }

if(digitalRead(pirPin) == LOW){      
   trigger = 0;
  if(trigger == 0){
    melde_CCU();
    }
   if(takeLowTime){
    lowIn = millis();          //save the time of the transition from high to LOW
    takeLowTime = false;       //make sure this is only done at the start of a LOW phase
    }
   //if the sensor is low for more than the given pause,
   //we assume that no more motion is going to happen
   if(!lockLow && millis() - lowIn > pause){  
       //makes sure this block of code is only executed again after
       //a new motion sequence has been detected
       lockLow = true;                        
       Serial.print("motion ended at ");      //output
       Serial.print((millis() - pause)/1000);
       Serial.println(" sec");
       delay(50);
       }
   }
}

Danke für eure Hilfe

lg
renmet
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.02.2016, 22:18
Beitrag #2
RE: Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
Und wo ist jetzt dein Problem?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Gruß Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 06:13
Beitrag #3
RE: Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
Das der Sketch bei Bewegung keinen Request an meine Heimautomatisierung schickt.

lg
renmet
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 09:41
Beitrag #4
RE: Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
Ich glaube der sendet nur zurück wenn er etwas empfängt.

Ich habe mir dazu etwas in Purebasic selber geschrieben, weil das www... usw die Daten zu langsam sendet.

Mein Roboter wird alle 200ms angepinkt , dann bekommne ich Daten vom Roboter zurück zur Darstellung mit Purebasic.

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 09:50
Beitrag #5
RE: Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
(25.02.2016 06:13)renmet schrieb:  Das der Sketch bei Bewegung keinen Request an meine Heimautomatisierung schickt.

Kannst du denn erkennen, ob der PIR auch ein richtiges Signal an deinen Sketch abgibt und ob diese entsprechend (HIGH oder LOW) auch verarbeitet wird?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Gruß Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 10:11
Beitrag #6
RE: Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
pfuh das habe ich natürlich nicht getestet. ich werde den sample sketch für den PIR mit einer LED mal testen.

danke für den Tipp

LG
renmet
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2016, 10:22
Beitrag #7
RE: Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung
(25.02.2016 10:11)renmet schrieb:  pfuh das habe ich natürlich nicht getestet. ich werde den sample sketch für den PIR mit einer LED mal testen.
Das kannst du auch im fertigen Sketch mit dem "SeriellenMonitor" machen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Gruß Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Brauche Unterstützung bei Programmieren Geeros#18 4 331 12.02.2018 22:14
Letzter Beitrag: Chopp
  Brauch hilfe bei einnem Sketch MrMagoo 10 350 11.02.2018 13:49
Letzter Beitrag: hotsystems
  Hilfe bei diesen Fehler MrMagoo 22 598 06.02.2018 20:03
Letzter Beitrag: hotsystems
Question Hilfe bei Programmierung Niklas 15 565 02.02.2018 12:55
Letzter Beitrag: Niklas
  Neulig sucht Hilfe bei Programmierung der Spannungsprotokollierung Matej 42 2.009 01.02.2018 18:11
Letzter Beitrag: Matej
  Hilfe!!! bei 7-Segment Anzeige Markus2018 9 530 31.01.2018 21:14
Letzter Beitrag: Tommy56
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 17 2.539 10.11.2017 22:24
Letzter Beitrag: r4c3
  Suche Hilfe für den Fehler in der Datei Holzwurm56 5 525 01.11.2017 14:26
Letzter Beitrag: Holzwurm56
  Hilfe bei Einschaltverzögerung gesucht Ingo 9 902 28.10.2017 19:04
Letzter Beitrag: Tommy56
Photo Hilfe bei meinem Arduino Projekt Niklas 10 865 23.09.2017 21:05
Letzter Beitrag: Niklas

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste