Sw fotoperiodo allevamento Uccelli

Buona sera, premetto che ho cercato nel forum ma ho trovato solo basi per acquari.

Come premessa per chi non avesse visto il mio post di presentazione sono un manutentore elettrico e ho dimestichezza con impinati 230 V e 400 V trifasi oltre che alla programmazione plc Siemens.

Volevo abbozzare un sistema per fotoperiodo per l'allevamento di Uccelli....

Consigliato da un collega ho acquistato questi dispositivi:

  • Arduino uno R3
  • SunFounder IIC I2C TWI Serial 2004 20x4 LCD
  • RTC I2C 24C32 Memory Module DS1307
  • Scheda a 4 relè
  • Modulo tastiera I2C

Per via della programmazione devo ammettere che sono carente con questo linguiaggio e mi sto leggendo un po' di informazioni su internet.
Quello che vorrei è attivare le luci in base ad una tabella in mio possesso in quanto l'incremento/decremento non è lineare. Non voglio fare una tabella giorno per giorno, ho dei valori con step da 15gg che poi il sistema dovrebbe suddividere da se.

Ora la domanda :smiley: sapere darmi dei consigli su come basare il programma in questione ??

Grazie mille in anticipo a tutti coloro che spenderanno del tempo per leggere questo post e rispondere

cosa é un "fotoperiodo"?

Domanda:
Ma non si deve prendere in considerazione solo l'ora di Alba e Tramonto ?

uwefed:
cosa é un "fotoperiodo"?

Questo più in particolare QUESTO

Qua un esempio di fotoperiodo per gli uccelli

Brunello:
Domanda:
Ma non si deve prendere in considerazione solo l'ora di Alba e Tramonto ?

No, perché il fotoperiodo si basa anche sull'intensità di illuminazione del Sole, siccome varia a seconda delle stagioni l'altezza del Sole sopra l'orizzonte. :wink: (almeno per farlo precisissimo si intende, bisogna vedere dalle sue esigenze poi, potrebbe anche bastare a meno che non sono uccelli che vivono a 60 gradi a N di latitudine dove tra estate e inverno c'è una differenza abissale di luminosità :D)

QUA descrivono bene

allora non devi sono accendere e spegnere ma anche regolare l' intensitá della luce?
Ciao Uwe

Posted by As_Needed

  • Today at 12:40 am
    Quote

Quote from: uwefed on Nov 27, 2016, 09:26 pm

❝cosa é un "fotoperiodo"?

Questo più in particolare QUESTO

Qua un esempio di fotoperiodo per gli uccelli

hai proprio azzeccato quello che vorrei fare, per rispondere anche agli altri utenti, l'intensità di luce non viene regolata automaticamente ma nei periodi giusti vengono accese lampade supplementari

Secondo me ti conviene studiarti millis() perché ti servirà al 100% :wink:

As_Needed:
Secondo me ti conviene studiarti millis() perché ti servirà al 100% :wink:

Scusa la mia ignoranza cosa è millis ??

L'orgoglio interno di Arduino. Grosso modo.

ExperimentUno:
L'orgoglio interno di Arduino. Grosso modo.

:smiley: GUARDA QUI COMUNQUE :wink:

Non prendertela con me :smiley:
Sono al telefono e tirar fuori i links è una acrobazia :wink:

ExperimentUno:
Non prendertela con me :smiley:
Sono al telefono e tirar fuori i links è una acrobazia :wink:

Ho sbagliato io e non si capisce bene che è riferito a marco076 il link :smiley:

Grazie mille a tutti per la dritta, :wink: quello che mi serviva era un aiuto su come abozzare il programma per la gestione del cambio ora...... ho provato a pensare a come abozzarlo ma non mi viene :disappointed_relieved:

marco076:
Grazie mille a tutti per la dritta, :wink: quello che mi serviva era un aiuto su come abozzare il programma per la gestione del cambio ora...... ho provato a pensare a come abozzarlo ma non mi viene :disappointed_relieved:

Secondo me devi iniziare con il semplice accendere e spegnere quello che ti serve, poi piano piano il resto :wink:

Ecco una bozza di programma che avevo fatto per una prova di accensione luci con gestione di Alba e Tramonto

#include <SunLight.h>     //installare da https://github.com/Fede85/SunLight
#include <DS3232RTC.h>    //installare da http://github.com/JChristensen/DS3232RTC
#include <Time.h>         // Installare da gestione librerie
#include <Wire.h>
#include <TimeAlarms.h>  // Installare da gestione librerie
#include <TimeLib.h>

const byte Rele = 13 ;   // Pin a cui sono collegate le lampade

SunLight firenze; // Declaration of the object
float myLongitude = 11.24; // settaggio per Firenze
float myLatitude = 43.77;  // settaggio per Firenze
uint8_t timeArray[4];

// If you want to anticipate the sunrise and postpone the sunset.
// Permits data beetween 0 and 60 and the unit of measurement is minutes
uint8_t twilight_minutes = 0;


void setup()
{
  pinMode(Rele, OUTPUT);
  Serial.begin(115200);
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
  if (timeStatus() != timeSet)
    Serial.println("Impossibile sincronizzarsi con RTC");
  else
    Serial.println("RTC Ha impostato l'ora nel sistema");
  //Alarm.alarmRepeat(hours, minutes, seconds, function);
  Alarm.alarmRepeat(2, 0 , 0 , Controlla_ora); // imposta orario di controllo
  Controlla_ora(); // impostazioni iniziali di orario al reset
}

void Accendi() {
  Serial.println("Acccende ....");
  digitalWrite( Rele, HIGH); // Accende le lampade
}
void Spegni() {
  Serial.println("Spegne .......");
  digitalWrite( Rele, LOW); // Spegne le lampade
}

void Controlla_ora() {
  firenze.setPosition(myLatitude, myLongitude);
  boolean check = firenze.computeSR(timeArray, twilight_minutes, day(), month(), year() );
  if ( check == true ) {
    byte ora_alba = timeArray[SUNRISE_H];
    byte min_alba = timeArray[SUNRISE_M] ;
    byte ora_tram = timeArray[SUNSET_H] ;
    byte min_tram = timeArray[SUNSET_M] ;
    Alarm.alarmOnce(ora_alba, min_alba, 00, Accendi);
    Alarm.alarmOnce(ora_tram, min_tram, 00, Spegni);
    Serial.print("Alba = ");
    Serial.print(ora_alba);
    Serial.print(":");
    Serial.print(min_alba);
    Serial.print("  Tramonto = ");
    Serial.print(ora_tram);
    Serial.print(":");
    Serial.print(min_tram);
    Serial.println() ;
    Serial.println("Fine impostazioni  ");
  }
  else {
    Serial.println("Errore nei dati di impostazione" );
  }
}

void loop()
{
  Serial.print("Data: ");
  Serial.print(day(), DEC);
  Serial.print(":");
  Serial.print(month(), DEC);
  Serial.print(":");
  Serial.print(year(), DEC);
  Serial.print("    ");
  Serial.print(hour(), DEC);
  Serial.print(":");
  Serial.print(minute(), DEC);
  Serial.print(":");
  Serial.print(second(), DEC);
  Serial.print("    ");
  Serial.print("Alba: ");
  Serial.print(timeArray[SUNRISE_H], DEC);
  Serial.print("h ");
  Serial.print(timeArray[SUNRISE_M], DEC);
  Serial.print("m    ");
  Serial.print("Tramonto: ");
  Serial.print(timeArray[SUNSET_H], DEC);
  Serial.print("h ");
  Serial.print(timeArray[SUNSET_M], DEC);
  Serial.println("m ");
  Alarm.delay(1000);
}

Io non ho capito se il fotoperiodo lo vuoi totalmente indipendente dal'ora solare, per cui puoi anche avere le luci accese in piena notte ed essere al buio di giorno oppure no.

No la mia teballa è indipendete all'ora solare è tipo questa:

DATA Alba Tramonto Tot
1 GENNAIO 06:19 01:50 19:31
15 GENNAIO 06:25 02:18 19:53
DATA Alba Tramonto Tot
1 FEBBRAIO 06:30 00:50 18:20
15 FEBBRAIO 06:35 23:12 16:37
DATA Alba Tramonto Tot
1 MARZO 06:43 21:35 14:52
15 MARZO 07:11 19:43 12:32
DATA Alba Tramonto Tot
1 APRILE 07:45 17:42 09:57
15 APRILE 08:13 17:06 08:53
DATA Alba Tramonto Tot
1 MAGGIO 08:35 16:34 07:59
15 MAGGIO 08:51 16:23 07:32
DATA Alba Tramonto Tot
1 GIUGNO 09:14 16:09 06:55
15 GIUGNO 09:31 16:00 06:29
DATA Alba Tramonto Tot
1 LUGLIO 09:07 16:04 06:57
15 LUGLIO 08:24 15:50 07:26
DATA Alba Tramonto Tot
1 AGOSTO 07:30 16:40 09:10
15 AGOSTO 06:51 18:20 11:29
DATA Alba Tramonto Tot
1 SETTEMBRE 06:16 19:25 13:09
15 SETTEMBRE 06:12 21:12 15:00
DATA Alba Tramonto Tot
1 OTTOBRE 06:06 22:32 16:26
15 OTTOBRE 06:02 23:00 16:58
DATA Alba Tramonto Tot
1 NOVEMBRE 06:00 23:32 17:32
15 NOVEMBRE 06:00 00:00 18:00
DATA Alba Tramonto Tot
1 DICEMBRE 06:04 00:32 18:28
15 DICEMBRE 06:10 01:00 18:50

DATA Alba Tramonto Tot
1 DICEMBRE 06:04 00:32 18:28

ma quelle povere bestie non dormono mai ?

In effetti 18 ore e mezza di luce è roba da circolo polare artico o antartico in estate :smiley: