The Codest Ydinarvo #1
The Codest uskoo neljään keskeiseen arvoon, jotka ovat kaikkien The Codest-tiimien toimien ytimessä. Tässä artikkelissa CEO ja toinen perustajamme Greg Polec selittää, mitä...
Kuvittele tällainen tilanne: kello on 6:00 lauantaiaamuna, makoilet mukavasti sängyssäsi ja nukut yhä syvään. Yhtäkkiä kuulet kissasi raapivan ovea, sen kovaääniset määkimiset muuttuvat sietämättömiksi ja kissallasi on kaikki maailman aika kertoa sinulle, mitä se tarvitsee. Tiedätkö, mitä se todella tarvitsee?
Kuvittele tällainen tilanne: kello on 6:00 lauantaiaamuna, makoilet mukavasti sängyssäsi ja nukut yhä syvään. Yhtäkkiä kuulet kissasi raapivan ovea, sen kovaääniset määkimiset muuttuvat sietämättömiksi ja kissallasi on kaikki maailman aika kertoa sinulle, mitä se tarvitsee. Tiedätkö, mitä se todella tarvitsee? Tiedän - kissasi haluaa nyt ruokaa! Juuri nyt! Mistä minä sen tiedän? Koska jossain vaiheessa aloin ruokkia kissaani juuri tuohon aikaan... Ja siitä tuli tietenkin uusi vakioaika ruoan saamiselle.
Tämä skenaario innoitti minua rakentamaan automaattisen kissanruokinta-automaatin, joka poistaisi kissan aamuruokintaan liittyvät ongelmat ja pitäisi kissan tyytyväisenä.
Ensimmäisen sukupolven kissansyöttölaite oli yksinkertainen... MVP tehty pahvista, yksinkertaisesta servosta ja ESP WeMosista. Se käytti servoa kääntämään yläastiaa 180 astetta ruoan jakamiseksi.
Mikrokontrolleri oli kytketty paikalliseen Wi-Fi-yhteyteeni ja kommunikoi HomeAssistantia käyttävän Smart Home -palvelimen kanssa MQTT-protokollan kautta. Tämän ansiosta pystyin käyttämään HomeAssistant-automaatiojärjestelmää ruokinnan ja ruoan annostelun ajoittamiseen Google Home -komennoilla. Jokainen ruokinta määriteltiin erityiseksi tapahtumaksi Google-kalenterissa. Näin pystyin helposti valvomaan kissan ruokinta-aikaa ja muuttamaan sitä tarvittaessa.
Tämä sukupolvi kohtasi tietysti joitakin ongelmia:
Kuten useimpia MVP-laitteita, sitä käytettiin vain kaksi vuotta, kunnes se hajosi.
Päätin, että seuraavan kissan syöttölaitteen pitäisi:
Aloitin koko prosessin ruoan jakamisen peruselementtien suunnittelusta. Kun mallit olivat valmiit, kaikki elementit tulostettiin Creality Ender-3:lla ja PLA:lla.
Kun olin varmistanut, että kaikki toimi, jatkoin loput osat suunnittelua ja tulostamista:
Siinä on erityiset paikat ruuveille Raspberry Pi:n asentamisen helpottamiseksi. Lisäksi etupuolella on pieni reikä, josta pääsee helposti käsiksi Raspberry Pi:n SD-korttiin.
Tätä muoviosaa käytetään metallisen ruokakupin sijoittamiseen (tietysti se tulostettiin kultaisilla filamenteilla kissani maineen ja kunnian vuoksi). Se on liitetty pohjaan 2 neodyymimagneetilla.
Tätä tasoa käytetään servon pitämiseen, kun se pyörittää seuraavalla tasolla olevaa osaa. Siinä on myös pieni kaltevuus ruoan tarjoilun helpottamiseksi.
Tämä on yksinkertainen yleinen taso, joka jakaa ruokaa yläpuolella olevasta astiasta. Sitä pyörittää servo.
Tätä osaa käytetään ruoka-astian pitämiseen. Se on ainoa muoviosista, jota ei ole 3D-tulostettu. Halusin minimoida ruokakontaktin 3D-tulostettujen osien kanssa. Teoriassa läpinäkyvässä PLA-muovissa ei ole myrkyllisiä epäpuhtauksia, mutta ostin halvimman muroannostelijan ja otin ruokasäiliön osan varmuuden vuoksi. Lisäksi se näyttää todella siistiltä.
Kaksi viimeistä osaa olivat kotelo ja kansi. Ei mitään erikoista tässä, paitsi lisää kultaa, jotta se näyttäisi paremmalta ja voittaisi kissan ihailun.
Vadelma Pi on käynnissä Raspbian provisioitu käyttäen the ansible-pelikirja käyttää näitä palveluja:
MotionEye on avoimen lähdekoodin ohjelmisto oman yksityisen seurannan rakentamiseen. Se havaitsee minkä tahansa Raspberry Pi:hen liitetyn kameran. Lisäksi saat valmiiksi liikkeentunnistuksen, päätepisteen streamien jakamiseen ja webhook-tuen.
Tämä palvelu ohjaa servon pyörimistä. Se on yksinkertainen Python skripti, joka muodostaa yhteyden MQTT-palvelimeen, jolla Smart House -ohjelmistoni toimii, ja odottaa viestiä, joka käynnistää kierron.
Aivan kuten servopalvelu, se toteuttaa protokollan MQTT:n ohjaamaa valonlähdettä varten. HomeAssistent.
Ja lopuksi HomeAssistant-automaatio, joka käynnistää ruokinnan.
Se käynnistää ruoan annostelun kahdessa tilanteessa:
Tämä automaatio koodi näyttää tältä:
- alias: Syötä kissa
laukaista:
- foorumi: valtio
entity_id: "binary_sensor.iss".
from: 'off'
to: 'on'
- foorumi: valtio
entity_id: calendar.cat_feed_schedule
from: 'off'
to: 'on'
toiminta:
- palvelu: script.feed_the_cat
Tämä versio ei tietenkään ole viimeinen. Mutta se palvelee tarkoitustaan - kissa on hyvin ravittu ja minulla on laiskat aamut 🙂 .
Lue lisää:
– E-commerce: Pelin uusi tila 2020 (raportti)
– Miten johtaa yritystä kriisin aikana?
– Ruby-ohjelmointi. Aloittelijan terminaali - osa 2