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.
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:
Â
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"
Â
Ci registriamo con il nostro indirizzo e-mail e assegniamo una password:
Â
Â
Poi clicchiamo sul 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:
Â
Â
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:
Â
Â
Il primo elemento selezionato è Notfication e configurarlo.
Â
Di seguito sono riportati i dettagli delle impostazioni dell'elemento:
Â
Confermiamo le impostazioni con la freccia a sinistra, e poi atterriamo di nuovo nella vista principale dell'APP:
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:
Â
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:
Ora colleghiamo brevemente la porta 15 con Plus per il test. Ora dovremmo vedere il seguente messaggio sul telefono:
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!
Â
5 commenti
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 ?