window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Automatisk kattmatare - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2020-04-28
Codest

Automatisk kattmatare

Arkadiusz Buras

Föreställ dig en sådan situation: klockan är 6:00 en lördagsmorgon, du ligger bekvämt i din säng och sover fortfarande gott. Plötsligt hör du din katt skrapa på dörren, dess höga jamande blir outhärdligt och din katt har all tid i världen på sig att låta dig veta vad den behöver. Vet du vad den verkligen behöver?

Föreställ dig en sådan situation: klockan är 6:00 en lördagsmorgon, du ligger bekvämt i din säng och sover fortfarande gott. Plötsligt hör du din katt skrapa på dörren, dess höga jamande blir outhärdligt och din katt har all tid i världen på sig att låta dig veta vad den behöver. Vet du vad den verkligen behöver? Jag vet - din katt vill ha mat nu! Just nu! Hur vet jag det? För att jag vid något tillfälle började mata min katt vid den tiden... Och det blev naturligtvis en ny standardtid för att få mat.

Det här scenariot inspirerade mig att bygga en automatisk kattmatare, som skulle ta bort problemen med morgonmatning av katter och hålla katten glad.

Första generationen

Den första generationen av kattmatare var en enkel MVP tillverkad av lite kartong, enkel servo och ESP WeMos. Den använde servo för att rotera den övre behållaren 180 grader för att mata ut maten.

En mikrokontroller var ansluten till mitt lokala Wi-Fi och kommunicerade med Smart Home-servern som kör HomeAssistant via MQTT-protokollet. Tack vare det kunde jag använda HomeAssistant-automationssystemet för att schemalägga matning och utdelning av mat via Google Home-kommandon. Varje utfodring definierades som en speciell händelse i Google Kalender. Det gjorde att jag enkelt kunde kontrollera kattens matningstid och ändra den vid behov.

Naturligtvis stötte denna generation på vissa problem:

  • den översta behållaren ibland lossnade från servohandtaget och spillde ut hela maten (jag kallade det "Jackpot-effekten"),
  • den hade inte den bästa designen,
  • började kartongen att försämras.

Som med de flesta MVP:er användes den bara i två år innan den gick sönder.

Andra generationen

Jag bestämde mig för att nästa kattmatare skulle:

  • byggas av 3D-utskrivna delar,
  • använda Raspberry Pi 3,
  • ha en liten kamera för att se hur katten reagerade och vad djuret gjorde.

Jag började hela processen med att designa grundläggande element för uppdelning av livsmedel. När designen var klar skrevs alla element ut med Creality Ender-3 och PLA

Delar

Efter att ha försäkrat mig om att allt fungerade fortsatte jag med att designa och skriva ut resten av delarna:

Bas för RaspberryPi (Nivå 0)

Den har särskilda platser för skruvar som underlättar installationen av Raspberry Pi. På framsidan finns dessutom ett litet hål för enkel åtkomst till Raspberry Pis SD-kort.

Hållare för skål

Denna plastdel används för att placera en matskål av metall (den är naturligtvis tryckt med guldfilament, till min katts ära och berömmelse). Den är ansluten till basen med hjälp av 2 neodymmagneter.

Servohållare (nivå 1)

Denna nivå används för att hålla servot medan det roterar delen på nästa nivå. Den har också en liten lutning för bättre matservering.

Behållare för ransoneringsmekanism (nivå 2)

Det här är en enkel generisk nivå som portionerar mat från en behållare som är placerad ovanför. Den roteras med hjälp av servon.

Hållare för matbehållare (nivå 3)

Denna del används för att hålla matbehållaren. Det är den enda plastdelen som inte är 3D-printad. Jag ville minimera matkontakten med 3D-utskrivna delar. I teorin har transparent PLA-plast inga giftiga föroreningar, men jag köpte den billigaste spannmålsdispensern och tog matbehållardelen, bara för att vara på den säkra sidan. Dessutom ser den riktigt cool ut.

Hölje och lock

De två sista delarna var höljet och locket. Inget speciellt här, förutom lite mer guld för att få det att se bättre ut och vinna kattens beundran.

Alla delar

Slutlig montering

Programvara

Raspberry Pi kör en Raspbian som har laddats upp med hjälp av ansible spelbok för att driva dessa tjänster:

MotionEye

MotionEye är en programvara med öppen källkod för att bygga din egen privata övervakning. Den upptäcker alla kameror som är anslutna till Raspberry Pi. Dessutom får du rörelsedetektering, en slutpunkt för att dela strömmen och stöd för webhook.

Servoservice

Denna tjänst styr servots rotation. Det är en enkel Python skript som ansluter till MQTT-servern som kör min Smart House-programvara och väntar på ett meddelande för att utlösa rotationen.

Led service

Precis som servotjänsten implementerar den ett protokoll för ljuskällor som styrs av MQTT i HemAssistent.

Automatisering av hemassistenter

Och slutligen HomeAssistant-automatiken som utlöser matningen.

Den utlöser matutdelning i två situationer:

  • när matningstiden dyker upp i kalendern,
  • när den internationella rymdstationen befinner sig ovanför min hemort.

Denna automatisering kod ser ut så här:

- alias: Mata katten
avtryckare:
- plattform: stat
entity_id: "binär_sensor.iss
från: "off
till: "på
- plattform: stat
entity_id: kalender.cat_feed_schedule
från: "off
till: "på
handling:
- tjänst: script.feed_the_cat

Sammanfattning

Självklart är den här versionen inte den sista. Men den tjänar sitt syfte - katten är välnärd och jag har mina lata morgnar 🙂 .

Läs mer om detta:

– E-commerce: Nytt läge i spelet 2020 (rapport)

– Hur driver man ett företag under krisen?

– Programmering i Ruby. Nybörjarens terminal - del 2

Relaterade artiklar

Codest

The Codest Kärnvärde #1

The Codest tror på fyra viktiga värden som är kärnan i alla åtgärder som vidtas av The Codest-team. I den här artikeln förklarar vår CEO och medgrundare, Greg Polec, vad...

Codest
Greg Polec VD OCH KONCERNCHEF
Codest

The Codest:s framgångshistoria: Möt vår Finance Lead Iza

I den här artikelserien delar vi med oss av berättelserna om The Codest-teamkamrater som har haft en inverkan på vårt företags nuvarande form. I följande artikel frågar vi...

Codest
Monika Krupa Marknadsföringsansvarig
Codest

The Codest:s framgångshistoria: Möt Lukasz Brzeszcz

Den här gången är stjärnan i The Codest Success Story Lukasz Brzeszcz, vår Ruby-programvaruutvecklare och programmerare. Hur började Lukasz resa med The Codest och vad hjälpte honom att...

Codest
Monika Krupa Marknadsföringsansvarig
Codest

Använde MVP-metoden för att framgångsrikt omprofilera The Codest

För en tid sedan skröt vi om den nya öppningen för The Codest. Vi genomförde en intensiv rebrandingprocess och presenterade den för världen för några dagar sedan. Det är...

Codest
Jakub Czosnyka Marknadsföringsansvarig
Codest

TheCodestReview #2 - veckovis juice för mjukvaruutveckling

Hej och varmt välkomna till det andra avsnittet i vår TheCodesReview-serie. Den här veckan har vi fokuserat på kvalitet i mjukvaruutvecklingsprojekt, vikten av frontend-arkitektur och övergång...

Codest
Kamil Ferens Chef för tillväxtavdelningen

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokala tekniknav

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

    sv_SESwedish
    en_USEnglish de_DEGerman da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek sv_SESwedish