The Codest Základní hodnota #1
The Codest věří ve čtyři klíčové hodnoty, které jsou základem všech činností týmů The Codest. V tomto článku náš CEO a spoluzakladatel Greg Polec vysvětluje, co je...
Představte si takovou situaci: je šest hodin ráno v sobotu, vy ležíte pohodlně v posteli a ještě tvrdě spíte. Najednou uslyšíte, jak vaše kočka škrábe na dveře, její hlasité mňoukání se stane nesnesitelným a vaše kočka má všechen čas na světě, aby vám dala najevo, co potřebuje. Víte, co skutečně potřebuje?
Představte si takovou situaci: je šest hodin ráno v sobotu, vy ležíte pohodlně v posteli a ještě tvrdě spíte. Najednou uslyšíte, jak vaše kočka škrábe na dveře, její hlasité mňoukání se stane nesnesitelným a vaše kočka má všechen čas na světě, aby vám dala najevo, co potřebuje. Víte, co skutečně potřebuje? Já vím - vaše kočka chce hned jídlo! Hned teď! Jak to vím? Protože jsem v určitém okamžiku začala svou kočku krmit v tuto dobu... A samozřejmě se z toho stal nový standardní čas pro získání jídla.
Tento scénář mě inspiroval k sestrojení automatického krmítka pro kočky, které by odstranilo starosti s ranním krmením koček a zajistilo jejich spokojenost.
První generace krmítka pro kočky byla jednoduchá. MVP z kartonu, jednoduchého serva a ESP WeMos. Pomocí serva se horní nádoba otáčela o 180 stupňů a vydávala jídlo.
Mikrokontrolér byl připojen k mé místní síti Wi-Fi a komunikoval se serverem Smart Home se systémem HomeAssistant prostřednictvím protokolu MQTT. Díky tomu jsem mohl používat automatizační systém HomeAssistant k plánování krmení a výdeje jídla prostřednictvím příkazů Google Home. Každé krmení bylo v kalendáři Google definováno jako zvláštní událost. To mi umožnilo snadno kontrolovat čas krmení kočky a v případě potřeby jej změnit.
Tato generace se samozřejmě setkala s určitými problémy:
Stejně jako většina MVP byl používán pouze 2 roky, než se rozbil.
Rozhodl jsem se, že příští krmítko pro kočky by mělo:
Celý proces jsem začal návrhem základních prvků pro rozdělení potravin. Poté, když byly návrhy hotové, byly všechny prvky vytištěny pomocí tiskárny Creality Ender-3 a PLA.
Poté, co jsem se ujistil, že vše funguje, jsem přistoupil k návrhu a tisku zbytku dílů:

Má speciální místa pro šrouby, které usnadňují instalaci počítače Raspberry Pi. Na přední straně je navíc malý otvor pro snadný přístup ke kartě SD počítače Raspberry Pi.
Tato plastová část slouží k umístění kovové misky na jídlo (samozřejmě byla vytištěna zlatými vlákny, pro slávu a věhlas mé kočky). Se základnou je spojena pomocí 2 neodymových magnetů.

Tato úroveň slouží k přidržení serva při otáčení dílu na další úrovni. Má také malý sklon pro lepší podávání jídla.

Jedná se o jednoduchou obecnou úroveň, která porcuje jídlo z nádoby umístěné nad ní. Otáčí se pomocí serva.

Tato část slouží k držení nádoby na potraviny. Je to jediný plastový díl, který nebyl vytištěn na 3D tiskárně. Chtěl jsem minimalizovat kontakt 3D tištěných dílů s potravinami. Teoreticky průhledný PLA plast neobsahuje žádné toxické nečistoty, ale koupil jsem nejlevnější dávkovač na cereálie a pro jistotu jsem vzal díl s nádobou na jídlo. Taky to vypadá opravdu skvěle.

Posledními dvěma díly byly kryt a víko. Zde nebylo nic zvláštního, kromě většího množství zlata, aby to vypadalo lépe a získalo si to kočičí obdiv.



Na Raspberry Pi je spuštěn Raspbian s použitím ansible playbook k provozování těchto služeb:
MotionEye je software s otevřeným zdrojovým kódem pro vytvoření vlastního soukromého monitorování. Detekuje jakoukoli kameru připojenou k Raspberry Pi. Z výroby navíc získáte detekci pohybu, koncový bod pro sdílení datového toku a podporu webhooku.
Tato služba řídí otáčení serva. Jedná se o jednoduchou Python skript, který se připojí k serveru MQTT se softwarem Smart House a čeká na zprávu, která spustí rotaci.
Stejně jako služba servo implementuje protokol pro světelný zdroj řízený pomocí MQTT v. HomeAsistent.
A nakonec automatizace HomeAssistant, která spouští krmení.
Spouští výdej jídla ve dvou situacích:
Tato automatizace kód vypadá takto:
- alias: Krmení kočky
spouštěč:
- platforma: stát
entity_id: "binary_sensor.iss
od: 'off'
na: "zapnuto
- platforma: stát
entity_id: calendar.cat_feed_schedule
od: 'off'
na: "zapnuto
akce:
- služba: script.feed_the_cat
Tato verze samozřejmě není poslední. Ale svůj účel plní - kočka je najedená a já mám svá líná rána 🙂
Přečtěte si více:
– E-commerce: Nový stav hry 2020 (zpráva)
– Jak řídit firmu během krize?
– Programování v jazyce Ruby. Terminál pro začátečníky - část 2