Umetno podaljševanje dneva v kokokšnjaku

Maline, robidnice in podobni elektronski sadeži, ki imajo integriranega kar precej HW.

Moderator: tilz0R

Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a s5ti » 10 Nov 2017, 14:56

Imamo ducat mladih kokoši, ki so ravno začetel nesti jajca.
Prebral sem, da podaljševanje dneva (poleg hrane, toplote) bistveno vpliva na nesnost.

Rad bi umetno podaljšal dan v kokošnjaku.

Danes smo 10.11.2017, to je 313 dan v letu 2017

Do 31.3.2018 bi rad podaljševal dan po 2 minuti na dan. npr. 1 minuto zjutraj in 1 minuto zvečer.
Do takrat je 142 dni, dan se bo umeto podaljšal za 284 minut oz nekaj manj kot 5 ur.

Algoritem je približnot tak:
Dan 1 Začetek dneva: 6:45 Konec dneva 17:00
Dan 2 Začetek dneva 6:44 Konec dneva 17:01
Dan 3 Začetek dneva 6:43 konec dneva 17:02
itd do dneva 142


potrebujem:
Elektrika v kokošnjaku .. imam
Raspberry pi ............ imam
Rele 3V za Rpi .......... nimam
Software ................ nimam, razen algoritma in znam prižgati, ugasniti led lučko s programom spisanim v C


Rabil bi pomoč pri programiranju (začetnik v C), rele za prižiganje luči in druge koristne nasvete in vaših izkušenj.

s to kodo prižigam in ugašam led diodo:
Koda: Izberi vse
#include <wiringPi.h>
int main (void)
{
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ;
  for (;;)
  {
    digitalWrite (0, HIGH) ; delay (1000) ;
    digitalWrite (0,  LOW) ; delay (1000) ;
  }
  return 0 ;
}
s5ti
 
Prispevkov: 163
Pridružen: 22 Jan 2015, 11:03
Kraj: Dornberk
Zahvalil se je: 4 krat
Prejel zahvalo: 19 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 6

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a sundancer » 10 Nov 2017, 15:12

Uporabniški avatar
sundancer
 
Prispevkov: 361
Pridružen: 16 Jan 2015, 22:36
Kraj: Domžale
Zahvalil se je: 105 krat
Prejel zahvalo: 181 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 29

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a sundancer » 10 Nov 2017, 15:16

Poglej se tale plugin:
https://tech.scargill.net/big-timer/

Zadeva ti poslje signal kadar se zmraci, zdani, soncni vzhod, soncni zahod... (dusk, dawn, sunrise, sunset)
Odvisno kako nastavis.
Uporabniški avatar
sundancer
 
Prispevkov: 361
Pridružen: 16 Jan 2015, 22:36
Kraj: Domžale
Zahvalil se je: 105 krat
Prejel zahvalo: 181 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 29

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a s54mtb » 10 Nov 2017, 16:41

Rele je lahko pet voltni. Ce mi sporocis naslov, ti posljem potreben mateial. Za vklop in izklop lahko naredis tako, da ima tvoj c program se en parameter, npr 1 ali 0, s katerim vklopis in izklopis rele. Za periodicno ponavljanje si poglej cron. Recimo, da se ti enkrat na minuto sprozi in preveri dusk/daawn cas v bashu, ki potem klice vklop glede na offset, ki ga nastavis.
s54mtb
 
Prispevkov: 6857
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 896 krat
Prejel zahvalo: 2192 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 32

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a borisz » 10 Nov 2017, 19:29

Kaj pa, če dneva ne bi podaljševal, ampak bi ohranjal enako dolgega? Npr. dan se konča fiksno ob 20. uri?
Dodaš pogoj, da se luč prižge, ko se stemni.
To lahko narediš s PoKeys. Za konfiguracijo schedulerja boš porabil 10 minut. Poraba energije je nekajkrat manjša, kot pri RPi. Na izhod priklopiš SSR.
RTC dela na baterijo.
It's never too late to have a happy childhood.
Uporabniški avatar
borisz
 
Prispevkov: 2309
Pridružen: 18 Jan 2015, 12:05
Zahvalil se je: 511 krat
Prejel zahvalo: 571 krat
Uporabnika povabil: Marholt
Število neizkoriščenih povabil: 109

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a damo » 10 Nov 2017, 20:43

Uporabiš digitalni "štek-timer" za 6 eur ter senzorski reflektor. V senzorju odklopiš PIR. Ko timer ob mraku vklopi napajanje za reflektor, se ta itak prvič sam "sproži" in gori za x minut, nato pa ugasne. Nisem prepričan, kako vpliva nastavitev dan/noč na to, tak da z malce sreče lahko še to funkcijo uporabiš.
Dobrga štromarja samo slab šnops strese.
damo
 
Prispevkov: 533
Pridružen: 18 Jan 2015, 07:18
Kraj: okolica KK
Zahvalil se je: 46 krat
Prejel zahvalo: 66 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 16

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a Iztok » 10 Nov 2017, 23:58

Tako zadevo sem rešil 30 let nazaj s svetlobnim stikalom in timerjem. Timer je vklopil luč ob 5:00 in izklopil ob 20:00.

Če je bilo zunaj dovolj svetlo pa je vmes luč ugasnilo svetlobno stikalo ...
Uporabniški avatar
Iztok
 
Prispevkov: 1345
Pridružen: 04 Feb 2015, 01:00
Kraj: LJ
Zahvalil se je: 274 krat
Prejel zahvalo: 256 krat
Uporabnika povabil: Proteus
Število neizkoriščenih povabil: 49

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a s5ti » 13 Nov 2017, 11:30

@borisz
Dan se ne sme končati fiksno npr. ob 20h. Kokoši reagirajo na podaljševanje dneva. Spomladi bo narava sama poskrbela za podaljševanje dneva, gre se za zimski čas.

@s54mtb
Hvala s54mtb za ponudbo, ga bom kontaktiral na ZS.

Spisal sem program v C, ki na raspberry pi uspešno prižiga in ugaša ledico. Ker sem začetnik v C.
Prosim za komentar kode.

Koda: Izberi vse
// Koda za prižiganje in ugašanje luči za umetno podaljševanje dneva v kurniku

// navodilo za raspberry pi:
// instaliraj paket wiringpi z ukazom sudo apt-get install wiringpi
// programsko kodo  kurnik-luc.c prevedi v izvršiljivo datoteko z ukazom
// gcc -Wall -o kurnik-luc kurnik-luc.c -lwiringPi
// poženeš datotek z ukazom
// run sudo ./kurnik-luc

// Crontab program se izvede vsako minuto v mesecih 11,12,1,2,3 in med urami 5:00-8:59 h in 16:00-20:59
// proženje vsako minuto v  dodaš v crontab root userja in izhod preusmeriš v log datoteko
// * 5-8,16-20 * 11,12,1,2,3 * /home/pi/kurnik/kurnik-luc >> /tmp/kurnik-luc.log
// če log datoteke ni, jo kreiraš z ukazom  touch /tmp/kurnik-luc.log



// Opis delovanja: od 10.11.2017 do  31.3.2018 bom umetno podaljševal svetlobo v kurniku, vsak dan za eno minuto zjutraj in eno minuto zvečer.
// Zaenkrat se izognem sledenju mraka, sončnega vzhoda, zahoda in samo podaljšujem čas svetlobe, glede na datum in uro

// Začetno stanje na dan 10.11.2017
// luč je prižgana zjutraj med 6:45 in  8:00 (8:00 je fiksen čas, ko se luč ugasne)
// luč je prižgana med 16:00 uro (fiksen čas) in 17:00 uro.


#include <stdio.h>
#include <time.h>
#include <wiringPi.h>



// funkcija prizgi_luc prižge luč

int prizgi_luc (void) {
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ;
  printf("Prižigam luč v kurniku \n");
  delay (1000) ;
  digitalWrite (0, HIGH) ;
  return 0 ;
}

// funkcija usasni_luc ugasne luč

int ugasni_luc (void){
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ;
  printf("Ugašam luč v kurniku\n");
  delay (1000) ;
  digitalWrite (0,  LOW) ;
  return 0 ;
}



// Začetek glavnega programa

int main () {
   time_t curtime;
   struct tm *loc_time;

   // trenutni sistemski čas
   curtime = time (NULL);

   // pretvorba sistemske časa v lokalni čas
   loc_time = localtime (&curtime);

   // prikaz časa
   printf("%s", asctime (loc_time));

   int hour = loc_time->tm_hour; // trenutna ura
   int min = loc_time->tm_min;   // trenutna minuta
   int minut = ( hour * 60 ) + min; //koliko minut je poteklo od polnoči
   int danvletu = loc_time->tm_yday; //zaporedni dan v letu

   printf("Danes je %d dan v letu\n", danvletu);
   printf("potekolo je %d minut od polnoči\n", minut);

   int dan_i = danvletu - 313; //koliko dni je minilo od 10.11.2017, ko je bil 313 dan v letu
   int zjutraj_prizgi = 405 - dan_i; // 6:45 je 405 minut od polnoči
   int zjutraj_ugasni = 480 ; // ob 8h ugasne luč
   int zvecer_prizgi= 960; // ob 16h se prižge
   int zvecer_ugasni=1020 + dan_i; //ob 17:00 je 1020 minut od polnoči


   printf("zjutraj_prizgi %d minut od polnoci, ob uri: %d:%d\n", zjutraj_prizgi, zjutraj_prizgi / 60, zjutraj_prizgi % 60);
   printf("zjutraj_ugasni %d minut od polnoci, ob uri: %d:%d\n", zjutraj_ugasni, zjutraj_ugasni / 60, zjutraj_ugasni % 60);
   printf("zvecer_prizgi %d minut od polnoci, ob uri: %d:%d\n", zvecer_prizgi, zvecer_prizgi / 60, zvecer_prizgi % 60);
   printf("zvecer_ugasni %d minut od polnoci, ob uri: %d:%d\n", zvecer_ugasni, zvecer_ugasni / 60, zvecer_ugasni % 60);

   /* jutranje podaljševanje dneva */
   if (minut > zjutraj_prizgi && minut <= zjutraj_ugasni){
        prizgi_luc();
   }
   else {
        ugasni_luc();
   }

   /* večerno podaljševanje dneva */
   if (minut > zvecer_prizgi && minut <= zvecer_ugasni){
        prizgi_luc();
   }
   else {
        ugasni_luc();
   }

   printf("zjutraj je luč gorela %d minut\n", zjutraj_ugasni - zjutraj_prizgi);
   printf("zvečer je luč gorela %d minut\n", zvecer_ugasni - zvecer_prizgi);
   printf("------------------------------------\n");


   return 0;
}
s5ti
 
Prispevkov: 163
Pridružen: 22 Jan 2015, 11:03
Kraj: Dornberk
Zahvalil se je: 4 krat
Prejel zahvalo: 19 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 6

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a javr » 13 Nov 2017, 12:46

Prebral sem, da podaljševanje dneva (poleg hrane, toplote) bistveno vpliva na nesnost
kako pa na kokoši ?
___
Uporabniški avatar
javr
 
Prispevkov: 921
Pridružen: 17 Jan 2015, 21:06
Zahvalil se je: 43 krat
Prejel zahvalo: 75 krat
Uporabnika povabil: forest70
Število neizkoriščenih povabil: 18

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a VolkD » 13 Nov 2017, 12:53

javr je napisal/-a:
Prebral sem, da podaljševanje dneva (poleg hrane, toplote) bistveno vpliva na nesnost
kako pa na kokoši ?
Zakoljejo jih dokler so še mlade, da je meso še uporabno.
Ne vem če katera farma goji kokoši nesnice več kot prvo sezono.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 21610
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 3925 krat
Prejel zahvalo: 3039 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a carli » 13 Nov 2017, 13:21

Ali pa prodajo hobi rejcem, da si najprej opomorejo in znova operijo potem pa začnejo nest. Sicer pa dobra nesnica poleti ko dolg dan 1 krat na teden znese 2 jajci v enem dnevu 1. zjutraj in 2. zvečer. Bi pa predlagal da se luč ugasne počasi da kokoši najdejo mesto za spanje. Seveda če je to kurnik kjer kokoši spijo na letvah. Najvišje spi kurja elita.
carli
 
Prispevkov: 493
Pridružen: 12 Mar 2015, 19:45
Zahvalil se je: 62 krat
Prejel zahvalo: 37 krat
Uporabnika povabil: BraneZ
Število neizkoriščenih povabil: 7

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a s54mtb » 13 Nov 2017, 22:22

Tole gre jutri na pošto:
IMGP0110.JPG
s54mtb
 
Prispevkov: 6857
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 896 krat
Prejel zahvalo: 2192 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 32

Re: Umetno podaljševanje dneva v kokokšnjaku

OdgovorNapisal/-a s5ti » 21 Nov 2017, 14:13

Še rezime:
Sestavil sem rele, tranzistor, upor in diodo, ki jih je poslal s54mtb (še enkrat hvala!) in RaspberryPI lepo prižiga in ugaša luč,kot je bilo predvideno v programu. No, v bistvu sem za produkcijo uporabil pomarančo ( orange pi pc), ki mi je neuporabljena ležala v predalu in ima enake pine.

Zdaj moram rešiti še problem, ker se v primeru izpada elektrike ura in datum izgubita. Normalno je, da RaspberryPI dobi podatek o datumu in uri preko interneta, vendar v kurnik nisem vlekel utp kabla, wifi dongle, ki ga imam pa s pomarančo ne dela :( Naročil sem RTC board na ebayu, upam, da bo čimman izpadov elektrike dokler ne pride.
s5ti
 
Prispevkov: 163
Pridružen: 22 Jan 2015, 11:03
Kraj: Dornberk
Zahvalil se je: 4 krat
Prejel zahvalo: 19 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 6


Vrni se na Malina

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost