5. februarja, 2021

Krmilnik kokošnjaka

ha 300x80 - Krmilnik kokošnjakaNapreden krmilnik za kokošnjak  z modulom ESP8266/Cayenne, ki upravlja delovanje vrat, razsvetljave in ogrevanja in katerih izhode lahko tudi ročno upravljamo prek spletnega strežnika.

Projekt je nekoliko bolj zahteven in vsebuje popolna navodila.

Kaj bomo potrebovali v tem projektu

10 1 300x216 - Krmilnik kokošnjaka

Slika 1: Te tri kokoši imajo sodobno krmiljenje svojega pametnega doma

Strojni del opreme in elektronika

1 x          ESP8266MOD (Wemos D1)

3 x          Upor 220 Ohmov

1 x          LED (rdeča)

1 x          LED (rumena)

1 x          LED (modra)

2 x          BC547 (NPN-tranzistor)

2 x          Upor 10k Ohmov

1 x          AM2302 (senzor temperature in vlage)

1 x          Polprevodniški rele (LRSSR-DD, DC vhod/izhod)

1 x          Polprevodniški rele (LRSSR-DA, DC vhod, AC izhod)

1 x          Avtomatska vrata za kokošnjak (Kerbl)

1 x          Grelna plošča (24V, VOSS)

1 x          Luč (230V)

1 x          Drobni material, žice, kabli in podobno

2 x          Dioda 1N4148

1 x          LCD zaslon (alfanumerični, 4 vrstice po 20 znakov)

 

Programske aplikacije in spletne storitve

  • Arduino IDE

Uvod

Novembra 2020 sem kupil 3 kokoši, kot neke vrste prijeten hobi. Ker pa živim v švicarskih Alpah, kjer so nizke temperature in me ni vedno doma, me je zanimalo avtomatiziranje delovanja razsvetljave, vrat in ogrevanja. Zakaj?

  1. Svetloba. Pomembno je, da kokoši dobijo dovolj svetlobe, zlasti pozimi, ko je dan krajši. Ni nujno zaradi tega, ker bi tako imeli več jajc, pomembno je, da imajo dovolj časa za hranjenje, s čimer se zaščitijo pred mrazom. Priporočljivo je, da vsak dan prejmejo 14 ur svetlobe.
  2. Vrata. Kokošnjaki, ki so postavljeni na bolj oddaljenih lokacijah, pogosto obiskujejo različne živali, zlasti lisice. Ključno je, da je kokošnjak ponoči varno zaprt. S to avtomatizacijo je odpravljeno tveganje, da bi pozabili zapreti ali odpreti vrata.
  3. Ogrevanje. V švicarskih Alpah se lahko pozimi temperature občasno spustijo tudi do -25 stopinj Celzija. Ko nikogar ni doma, je skoraj nemogoče zagotoviti vodo, ki ni zmrznjena. Vendar je treba vodo čez dan večkrat osvežiti tudi tedaj, ko je kdo doma.

In tako sem se odločil za avtomatizacijo teh treh funkcij. Za modul ESP8266 (Wemos D1) sem se odločil zaradi WiFi funkcij, tako da lahko vse upravljam na daljavo prek Cayenne. Prav tako sem si želel, da bi lahko stanje spremljal na svojem preprostem spletnem strežniku.

Zahteve sicer niso bile prevelike, vendar je vedno potreben nek določen čas, da vse deluje po naših željah. Zdaj, ko vse teče brezhibno, bom svoje izkušnje rad delil prek te platforme (https://www.hackster.io), da bodo zamisel lahko uporabili tudi drugi.

Zasnova celotnega sistema

Uporabil sem modul ESP8266 (Wemos D1) z integrirano WiFi funkcionalnostjo in zadostnim številom vhodno / izhodnih vrat za različne senzorje in aktuatorje. Sheme za ta projekt so zelo preproste, inteligenca pa je programska oprema z algoritmi za krmiljenje razsvetljave in vrat z uporabo zunanje ure za realni čas in za krmiljenje grelnika na podlagi izmerjene temperature. ESP8266 ima vmesnik Cayenne (MQTT) za prikaz vrednosti senzorjev (temperature in vlažnosti) ter za krmiljenje razsvetljave, vrat in grelnika s pomočjo aktuatorjev. Poleg tega so ustrezne informacije prikazane na LCD zaslonu (4 x20 znakov) in hkrati objavljene na preprostem spletnem strežniku.

ESP8266 se vedno znova zažene vsako polnoč, s čimer se zmanjša tveganje za težave, kot je na primer pomanjkanje virov (pomnilnika).

Nadzorna plošča in vmesnik Cayenne

Obstaja več načinov uporabe  nadzorne plošče za oddaljen prikaz vrednosti senzorjev in nadzor aktuatorjev. Odločil sem se, da ne bom uporabljal Blynka (plačati morate porabo), temveč Cayenne, ki je brezplačen, vendar manjkajo nekatere funkcije, kot so sprotne posodobitve vrednosti aktuatorjev (brez branja) in pošiljanje besedilnih sporočil, ki naj bi bila prikazana. Po drugi strani pa ga je zelo enostavno konfigurirati, najbolje bo, da obiščite to povezavo: cayenne.mydevices.com in preučite izvorno kodo. Potrebujete kombinacijo uporabniškega imena in gesla in za vsak unikatni projekt / nadzorno ploščo identifikacijo odjemalca. V navedenem primeru je ID odjemalca na voljo tako za delujočo izvedbo kot za preskusno okolje.

10 2 300x212 - Krmilnik kokošnjaka

Slika 2: Cayenne nadzorna plošča

Iz izvorne kode je enostavno razbrati, kako so kanali dodeljeni senzorjem in aktuatorjem. Po glavni programski zanki so navedene funkcije, povezane s Cayenneom. Pri uporabi upoštevajte, da lahko prek Cayenne nadzorne plošče način delovanja nastavite na ročno upravljanje, “Manual”. V tem primeru lahko razsvetljavo, ogrevanje,  vrata in  ponastavitev (reset naprave)  neposredno upravljamo prek nadzorne plošče, sicer pa ne.

Ura realnega časa

Pri tem projektu je ključnega pomena neprekinjen dostop do aktualnega časa in datuma. To je enostavno rešiti s povezavo prek NTP odjemalca. V izvorni kodi je zelo razumljivo razloženo, kako to deluje.

Ustrezna povezava na to temo [1].

Najzanimivejši del tega projekta je verjetno to, da se podatki ure realnega časa uporabljajo za izračun zaporednega števila trenutnega dneva v letu, dolžine tega dneva, časov sončnega vzhoda in zahoda ter tako imenovane časovne enačbe, ki velja za določeno lokacijo (nadmorska višina, časovni pas). Te vrednosti se uporabljajo za določanje, kdaj naj se razsvetljava vklopi oziroma izklopi in kdaj naj se odprejo ali zaprejo vrata. Za dodatna pojasnila si oglejte izvorno kodo.

Merjenje temperature in vlage

Merjenje temperature in vlage je za Arduino projekte že povsem običajna naloga. Uporabljen je bil modul AM2303 (DHT11), priključen na napajanje in z izhodom za branje vrednosti temperature in vlage. Za bolj podroben vpogled si lahko ogledate to povezavo [2].

Krmiljenje razsvetljave

Razsvetljavo upravljamo s polprevodniškim relejem. Če je ustrezen izhod ESP8266 nastavljen na visok logični nivo (D10 > 3V DC), se s pomočjo gonilnega vezja s tranzistorjem, uporom in diodo vklopi polprevodniški rele, ki vklopi razsvetljavo (izbran model lahko vklaplja in izklaplja do 380 V AC s standardno frekvenco 50 Hz).

Ustrezna povezava, kjer si lahko preberete več o tem je [3].

Krmiljenje vrat

Za odpiranje in zapiranje vrat sem uporabil kar KERBL namensko napravo, ki je namenjena ravno »kokošjim« aplikacijam. Vgrajeno ima krmiljenje za odpiranje in zapiranje vrat, ki ga  prožimo tako, da eno izmed obeh vhodnih vrednosti (odpiranje ali zapiranje) za 1 sekundo postavimo na “HIGH” vrednost.

10 3 300x228 - Krmilnik kokošnjaka

Slika 3: Sistem za odpiranje in zapiranje vrat

Krmiljenje grelnika

Ogrevanje prav tako vklapljamo s polprevodniškim relejem. Če je ustrezen izhod ESP8266 modula nastavimo na visok logični nivo (D11 > 3VDC), se s pomočjo gonilnega vezja s tranzistorjem, uporom in diodo vklopi polprevodniški rele, ki vklopi ogrevanje (izbran model lahko vklaplja in izklaplja do 32 V DC).

Tu sem uporabil napravo VOSS [4], ki je namenjena prav ogrevanju pitne vode, da ne zmrzne.

Grelec se vklopi, ko temperatura pade pod določeno mejno vrednost in se izklopi, ko je temperatura nad tem pragom. Da bi se izognili prepogostim vklopom in izklopom, je bila v delovanje vgrajena histereza. Ustrezna povezava je ista kot za vklop razsvetljave [5].

Spletni strežnik

Odločil sem se, da bom objavili trenutno stanje vseh ustreznih parametrov in seznam dogodkov v napravi na spletni strani. V mojem primeru to ni nič posebnega, HTML je izpuščen, prikazano je le navadno besedilo.

10 4 300x282 - Krmilnik kokošnjaka

Slika 4: Spletni strežnik

Ustrezna povezava za izvedbo spletnega strežnika [6]

LED zaslon

ESP8266 je prek serijskega I2C vmesnika s signaloma SDA/SCL povezan tudi na LCD zaslon s 4 vrsticami po 20 znakov. Ko je na nadzorni plošči Cayenne način delovanja nastavljen na “Manual”, se zaslon redno posodablja z najpomembnejšimi informacijami.

Več o tem najdete na [7].

Sam to rešitev uporabljam že štiri tedne zapored, vse deluje nemoteno in doslej ni bilo še nobenih težav. Edina funkcionalnost, ki bi jo rad še dodal v prihodnosti, je OTA (over-the-air-update), s katero bi se izognil temu, da moram vezje vedno vzeti iz ohišja, če želim prek računalnika posodobiti programsko opremo.

Zavedam se, da je razlaga v tem prispevku namenjena bolj izkušenim bralcem in ne vsebuje prav veliko podrobnosti. Če bi dodal še te, bi se zgodba pretirano razširila, lahko verjamete! Namesto tega priporočam, da si pridobite osnovno razumevanje splošnih zahtev in nekoliko bolj zahtevnega načrtovanja, preučite razpoložljive sheme in se temeljito poglobite v razumevanje delovanja izvorne kode. V primeru kakršnih koli vprašanj sem vam na razpolago prek kontakta na spletni strani in v vsakem primeru vam bom poskusil pomagati!

 

Programska koda

10 7 300x252 - Krmilnik kokošnjaka

Slika 7: Ekranska slika programske kode

Na sliki 7 je ekranska slika dela programske kode, ki si jo lahko v celoti naložite s spletne strani tega članka:

https://www.hackster.io/hans-sassenburg/chicken-coop-controller-cbe2dc

 

Viri:

1: https://bit.ly/3nRSTsl

2: https://bit.ly/2LLF5Tb

3: https://bit.ly/3qIkZID

4: https://bit.ly/39WT4On

5: https://bit.ly/3bX1lUK

6: https://bit.ly/3oWXDy7

7: https://bit.ly/3o1eHlC

 

 

Povzeto po: https://www.hackster.io/hans-sassenburg/chicken-coop-controller-cbe2dc

Avtor: Hans Sassenburg na https://www.hackster.io

2021/293