The Codest Valore di base #1
The Codest crede in quattro valori fondamentali che sono alla base di tutte le azioni intraprese dai team The Codest. In questo articolo, il nostro CEO e cofondatore, Greg Polec, spiega cosa...
Immaginate una situazione del genere: sono le 6:00 di sabato mattina, siete comodamente sdraiati nel vostro letto e state ancora dormendo profondamente. Improvvisamente sentite il vostro gatto grattare sulla porta, i suoi forti miagolii diventano insopportabili e il vostro gatto ha tutto il tempo per farvi sapere di cosa ha bisogno. Sapete di cosa ha veramente bisogno?
Immaginate una situazione del genere: sono le 6:00 di sabato mattina, siete comodamente sdraiati nel vostro letto e state ancora dormendo profondamente. Improvvisamente sentite il vostro gatto grattare sulla porta, i suoi forti miagolii diventano insopportabili e il vostro gatto ha tutto il tempo per farvi sapere di cosa ha bisogno. Sapete di cosa ha veramente bisogno? Lo so: il vostro gatto vuole subito del cibo! Adesso! Come faccio a saperlo? Perché a un certo punto ho iniziato a dare da mangiare al mio gatto a quell'ora... E, naturalmente, è diventato un nuovo orario standard per ottenere il cibo.
Questo scenario mi ha ispirato a costruire una mangiatoia automatica per gatti, che eliminasse i problemi di alimentazione mattutina del gatto e lo rendesse felice.
La prima generazione di mangiatoie per gatti era una semplice MVP realizzato con del cartone, un semplice servo e un ESP WeMos. Utilizzava un servo per ruotare il contenitore superiore di 180 gradi per erogare il cibo.
Un microcontrollore è stato collegato al mio Wi-Fi locale e ha comunicato con il server Smart Home che esegue HomeAssistant tramite il protocollo MQTT. Grazie a questo, ho potuto utilizzare il sistema di automazione HomeAssistant per programmare l'alimentazione e la distribuzione del cibo attraverso i comandi di Google Home. Ogni pasto è stato definito come un evento speciale nel calendario di Google. Questo mi ha permesso di controllare facilmente l'orario di alimentazione del gatto e di modificarlo quando necessario.
Naturalmente, questa generazione ha incontrato alcuni problemi:
Come la maggior parte degli MVP, è stato utilizzato per soli 2 anni fino alla rottura.
Ho deciso che la prossima mangiatoia per gatti dovrebbe:
Ho iniziato l'intero processo progettando gli elementi di base per la suddivisione degli alimenti. Poi, quando i progetti erano pronti, tutti gli elementi sono stati stampati con Creality Ender-3 e PLA.
Dopo essermi assicurato che tutto funzionasse, ho proceduto alla progettazione e alla stampa del resto delle parti:
Dispone di apposite sedi per le viti che facilitano l'installazione di Raspberry Pi. Inoltre, sulla parte anteriore è presente un piccolo foro per facilitare l'accesso alla scheda SD di Raspberry Pi.
Questa parte in plastica serve per posizionare una ciotola per il cibo in metallo (naturalmente, è stata stampata con filamenti d'oro, per la fama e la gloria del mio gatto). È collegata alla base con 2 magneti al neodimio.
Questo livello serve a tenere il servo mentre ruota il pezzo sul livello successivo. Ha anche una piccola pendenza per servire meglio il cibo.
Si tratta di una semplice livella generica che porziona il cibo da un contenitore posto in alto. Viene fatto ruotare dal servo.
Questa parte serve a contenere il contenitore del cibo. È l'unica parte in plastica che non è stata stampata in 3D. Volevo ridurre al minimo il contatto con gli alimenti con le parti stampate in 3D. In teoria, la plastica PLA trasparente non contiene contaminanti tossici, ma ho comprato il dispenser di cereali più economico e ho preso la parte del contenitore per alimenti, per sicurezza. Inoltre, l'aspetto è davvero bello.
Le ultime due parti erano l'alloggiamento e il coperchio. Niente di speciale, a parte un po' di oro in più per migliorare l'aspetto e conquistare l'ammirazione del gatto.
Su Raspberry Pi è in esecuzione una Raspbian fornita con il programma playbook ansible per eseguire questi servizi:
MotionEye è un software open source per la creazione di un monitoraggio privato. Rileva qualsiasi telecamera collegata a Raspberry Pi. Inoltre, già dalla confezione, è possibile ottenere il rilevamento del movimento, un endpoint per la condivisione del flusso e il supporto per i webhook.
Questo servizio controlla la rotazione del servo. Si tratta di un semplice Python che si connette al server MQTT che esegue il mio software Smart House e attende un messaggio per attivare la rotazione.
Proprio come il servizio servo, implementa un protocollo per le sorgenti luminose controllate da MQTT in Assistente domiciliare.
Infine, l'automazione HomeAssistant che attiva l'alimentazione.
Attiva l'erogazione del cibo in due situazioni:
Questa automazione codice si presenta così:
- alias: Dai da mangiare al gatto
innesco:
- piattaforma: stato
entity_id: 'binary_sensor.iss'
da: "off
a: 'on'
- piattaforma: stato
entity_id: calendar.cat_feed_schedule
da: "off
a: 'on'
azione:
- servizio: script.feed_the_cat
Ovviamente, questa versione non è l'ultima. Ma serve al suo scopo: il gatto è ben nutrito e io ho le mie mattinate pigre 🙂
Per saperne di più:
– E-commerce: Nuovo stato del gioco 2020 (relazione)
– Come gestire un'azienda durante la crisi?
– Programmazione Ruby. Terminale per principianti - parte 2