Datalogger fermentazione e mash con Arduino e ThingSpeak

Sezione specifica dedicata alla progettazione di sistemi di controllo sia hardware che software con il sistema Arduino

Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda Essetielle » 16/06/2016, 0:35

Salve a tutti,

colgo l'occasione per presentarvi l'idea che ci frulla nella testa.

Avete presente quando uscite di casa e il vostro cuore è rimasto li, abbracciato al fermentatore?
Avete presente quando siete ad una festa dove tutti si divertono e voi siete in un angolo a mangiarvi le dita perché non avete controllato la temperatura di fermentazione della vostra amata Imperial Stout? :roll:
..devi sapere che non sei l'unico (chi dice il contrario o è un bugiardo oppure non è mai uscito di casa).

Scherzi a parte, il progetto consiste nel tenere uno storico on-line ed in tempo reale delle temperature desiderate ad intervalli prestabiliti.

Le modalità dovrebbero essere due:
1 - Log della fermentazione (Mia idea)
2 - Log del Mash (Idea di Sgabuzen. Con la sua mania di protagonismo aspettatevi uno streaming live delle cotte :shock: )

Il sistema si compone di:
Arduino
Ethernet shield
DS18B20
LCD (Questo io non lo volevo, ma Sgabuzen mi ha promesso una cassa di birra dell'Eurospin e io mi vendo facilmente birra8 )

Detto questo, lo sketch arduino è in fase di sviluppo su Telegram e per chi volesse contribuire o farsi due risate (il confine è sottile) questo è il link:

https://telegram.me/joinchat/ANiblz-3v2OWyTOYwNRljQ

a presto
Essetielle
Principiante
Principiante
 
Messaggi: 8
Iscritto il: 20/01/2016, 18:44
Comune: Vernole
Stile preferito: IPA
Tecnica: All Grain
Provincia: Lecce (Puglia)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda houston » 16/06/2016, 9:41

Ahahahahahah una cassa di birra dell'Eurospin! :lol:
Io sono quasi pronto per una versione di test del mash datalogger... domenica brasso una pils e utilizzerò questo sistema per monitorare le temperature.
Ne vedremo delle belle! birra3
Moderatore de "Il Forum della Birra"
Regolamento - Facebook - Twitter - Mappa
Berlo ha scritto:...leggere i post dei "costruttori d'impianti" è stupendo, mi fa morir d'invidia e mi fa sempre pensare che queste persone sono della stessa pasta di quelli che mandarono gli astronauti sulla luna con un computer di potenza paragonabile ad un Commodore64! Siete fantastici ragazzi, vi adoro tutti dal primo all'ultimo!

Visita il mio sito!
Immagine
Avatar utente
houston
Domozimurgo
Domozimurgo
 
Messaggi: 3438
Iscritto il: 27/10/2011, 11:21
Comune: Santa Maria Capua Vetere
Stile preferito: Porter
Tecnica: All Grain
Provincia: Caserta (Campania)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda Essetielle » 23/06/2016, 23:18

Aggiornamenti:

Codice: Seleziona tutto
/*
  EsseDuino Ferm Datalogger ver. 0.0.5
  ThingSpeak

  Seriali sonde:
  1 - Sonda 1 = { 0x28, 0xFF, 0x47, 0xE2, 0x64, 0x15, 0x01, 0xC8 };
  2 - Sonda 2 = { 0x28, 0xFF, 0xDB, 0xDF, 0x64, 0x15, 0x01, 0x8B };
  3 - Sonda 3 = { 0x28, 0xBD, 0x90, 0x92, 0x05, 0x00, 0x00, 0x37 };

  PIN ARDUINO
  Pin Digital 0   ->
  Pin Digital 1   ->
  Pin Digital 2   -> DS18B20
  Pin Digital 3   ->
  Pin Digital 4   ->
  Pin Digital 5   ->
  Pin Digital 6   ->
  Pin Digital 7   ->
  Pin Digital 8   ->
  Pin Digital 9   ->
  Pin Digital 10  -> Ethernet
  Pin Digital 11  -> Ethernet
  Pin Digital 12  -> Ethernet
  Pin Digital 13  -> Ethernet

  Pin Analog  A1  ->
  Pin Analog  A2  ->
  Pin Analog  A3  ->
  Pin Analog  A4  ->
  Pin Analog  A5  ->



*/

#include <SPI.h>
#include <Ethernet.h>
#include <ThingSpeak.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <OneWire.h>
#include <LiquidCrystal_I2C.h>

EthernetClient client;
OneWire oneWire(2);
DallasTemperature sensors(&oneWire);
DeviceAddress sonda_B = { 0x28, 0xFF, 0x47, 0xE2, 0x64, 0x15, 0x01, 0xC8 };
DeviceAddress sonda_C = { 0x28, 0xFF, 0xDB, 0xDF, 0x64, 0x15, 0x01, 0x8B };
DeviceAddress sonda_A = { 0x28, 0xBD, 0x90, 0x92, 0x05, 0x00, 0x00, 0x37 };
LiquidCrystal_I2C lcd(0x27, 16, 2);

float t_sonda_A = 0.0;
float t_sonda_B = 0.0;
float t_sonda_C = 0.0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

//  Parametri di rete
IPAddress ip(192, 168, 0, 178);
IPAddress subnet(255, 255, 255, 0);
IPAddress DNS(8, 8, 8, 8);
IPAddress gw(192, 168, 0, 1);

// Parametri ThingSpeak
unsigned long myChannelNumber = XXXXXXX;                  //ID Canale Fermentazione
const char * myWriteAPIKey = "XXXXXXXXXXXXXXX";     //APIKey Fermentazione

unsigned long prossima_scrittura = 0;
unsigned long tempo_run = 0;

int intervallo_log = 20000;                       //intervallo log fermentazione in millisecondi

// grafica LCD --- generazione icone ---
byte degC[8]         = {B11000, B11000, B00110, B01001, B01000, B01001, B00110, B00000};
byte Termometro[8]   = {B00100, B01010, B01010, B01110, B01110, B11111, B11111, B01110};
byte Bottiglia[8]    = {B00100, B00100, B00100, B01110, B01110, B01110, B01110, B01110};
byte Frigo[8]        = {B11111, B10001, B11111, B10001, B10011, B10011, B10001, B11111};
byte Connesso[8]     = {B01110, B10001, B00100, B01010, B00000, B00100, B00100, B01110};
byte Disconnesso[8]  = {B00000, B00000, B00000, B00000, B00100, B00100, B00100, B01110};
// fine grafica LCD


void setup() {

  // ------------ Codice di prova per evitare freez saltuari ---------------------------
  pinMode(10, OUTPUT);
  digitalWrite(10, HIGH);
  // -------------------------------------------------------------------------------------

  lcd.init();
  lcd.backlight();
  lcd.createChar(0, degC);
  lcd.createChar(1, Termometro);
  lcd.createChar(2, Bottiglia);
  lcd.createChar(3, Frigo);
  lcd.createChar(4, Connesso);
  lcd.createChar(5, Disconnesso);
  lcd.setCursor(0, 0);
  lcd.print("EsseDuino F");
  lcd.setCursor(0, 1);
  lcd.print("versione 0.0.4 ");
  delay(2000);
  lcd.clear();
  sensors.begin();
  Ethernet.begin(mac);
  ThingSpeak.begin(client);
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print("EssD ");
  lcd.setCursor(6, 0);
  lcd.print((char)5);
  sensors.requestTemperatures();
  t_sonda_A = sensors.getTempC(sonda_A);
  t_sonda_B = sensors.getTempC(sonda_B);
  t_sonda_C = sensors.getTempC(sonda_C);
  tempo_run = millis();
  ThingSpeak.setField(1, t_sonda_A);
  ThingSpeak.setField(2, t_sonda_B);
  ThingSpeak.setField(3, t_sonda_C);

  if (prossima_scrittura <= tempo_run || prossima_scrittura == 0) {

    if (!client.connect("52.7.53.111", 80)) {
      Ethernet.begin(mac);
    } else {
      client.stop();
    }

    lcd.setCursor(6, 0);
    lcd.print((char)4);
    ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
    prossima_scrittura = tempo_run + intervallo_log;
   
  }
  lcd.setCursor(9, 0);
  lcd.print((char)3); //icona frigo
  lcd.print("=");
  if (t_sonda_A == -127.00) {
    lcd.print("Err.   ");
  } else {
    lcd.print(t_sonda_A, 1);
    lcd.print((char)0); //°C
  }
  lcd.setCursor(0, 1);
  lcd.print((char)1); //icona termometro
  lcd.print("=");
  if (t_sonda_B == -127.00) {
    lcd.print("Err.   ");
  } else {
    lcd.print(t_sonda_B, 1);
    lcd.print((char)0); //°C
  }

  lcd.setCursor(9, 1);
  lcd.print((char)2); //icona bottiglia
  lcd.print("=");
  if (t_sonda_C == -127.00) {
    lcd.print("Err.   ");
  } else {
    lcd.print(t_sonda_C, 1);
    lcd.print((char)0); //°C
  }
  delay(1000);
}


Qui il codice aggiornato, testato e funzionante.
Essetielle
Principiante
Principiante
 
Messaggi: 8
Iscritto il: 20/01/2016, 18:44
Comune: Vernole
Stile preferito: IPA
Tecnica: All Grain
Provincia: Lecce (Puglia)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda houston » 24/06/2016, 0:39

Che bello vedere alcuni pezzi del mio codice che sono entrati a far parte del tuo... birra2
Domani farò lo stesso con pezzi del tuo... :mrgreen:
birra3 birra3 birra3
Moderatore de "Il Forum della Birra"
Regolamento - Facebook - Twitter - Mappa
Berlo ha scritto:...leggere i post dei "costruttori d'impianti" è stupendo, mi fa morir d'invidia e mi fa sempre pensare che queste persone sono della stessa pasta di quelli che mandarono gli astronauti sulla luna con un computer di potenza paragonabile ad un Commodore64! Siete fantastici ragazzi, vi adoro tutti dal primo all'ultimo!

Visita il mio sito!
Immagine
Avatar utente
houston
Domozimurgo
Domozimurgo
 
Messaggi: 3438
Iscritto il: 27/10/2011, 11:21
Comune: Santa Maria Capua Vetere
Stile preferito: Porter
Tecnica: All Grain
Provincia: Caserta (Campania)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda Essetielle » 24/06/2016, 13:39

Ciò che è tuo è mio e ciò che è mio è mio.
Essetielle
Principiante
Principiante
 
Messaggi: 8
Iscritto il: 20/01/2016, 18:44
Comune: Vernole
Stile preferito: IPA
Tecnica: All Grain
Provincia: Lecce (Puglia)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda luca_ciccio » 02/07/2016, 8:57

X l'ethernet shield puó andare bene questo?
http://www.ebay.it/itm/261851449118

Per essere completo aggiungere un modulo relè per ventola e fascia.
Ho una camera molto artigianale in polistirolo e credo in questa cfg andrà meglio che con STC1000.
Che dite?
luca_ciccio
Principiante
Principiante
 
Messaggi: 12
Iscritto il: 14/01/2016, 23:57
Comune: Cerrione
Stile preferito: Pilsner
Tecnica: Estratto+Grani
Provincia: Biella (Piemonte)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda houston » 03/07/2016, 9:26

L'ethernet shield è proprio quella.
Per adesso, se non sbaglio, il codice di Stefano (lui si occupa di fermentazione) è solo un datalogger ma non è affatto difficile inserirci i relè. birra2
Moderatore de "Il Forum della Birra"
Regolamento - Facebook - Twitter - Mappa
Berlo ha scritto:...leggere i post dei "costruttori d'impianti" è stupendo, mi fa morir d'invidia e mi fa sempre pensare che queste persone sono della stessa pasta di quelli che mandarono gli astronauti sulla luna con un computer di potenza paragonabile ad un Commodore64! Siete fantastici ragazzi, vi adoro tutti dal primo all'ultimo!

Visita il mio sito!
Immagine
Avatar utente
houston
Domozimurgo
Domozimurgo
 
Messaggi: 3438
Iscritto il: 27/10/2011, 11:21
Comune: Santa Maria Capua Vetere
Stile preferito: Porter
Tecnica: All Grain
Provincia: Caserta (Campania)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda Essetielle » 04/07/2016, 0:34

Tempo fà realizzai un clone di STC1000 con arduino con le seguenti caratteristiche:
-Sonda DS18B20
-Pagina web dalla quale controllavo la temperatura
-Sempre dalla pagina web regolavo temperatura max e min
-Doppio relè per caldo/freddo
-Freddo tramite frigo
-Caldo tramite phoon (Cinese)

Risultato?
Dopo svariati giorni di utilizzo arduino si bloccò e il phoon (cinese) rimase acceso per qualche ora.
Ti lascio immaginare...

Morle: Arduino presto o tardi ti tradirà, l'importante e prevederlo!

Scherzi a parte, io utilizzo un STC1000 per la termoregolazione ed arduino per la supervisione e datalogger.
Essetielle
Principiante
Principiante
 
Messaggi: 8
Iscritto il: 20/01/2016, 18:44
Comune: Vernole
Stile preferito: IPA
Tecnica: All Grain
Provincia: Lecce (Puglia)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda BaroneBirra » 05/06/2017, 18:05

Salve ragazzi! In questi giorni estivi, appena preso il pozzetto e comprato l'itc-1000 volevo iniziare a prepararmi per la prossima cotta, e avevo in mente di creare un datalogger con arduino per la camera di fermentazione, che inviasse i dati in rete o comunque consultabile in remoto. pero' non sono molto pratico di arduino et similia, e volevo sapere se le info(sia codice che hardware) che ho trovato in questo post potessero bastarmi per creare un datalogger o se devo avere altro. eventualmente mi servisse altro, potreste indirizzarmi sul dove poterlo trovare? Grazie in anticipo per il vostro aiuto e scusate se ho fatto necroposting!
BaroneBirra
Principiante
Principiante
 
Messaggi: 15
Iscritto il: 15/01/2017, 16:25
Comune: Giulianova
Stile preferito: Tutti, ma prediligo le Imperial Stout
Tecnica: Kit luppolato
Provincia: Teramo (Abruzzo)

Re: Datalogger fermentazione e mash con Arduino e ThingSpeak

Messaggioda salvo81 » 05/06/2017, 21:55

Prova con iSpindle, e non esci matto
salvo81
Birraio
Birraio
 
Messaggi: 168
Iscritto il: 28/05/2016, 11:27
Comune: Gioiosa Marea
Stile preferito: pale ale
Tecnica: All Grain
Provincia: Messina (Sicilia)

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: tonino e 1 ospite