Pagina 1 di 1

Connessione remota Arduino --> MariaDB su NAS

Inviato: venerdì 11 dicembre 2020, 14:58
da tonygiger
Ciao a tutti, spero di essere nella sezione del forum giusta per porre il mio quesito e chiedo anticipatamente scusa se nel descriverlo farò qualche strafalcione. Sono relativamente nuovo nel mondo NAS Synology con annessi e connessi. Le mie esperienze di programmazione risalgono a svariati anni fa e ora sto faticosamente cercando di tornare al passo (base base) coi tempi.

Sto lavorando a un progetto basato sull'architettura WH/SW Arduino per le quali servono quindi delle basi di C++.
Concettualmente l'idea dietro al progetto è molto semplice e lo riassumo così:

1) Una scheda Arduino MKR WiFi 1010 acquisisce dei dati da dei sensori
2) I dati vengono inviati a un database MySQL (MariaDB 5), con semplici INSERT
3) I dati sul DB vengono elaborati a piacere e visualizzati in dashboard, inizialmente usando Grafana, ma potenzialmente su pagine web .php dedicate e costruite ad-hoc.
4) I dati sul DB potrebbero anche essere letti dalla stessa scheda Arduino (o altre) per gestire e generare degli allarmi, attivare cose, ecc...

La scheda Arduino sarà inizialmente collegata via WiFi alla stessa rete del NAS, ma dovrà essere possibile collegarla ad altre reti e/o con modulo SIM dati potendo cmq caricare i dati sul DB che risiederà sempre sul NAS sulla rete originale.

Sui punti 1), 3) e 4) direi che sono coperto:
- la scheda Arduino per quell'operazione la so programmare (già fatto);
- MariaDB 5 già installato sul NAS (Synology coma da firma) e funzionante;
- phpMyAdmin installato e avviato;
- BD creato e funzionanate;
- Grafana installato, collgato al DB e funzionante.


Mi rimane un grosso dubbio (magari per i più esperti molto banale) sul collegamento al DB sul NAS.

Sto studiando questa libreria per poterlo fare:
https://github.com/khoih-prog/MySQL_MariaDB_Generic
(la parte che mi interessa è la WIFININA per il tipo di scheda che userò).

Nello specifico le righe di codice che dicono alla scheda dove sia il DB e avviano la semplice query di inserimento dati (quello sotto è solo un esempio generico per scrivere in una riga "Hello, Arduino!") sono queste:

Codice: Seleziona tutto

IPAddress server_addr(192, 168, 2, 112);
uint16_t server_port = 5698;    //3306;

char default_database[] = "test_arduino";           //"test_arduino";
char default_table[]    = "hello_arduino";          //"test_arduino";

String default_value    = "Hello, Arduino!"; 

// Sample query
String INSERT_SQL = String("INSERT INTO ") + default_database + "." + default_table 
                 + " (message) VALUES ('" + default_value + "')";

MySQL_Connection conn((Client *)&client);
Ora, come vedete oltre alla porta, chiede l'IP del server:
IPAddress server_addr(192, 168, 2, 112)

Ecco... qui il mio dubbio. Io che NON ho un IP statico, cosa devo metterci?
Il nome host? Cioè del mio NAS tipo mionas.synology.me? Del server dove gira il DB? In questo ultimo caso quale sarebbe?
Nella finestra di info di MariaDB 5 trovo un campo chiamato "Socket dominio" che contiene l'indirizzo /run/mysqld/mysqld.sock, potrebbe essere questo?

Grazie a tutti!

Re: Connessione remota Arduino --> MariaDB su NAS

Inviato: lunedì 14 dicembre 2020, 12:13
da llac
Nella tua LAN e soprattutto se c’è la necessita di accedere a un DB è buona cosa impostare un IP Fisso. Io preferisco farlo fare al router piuttosto che configurare il nas direttamente. (solo perché è più comodo)

Il tuo NAs si presenta alla rete con un nome che avrai configurato al primo avvio che puoi usare al posto , in un workgroup (intendo senza active directory o simile) ho sempre preferito usare l'IP.

Per gli accessi extra LAN eviterei di esporre il NAS e il DB ma userei una VPN , se non puoi con la VPN in passato per un problema simile ho usato la mail ...poi non ti rimane che pensare un meccanismo che legga la mail e trasferisca il contenuto dell'allegato al DB.

nella stringa di connessione del DB va l'ip del server con il DB che presumo essere il nas.

Ciao
Luca