Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Anleitung] Katze per PIR und ESP8266 erkennen und Melden.

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Anleitung] Katze per PIR und ESP8266 erkennen und Melden.

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nsession last edited by

      Hallo zusammen,

      da ich iobroker echt klasse finden und sen support hier auch will cih meinen Teil dazu beitragen.

      Ich habe mir einen "Katzen sensor" gebaut mit einem ESP8266 welcher per mqtt iobroker einen wert setzt und mich dann per Pushbullet benachrichtigt.

      Hier mal alles was man dazu braucht.

      Schaltplan gibt es leider nicht mehr.

      ich habe einen 470micro Farad Elko zur spannungsstabilisierung

      Eine micro USB anschluß und einen 5v auf 3.3 V Stepdown

      Wer fragen hat oder noch etwas braucht gerne anfragen.

      Ist alles noch nicht 100% fertig und wird momentan nur sporadisch eingesetzt.

      Muss das ganze noch etwas kleiner machen und den 3d-Drucker anschmeißen für ein Schönes gehäuse.

      Strom nutze ich ein USB-Ladegerät von einem handy mit 500mA und 5V.

      der taster und die 2 Pins sowie die obere Steckleiste benötigt man nur zum Flashen des ESP.

      das iobroker script sieht so aus

      on({id: "mqtt.0.ESP-PIR-01.Motion"/*ESP-PIR-01/Motion*/, val: true}, function (obj) {
      
              sendTo("pushbullet", {
                  message: "Momo will rein", //Text der Nachricht
                  title: "Katzenalarm", //Titel der Nachricht
                  type: "note" //Der Typ
              }
         );
      });
      

      Arduino IDE

      `/*
       ESP8266 MQTT With PIR and DHT22
       Based on ESP8266 Arduino Sample and some other scripts
      
      */
      
      #include <esp8266wifi.h>#include <pubsubclient.h>#include "DHT.h"
      
      #define DHTPIN 12     // what digital pin we're connected to
      // Uncomment whatever type you're using!
      //#define DHTTYPE DHT11   // DHT 11
      #define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
      //#define DHTTYPE DHT21   // DHT 21 (AM2301)
      DHT dht(DHTPIN, DHTTYPE);
      float humidity, temp_f; // Values read from sensor
      
      // Update these with values suitable for your network.
      
      const char* ssid = "YOURSSID";
      const char* password = "WIFI PSK";
      const char* mqtt_server = "SERVER IP";
      int counter = 0;
      int previousReading = LOW;
      String message = "DHT";
      String messaget = "DHT";
      String messageh = "DHT";
      String topicTemp = "ESP-PIR-01/temp";
      String topicHumid = "ESP-PIR-01/humid";
      String topicMotion = "ESP-PIR-01/Motion";
      
      WiFiClient espClient;
      PubSubClient client(espClient);
      long lastMsg = 0;
      char msg[50];
      int value = 0;
      
      void setup_wifi() {
      
        delay(10);
        // We start by connecting to a WiFi network18
        Serial.println();
        Serial.print("Connecting");
        Serial.println(ssid);
      
        WiFi.begin(ssid, password);
      
        while (WiFi.status() != WL_CONNECTED) {
          delay(500);
          Serial.print(".");
        }
      
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
      }
      
      void callback(char* topic, byte* payload, unsigned int length) {
        Serial.print("Messageved [");
        Serial.print(topic);
        Serial.print("] ");
        for (int i = 0; i < length; i++) {
          Serial.print((char)payload[i]);
        }
        Serial.println();
      
        // Switch on the LED if an 1 was received as first character
        if ((char)payload[0] == '1') {
          digitalWrite(BUILTIN_LED, LOW);   // Turn the LED on (Note that LOW is the voltage level
          // but actually the LED is on; this is because
          // it is acive low on the ESP-01)
        } else {
          digitalWrite(BUILTIN_LED, HIGH);  // Turn the LED off by making the voltage HIGH
        }
      
      }
      
      void reconnect() {
        // Loop until we're reconnected
        while (!client.connected()) {
          Serial.print("Attempting connection...");
          // Attempt to connect
          if (client.connect("ESP8266Client")) {
            Serial.println("connected");
            // Once connected, publish an announcement...
            client.publish("ESP-PIR-01", "hello world");
            // ... and resubscribe
            client.subscribe("inTopic");
          } else {
            Serial.print("failed");
            Serial.print(client.state());
            Serial.println(" try again in 5 seconds");
            // Wait 5 seconds before retrying
            delay(5000);
          }
        }
      }
      
      void setup() {
        pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
        Serial.begin(115200);
        setup_wifi();
        client.setServer(mqtt_server, 1883);
        client.setCallback(callback);
        pinMode(13, INPUT);
        dht.begin();
      }
      
      void loop() {
      
          if (!client.connected()) {
            reconnect();
          }
          client.loop();
      
          long now = millis();
          if (now - lastMsg > 60000) {
            lastMsg = now;
            float h = dht.readHumidity();
            // Read temperature as Celsius (the default)
            float t = dht.readTemperature();
      
            // Check if any reads failed and exit early (to try again).
            if (isnan(h) || isnan(t)) {
              Serial.println("Failed to read from DHT sensor!");
              return;
            }
      
            // Compute heat index in Celsius (isFahreheit = false)
            //float hic = dht.computeHeatIndex(t, h, false);
            char t2[50];
            char h2[50];
            dtostrf(t, 5, 2, t2);
            dtostrf(h, 5, 2, h2);
      
            //message = "{\"idx\":37,\"svalue\":\""+String(t2)+";"+String((int)h)+";0\"}";
            messaget = String(t2);
            messageh = String(h2);
            client.publish(topicTemp.c_str(), messaget.c_str());
            client.publish(topicHumid.c_str(), messageh.c_str());
            //client.publish("/sensor/temp", t2 );  
            //client.publish("/sensor/humidity", h2 );
          }
      
          int reading = digitalRead(13);
      
          Serial.println(reading);
          if (previousReading == LOW && reading == HIGH) {
          //if (reading == HIGH) {
          counter++;
          message = String("true");
          client.publish(topicMotion.c_str(), message.c_str());
          //client.publish("/sensor/movement", "Motion!");  
          delay(1000);
      
          } else if (previousReading == HIGH && reading == LOW) {
          message = String("false");
          client.publish(topicMotion.c_str(), message.c_str());
          //client.publish("/sensor/movement", "Motion!");  
          delay(1000);
          }
          previousReading = reading;
      
      }</pubsubclient.h></esp8266wifi.h>` 
        [2344_blackboard.png](/assets/uploads/files/2344_blackboard.png)  
        [2344_board1.png](/assets/uploads/files/2344_board1.png)  
        [2344_board2.png](/assets/uploads/files/2344_board2.png)  
        [2344_pir.png](/assets/uploads/files/2344_pir.png)  [/i]
      
      1 Reply Last reply Reply Quote 0
      • S
        starfish last edited by

        wie erkennst Du, wenn sich eine fremde Katze anmeldet ? Das Problem hatte ich hier schon ohne ESP8266 - mit einer einfachen Katzenklappe mit entsprechenden Kämpfen im Keller :lol: Aktuell habe ich das mit einer chip-gesteuerten Klappe gelöst - zumindest teilweise, denn die Nachbarskatze hat nämlich erkannt, dass, wenn sie schnell genug hintennachspringt, ist die Klappe noch freigeschaltet. Katzen sind schlau ….

        1 Reply Last reply Reply Quote 0
        • N
          nsession last edited by

          Hi,

          ich hab keine klappe die steht bei mir dann vor der Terassentür im Esszimmer.

          Ich muss die Manuell reinlassen, aber da ich das nicht mitbekomme wenn ich aufem sofa liege hab mir einen schalter im VIS eingabeut mit dem ich daen versand der pushnachricht aktiviere oder deaktiviere.

          1 Reply Last reply Reply Quote 0
          • A
            andyb last edited by

            Ich hab mal irgendwo ne Luxus Lösung gelesen mit so ne Chipklappe aber die Klappe öffnet und schließt mit einem Dachfenstermotor.

            Ich hab mir sowys schon für meine Terassentüre überlegt wenn der Hund im Garten ist, diese per Bewegungsmelder und einem solchen Motor zu öffnen. Geht halt dann nur wenn ich Zuhause bin und die Türe nicht verschlossen, würde mir aber reichen.

            1 Reply Last reply Reply Quote 0
            • S
              starfish last edited by

              :lol: das problem bei den klappen ist wohl , dass die alle nicht dicht sind. das spricht für eine motorlösung oder eben für die luxuslösung mit dem gut erzogenen herrchen

              1 Reply Last reply Reply Quote 0
              • N
                nsession last edited by

                Die Lösung von mir mit dem PIR is ja nicht nur für Hund / Katze einsetzbar.

                Im Prinzip kann man damit ja auch lichter schalten oder sich seine eigene Alarmanlage bauen.

                Genug von den Melden verteilen im Haus und im Away Modus darf sich im Haus nix bewegen sonst alarm / Pushnachricht oder was auch immer. 😄

                Ich mach mir mal nach meinem Urlaub die Mühe und zeichen nich einen besseren schaltplan.

                Zudem muss ich noch ein Gehäuse aus dem 3d Drucker lassen.

                1 Reply Last reply Reply Quote 0
                • S
                  starfish last edited by

                  @nsession nichts gegen Deine Anleitung (danke), ich wollte als Katzennarr nur meine Erfahrungen kundtun. Die ESP8266 sind Super-Module. Ich hab ja auch schon darüber geschrieben. Aber Du hast mich auf eine Idee gebracht, ich werde meine Chip-Katzenklappe auch mit so einem ESP8266 ins iobroker-system integrieren ev. noch mit einer Richtungserkennung (rein-raus). Übrigens, solange die Katze sich frei im Haus bewegt, ist nichts mit Einbruchalarm per Innenbewegungsmelder - oder aber man justiert die sorgfältigst, so dass die Katze nie in den Erfassungsbereich kommen kann.

                  1 Reply Last reply Reply Quote 0
                  • M
                    meifi2017 last edited by

                    Moin,

                    gibt es hier schon was neues zum Thema ESP / Katzenklappe / Integration iobroker?

                    LG

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    1.1k
                    Online

                    31.7k
                    Users

                    79.7k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    3964
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo