contaore

salve sto progettando con visual basic e arduino dei controllori che registrano le ore di funzionamento delle macchine utensili.
poi moltiplicando le ore di accensione x il consumo di targa si ha potenza assorbita. (in futuro metterò dei TA).
Quindi vorrei creare un quadro sinottico con un led e una finestra per le ore.
L'arduino ha un ingresso digitale aperto o chiuso a seconda dello stato della macchina.
l'arduino lo trsferisce tramite una rete wirless a un pc di supervisione che monitorizza lo stato di tutto ilil reparto macchine.
quindi un arduino per ogni macchina.
che ne pensate?
mi aiutate?
datosi che sono da pochi gg che programmo arduino e visual basic...sono riuscito a programmare l'arduino con un contatto in ingresso e a monitorare lo stato porta seriale . poi oltre ho difficolta'
grazie a tutti

meglio se andiamo per gradi...
comincia a postare il codice che hai scritto e comincia con l'affrontare il problema più urgente. poi risolto quello se va avanti col resto. se la richiesta è troppo generica o troppo ampia diventa difficile dare suggerimenti.

#define LED 13                // LED collegato al pin digitale 13  //
#define BUTTON 7              // pin di input dove è collegato il pulsante
#define LED1 12                // LED collegato al pin digitale 13  
#define pulsante 4 
               // LED collegato al pin digitale 13  

char* Risp; // risposta di Arduino 
byte data; // carattere ricevuto
int  val = 0;                 // si userà val per conservare lo stato del pin di input  
  
void setup() {  
  Serial.begin(9600);
  pinMode(13, OUTPUT);       // imposta il pin digitale come output  
  pinMode(7, INPUT);     // imposta il pin digitale come input
 pinMode(12, OUTPUT);       // imposta il pin digitale come output  
  pinMode(4, INPUT);     // imposta il pin digitale come input
  }  

int state = LOW;
int state1 = LOW;
void loop() {
 
  int sensorValue = digitalRead(BUTTON);
   if(state != sensorValue){ 
    state = sensorValue;
  
    digitalWrite(LED, sensorValue); // turns the LED on or off

   int sensorValue1 = digitalRead(pulsante);
  if(state != sensorValue1)
  state1 = sensorValue1;
  digitalWrite(LED1, sensorValue1); // turns the LED on or off
 
    Serial.println(sensorValue, DEC);
  }
}
// creare un ingresso pnp da mettere su un contametri
// creare anche una esportazione su file excel per il salvataggio dati

questo è il programmino semplice per accendere una uscita con un ingresso (contattore mercia)
per ora funziona interfacciato al mio pc tramite usb
credo che userò lo shield wlan invece che la wifi...
per interfacciarlo alla rete via lan è complicato?

questo è il programmino semplice per accendere una uscita con un ingresso (contattore mercia)
per ora funziona interfacciato al mio pc tramite usb
credo che userò lo shield wlan invece che la wifi...
per interfacciarlo alla rete via lan è complicato?

>marioifix: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

Guglielmo

ma:
Contaore (= orologio)
oppure
Contattore (= teleruttore avviamento grossi carichi)?

prima ipotesi OK
seconda non solo no ok, ma nemmeno te lo consiglio

Edit mi sembra di aver capito che leggi lo stato del contattore con un arduino per trasmetterlo a visual basic

scusami Guglielmo....è il mio post e un po preso dal progetto e dall'entusiasmo non ho letto il regolamento del forum :(.

il progetto che sto sviluppando è un conta-ore (ma per vedere se la macchina è accesa o no prendo un contatto pulito del teleruttore di marcia), e un contametri (encoder o prossimity pnp).

Questions: un Arduino inserito in una scatola di plastica e sempre acceso ha una buona durata?

ovviamente se prendo un siemens (modello base) è piu performante.......ma costa 100 euro
e siccome se il progetto ha futuro mi occorre monitorare una 50 di macchine.........
Per ora vado avanti cosi'.......

marioifix:
scusami Guglielmo....è il mio post e un po preso dal progetto e dall'entusiasmo non ho letto il regolamento del forum :(.

Male, spero ora tu lo abbia letto e comunque ...
... devi fare quanto ti ho chiesto al mio post #3 ... correggere il tuo post precedente come descritto.

Guglielmo

marioifix:
Questions: un Arduino inserito in una scatola di plastica e sempre acceso ha una buona durata?

ovviamente se prendo un siemens (modello base) è piu performante.......ma costa 100 euro
e siccome se il progetto ha futuro mi occorre monitorare una 50 di macchine.........
Per ora vado avanti cosi'.......

Più che della durata di Arduino la vera domanda che devi porti è "Posso usare una scheda Arduino in ambiente civile/industriale?" e la risposta è no, quindi come detto altre volte sul forum anche se Arduino in questo caso non va ad agire/interferire direttamente sulla macchina comunque non puoi usarlo, se dovesse succedere qualcosa, o nella migliore delle ipotesi ti arriva un controllo e si accorgono delle scatolette Arduiniane, la multa non te la toglie nessuno.
Arduino dovresti usarlo solo per quello che è nato ovvero una scheda per prototipare poi quando tutto funziona in ambito operativo dovresti mettre una delle varie versioni certificate per uso civile/industriale che ovviamente non costa 10 €.
Magari sei ferratissimo sull'argomento e hai già tirato in precedenza le conclusioni sul da farsi, in caso contrario o nel caso in cui un qualsiasi utente si imbatta in questa discussione era bene precisare quanto descritto in precedenza, poi ognuno è libero di prendere le decisioni che ritiene migliori

E comunque ... dato che lo scopo finale e' solo il monitorare per quanto tempo una macchina funziona ... perche' non usare direttamente un normale contaore gia fatto, e probabilmente pure certificato per uso industriale e/o civile ? ... :wink:

fabpolli:
Più che della durata di Arduino la vera domanda che devi porti è "Posso usare una scheda Arduino in ambiente civile/industriale?" ....

Giustissima questa tua precisazione, ma ...

... qui mi sembra che il OP NON voglia interagire con i macchinari (... e quindi modificarne il funzionamento), ma solo rilevare delle informazioni tramite dei sensori che riportano ad Arduno (... quindi in modo passivo, senza alterare nulla della macchina) che gli fornisce poi delle informazioni.

La cosa importante è che NON effettui collegamenti/modifiche sulla macchina ... quindi, ok un contatto pulito del teleruttore che la comanda e ... attenzione a NON collegare fisicamente nulla alla macchina per fare il "contametri" ... che andrà fatto in modo ottico a distanza, senza modifiche alla macchina.

In questo modo quello che lui realizza NON è un oggetto industriale che è collegato o altera la macchina, ma un suo apparecchio privato, completamente indipendente e scollegato, che NON influisce, NON è in contatto e NON ha alcuna interferenza/interazione con la suddetta macchina.

In tutti gli altri casi ... rimane valido quanto da te già scritto.

Guglielmo

Oops ... mi era sfuggita la parte "contametri" ... sara' l'eta' :slight_smile:

ok arduino è nato per "giocherellare"...
io credo che sperimentare con un oggetto e imparare un linguaggio che ti porta a qualcosa di utile sia buona cosa.....
Ma se poi mi sento dire arduino è un giocattolo bla bla bla...cazz allora vado a giocare con un siemens....o altro plc professionale....almeno se imparo qualcosa posso sfruttarlo...
sto perdendo del tempo????

tornando al mio progetto quello che ho scritto è solo una supervisione da remoto di quello che fa una macchina industriale.....quindi se produce, cosa consuma, quanti metri ha prodotto?

CONTAORE preso da un contatto pulito di marcia del teleruttore.
QUANTO CONSUMA = calcolo matematico tra le ore e un valore che rilevo con una pinza amperometrica.
CONTAMETRI = sensore di prossimita' che rileva i fori su una ruota fonica.

secondo voi sono invasivo?

i contaore a bordo macchina gia li ho....ma sono meccanici.
con questo sistema potrei fare immediatamente una stampa excel.
e calcolare in 2 secondi il costo di produzione.

marioifix:
ok arduino è nato per "giocherellare"...

... non esattamente ... è nato per prototipi, test di laboratorio, supporto allo sviluppo, studio e ricerca, ma NON per prodotti civili o industriali dove occorre progettare uno specifico HW (volendo sempre basato su Arduino), ma conforme alla normativa vigente per l'uso che se ne vuole fare.

Come puoi vedere QUI ci sono oggetti, basati su Arduino, e certificati per utilizzo industriale. Resta però comunque valida la proibizione di mettere le mani su "macchinari" di qualsiasi genere da parte di personale non autorizzato dal costruttore.

Guglielmo

ottimo Suggerimento Guglielmo…

è ovvio che mettere le mani e modificare una macchina perdi subito la certificazione CE.

quindi quello soprascritto se è fattibile sto procedendo bene…?
mi date suggerimenti su come posso trasmettere questi dati su un pc e leggerli tramite visual basic?
grazie
grazie Guglielmo

marioifix:
mi date suggerimenti su come posso trasmettere questi dati su un pc e leggerli tramite visual basic?

Se c'è, potresti usare il WiFi ... così non ti servono N collegamenti fisici (cavi).

L'arduino che legge fa anche da piccolo server HTTP e da PC, con delle semplici HTTP GET lo interroghi e recuperi i dati.

Come farle da Visual Basic ... non chiedermelo ... non so neanche cosa sia (... e per di più, lavoro su macOS) :smiley: :smiley: :smiley:

Guglielmo

quindi il mio programmino su arduino va bene...
mi aiuti a stendere il programmino usando lo shiel wifi?
per ora mi accontento di spedire solo il dato 0/1 macchina accesa o spenta

Arduino IDE --> File --> Esempi --> WiFi --> WiFiWebServer ... ed hai l'esempio fatto.

Altrimenti, molto più flessibile ed articolata, l'ottima libreria Webbino di SukkoPera.

Guglielmo

sto modificando il programmino di arduino....
ho un problema sullo stato delle uscite
ho 2 ingressi (pulsante marcia e contaimpulsi)
una volta che premo un pulsante lo stato deve rimanere a 1 e se lo lascio deve cadere a 0
mi date una mano a capire dove sbaglio ?
2 ingressi 2 uscite

2 ingressi 2 uscite

#define LED 13                // LED collegato al pin digitale 13  
#define BUTTON 7              // pin di input dove è collegato il pulsante 
#define LED1 12               // LED collegato al pin digitale 13  
#define BUTTON1 6             // pin di input dove è collegato il pulsante 
char* Risp; // risposta di Arduino
byte data; // carattere ricevuto
int  val = 0;                 // si userà val per conservare lo stato del pin di input
int  val1 = 0;                 // si userà val per conservare lo stato del pin di input

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);       // imposta il pin digitale come output
  pinMode(7, INPUT);     // imposta il pin digitale come input
  pinMode(12, OUTPUT);       // imposta il pin digitale come output
  pinMode(6, INPUT);     // imposta il pin digitale come input
}

int state = LOW;
int state1 = LOW;
void loop() {
 
  delay(50); ritardo
  int sensorValue = digitalRead(BUTTON);
  if (state != sensorValue)
  {
  state = sensorValue;
  }
  
  
  //delay(100); ritardo
  int sensorValue1 = digitalRead(BUTTON1);
 if (state1 != sensorValue1)
  {
    

 state1 = sensorValue1;
  }
 digitalWrite(LED, sensorValue); // turns the LED on or off
  Serial.println(sensorValue, DEC);
 digitalWrite(LED1, sensorValue1); // turns the LED on or off
 Serial.println(sensorValue1, DEC);
}

Ok, avevo pure specificato SENZA scrivere un nuovo post ma facendo edit del precedente .... ma vedo che non è stato recepito ... va bene ugualmente (ho eliminato i post a questo punto inutili) :smiley:

Guglielmo