Un lembo di gatto intelligente

Salve e benvenuti a una nuova ed emozionante serie di blog in due parti. Questa breve serie parla dei nostri coinquilini a 4 zampe (preferiti). Questo si riferisce ai gatti, anche se naturalmente anche i cani ne fanno parte 😊

L'idea di questo blog è venuta da me questa volta da un collega di lavoro. Legge i miei blog di tanto in tanto ed è lui stesso un grande fan della casa intelligente. Ora di recente mi ha detto che vorrebbe avere una notifica sul suo cellulare quando il suo gatto torna a casa dalle tue "invei" o va in un'attesa. Mi ha detto che era già stato alla ricerca di un lembo di gatto con funzionalità appropriate sul mercato, ma non aveva trovato nulla di adatto. Se non ho potuto costruire una soluzione al problema. Certo che posso ed eccoti qui:

Il principio del nostro lembo di gatto intelligente si basa sul fatto che il nostro gatto deve "premere" il lembo nella porta ogni volta (a destra oa sinistra) per passare il lembo.

Dal momento che la direzione del movimento del lembo dipende dal percorso del gatto, possiamo ottenere tutte le informazioni necessarie da una semplice disposizione di 2 pulsanti sul lembo. Il diagramma seguente illustra questo nella funzione meccanica/elettrica di baseSaggio.

Funzionamento

Si può vedere che il gatto preme il pulsante "Cat comes" o il pulsante "Cat goes" quando passa attraverso il lembo del gatto, a seconda della direzione in cui passa il lembo.

Questi due pulsanti "direzione" sono cablati secondo la struttura meccanica come nel seguente piano Fritzing:

 

Piano Fritzing

Entrambi i pulsanti si chiudono poco dopo Plus (3.3 volt) quando vengono premuti. Tirare giù 330 KOhm rettificatore altrimenti tirare le porte verso il basso.

L'elenco hardware è piacevolmente chiaro per questo progetto:

 

  • 2x 330 KOhm Resistor
  • 1x ESP32
  • 2xTaster
  • 1x Alimentazione o banca di alimentazione

Ora che abbiamo finito l'hardware e la meccanica, è il momento di configurare o preparare il nostro telefono cellulare. A questo scopo, scarichiamo l'app "Blynk" dall'App Store al nostro cellulare. L'APP stessa è gratuita e può essere utilizzata per il caso d'uso descritto senza costi aggiuntivi per l'app.

Tuttavia, ci sono costi per il trasferimento dei dati dal nostro lembo di gatto al telefono cellulare. Si prega di prendere in considerazione questi costi quando si replica il progetto!

Quindi, dopo aver scaricato l'app Blynk dal negozio e avviarla per la prima volta, dobbiamo prima creare un account. Per fare questo, tocca "Crea nuovo account"

 

Blynk - Registrazione di un conto

Ci registriamo con il nostro indirizzo e-mail e assegniamo una password:

 

Blynk Account Creazione - 2

 

Poi clicchiamo sul nuovo progetto:

 

Blynk - Creare un nuovo progetto

 

Finiamo nel dialogo per creare un nuovo progetto. Qui è necessario inserire i dati di base del progetto, come il nome del progetto, la nostra piattaforma di sviluppo ESP32 e il modulo di connessione desiderato. È possibile specificare vari parametri di connessione, ad esempio Bluetooth o WLAN.

Tuttavia, per poter ricevere dati in viaggio, è necessario selezionare il tipo di connessione GSM. Le impostazioni che ho scelto per il progetto sono mostrate di seguito:

 

Blynk - Creare un nuovo progetto - Informazioni sul progetto

 

Confermiamo le informazioni con "Crea" e finiamo in un progetto vuoto.

Aggiungiamo il nostro primo elemento attivo alla nostra app usando l'icona "Plus" nella barra del titolo:

 

Blynk - Aggiungi elemento

 

Il primo elemento selezionato è Notfication e configurarlo.

 

Blynk - Aggiungi widget

Di seguito sono riportati i dettagli delle impostazioni dell'elemento:

 

Blynk - Impostazioni di notifica

Confermiamo le impostazioni con la freccia a sinistra, e poi atterriamo di nuovo nella vista principale dell'APP:

Blynk - Questo è tutto!

Questo è tutto!

Ora possiamo chiudere di nuovo l'app. Passiamo ora alla parte del microcontrollore. Ora dobbiamo adattare il nostro idE Arduino e il codice ESP al nostro APP.

A tale scopo, è innanzitutto installare la libreria Blynk nell'ultima versione nell'IDE Diuino tramite il gestore della libreria:

Installare la libreria Blynk in Arduino

 

Quindi adattiamo il codice al nostro progetto. Il nostro codice è adattato nei seguenti luoghi:

Variabili globali
char auth[] - "11111111111111111111111111"; Inserisci il token di autenticazione della tua app Blynk (email) qui secondo le istruzioni. Token di autenticazione è un manichino !

Le tue credenziali WiFi.
char ssid[] : "***********";
char pass[] - "**************"; Impostare la password su "" per le reti aperte.

Dopo che il codice è stato adattato ai propri parametri Wlan e del token di autenticazione, può essere caricato nell'ESP:

 

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

Pulsante Portedefinition
# define Cat_Go_SW  15    Gatto va
# define Cat_Comes_SW 2    Gatto viene

# define BLYNK_PRINT Seriale
# define BLYNK_NO_BUILTIN
# define BLYNK_NO_FLOAT
# define Switch_Poll_Interval 200
BLYNK_DEBUG #define

Variabili globali
Char Auth[] = "11111111111111111111111111"; Inserisci il token di autenticazione della tua app Blynk (email) qui secondo le istruzioni.

Le tue credenziali WiFi.
Char Ssid[] = "***********";
Char Passare[] = "**************";  Impostare la password su "" per le reti aperte.
Unsigned Lungo Switch_ServiceCall_Handler = 0;  Variabile di ritardo per ritardo tra le letture moisure
Bool State_Cat_Go_old = False;
Bool State_Cat_Comes_old = False ;

Vuoto Installazione() {   PinMode (Modalità pin)(Cat_Go_SW, Input);   PinMode (Modalità pin)(Cat_Comes_SW, Input);   Seriale.Iniziare(9600);   inizializzare la comunicazione seriale a 115200 bit al secondo:   Seriale.Stampare(D("Connessione al Wi-Fi"));   Ritardo(500);   Blynk.Iniziare(Auth, Ssid, Passare);  Initalize WiFi Connection su Blynk Library   Seriale.println(D("Operazione riuscita".));
}

Vuoto Run_Check_Switches ()   //
{   Bool State_Cat_Go = False;   Bool State_Cat_Comes = False;   Se (millis() -  Switch_ServiceCall_Handler >= Switch_Poll_Interval)   {     Switch_ServiceCall_Handler = millis();     State_Cat_Go = digitalRead (Lettura digitale)(Cat_Go_SW);     State_Cat_Comes = digitalRead (Lettura digitale)(Cat_Comes_SW);     Se (State_Cat_Go && (!State_Cat_Go_old))     {       State_Cat_Go_old = Vero;       Blynk.Notificare ("Nota: Cat va");       Ritardo(1000);     } Altro Se ((!State_Cat_Go) && State_Cat_Go_old)     {       State_Cat_Go_old = False;       Ritardo(1000);     } Altro Se (State_Cat_Comes && (!State_Cat_Comes_old))     {       State_Cat_Comes_old = Vero;       Blynk.Notificare ("Nota: Cat sta arrivando");       Ritardo(1000);     } Altro Se ((!State_Cat_Comes) && State_Cat_Comes_old)     {       State_Cat_Comes_old = False;       Ritardo(1000);     }   }
}

Ciclo principale
Vuoto Ciclo()
{   Run_Check_Switches();   Blynk.Correre();   Esecuzione delle funzioni di base di Blync
}

 

 

Finito!

Se ora colleghiamo brevemente la porta 2 a Plus per il test, riceveremo il seguente messaggio al telefono:

Test funzionale: Arriva il gatto

Ora colleghiamo brevemente la porta 15 con Plus per il test. Ora dovremmo vedere il seguente messaggio sul telefono:

Test funzionale - gatto va. :'(

Tutto quello che dobbiamo fare è collegare l'elettronica o la meccanica al lembo del gatto e ora riceviamo sempre un messaggio quando il nostro Stubentiger utilizza il lembo. Vi auguro molto divertimento ricostruzione.

Fino alla prossima parte della serie e divertirsi a ricreare!

 

Esp-32Projekte für fortgeschritteneCasa intelligente

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

Post di blog consigliati

  1. Installa ESP32 ora dal gestore del consiglio di amministrazione
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - Programmazione ESP tramite WLAN