Eine smarte Katzenklappe - AZ-Delivery

Hallo en welkom bij een nieuwe en spannende tweedelige blogserie. Deze korte serie gaat over onze 4-benige (favoriete) huisgenoten. Dit verwijst naar katten, ook al maken honden er natuurlijk ook deel van uit ūüėä

Het idee voor deze blog kwam naar me toe deze keer van een collega. Hij leest mijn blogs van tijd tot tijd en is zelf een grote smart home fan. Nu vertelde hij me onlangs dat hij zou graag een melding op zijn mobiele telefoon hebben wanneer zijn kat thuiskomt van uw "forays" of gaat op een foray. Hij vertelde me dat hij al op zoek was naar een kattenflap met de juiste functionaliteit op de markt, maar niets geschikts had gevonden. Of ik niet kon bouwen van een oplossing voor het probleem. Natuurlijk kan ik en hier ben je:

Het principe van onze slimme kattenflap is gebaseerd op het feit dat onze kat de klep in de deur telkens (naar rechts of links) moet "indrukken" om de klep te passeren.

Aangezien de richting van de klepbeweging afhankelijk is van het pad van de kat, kunnen we alle benodigde informatie krijgen door een eenvoudige opstelling van 2 knoppen op de klep. Het volgende diagram illustreert dit in de basismechanische/elektrische functieVerstandig.

Werking

Men kan zien dat de kat of op de knoop "Kat komt" of de knoop "Kat gaat" wanneer het overgaan door de kattenklep, afhankelijk van welke richting het de klep overgaat.

Deze twee "richting" knoppen zijn bedraad volgens de mechanische structuur als in de volgende Fritzing plan:

 

Fritzing Plan

Beide knoppen sluiten kort na Plus (3,3 volt) wanneer ingedrukt. Trek 330 KOhm rectifier naar beneden anders trek de poorten naar beneden.

De hardware lijst is aangenaam duidelijk voor dit project:

 

  • 2x 330 KOhm Weerstand
  • 1x ESP32
  • 2xTaster
  • 1x Voeding of powerbank

Nu we klaar zijn met de hardware en de mechanica, is het tijd om onze mobiele telefoon te configureren of voor te bereiden. Hiervoor downloaden we de app "Blynk" van de App Store naar onze mobiele telefoon. De APP zelf is gratis en kan worden bediend voor de beschreven use case zonder extra kosten voor de app.

Er zijn echter kosten voor de gegevensoverdracht van onze kattenflap naar de mobiele telefoon. Houd rekening met deze kosten bij het repliceren van het project!

Dus nadat we de app Blynk uit de store hebben gedownload en voor het eerst hebben gestart, moeten we eerst een account aanmaken. Om dit te doen, tikken we op 'Nieuw account maken'

 

Blynk - Een account registreren

We registreren ons met ons eigen e-mailadres en wijzen een wachtwoord toe:

 

Blynk Account Maken - 2

 

Dan klikken we op een nieuw project:

 

Blynk - Maak een nieuw project

 

We komen in de dialoog om een nieuw project op te zetten. Hier moet u de basisgegevens van het project invoeren, zoals de projectnaam, ons ESP32 ontwikkelplatform en het gewenste verbindingsformulier. Er kunnen verschillende verbindingsparameters worden opgegeven, zoals Bluetooth of WLAN.

Om onderweg gegevens te kunnen ontvangen, moet het verbindingstype GSM echter worden geselecteerd. De instellingen die ik heb gekozen voor het project worden hieronder weergegeven:

 

Blynk - Maak een nieuw project - Informatie over het project

 

We bevestigen de informatie met "Create" en eindigen in een leeg project.

Laten we ons eerste Active Element aan onze app toevoegen met behulp van het pictogram 'Plus' in de titelbalk:

 

Blynk - Object toevoegen

 

Het eerste item dat we selecteren is Notfication en configureer het item.

 

Blynk - Widget toevoegen

Hier zijn de details van de instellingen van het element:

 

Blynk - Meldingsinstellingen

We bevestigen de instellingen met de pijl aan de linkerkant en landen vervolgens opnieuw in de hoofdweergave van de APP:

Blynk - Dat is het!

Dat is het!

We kunnen de app nu weer sluiten. Laten we nu verder gaan met het microcontroller gedeelte. We moeten nu onze Arduino IDE- en ESP-code aanpassen aan onze APP.

Om dit te doen, installeren we eerst de Blynk bibliotheek in de nieuwste versie in de Arduino IDE via de bibliotheekmanager:

Installeer Blynk Library in Arduino

 

Vervolgens passen we de code aan ons project aan. Onze code is aangepast op de volgende plaatsen:

Globale variabelen
char auth[] = "11111111111111111111111111"; Voer hier volgens de instructies een auth-token in van uw Blynk-app (e-mail). Auth Token is een dummy!

Uw WiFi-referenties.
char ssid[] = "***********";
char pass[] = "**************"; Stel het wachtwoord in op "" voor open netwerken.

Nadat de code is aangepast aan de eigen Wlan- en Auth-tokenparameters, kan deze worden ge√ľpload naar het ESP:

 

#include <Wifi.H>
#include <BlynkSimpleEsp32.H>

Knop Portede
#define Cat_Go_SW  15    Kat gaat
#define Cat_Comes_SW 2    Kat komt

#define BLYNK_PRINT Seri√ęle
#define BLYNK_NO_BUILTIN
#define BLYNK_NO_FLOAT
#define Switch_Poll_Interval 200
#define BLYNK_DEBUG

Globale variabelen
Char Auth[] = "11111111111111111111111111"; Voer hier volgens de instructies een auth-token in van uw Blynk-app (e-mail).

Uw WiFi-referenties.
Char Ssid[] = "***********";
Char Pass[] = "**************";  Stel het wachtwoord in op "" voor open netwerken.
Unsigned Lange Switch_ServiceCall_Handler = 0;  Vertragingsvariabele voor vertraging tussen moisure-metingen
Bool State_Cat_Go_old = Valse;
Bool State_Cat_Comes_old = Valse ;

Void Setup() {  ¬†pinMode(Cat_Go_SW, Input);  ¬†pinMode(Cat_Comes_SW, Input);  ¬†Seri√ęle.Beginnen(9600); ¬†¬†serial communication initialiseren met 115200 bits per seconde:  ¬†Seri√ęle.Afdrukken(V("Verbinding met Wi-Fi"));  ¬†Vertraging(500);  ¬†Blynk Blynk (Blynk).Beginnen(Auth, Ssid, Pass); ¬†WiFi-verbinding initalize via de Blynk-bibliotheek  ¬†Seri√ęle.println(V("Succesvol."));
}

Void Run_Check_Switches ()   //
{   Bool State_Cat_Go = Valse;   Bool State_Cat_Comes = Valse;   Als (millis() -  Switch_ServiceCall_Handler >= Switch_Poll_Interval)   {     Switch_ServiceCall_Handler = millis();     State_Cat_Go = digitaalLezen(Cat_Go_SW);     State_Cat_Comes = digitaalLezen(Cat_Comes_SW);     Als (State_Cat_Go && (!State_Cat_Go_old))     {       State_Cat_Go_old = Waar;       Blynk Blynk (Blynk).Houd ("Opmerking: Cat gaat");       Vertraging(1000);     } Anders Als ((!State_Cat_Go) && State_Cat_Go_old)     {       State_Cat_Go_old = Valse;       Vertraging(1000);     } Anders Als (State_Cat_Comes && (!State_Cat_Comes_old))     {       State_Cat_Comes_old = Waar;       Blynk Blynk (Blynk).Houd ("Opmerking: Cat komt eraan");       Vertraging(1000);     } Anders Als ((!State_Cat_Comes) && State_Cat_Comes_old)     {       State_Cat_Comes_old = Valse;       Vertraging(1000);     }   }
}

Hoofdlus
Void Lus()
{   Run_Check_Switches();   Blynk Blynk (Blynk).Uitvoeren();   Blync Basic-functies uitvoeren
}

 

 

Klaar!

Als we nu kort poort 2 verbinden met Plus voor het testen, ontvangen we het volgende bericht op de telefoon:

Functionele test: Kat komt

Nu verbinden we poort 15 kort met Plus voor het testen. We moeten nu het volgende bericht op de telefoon zien:

Functionele test - kat gaat. :'(

Het enige wat we moeten doen is de elektronica of de mechanica aan de kattenflap bevestigen en nu krijgen we altijd een bericht als onze Stubentiger de flap gebruikt. Ik wens je veel plezier met de wederopbouw.

Tot het volgende deel van de serie en veel plezier recre√ęren!

 

Esp-32Projekte f√ľr fortgeschritteneSmart home

5 Kommentare

Andreas Wolter

Andreas Wolter

@Klaus: das Projekt ist leider etwas √§lter. Daher sind keine weiteren Bilder verf√ľgbar. Ich denke, das ist stark abh√§ngig von dem Ort, an dem die Klappe eingebaut ist. Da es sich um Taster handelt, m√ľssten diese als Endanschlag abgebracht werden. Da ist ein bisschen Rumprobieren notwendig. Je nachdem, wie weit die Katze die Klappe √∂ffnet. Hier zeigt sich aber auch schon das erste Problem, weswegen die Idee mit dem RFID Chip am Halsband aufkam. Wenn die Katze gechipt ist, kann auch dieser Chip verwendet werden. So bleiben fremde Tiere drau√üen. Richtig smart w√§re w√§re ein Raspberry Pi mit Kamera, OpenCV und einer trainierten KI. Aber das ist dann etwas aufw√§ndiger und ginge in Echtzeit auch wahrscheinlich nur mit zus√§tzlicher Hardware wie dem Coral Beta Stick o.√§.

Gr√ľ√üe,
Andreas Wolter
AZ-Delivery Blog

Klaus

Klaus

Mich w√ľrden speziell die beiden Taster interessieren beim Durchgang‚Ķ wie hast du die Mikroschalter befestigt um den Kontakt beim Durchgehen zu bekommen? Hast du eventuell ein Bild davon?
danke,
Klaus

Thorsten

Thorsten

Stichwort Smarte Katzenidentifikation

Hallo zusammen,
zu uns kommen mehrer Katzen durch eine Katzenklappe (Klappe ausgebaut) zum Fressen in den Schuppen, eigene und fremde. Ich w√ľrde nun gerne wissen wollen, welche Katze wann in den Schuppen kommt (raus ist erst einmal egal). Als Idee h√§tte ich, dass 1. Fotos von der hereinkommenden Katze gemacht werden (Bewegungsmelder), auch nachts, und 2. mittels RFID-Scanner an der √Ėffnung der Chipcode ausgelesen wird. Fotos, RF-ID-Code und Uhrzeit sollten auf einem Webserver gespeichert werden, wo ich sie √ľber Handy auslesen kann (bestenfalls auch per ESP im eigenen WLAN umgesetzt). Zur Not auch √ľber eine Iot-Cloud.
auch mit Zeitstempel zuordnenbar sein.
Mit dieser Methode könnte ich nämlich auch Katzen identifizieren, die nicht gechipt sind und ggf. Anwärter auf eine Kastration/Chippung wären.
Vielleicht habt ihr ja eine schnuckelige Idee f√ľr eine Umsetzung per ESP32-CAM mit OV2640 und weiteres Zubeh√∂r (Bewegungsmelder, RFID-Reader) daf√ľr? W√ľrde mich freuen.
Viele Gr√ľ√üe, Thorsten

Sascha

Sascha

Echt eine tolle Sache!
W√ľrde es auch gerne mit dem RFID Chip am Halsband realisieren, da die Katze eh schon einen hat, um die Klappe zu √∂ffnen.
Wenn es daf√ľr auch noch eine L√∂sung g√§be, w√§re es echt ein Traum.
Vllt. mit 2 RFID Lesern. Einer kommt ganz an den Anfang der Klappe und einer an das Ende.
Je nach dem in welcher Reihenfolge die Leser ausgelöst werden, ist die Katze dann eben drin oder draußen.

Dirk Zwijas

Dirk Zwijas

Wäre das ganze nicht leichter mit einem RFID Chip im Katzenhalsband zu realisieren ?

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Aanbevolen producten