Come avere sul proprio NAS un servizio simile a Thingspeak

Salve,
ho una serie di piccoli progetti che necessitano di registrare dei dati rilevati dai sensori in un database.
Al momento sto utilizzando un servizio online Thingspeak, che non solo mi consente di registrare i dati ma anche di visualizzarli.
Purtroppo ci sono delle limitazioni, come il numero di servizi/dati messo a disposizione con un account gratuito.
La mia domanda è questa:
E' possibile installare sul proprio NAS (Synology) un simile sistema, cosi da sganciarsi definitivamente dai servizi online che oggi sono gratis e domani diventano a pagamento oppure chiudono ?
In certi casi diventare autonomi è la soluzione migliore che risolve molti problemi.

Per registrare solo i dati ti basta attivare l'FTP sul NAS e quindi scrivere (in append in genere) uno o più file (direi CSV) nei quali registrare i valori letti.
Io ho fatto già una cosa di questo tipo per un datalogger per la produzione del fotovoltaico, ti riporto qualche snippet:

#include <FTPClient_Generic.h>
#define USING_VSFTP_SERVER      true
FTPClient_Generic ftp (ftp_server, ftp_user, ftp_pass, 10000);
char csvHeader[] = "Data;Wh;MaxW\r\n";
...
char dato[80];
void scriviDati() {
  sprintf(nomeFile, "SolarLog_%d.csv", Year);
  ftp.OpenConnection();
  ftp.ChangeWorkDir(dirName);

  sprintf(dato, "%04d/%02d/%02d;%d;%d\r\n", Year, Month, Day, 
      (int)totWh, maxWatt);
  if (!FtpExists(String(nomeFile))) {
    ftp.InitFile(COMMAND_XFER_TYPE_ASCII);
    ftp.NewFile(nomeFile);
    ftp.Write(csvHeader);
    ftp.CloseFile();
  }
  ftp.InitFile(COMMAND_XFER_TYPE_ASCII);
  ftp.AppendFile(nomeFile);
  ftp.Write(dato);
  ftp.CloseFile();
  ftp.CloseConnection();
}

bool FtpExists(String myFile) {
  String list[128];
  ftp.InitFile(COMMAND_XFER_TYPE_ASCII);
  ftp.ContentListWithListCommand("", list);
  for (uint16_t i = 0; i < sizeof(list); i++)
  {
    if (list[i].length() > 0) {
      if (!list[i].startsWith(".")) {        
        if (list[i].substring(0,list[i].length()-1) == myFile)
          return true;
      }
    }
    else
      break;
  }
  return false;
}

Poi ovviamente la "presentazione" dei dati sta a te, con Excel ad esempio o magari con un programmino in C# sul suo PC che legge i file e fa quello che ti occorre.

Grazie docdoc per il consiglio,
adesso vedo se riesco ad attivare il tutto.
Il massimo sarebbe stato di scrivere direttamente nel database MySQL o quello che è presente nel NAS tipo MariaDB.

MariaDB è quasi del tutto identico a MySQL.
Se hai il database che gira sul tuo NAS, un microcontrollore dotato di connettività WiFi o Ethernet non dovrebbe avere alcun problema ad eseguire delle query SQL

Dai un'occhiata a questa libreria ad esempio

oppure a questa

Wow, mitico !!
Con queste librerie risolvo alla grande il problema !!
Grazie cotestatnt

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.