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.
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:
Â
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'
Â
We registreren ons met ons eigen e-mailadres en wijzen een wachtwoord toe:
Â
Â
Dan klikken we op 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:
Â
Â
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:
Â
Â
Het eerste item dat we selecteren is Notfication en configureer het item.
Â
Hier zijn de details van de instellingen van het element:
Â
We bevestigen de instellingen met de pijl aan de linkerkant en landen vervolgens opnieuw in de hoofdweergave van de APP:
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:
Â
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:
Nu verbinden we poort 15 kort met Plus voor het testen. We moeten nu het volgende bericht op de telefoon zien:
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!
Â
5 Reacties
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
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
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
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
Wäre das ganze nicht leichter mit einem RFID Chip im Katzenhalsband zu realisieren ?