Se sei già registrato           oppure    

Orario: 21/10/2019 17:00:53  

 

Energia Alternativa ed Energia Fai Da Te > Geologia e Sismologia - Studio di Sismografi e Precursori

VISUALIZZA L'ALBUM


Interfaccia di rete ethernet per il sismografo qq1 e qq2
FinePagina

jackie2_it
KiloWatt


Gruppo:Utente
Messaggi:207

Stato:



Inviato il: 12/02/2019 14:26:25

Ciao a tutti, qualche giorno fà volevo installare nella mia cantina il sismografo, purtroppo è troppo umida e quindi non è il massimo portare giù il pc.
Pensavo di utilizzare la versione con esp ma il wifi prende poco e quindi pensavo di realizzarne una versione che usa arduino e shield di rete.
Ho a disposizione 2 shield di rete per l'arduino uno/2009 che montano 2 differenti chip W5500 (shield di rete ufficiale) ed ENC28J60 (versione clone).
L'idea poteva essere quella di utilizzare la nuova scheda di Dani per montarci sopra un arduino nano e un micro shield di rete.
Per i primi test ho utilizzato una vecchia scheda (versione md) ed collegato un ardino uno ed uno schield di rete.
Arrivata la schedina per il nano ho verificato che non è compatibile con la libreria Ethernet.h ma bisogna utilizzare la uipethernet perchè a differenza di quelle ufficiali arduino la schedina cinese ENC28J60 non implementa all'interno lo stack TCP-IP, il pro che la nuova libreria è compatibile al 100% con il codice implementato per la scheda ufficiale.
Per il codice dello sketch ho utilizzato una versione modificata di quello ESP fatto da calcola che utilizza la libreria Ethernet.





Immagine Allegata: IMG_20190209_123104.jpg
 
ForumEA/T/IMG_20190209_123104.jpg



Modificato da jackie2_it - 20/02/2019, 08:54:04


---------------
2 pannelli solari da 50 watt con regolatore steca p1010
Ecco i miei pannelli solari [URL=http://www.ilampidigenio.it]qui[/URL]

 

jackie2_it
KiloWatt


Gruppo:Utente
Messaggi:207

Stato:



Inviato il: 12/02/2019 14:27:40

Immagine delle due schedine di rete a confronto (nano e uno)



Immagine Allegata: IMG_20190211_210831.jpg
 
ForumEA/T/IMG_20190211_210831.jpg



---------------
2 pannelli solari da 50 watt con regolatore steca p1010
Ecco i miei pannelli solari [URL=http://www.ilampidigenio.it]qui[/URL]

 

jackie2_it
KiloWatt


Gruppo:Utente
Messaggi:207

Stato:



Inviato il: 13/02/2019 15:27:20

Facciamo un passo indietro rispetto alla realizzazione e partiamo con l'obbiettivo di questo post che è quello di sostituire il collegamento mediante USB e sostituirlo con un più comodo collegamento in rete che ha il vantaggio di poter sistemare il pc in un altro luogo rispetto al sismografo, esiste già una soluzione alternativa con esp di contro ha il fatto che se il segnale prende poco bisogna installare dei wifi repeater ed inoltre il modulino wifi ESP è fonte di molte interferenze che comportano lo schermare meglio i collegamenti di alimentazione e di avere molte accortezze riguardo all'installazione della scheda all'interno del sismografo.
L'idea è quindi quella di utilizzare uno shield di rete per arduino mantenendo invariata la parte elettronica quindi stessa scheda che funziona sempre a 5 volt sia la parte di amplificazione che ads e non dover gestire 2 alimentazioni sulla scheda (5 volt e 3,3 volt).



---------------
2 pannelli solari da 50 watt con regolatore steca p1010
Ecco i miei pannelli solari [URL=http://www.ilampidigenio.it]qui[/URL]

 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:5790

Stato:



Inviato il: 14/02/2019 10:30:09

CITAZIONE (jackie2_it, 13/02/2019 15:27:20 ) Discussione.php?215554&1#MSG2

sostituire il collegamento mediante USB e sostituirlo con un più comodo collegamento in rete che ha il vantaggio di poter sistemare il pc in un altro luogo rispetto al sismografo, esiste già una soluzione alternativa con esp


Per dovere di precisione esiste anche la possibilità di far viaggiare il segnale in un cavo schermato e percorrere anche centinaia di metri...questa soluzione ad esempio è stata adottata a Fabriano (dove il sensore a è 100 metri dal pc) ed in Sabina (distanza di 50 metri). Ovviamente usare un cavo di rete e quindi la soluzione da te proposta è migliore perchè nel tragitto non si introduce rumore.



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

jackie2_it
KiloWatt


Gruppo:Utente
Messaggi:207

Stato:



Inviato il: 01/03/2019 19:12:18

Ciao a tutti, dopo la prima parte che indica gli obbiettivi che vogliamo raggiungere con questo tipo di interfaccia, procediamo con il primo step che prevede di testare le 3 shield ethernet (W5500, W5100 e ENC28J60) per lo scambio dati con il pc.

http://www.energialternativa.info/public/newforum/ForumEA/T/1-455924104_23882.jpg


Qui di seguito inserisco le foto delle schede utilizzate durante i test:
W5500 (lo shield ufficiale per arduino)

http://www.energialternativa.info/public/newforum/ForumEA/T/W5500.jpg


W5100

http://www.energialternativa.info/public/newforum/ForumEA/T/W5100.jpg


ENC28J60

http://www.energialternativa.info/public/newforum/ForumEA/T/ENC28J60.jpg



Il programma lato pc che andremo ad utilizzare durate i test l'ho realizzato in tecnologia vb.net ed utilizza il framework 2.0 (compatibile con la maggior parte dei pc su base windows)

http://www.energialternativa.info/public/newforum/ForumEA/T/2-schermata9.png


Lato arduino invece ho realizzato uno sketch che invia un valore crescente da 1 a 16000 ogni 10ms al pc utilizzando il protocollo UDP.
Iniziamo con il vedere il codice dello sketch (che ho realizzato partendo dal codice ESP di Calcola)

// Esempio fatto partendo dal codice di Calcola sismografo_1_ESP

#include <SPI.h>        
//#include <Ethernet.h> //da usare con la scheda ufficiale di arduino decommentare la riga per usarla
//#include <EthernetUdp.h> //con la scheda ufficiale decommentare anche questa che non deve esserci con ENC28J60

#include <UIPEthernet.h> //ENC28J60 decommentare la riga se si usa questa scheda


uint16_t contatore;
// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
unsigned long previousMillis;

// Enter a MAC address and IP address for your controller below.



// ---------------- DATI DA SETTARE ----------------------------------
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

const char* host = "192.168.10.60";  //inserire IP fisso del pc che riceve i dati o in alternativa anche nome server remoto           
    
                                   //Es: 192.168.1.30  oppure  http:// server_che_riceve.it
const int porta = 8888; // porta UDP del server remoto, sostituire se necessario
// -------------------------------------------------------------------


void setup() {
  // start the Ethernet and UDP:

  Ethernet.begin(mac);

  Udp.begin(porta);
}



void loop() {
   unsigned long currentMillis = millis();
  
  if ( previousMillis > currentMillis)
    previousMillis=0;
  
  if(currentMillis - previousMillis > 10) 
    {
    if (!previousMillis)
      previousMillis = currentMillis;   
    else
      previousMillis +=10;

    if(contatore>16000) contatore=0;
     
    contatore+=1;
    Udp.beginPacket(host,  porta);
    inviabyte(22); //invia la testata del pacchetto.
    Invia2Byte(contatore);
    Udp.endPacket();
    }
}

void inviabyte(char par)
{
Udp.write((char *)&par,1);
}
 
void Invia2Byte(unsigned int v)
{
  int valore=v;
  
  char *punt = (char*) &valore;
 
  Udp.write(punt,2);
  
}


Come possiamo vedere nelle righe relative alla libreria sono presenti 2 tipi di librerie, perchè lo shield ENC28J60 non implementa lo stack TCP-IP è quindi NON E' COMPATIBILE con la libreria Ethernet.h standard.
Per questa scheda esistono 2 diverse librerie la EtherCard e la UIPEthernet, la scelta è caduta su quest'ultima perchè compatibile con le funzioni della classe standard Ethernet.
Come possiamo vedere dall'immagine sotto dovremo scegliere quindi in base alla scheda che andremo ad utilizzare se includere la libreria Ethernet.h e EthernetUDP.h (per la scheda W5500 e W5100) oppure la UIPEthernet, la riga della libreria non utilizzata dovrà essere lasciata a commento.

http://www.energialternativa.info/public/newforum/ForumEA/T/3-schermata11.png


Secondo passaggio dobbiamo inserire nel codice nel punto "host" l'indirizzo ip del pc che riceverà i dati da arduino.

http://www.energialternativa.info/public/newforum/ForumEA/T/4-schermata7.png


Per conoscere l'indirizzo ip del pc, sul pc apriamo il prompt dei comando digitando nella barra di ricerca "cmd" e poi digitiamo nel prompt il comando "ipconfig" e premiamo invio.

http://www.energialternativa.info/public/newforum/ForumEA/T/5-schermata5.png


Verrà eseguito il comando e a video verrà indicato l'indirizzo ip relativo alla connessione che stiamo utilizzando se il pc è connesso alla rete con WIFI cerchiamo l'indirizzo in WIFI se no in LAN

http://www.energialternativa.info/public/newforum/ForumEA/T/6-schermata6.png


Ultimo punto indichiamo la porta con la quale arduino colloquierà con il pc, possiamo lasciare quella predefinita la 8888 oppure ne possiamo utilizzare un altra

http://www.energialternativa.info/public/newforum/ForumEA/T/7-schermata8.png


Segnamoci la porta perchè dovrà essere indicata nel campo "porta" sul software di test.

http://www.energialternativa.info/public/newforum/ForumEA/T/8-schermata.png


Compiliamo lo sketch e inseriamolo in arduino con l'ide.
Scolleghiamo arduino e colleghiamo la ethernet shield, se già inserita andiamo pure al passaggio successivo.
Lanciamo sul pc il programma "UDPReceiver.exe" se non funziona potrebbe mancare il Framework 2.0 scarichiamolo da questo link "https://www.microsoft.com/it-it/download/details.aspx?id=6523"
Avviato il programma inseriamo la porta che ci siamo appuntati quando abbiamo compilato il campo "porta" nello sketch

http://www.energialternativa.info/public/newforum/ForumEA/T/8-schermata.png


Se vogliamo indichiamo il nome del test che viene utilizzato per generare un file txt con l'elenco dei valori ricevuti da arduino nella stessa cartella dell'eseguibile di "UDPReceiver"
Clicchiamo sul tasto "Start", il programma si metterà in attesa dei dati in arrivo da arduino.

http://www.energialternativa.info/public/newforum/ForumEA/T/9-schemata2.png


Colleghiamo l'ethernet shield alla rete mediante un cavo di rete ed alimentiamo pure arduino con il cavo usb connesso al pc.
Dopo pochissimo dovreste vedere a video il programma che inizia a ricevere i dati da arduino, come possiamo vedere ci viene indicato l'ip di arduino e il valore ricevuto oltre ad altre informazioni sul pacchetto ricevuto.

http://www.energialternativa.info/public/newforum/ForumEA/T/10-schermata10.png


Aspettiamo qualche secondo e clicchiamo su "Stop" e apriamo la cartella dove abbiamo messo "UPDReceiver".

http://www.energialternativa.info/public/newforum/ForumEA/T/11-schemata4.png


Facciamo doppio click sul file di testo che ha il nome del test che abbiamo effettuato dovremmo vedere un file di testo con questo.

http://www.energialternativa.info/public/newforum/ForumEA/T/12-schemata3.png


Se il test è stato concluso con successo tutti i valori da uno fino al numero che si è arrivati

Il nostro test è concluso, il prossimo step sarà quello di utilizzare questa interfaccia all'interno del nostro sismografo risolvendo eventuali problemi di alimentazione della scheda.
Allego al termine del post lo sketch di arduino e l'eseguibile del programma "UDPReceiver".

http://www.energialternativa.info/public/newforum/ForumEA/T/13-IMG_20190228_205306.jpg



Inserisco alcuni filmati che ho effettuato durante il test delle 3 shield indicate prima, spero nelle prossime settimane di riuscire a ricevere una nuova shield per il nano che monta il W5100 che dovrebbe essere migliore di quella ENC28J60.

test scheda W5500


test scheda W5100


test scheda ENC28J60



Link per lo scaricamento del programma e lo sketch arduino.
http://www.energialternativa.info/public/newforum/ForumEA/T/Test_1_Ethernet.zip

http://www.energialternativa.info/public/newforum/ForumEA/T/UDPReceive.zip



Modificato da jackie2_it - 01/03/2019, 19:19:20


---------------
2 pannelli solari da 50 watt con regolatore steca p1010
Ecco i miei pannelli solari [URL=http://www.ilampidigenio.it]qui[/URL]

 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:5790

Stato:



Inviato il: 01/03/2019 20:03:58

Wow...qunto prima lo leggo con attenzione...e facciamo qualche prova!!



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

jackie2_it
KiloWatt


Gruppo:Utente
Messaggi:207

Stato:



Inviato il: 01/03/2019 20:41:42

CITAZIONE (Bolle, 01/03/2019 20:03:58 ) Discussione.php?215554&1#MSG5

Wow...qunto prima lo leggo con attenzione...e facciamo qualche prova!!


Ottimo 😀😀😀
Poi possiamo passare al secondo step quello del test del circuito e schema della sezione di alimentazione?



---------------
2 pannelli solari da 50 watt con regolatore steca p1010
Ecco i miei pannelli solari [URL=http://www.ilampidigenio.it]qui[/URL]

 
 InizioPagina
 

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum