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);
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!