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
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 17 1.833 10.11.2017 22:24
Letzter Beitrag: r4c3
  Suche Hilfe für den Fehler in der Datei Holzwurm56 5 374 01.11.2017 14:26
Letzter Beitrag: Holzwurm56
  Hilfe bei Einschaltverzögerung gesucht Ingo 9 636 28.10.2017 19:04
Letzter Beitrag: Tommy56
Photo Hilfe bei meinem Arduino Projekt Niklas 10 553 23.09.2017 21:05
Letzter Beitrag: Niklas
  Ublox Neo 6M und Nextion ! Bitte um Hilfe. b3ta 19 1.398 13.07.2017 14:52
Letzter Beitrag: Tommy56
  Anfänger sucht erfahrene Hilfe Customizer 21 1.634 11.07.2017 21:37
Letzter Beitrag: Customizer
  Brauche einen Sketch zum Testen HDT 12 958 22.06.2017 07:37
Letzter Beitrag: HDT
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 2.480 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Brauche Hilfe für meine Abfüllanlage/ millis() Slash96 8 982 10.05.2017 21:04
Letzter Beitrag: MicroBahner
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.559 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt

Gehe zu:


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