Arduino e NodeMcu esp8266

Ciao a tutti.
Vorrei realizzare un sistema che mi permetta di ricevere informazioni da un Arduino UNO (es. valore letto da sensori) e tramite una board con esp8266(una di quelle programmabili con l'ide di Arduino) inviare su un sito web queste informazioni, così da poter leggere in ogni momento quello che viene misurato dai sensori.
Arduino è già installato e funziona autonomamente, manca appunto la parte "web". Sapreste consigliarmi qualche guida ben fatta che spieghi come fare questa comunicazione tra arduino e l'altra board?
Ho visto che dal punto di vista dei collegamenti sono semplicemente 2 cavi. Lato software invece non mi è chiaro se occorre utilizzare oggetti di tipo json o altro.
Grazie

Ti segnalo, che in Megatopic c'è un thread di oltre 190 pagine interamente dedicato al ESP8266. :slight_smile:

Nella prima pagina troverai una serie di link a guide e tutorials che quasi sicuramente ti permetteranno di trovare la risposta hai tuoi quesiti :wink:

Guglielmo

Ok darò un occhiata. Ma quello che vale per il modulo di cui si parla in quel thread vale anche per la mia board? Cioè quel modulo va per forza collegato ad arduino, il mio invece è come se fosse un arduino ma con un modulo wifi integrato. A questo punto potresti chidermi perchè non usare soltanto questa board anzichè arduino: semplicemente perchè il progetto con Arduino è già completo e non mi va di fare tutto da 0 su questa board. Però se è molto più semplice fare tutto ciò con un modulino come quello del thread, acquisterò quello.

Quando si parla di ESP8266, ormai si parla della schedina compresa del moduli WiFi, tipo NODE-MCU e non più dell'ESP-01, ESP-07 oppure ESP-12
Quindi il tuo progetto, realizzato per UNO, può essere tranquillamente scaricato dall'IDE di Arduino sulla schedina ESP8266 o sulla più potente ESP-32.

Giuso:
Arduino è già installato e funziona autonomamente, manca appunto la parte "web".

Secondo me fai prima usando una board tipo WeMos D1 che di fatto è una ESP8266 che, appunto, programmi con l'IDE di Arduino, e non ti serve avere anche Arduino UNO. La WeMos D1 R2 ha form factor (ossia dimensioni e connettori) come quelli di Arduino, altrimenti c'è la D1 Mini che è più compatta.

Il codice può rimanere quasi lo stesso, semplicemente devi usare qualche libreria apposita per ESP8266 (tu quali librerie usi?), e ricordarti che i pin non devi indicarli con il numero ma usando le macro, di fatto una "D" prima del numero. Ad esempio invece di:

pinMode(3, INPUT);

devi mettere:

pinMode(D3, INPUT);

Altra limitazione è che ha un solo pin analogico (A0) ma in compenso ha più memoria RAM e flash.

Per ulteriori info puoi cercare nel thread dedicato agli ESP che ti ha indicato Guglielmo, o su altri forum più specifici (es. WeMos).

Lato software invece non mi è chiaro se occorre utilizzare oggetti di tipo json o altro.

Qui dipende dal sito web cosa richiede, non possiamo aiutarti più di tanto, al limite quando avrai queste info (o le avrai stabilite tu se il sito è sotto il tuo controllo) puoi chiedere aiuto per librerie specifiche.

Giuso:
Ho visto che dal punto di vista dei collegamenti sono semplicemente 2 cavi.

Più la massa, più gli adattatori di livello 5<->3,3V se necessari.

Lato software invece non mi è chiaro se occorre utilizzare oggetti di tipo json o altro

Limitatamente alla comunicazione tra Arduino e la board con l’ESP8266 ESP-xx, è una normale comunicazione seriale, trasmetti byte da Arduino e li ricevi con l’ESP. Poi cosa farne sull’ESP è un altro discorso.

In alternativa, se i pin richiesti dai sensori lo permettono, si può appunto usare una sola board con ESP per fare tutto (sempre con eventuali adattamenti livelli 5<->3,3V da verso i sensori se necessari).

docdoc:
Secondo me fai prima usando una board tipo WeMos D1 che di fatto è una ESP8266 che, appunto, programmi con l’IDE di Arduino, e non ti serve avere anche Arduino UNO. La WeMos D1 R2 ha form factor (ossia dimensioni e connettori) come quelli di Arduino, altrimenti c’è la D1 Mini che è più compatta.

Il codice può rimanere quasi lo stesso, semplicemente devi usare qualche libreria apposita per ESP8266 (tu quali librerie usi?), e ricordarti che i pin non devi indicarli con il numero ma usando le macro, di fatto una “D” prima del numero. Ad esempio invece di:

pinMode(3, INPUT);

devi mettere:

pinMode(D3, INPUT);

Altra limitazione è che ha un solo pin analogico (A0) ma in compenso ha più memoria RAM e flash.

Ma in realtà anche la mia scheda ha solo un pin analogico e pin digitali D1, D2 ecc…

Claudio_FF:
In alternativa, se i pin richiesti dai sensori lo permettono, si può appunto usare una sola board con ESP per fare tutto (sempre con eventuali adattamenti livelli 5<->3,3V da verso i sensori se necessari).

Quello che non so se si riesce a fare sull’altra board è il collegamento di un sensore che utilizza i pin SDA e SDL che mi pare non ci siano su questa. Inoltre all’arduino ho collegato un display che usa parecchi pin digitali, su quest’altra board non credo di riuscire a “pilotarlo”. Comunque sto guardando un po’ in giro, inviare quei 2 o 3 valori che mi interessano non mi sembra complicato

steve-cr:
Quando si parla di ESP8266, ormai si parla della schedina compresa del moduli WiFi, tipo NODE-MCU e non più dell’ESP-01, ESP-07 oppure ESP-12
Quindi il tuo progetto, realizzato per UNO, può essere tranquillamente scaricato dall’IDE di Arduino sulla schedina ESP8266 o sulla più potente ESP-32.

Il problema è che su questa NodeMcu non ho ad esempio la stessa quantità di pin analogici e digitali che avrebbe un arduino, quindi il mio progetto sarebbe limitato e non potrei fare tutto quello che mi serve.

E allora vai su ESP-32 che ha tutti i pin analogici e digitali che vuoi, anche se è a 3,3volt.
Oppure torna alla soluzione iniziale che è quella di connettere la UNO ad un Wifi