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
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
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 119 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 233 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 248 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 285 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 449 22.08.2016 08:07
Letzter Beitrag: b3ta
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 180 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 542 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 455 05.06.2016 11:28
Letzter Beitrag: rpt007
  Brauche etwas Hilfe bei der Umsetzung einer Idee raspido 3 529 23.04.2016 10:26
Letzter Beitrag: rkuehle
  Hilfe bei RTC und SD baron007 21 1.582 13.03.2016 17:36
Letzter Beitrag: hotsystems

Gehe zu:


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