esp8266 wif

Ciao a tutti! rieccomi con le mie domande.. ecco cosa devo fare: tramite arduino uno e esp8266 vorrei creare un "database" su internet di circa una 15ina di dati (tutti int) al massimo, con arduino vorrei poter modificare questi dati e (quando arduino ad esempio si riavvia) prenderli in un secondo momento. Inoltre vorrei poter riuscire a modificare i dati da un app sul cellulare. Non dovrebbe essere così difficle. Premetto che non voglio "la pappa pronta" ma potete darmi degli esempi o magari dei vostri progetti o dirmi i temi che dovrei approfondire per poter fare il mio progetto? per adesso riesco a fare solo la connessione tramite i comandi AT al mio modem..

grazie a tutti in anticipo :)

cgyui: ... vorrei creare un "database" su internet ...

Intanto cominciamo a capire di cosa parli ... di un vero DB ? esempio, mySQL su un tuo server ? In tal caso la cosa più semplice è demandare tutta la gestione del DB ad un programma php che scrivi sul tuo server e, da Arduino, ci parli con delle HTTP(S) POST e GET ...

Guglielmo

Ciao e grazie intanto di aver risposto. Non ho un server.. dovrei comprarne uno? Un'altra soluzione?

... ribadisco la domanda ... un VERO database ... o un semplice archivio dove memorizzare i 15 valori di tipo int (... solo per i quali, di sicuro, NON serve un DB) ?

Guglielmo

No a me interessa solo salvare quei pochi valori su internet in modo che siano sempre accessibili e sempre modificabili da arduino e da un app sul telefono.

cgyui: No a me interessa solo salvare quei pochi valori su internet ...

... ma hai appena detto che NON hai un server ... dove li vuoi salvare su "internet" ? Uno spazio dove salvarli ti serve ... ::)

Guglielmo

Mi serve per forza un server? Non posso affittare uno spazio su internet? Come potrei fare? O mi conviene comprare un server?

cgyui: Mi serve per forza un server? Non posso affittare uno spazio su internet? Come potrei fare? O mi conviene comprare un server?

Si, uno spazio WEB va bene ... che poi sempre un server è non ti pare ? :) In tal caso, nel tuo spazio WEB, puoi sicuramente mettere un programmino .php a cui trasmetti con una POST il tuo array di 15 interi e da quale, con una GET li recuperi ...

Guglielmo

Mi è venuta poi in mente che proprio la mia app sul telefono potrebbe farmi da server. Che dite è fattibile? Solo che rimane il problema che quando arduino si riavvia deve poter prendersi i dati dalla mia app e se io ho il telefono spento non può farlo.. Nel caso di uno spazio web dovrei studiarmi il php che forse so anche cos'è ma non mi dice niente per adesso.. questo spazio come lo ottengo? Si affitta penso..

... volendo, puoi anche installare un piccolo abiente completo che fa da Web server anche su una tua macchina (... che devi sempre lasciare accesa) e, se ti ci vuoi collegare dall'esterno, devi anche attivare un "port forwarding" sul tuo router ::)

[u]Vantaggi[/u]: Costo zero, usi una tua macchina e del SW gratuito come MAMP

[u]Svantaggi[/u]: Se apri l'accesso dal mondo esterno ... devi conoscere bene cosa stai facendo; se non proteggi bene la cosa ti trovi la macchina impestata da virus trojan e quant'altro. Inoltre la macchina deve essere sempre accesa.

L'alternativa è prendere un sito WEB (ce ne sono anche di gratuiti, tanto a te basta uno spazio minimo) e studiarti quel po' di PHP che ti serve a scrivere il programma di gestione dei dati sul server.

Magari qualcuno ha qualche altra idea ...

Guglielmo

Direi Web Hosting come soluzione pratica ed basso costo (da circa 20-30€/anno in su, ma spesso ci sono promozioni a 15€ o meno per il primo anno), ma che ti permette di espanderti in seguito a seconda delle necessità.

Pro: hai un "server web virtuale", hai anche un tuo nome dominio, e qualche casella email per il dominio stesso, accesso via FTP, PHP già installato e spesso anche un database MySQL a disposizione Contro: devi imparare come gestirlo (nulla di complicato, in genere il provider ti dà una interfaccia web per gestire il tuo server ed il dominio), devi imparare PHP o il linguaggio che preferisci (se hosting Linux, altrimenti per hosting Windows hai anche .NET), e, successivamente, imparare come usare il database (ma questo passo, se necessario, sarà sicuramente molto utile se vuoi sviluppare maggiormente un servizio o app).

Puoi andare a vedere su Aruba o GoDaddy, per dire solo i primi due che mi vengono in mente.

Mmm... vorrei non utilizzare niente di tutto questo, vorrei che il mio progetto fosse indipendente a costo di trovare un'altro modo per fare quello che devo fare :grinning: :grinning: :grinning: Eventualmente potrei salvarmi i dati in una memoria (sd ad esempio) e sempre con l'esp8266 accedere con il telefono ad arduino tramite internet solo per inviargli i dati e modificare quelli che ha nella memoria. in tal caso l'esp deve essere sempre collegata al modem che già so come si fa. Intanto mi sono dato una letta ai comandi AT. così facendo non ho bisogno di nulla giusto? :( :confused:

Teoricamente si, ma, come detto, dipende da cosa devi/puoi/vuoi fare, e in fondo da quanto vuoi che sia complessa la cosa.

In pratica tu così hai Arduino che fa da “server” ossia accumula le informazioni, e poi tu da cellulare lo richiami e fai quello che devi fare (leggere i dati, modificarli, ecc.).

Quindi Arduino dovrebbe avere un IP statico dentro la tua rete locale, quindi hai due cose da fare:

  1. sul router devi fare “port mapping” ossia aprire una porta per rimappare su Arduino le connessioni (es. la porta 8080 TCP del tuo router ossia della linea di casa, la rimappi verso la porta 8080 dell’IP di Arduino)
  2. dall’esterno dovresti conoscere l’indirizzo Ip del tuo modem-router di casa, che però cambia essendo dinamico, per cui dovresti registrarti in un sito che offre il servizio chiamato “dynamic DNS” e associare il nome che registrerai tra quelli che ti propone il sito (es. “casamia.dyndns.org”) al tuo IP, per fare questo serve che “qualcosa” aggiorni il DNS quando cambia l’IP di casa. Spesso lo possono fare i modem stessi quindi vedi se il tuo lo prevede.

docdoc: Teoricamente si, ma, come detto, dipende da cosa devi/puoi/vuoi fare, e in fondo da quanto vuoi che sia complessa la cosa.

docdoc, ricorda sempre che ha detto che a lui serve SOLO memorizzare 15 "int" ... nulla di più ... quindi ... magari gli basta la EEPROM e l'ESP8266 che fa da serverino per permettere l'accesso al telefonino :D :D :D

Guglielmo

gpb01: docdoc, ricorda sempre che ha detto che a lui serve SOLO memorizzare 15 "int" ... nulla di più ... quindi ... magari gli basta la EEPROM e l'ESP8266 che fa da serverino per permettere l'accesso al telefonino :D :D :D

Si, infatti, l'ho detto sopra ;) , dipende da cosa vuole o può o deve fare.. ;) Per questo gli ho detto cosa dovrebbe fare per implementare ciò che dice.

Aggiungo anche che per applicazioni che richiedono più spazio non volatile, si potrebbe usare una WeMos D1 che oltre al WiFi integrato ha anche ben 4Mbyte di memoria non volatile, addirittura implementabile come se fosse un file system, con tanto di file (in questo caso la capacità scende a "soli" 3Mbyte ma vuoi mettere...), il che rende inutile anche l'uso della SD.

gpb01: docdoc, ricorda sempre che ha detto che a lui serve SOLO memorizzare 15 "int" ... nulla di più ... quindi ... magari gli basta la EEPROM e l'ESP8266 che fa da serverino per permettere l'accesso al telefonino :D :D :D

Guglielmo

Esatto mi basta pochissimo spazio per questo ho scartat l'idea di comprare un server o affitare un dominio su internet.

docdoc: Si, infatti, l'ho detto sopra ;) , dipende da cosa vuole o può o deve fare.. ;) Per questo gli ho detto cosa dovrebbe fare per implementare ciò che dice.

Aggiungo anche che per applicazioni che richiedono più spazio non volatile, si potrebbe usare una WeMos D1 che oltre al WiFi integrato ha anche ben 4Mbyte di memoria non volatile, addirittura implementabile come se fosse un file system, con tanto di file (in questo caso la capacità scende a "soli" 3Mbyte ma vuoi mettere...), il che rende inutile anche l'uso della SD.

WeMos d1 mi ispira molto gli ho dato un'occhiata penso di procere in questa maniera appena avrò il modulo comincerò a fare qualche esperimento... intanto volevo cominciare a fare l'app. Cosa consigliate per progettarne una?