Een slimme kattenluik

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

3 Kommentare

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 blog berichten

  1. Installeer ESP32 nu van de raad van bestuur
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmeren via Wi-Fi