Vai al contenuto
PLC Forum


Comandare il reset di ESP01S con Arduino


fa2

Messaggi consigliati

Salve, 
vorrei resettare  un esp01S collegato ad arduino ogni 5 minuti magari con un pin digitale e  un transistor portandogli a massa il reset per un secondo o in qualsiasi altro modo. 
Potreste suggerirmi come fare?
Grazie 

Link al commento
Condividi su altri siti


8 ore fa, fa2 ha scritto:

  un transistor portandogli a massa il reset

 

Visto che hai un arduino, fai un temporizzatore usando l'interrupt del un timer1; a tempo scadutodai un comando da un transitor per dare il reset.

Link al commento
Condividi su altri siti

 

Quote

Potreste suggerirmi come fare?

 

Probabilmente è la soluzione sbagliata a un problema che andrebbe risolto/evitato in altro modo. Ma comunque è sufficiente un diodo, catodo verso pin Arduino e anodo verso ESP. Quando l'uscita di Arduino è LOW l'ESP viene resettato. (NOTA: immagino che l'ESP abbia già una sua resistenza di pull-up sul reset).

Modificato: da Claudio F
Link al commento
Condividi su altri siti

  • 2 weeks later...
Il 14/6/2022 alle 21:40 , Dumah Brazorf ha scritto:

Ma perchè??? Non puoi farlo dal codice stesso dell'esp?

E' possibile mandarlo in reset ogni tot minuti direttamente dall'esp? non ci avevo pensato. Io lo uso solo per far mandare dei valori di temperatura a thingspeak, è sempre connesso al wifi , lo vedo se lo pingo, ma dopo pochi minuti smette di inviare, non so per quale ragione.

Allora avevo risolto con un temporizzatore sull'alimentazione ogni 5 minuti e tutto funzionava bene, purtroppo dopo un anno il temporizzatore si è  rotto e quindi volevo cercare un'altra soluzione. 

Link al commento
Condividi su altri siti

Dumah Brazorf

Beh c'è qualcosa di fondamentalmente sbagliato nel codice se l'esp si incarta dopo soli 5-10minuti.

Ne ho uno abbozzato in un vecchio ups che mi avverte tramite telegram se salta la corrente. Mai un problema.

Link al commento
Condividi su altri siti

Il 15/6/2022 alle 06:13 , Livio Orsini ha scritto:

 

Visto che hai un arduino, fai un temporizzatore usando l'interrupt del un timer1; a tempo scadutodai un comando da un transitor per dare il reset.

Grazie Livio, avevo pensato ad una cosa del genere, volevo comandare un uscita che mandasse a massa il reset dell'esp.

Però non so come farlo col transistor.

Sapevo farlo con l'alimentazione, ma quando l'uscita di arduino è LOW non è a massa.

Potresti per favore postare uno schema per poterlo provare e semmai il tipo di transistor da usare? Ti ringrazio tanto. ho guardato in rete ma non sono riuscito a trovare nulla che potesse fare al caso mio.

Link al commento
Condividi su altri siti

Il 15/6/2022 alle 07:30 , Claudio F ha scritto:

 

 

Probabilmente è la soluzione sbagliata a un problema che andrebbe risolto/evitato in altro modo. Ma comunque è sufficiente un diodo, catodo verso pin Arduino e anodo verso ESP. Quando l'uscita di Arduino è LOW l'ESP viene resettato. (NOTA: immagino che l'ESP abbia già una sua resistenza di pull-up sul reset).

Grazie Claudio, lo provo, in realtà sul reset non ci avevo attaccato nulla. prima lo resettavo togliendo l'alimentazione per un secondo ogni5 minuti con un timer esterno che però si è rotto dopo un annetto.

Che tipo di diodo e resistenza dovrei usare ? La resistenza va messa tra massa e reset ?

Link al commento
Condividi su altri siti

19 minuti fa, Dumah Brazorf ha scritto:

Beh c'è qualcosa di fondamentalmente sbagliato nel codice se l'esp si incarta dopo soli 5-10minuti.

Ne ho uno abbozzato in un vecchio ups che mi avverte tramite telegram se salta la corrente. Mai un problema.

Grazie Dumah per la risposta, non riesco a capire dove possa essere il problema, io non sono un programmatore, ho preso spunti in qua e la per fare un semplice termostato incrementale e comporre la stringa da mandare a Thingspeak, L'esp non l'ho programmato, l'ho solo connesso al wifi tramite i comandi AT e poi arduino gli manda ciclicamente il comando.

Wow bellina la segnalazione di blackout via telegram, avresti mica voglia di condividere il progetto? perchè mi piacerebbe realizzarlo anche a me.

Modificato: da fa2
Link al commento
Condividi su altri siti

Dumah Brazorf

E' proprio basico.

L'esp si alimenta chiaramente sotto l'ups e con un altro alimentatore esterno all'ups tengo alto un pin gpio. Con un loop ogni 5-10 secondi controllo lo stato del pin.

Quando va via la corrente il pin va giù per cui mando il messaggio telegram usando una libreria liberamente disponibile.

Link al commento
Condividi su altri siti

Da quello che hai scritto ci deve essere un problema software o anche Hw. Probabile, ad esempio, che ci sia un disturbo che manda a ranocchie il programma.

Nel caso di problema Sw ci può essere qualche chiamata che non esegue il ritorno o qualche ciclo non terminato.

 

La prima cosa da fare è eliminare l'eventuale/i "bug".

Poi esiste una funzione che si chiama "watch dog", se attivata bisogna resettare il timer di questa funzione entro un termine prestabilito, se questo non accade il sistema effettua ilreset automatico.

in alcune applicazioni di arduino uso questa funzione per superare eventuali problemi generati da disturbi che mandano a ranocchie il software.

Link al commento
Condividi su altri siti

3 ore fa, Livio Orsini ha scritto:

Da quello che hai scritto ci deve essere un problema software o anche Hw. Probabile, ad esempio, che ci sia un disturbo che manda a ranocchie il programma.

Nel caso di problema Sw ci può essere qualche chiamata che non esegue il ritorno o qualche ciclo non terminato.

 

La prima cosa da fare è eliminare l'eventuale/i "bug".

Poi esiste una funzione che si chiama "watch dog", se attivata bisogna resettare il timer di questa funzione entro un termine prestabilito, se questo non accade il sistema effettua ilreset automatico.

in alcune applicazioni di arduino uso questa funzione per superare eventuali problemi generati da disturbi che mandano a ranocchie il software.

Il problema però si ripercuote solo sull'esp, tutto il resto continua a funzionare bene e se pingo l'esp dalla lan continua a rispondere, quindi non è bloccato nemmeno lui , addirittura ad ogni loop si accende il led (dell'esp ) che indica che la connessione la farebbe.

proverò a cambiare l'esp per vedere se il problema persiste.

Ma sarà possibile secondo voi inviare un comando AT da arduino per fargli fare il reset ? potrebbe essere un'altra soluzione.

 

Link al commento
Condividi su altri siti

Se dici che ESP01 non è bloccato, devi capire perchè non invia più i dati.

Resettarlo non è la soluzione.

Io ESP01 non l'ho mai usato, ma è come tutti gli altri controllori. Se non effettua un'operazione c'è sempre un perchè. Se si esclude un problema da disturbi esterni, allora è solo un problema di programmazione che va individuato e risolto.

Perchè non provi a scrivere qui il codice che hai inserito nello ESP01.

Link al commento
Condividi su altri siti

14 hours ago, fa2 said:

in realtà sul reset non ci avevo attaccato nulla

Allora ha già a bordo la resistenza. Per il diodo basta un comune 1n4148.

Link al commento
Condividi su altri siti

18 ore fa, fa2 ha scritto:

L'esp non l'ho programmato, l'ho solo connesso al wifi tramite i comandi AT e poi arduino gli manda ciclicamente il comando.

 

Esp01 lo puoi tranquillamente progarammare con l'IDE di arduino. In questo modo è più facile vedere dove c'è il problema che dopo n cicli gli fa saltare la trasmisisone dei dati.

Link al commento
Condividi su altri siti

Il 25/6/2022 alle 06:26 , Livio Orsini ha scritto:

Se dici che ESP01 non è bloccato, devi capire perchè non invia più i dati.

Resettarlo non è la soluzione.

Io ESP01 non l'ho mai usato, ma è come tutti gli altri controllori. Se non effettua un'operazione c'è sempre un perchè. Se si esclude un problema da disturbi esterni, allora è solo un problema di programmazione che va individuato e risolto.

Perchè non provi a scrivere qui il codice che hai inserito nello ESP01.

Hai ragione Livio non è la soluzione ma siccome funzionava avevo scelto la via più rapida, ripromettendomi di cercare il problema in seguito. Nell'ESP non ho inserito nessun codice, è arduino che gli invia i comandi AT, non è farina del mio sacco l'ho preso da una delle tante che si trovano in rete. Lui si costruisce una stringa con i dati dei sensori e la invia al server thingspeak.

Proverò intanto la soluzione proposta da Claudio .

Ora leggendo ho scoperto che che c'è anche il comando di restart "AT+RST" proverò ad inserirlo nel loop e guardiamo cosa succede, e anche a  sostituire l'esp, visto mai che sia difettoso. Grazie a tutti per l'aiuto che mi date.

Non mi fa allegare file di testo  

 

Thingspeak.jpg

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...