• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
sensori cam2 luminosità modulo sensore i2c altri e

[Risolto] sensore luminosità, altri sensori I2C e modulo cam2
#11
Aggiornamento,
Purtroppo la mia ipotesi che tutto fosse dovuto alla saturazione del sensore della luce non è stata confermata.
Durante la giornata odierna ho lanciato una decina di volte lo script di lettura del TSL2561 "incappucciato". Tutto è andato ok, il sensore non ha dato saturazione. Ha rilevato i valori di luce schermati ben lontani dalla soglia di 40 000 Lux, la tabella degli indirizzi I2C era ok.
Stasera avrei voluto rilanciare di nuovo la routine per la lettura di tutti i sensori, immagazzinamento dei dati etc etc. appena ho provato mi ha dato di nuovo l'errore "OSError: [Errno 5] Input/output error" ed infatti al comando da terminale "i2cdetect -y 1" la tabella degli indirizzi I2C era di nuovo vuota. Anche questa volta un riavvio non è bastato a ristabilire il funzionamento dei sensori I2T. Devo riandare di nuovo fisicamente in serra e spegnere e riaccendere fisicamente il RPI. Però fare altre ipotesi sul non funzionamento. In serra si coltivano melanzane e pomodori ma si raggiungono dei valori di umidità abbastanza elevati. Il RPI è dentro una sua custodia e all'interno di una scatola abbastanza al riparo dalla polvere.
Comunque la connessione è stabile e il RPI risponde per tutte le altre funzioni diverse dalla lettura dei sensori.
Saluti
LaPa
With a little/big help from my friends Rolleyes
Risposta
#12
Se il Pi risponde da remoto è evidente che non è lui e ne l'alimentatore a piantarsi. Come da mio post precedente, farei dei test di "sopravvivenza" con gli altri tre sensori, escludendo momentaneamente il sensore ottico. Sensore che nasce per applicazioni in door e che cerca di dare in uscita delle risposte assimilabili/quantizzabili a quello dell'occhio umano.
Risposta
#13
Sì infatti, la connessione è stabile e riesco ad aprire cartelle, a leggere i file e modificarli, posso accendere una lampada con un relay e fare una foto ma non a leggere i sensori ambientali fino a che non riesco a ripristinare gli indirizzi dei 4 sensori I2C.
Inoltre ho mancato di dirvi che qualche anno fa ho lasciato un RPI in una serra analoga a quella attuale per 48 gg. ma solo con la telecamera NOIR. Tutto ok. Il RPI ha resistito a quelle condizioni. https://www.youtube.com/watch?v=1Gcey4fJz_E
Dopo avere incappucciato il sensore ho provato la lettura del sensore luce per una decina di volte durante la giornata: tutto ok.
Poi di sera quando ho lanciato la lettura di tutti i sensori in sequenza mi ha dato l'errore e sono spariti gli Indirizzi I2C di tutti e 4 i sensori.
Penso che seguirò le indicazioni di Ippogrifo. Ho preparato delle routine che leggono un sensore alla volta ogni 15 minuti e depositano un file un'eventuale traceback in caso di errore. Proverò un sensore al giorno.
Grazie dei consigli
Saluti
LaPa
With a little/big help from my friends Rolleyes
Risposta
#14
Aggiornamento e richiesta di aiuto.
Le prove:
ho pensato di provare i 4 sensori uno alla volta per vedere quello che dava problemi.
Allo scopo ho preparato 2 directory una provaSensori ed un'altra Errori.  Ho preparato poi uno script che lancia la lettura ogni 5 minuti e deposita ad ogni lettura un file .txt il cui nome riporta l'ora della lettura e il valore della lettura. In caso di errori durante la lettura viene invece depositato un file .txt nella cartella errori che riporta il traceback.
I 4 sensori collegati al I2C del RPI sono:

1) BME280 per Temperatura ed UR ambiente
2) TSL2561 opportunamente schermato per la luce
3) due sensori di umidità temperatura del suolo (rugged version) uno posizionato a 30 Cm. di profondità ed un altro a 10 Cm.

Ho provato un sensore alla volta sperando di trovare quello che dava problemi:

1) il TSL2561 ha funzionato correttamente per 48 ore senza dare errori esclusa qualche saturazione
2) il BME280 ha funzionato per 24 ore poi ha dato l'errore "
Codice PHP:
(chip_idchip_version) = bus.read_i2c_block_data(addrREG_ID2)
OSError: [Errno 5Input/output error 
" in seguito all'errore anche gli altri 3 sensori, che non erano in funzione hanno perso l'indirizzo I2C. E stato necessario spegnere il RPI e riaccenderlo per continuare le prove
3) il sensore di umidità del suolo a 10 Cm di profondità ha funzionato per 7 ore e poi ha dato il seguente errore di taceback
Codice:
line 474, in read_word_data
    ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 5] Input/output error
anche dopo questa prova gli altri 3 sensori, che non erano in funzione, hanno perso l'indirizzo I2C. E stato necessario spegnere il RPI e riaccenderlo per continuare le prove.
4) il Sensore di umidità del suolo a 30 Cm. ha dato alla prima lettura l'errore del 3.

Insomma volevo scoprire il sensore non funzionante ma 3 sensori su 4 hanno interrotto la lettura.

Mi sapreste dare una mano a capire cosa è successo? Qual è il motivo per cui un errore del sensore fa perdere gli indirizzi di tutti i sensori I2C?

Sapreste indicarmi ulteriori prove?

Grazie per l'attenzione

Saluti

LaPa
With a little/big help from my friends Rolleyes
Risposta
#15
Molto probabilmente il problema, quando uno dei sensori dà errore, è dovuto alla bassa impedenza (resistenza) che assume il pin (od entrambi i pin) di comunicazione. In questo caso non è possibile la variazione dei livelli di tensione 0 - 1 (corrispondenti a 0 - 3,3 Volt) e quindi si perdono anche gli altri sensori. Per avere la certezza servirebbe un oscilloscopio.
Quale è lo schema di collegamento/interfacciamento tra il Pi ed i sensori? Le distanze tra il Pi ed i sensori?
I link di seguito potranno essere utili: http://www.microcontroller.it/tutorials/.../I2C_6.htm, https://www.unisalento.it/documents/2015...ersion=1.0
Risposta
#16
Buonasera,
Grazie ippogrifo per le tue risposte.
Sono tornato in serra per rispondere meglio alle tue domande.
Non ho un oscilloscopio  Sad
Tutta la parte fisica: RPI, basetta millefori saldata, cavi (nella loro lunghezza attuale), connettori, relay, tutto montato in una scatola + sensori; era pronta da tempo nella configurazione definitiva e l'ho provata a casa a lungo mentre  compilavo e ritoccavo il codice (non finivo più di modificarlo tanto che è diventato lunghissimo e mi ci perdo un po'). Mai nessun errore di lettura dei sensori.
Lo schema di interfacciamento dei 4 sensori è il seguente:
Il sistema è racchiuso in una scatola dove c'è il RPI (RPI 3  model B) dove c'è anche un Relay (per la lampada), una millefori per i collegamenti che portano ai connettori.
I cavi sono saldati direttamente sul RPI
1) 3V l'ho preso su GPIO 1
2) SDA l'ho preso sul 3
3) SCL l'ho preso sul 5
4) il Ground sul 14
I cavi vanno ad una millefori a cui sono saldati a fori adiacenti che ho unito con saldature i 4 cavi quadripolari che arrivano ai connettori quadripolari maschio che sono fuori dalla scatola.
I connettori femmina sono saldati ai cavi che portano ai 4 sensori.
1) il cavo che porta la TSL21 l'ho autocostruito usando 4 cavi che ho avvolto in una guaina termorestringente. Le saldature tra il cavo autocostruito e i cavetti che vanno al connettore quadripolare sono protetti da guaine termorestringenti. Il cavo è lungo 60 cm.
2) il cavo che porta dal connettore al BME280 non ricordo dove l'ho trovato, è avvolto da una treccia di fili sotto la guaina esterna (tipo quelli delle antenne del televisore). Anche qui le saldature sono protette da guaine termorestringenti. Il cavo è lungo circa 2 m. Il sensore è posto a 1 - 1,5 m. di distanza dal RPI.
3) i 2 sensori di bagnatura del suolo sono dotati di cavi propri e ho dovuto saldarli semplicemente a quelli del connettore. I cavi sono lunghi 2,5 m. . I sensori disteranno 1.5 - 2 m. dal RPI.
Insomma è tutto saldato, meno che i connettori. Questi li ho puliti con un liquido specifico per connessioni quando si sono verificati i primi problemi (il sistema non ha mai funzionato più di 10 ore in serra).
I cavi dei 2 sensori del suolo e il BME280 sono legati tra loro con fascette stringifilo. Ma i problemi me li avevano dati anche prima di legarli.

Ho cercato di descrivere il più possibile ma se qualcosa non è chiaro io sono qui.

Grazie anticipatamente

Saluti

LaPa
With a little/big help from my friends Rolleyes
Risposta
#17
Considera che il bus i2C è nato per comunicare tra circuiti integrati posti sulla stessa scheda, quindi distanti tra loro solo qualche cm. Vi sono delle specifiche stringenti del bus, tra cui la max capacità della somma dei cavi + slave = 400 pF che determina la max lunghezza dei cavi di collegamento tra master e slaves. Questo, come altre specifiche, viene riportato sui links che, per brevità, avevo indicato. In intesi la lunghezza complessiva e la qualità dei cavi diventa un fattore predominante per la comunicazione. Quale schema elettrico hai seguito? Nella realizzazione fisica vi sono le resistenze di pull-up e quale è il loro valore? Perchè utilizzare la 3,3 Volt derivata dal Pi3 (pericoloso per la sopravvivenza del Pi) piuttosto che alimentare i sensori dalla 5 Volt tramite uno step-down a 3,3V? Potrebbero essere necessari degli extender del bus i2C per la lunghezza complessiva dei cavi.
Risposta
#18
Buonasera a tutti,

Questo messaggio potrebbe chiamarsi: "torna alla casella n. ......"  Sad

Ho capito che ho condotto la costruzione fisica dell'oggetto in questione scopiazzando qui e lì e quindi in maniera maldestra.
Sto cercando di capire le cose che mi ha detto Ippogrifo e i contenuti dei 2 file di cui ai collegamenti da lui indicati. Ringrazio infinitamente per la documentazione.
Precisazioni:
1) non ho inserito nessuna resistenza per il collegamento dei sensori I2C: avevo capito che il BUS I2C del RPI ne fosse già dotato per cui non erano necessarie. Negli esempi di collegamento dei sensori che ho utilizzato, trovati su Internet, non c'erano resistenze.
2) La strumentazione non è dotata di estender
3) il collegamento è al 3.3V del RPI non a quello dei 5V.

Alcune domande:
1) l'unica differenza che mi viene in mente quando tutta l'attrezzatura era a casa e ora, è che a casa i cavi erano avvolti in matassine che poi ho sciolto e posizionato in serra ma la lunghezza dei cavi e i collegamenti e tutta la parte fisica era la quella, tuttavia io non ho mai avuto, in mesi di lettura dei sensori, errori di lettura e o valori anomali rilevati. La distanza tra i sensori e il RPI, a parità di lunghezza dei cavi, potrebbe  aver fatto la differenza? Durante questi mesi di funzionamento della strumentazione realizzata impropriamente potrebbe aver danneggiato il BUS  I2C del RPI?
2) Il BUS I2C del RPI potrebbe essersi danneggiato in seguito alle mancanze? come faccio a verificarlo?
3) A quanto ho capito per fare funzionare la strumentazione devo fare parecchie modifiche, chiedo conferma:
a) variare i collegamenti tra sensori e RPI acquistando uno step down 5V to 3.3
b) inserire delle resistenze di pull-up (forse ho capito qual è la loro funzione leggendo la documentazione) per i diversi sensori.
c) inserire degli estender per evitare problemi dovuti alle lunghezza complessiva dei cavi (questa non può essere ridotta)
d) forse cambiare il sensore di luminosità scegliendone uno che misuri fino a Lux 120000, valori che possono essere raggiunti all'aperto in estate.
e) forse sostituire i cavi (quelli dei sensori di umidità del suolo esclusi)
f) in caso di danneggiamento del BUS I2C cambiare il PI
4) sapreste darmi un aiuto per questi cambiamenti?
5) a questo punto non mi resta che tornare in serra smontare tutto e fare le modifiche di cui sopra a casa e riprovare tutto in serra, chiedo conferma.

Grazie per l'aiuto

Saluti

LaPa

P. S. si potrà mai ottenere sangue dalle rape? Big Grin
With a little/big help from my friends Rolleyes
Risposta
#19
Per punti:
1) In linea di massima tra la lunghezza del cavo avvolto o steso non vi è differenza (varia l'induttanza); La distanza tra il Pi ed i sensori a parità di lunghezza cavi è ininfluente (non è comunicazione a radiofrequenza).
2) Non penso che Il bus I2C del Pi si possa essere danneggiato, a meno che non vi siano state delle extratensioni.
3a) Un corto circuito accidentale sulla 3,3 Volt del Pi danneggerebbe l'integrato preposto alle alimentazioni rendendo non operativo il Pi (ovvero rotto); per questo è opportuno alimentare le linee esterne tramite un alimentatore dedicato, che sia uno step-down o con uscita diretta a 3,3 Volt (mettendo in comune i negativi)
3b) Le resistenze di pull-up sono solo due: il loro compito è di mantenere a livello alto (3,3 Volt) le due linee di comunicazione: le interfacce dei sensori e del Pi per il bus sono del tipo "open collector" (o "drain open).
3c) Gli extender permettono l'allungamento dei cavi segnali, consentendo di raggiungere distanze superiori
3d) Al momento non cambierei il sensore
3e) La sostituzione dei cavi con altri di cui è conosciuta la capacità/metro è una soluzione valida, ad esempio con cavi ethernet cat 5e (le specfiche del bus per la capacità massima indicano un valore di 400 pF)
3f) In linea di massima, se il bus fosse danneggiato la sostituzione è necessaria. Andrebbe verificato, prima, se sul mercato vi sono altre soluzioni tramite adattatori
5) Smontare il tutto, fare le modifiche e testare il tutto a casa prima di riportare in serra, tenendo comunque presente che le condizioni climatiche non sono le stesse tra casa e serra.
Risposta
#20
(13/05/2023, 06:34)ippogrifo Ha scritto: 1) In linea di massima tra la lunghezza del cavo avvolto o steso non vi è differenza (varia l'induttanza); La distanza tra il Pi ed i sensori a parità di lunghezza cavi è ininfluente (non è comunicazione a radiofrequenza).
Eh allora ?????

(13/05/2023, 06:34)ippogrifo Ha scritto: 5) Smontare il tutto, fare le modifiche e testare il tutto a casa prima di riportare in serra, tenendo comunque presente che  le condizioni climatiche non sono le stesse tra casa e serra.

Vabbe' questo è un colpo bassissimo
With a little/big help from my friends Rolleyes
Risposta
  


Vai al forum:


Navigazione: 2 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect