The Codest Kernwaarde #1
The Codest gelooft in vier cruciale waarden die de kern vormen van alle acties die door The Codest teams. In dit artikel, onze CEO en mede-oprichter, Greg Polec, legt uit wat...
Stel je zo'n situatie voor: het is 6 uur 's ochtends op een zaterdagochtend, je ligt comfortabel in je bed, nog heerlijk te slapen. Plotseling hoor je je kat aan de deur krabben, zijn luide gemiauw wordt ondraaglijk en je kat heeft alle tijd van de wereld om je te laten weten wat hij nodig heeft. Weet je wat hij echt nodig heeft?
Stel je zo'n situatie voor: het is 6 uur 's ochtends op een zaterdagochtend, je ligt comfortabel in je bed, nog heerlijk te slapen. Plotseling hoor je je kat aan de deur krabben, zijn luide gemiauw wordt ondraaglijk en je kat heeft alle tijd van de wereld om je te laten weten wat hij nodig heeft. Weet je wat hij echt nodig heeft? Ik weet het - je kat wil nu eten! Nu meteen! Hoe ik dat weet? Omdat ik mijn kat op een gegeven moment op dat tijdstip begon te voeren... En natuurlijk werd het een nieuw standaardtijdstip om eten te krijgen.
Dit scenario inspireerde me om een automatische kattenvoerautomaat te bouwen, die de problemen van het 's ochtends katten voeren zou wegnemen en de kat tevreden zou houden.
De eerste generatie van de kattenvoerautomaat was een eenvoudige MVP gemaakt van wat karton, een eenvoudige servo en ESP WeMos. De servo draaide de bovenste bak 180 graden om het voedsel uit te delen.
Een microcontroller was verbonden met mijn lokale Wi-Fi en communiceerde met de Smart Home server met HomeAssistant via het MQTT-protocol. Hierdoor was ik in staat om het HomeAssistant automatiseringssysteem te gebruiken om het voeden en het uitdelen van voedsel te plannen via Google Home commando's. Elke voeding werd gedefinieerd als een speciale gebeurtenis in de Google Agenda. Elke voeding werd gedefinieerd als een speciale gebeurtenis in de Google Agenda. Zo kon ik eenvoudig de etenstijd van de kat regelen en indien nodig wijzigen.
Natuurlijk ondervond deze generatie een aantal problemen:
Zoals bij de meeste MVP's werd hij slechts 2 jaar gebruikt tot hij kapot ging.
Ik besloot dat de volgende kattenvoerbak zou moeten:
Ik ben het hele proces begonnen met het ontwerpen van basiselementen voor het verdelen van voedsel. Toen de ontwerpen klaar waren, werden alle elementen geprint met de Creality Ender-3 en PLA.
Nadat ik er zeker van was dat alles werkte, ging ik verder met het ontwerpen en printen van de rest van de onderdelen:
Het heeft speciale plaatsen voor schroeven om Raspberry Pi te helpen installeren. Bovendien is er aan de voorkant een klein gaatje voor gemakkelijke toegang tot de SD-kaart van Raspberry Pi.
Dit plastic onderdeel wordt gebruikt voor het plaatsen van een metalen etensbakje (natuurlijk is het geprint met gouden filamenten, voor de roem en glorie van mijn kat). Het is verbonden met de basis met 2 neodymium magneten.
Dit niveau wordt gebruikt om de servo vast te houden terwijl hij het onderdeel op het volgende niveau draait. Het heeft ook een kleine helling voor het beter serveren van voedsel.
Dit is een eenvoudige algemene waterpas die voedsel uit een erboven geplaatste container portioneert. Het wordt gedraaid door de servo.
Dit onderdeel wordt gebruikt om de voedselcontainer vast te houden. Het is het enige plastic onderdeel dat niet 3D-geprint is. Ik wilde het voedselcontact met 3D-geprinte onderdelen minimaliseren. In theorie bevat doorzichtig PLA plastic geen giftige stoffen, maar ik heb de goedkoopste cornflakes dispenser gekocht en voor de zekerheid het onderdeel voor de voedselcontainer genomen. Het ziet er ook erg cool uit.
De laatste twee onderdelen waren de behuizing en het deksel. Niets bijzonders hier, behalve meer goud om het er beter uit te laten zien en de bewondering van de kat te winnen.
Op de Raspberry Pi draait een Raspbian die is geleverd met behulp van de ansible afdraaiboek om deze services uit te voeren:
MotionEye is open source software voor het bouwen van je eigen privébewaking. Het detecteert elke camera die is aangesloten op de Raspberry Pi. Bovendien krijg je bewegingsdetectie, een eindpunt voor het delen van de stream en ondersteuning voor webhooks.
Deze service regelt de rotatie van de servo. Het is een eenvoudige Python script dat verbinding maakt met de MQTT-server waarop mijn Smart House-software draait en wacht op een bericht om de rotatie te starten.
Net als de servoservice implementeert het een protocol voor lichtbronnen die worden bestuurd door MQTT in HomeAssistent.
En tot slot de HomeAssistant automatisering die de voeding activeert.
Het triggert voedseluitgifte in twee situaties:
Deze automatisering code ziet er als volgt uit:
- alias: Voer de kat
trekker:
- platform: staat
entiteit_id: "binaire_sensor.iss
van: "uit
naar: 'aan'
- platform: staat
entiteit_id: kalender.cat_feed_schema
van: "uit
naar: 'aan'
actie:
- service: script.feed_the_cat
Dit is duidelijk niet de laatste versie. Maar het dient zijn doel - de kat is goed gevoed en ik heb mijn luie ochtenden 🙂
Lees meer:
– E-commerce: Nieuwe staat van het spel 2020 (verslag)
– Hoe run je een bedrijf tijdens de crisis?
– Ruby programmeren. Beginnersterminal - deel 2