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 Arduino (e MySQL). 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 concettualmente molto semplice (almeno per chi ha solo un minimo di esperienza in più di me) e lo riassumo così:
- 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, che risiede su un NAS Synology DS918+; - 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;
- 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 la semplice operazione di lettura sensori la so programmare (già fatto);
- MariaDB 5 già installato sul NAS e funzionante;
- phpMyAdmin installato e avviato;
- BD creato e funzionanate;
- Grafana installato, collgato al DB e funzionante.
Mi rimane un grosso dubbio (in realtà forse molto banale per i più esperti) sul collegamento al DB sul NAS, punto 2).
Ho provato a cercare, ma forse per carenze mie non ho trovato ancora niente che mi chiarisse quanto segue.
Sto studiando questa libreria per poterlo fare:
(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:
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);
Ecco... il mio dubbio riguarda l'indirizzo del server:
IPAddress server_addr(192, 168, 2, 112)
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 con mioNAS.synology.me davanti?
Grazie a tutti!