Sommario:
- Passaggio 1: la storia dietro…
- Passaggio 2: come funziona
- Passaggio 3: materiali e strumenti
- Passaggio 4: risolvi le cose insieme
- Passaggio 5: collegare le cose insieme
- Passaggio 6: collegamento dei sensori
- Passaggio 7: software di controllo
- Passaggio 8: conclusione
Video: Controller di rete con sensore di temperatura tollerante ai guasti: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Questo Instructable mostra come convertire una scheda Arduino Uno in un controller monouso per un set di sensori di temperatura DS18B20 in grado di isolare automaticamente i sensori difettosi.
Il controller può gestire fino a 8 sensori con Arduino Uno. (E molto altro ancora con Arduino Mega o con una leggera modifica software.)
Passaggio 1: la storia dietro…
Un paio di anni fa ho installato una rete di sensori di temperatura DS18B20 nella serra di mio padre per il mio controller di riscaldamento basato su pi. Sfortunatamente, l'affidabilità del controller era scarsa principalmente a causa delle frequenti interruzioni del sensore. Ho provato più configurazioni: alimentazione parassita, alimentazione diretta, collegamento della rete a pi e collegamento alla scheda personalizzata basata su Atmega (il cui scopo principale era guidare i motori delle valvole).
Quel che è peggio, l'affidabilità della rete di sensori è diminuita principalmente durante le notti invernali mentre non c'erano quasi problemi in estate! Che diamine sta succedendo qui?
Per indagare su quale sensore causa il problema, è emersa la necessità di accenderli/spegnerli uno per uno o abilitarne una qualsiasi combinazione.
Passaggio 2: come funziona
DS18B20 (il sensore di temperatura) utilizza un protocollo proprietario a 1 filo che consente a più sensori di condividere un collegamento dati comune (quel filo). Questo collegamento dati comune è collegato a uno dei pin GPIO di Arduino e a + 5 V tramite un resistore di pull-up: niente di insolito, molti istruttori coprono questa configurazione.
Il trucco è che i cavi di alimentazione di ciascun sensore sono collegati ai propri pin GPIO (dedicati), in modo che possano essere accesi e spenti separatamente. Ad esempio, se un sensore ha un cavo Vcc collegato al pin 3 e GND al pin 2, l'impostazione del pin 3 su HIGH fornisce alimentazione al sensore (nessuna sorpresa) mentre l'impostazione del pin 2 su LOW fornisce la massa (una piccola sorpresa per me). L'impostazione di entrambi i pin sulla modalità di ingresso isolerà (quasi) completamente il sensore e il suo cablaggio: indipendentemente dal guasto (ad esempio un collegamento) al suo interno, non interferirà con gli altri.
(È corretto dire che collegare il cavo dati a qualcos'altro collegato in qualche modo ad Arduino causerà effettivamente interferenze, ma è quasi impossibile nella mia configurazione).
Si noti che DS18B20 consuma fino a 1, 5 mA mentre un pin Arduino può generare / assorbire fino a 40 mA, quindi è perfettamente sicuro alimentare i sensori direttamente dai pin GPIO.
Passaggio 3: materiali e strumenti
Materiale
- 1 scheda Arduino UNO
- 3 intestazioni pin femmina: 1×4, 1×6 e 1×6 (o più lunghe – le ho tagliate da un'intestazione 1×40)
- una colla
- un pezzo di filo di rame nudo (almeno 10 cm)
- un nastro isolante
- consumabili per saldatura (filo, flusso…)
Utensili
- attrezzatura per saldatura (ferro, supporti, …)
- piccole pinze da taglio
Passaggio 4: risolvi le cose insieme
Incolla le intestazioni dei pin femmina alle intestazioni della scheda Arduino:
- Intestazione 1×4 accanto all'intestazione del pin "analogico", da lato a lato con i pin A0-A4
- Intestazione 1×6 accanto alla prima intestazione pin digitale, da lato a lato con pin 2–7
- Intestazione 1×6 accanto alla seconda intestazione pin digitale, da lato a lato con pin 8-13
Nota che le mie intestazioni sono un po' più lunghe… non ha né contro né pro, suppongo.
Passaggio 5: collegare le cose insieme
Cablaggio della linea bus a 1 filo:
- Collegare tutti i cavi delle intestazioni incollate sul lato "digitale" (adiacente ai pin 2–13) saldando loro un pezzo di filo nudo
- Saldare l'estremità di questo filo al cavo del pin SCL (collegato internamente ad A5)
- Collegare tutti i cavi dell'intestazione incollata sul lato "analogico" (pin A0–A3) saldando loro un pezzo di filo nudo
- Saldare l'estremità di questo filo ai cavi A4 e A5 (ho usato A5 e A6 perché ho una scheda con A6 e A7)
- Saldare un resistore da 4k7 tra l'altra estremità di questo filo e il cavo del pin +5 V
Appunti:
- I pin A0-A5, sebbene siano contrassegnati come "analogici", possono essere utilizzati anche come pin digitali GPIO.
- Il pin SCL sul lato "digitale" è collegato internamente ad A5 sul lato "analogico"; collegato alle intestazioni, questo forma la linea bus a 1 filo
- A4 (usato come ingresso analogico) misura la tensione del bus per scopi diagnostici. Questo è il motivo per cui è collegato direttamente al bus.
- Ho usato A6 invece di A4 perché ho una lavagna che ha A6 e A7; originariamente volevo usare A7 come master bus a 1 filo, ma questi due pin non possono essere configurati per essere GPIO digitali.
- Per evitare un errato collegamento dei connettori del sensore è possibile omettere/tagliare il contatto inutilizzato (non collegato ad alcun filo) da ciascun connettore maschio e inserirlo nel foro corrispondente nel connettore del pin incollato.
Passaggio 6: collegamento dei sensori
Hai appena creato un array di otto socket 2×2. È possibile saldare e assemblare connettori Dupont 2×2 ai cavi del sensore e collegarli a queste prese. Il software configura i pin in modo che i pin pari siano pin GND e i pin dispari siano pin Vcc. Per ogni sensore, il pin Vcc è solo il pin GND + 1. Uno degli altri due pin della presa 2×2 (uno di quei due nell'intestazione incollata e saldata) è per il cavo dati del sensore. Non importa quale usi.
Passaggio 7: software di controllo
Lo schizzo SerialThermometer esegue il controller. Lo trovi su github. Apri e carica usando Arduino IDE.
Passo dopo passo:
- Apri il tuo IDE Arduino e installa la libreria DallasTemperature e tutte le sue dipendenze tramite Sketch | Includi libreria | Gestire le biblioteche.
- Clona repository git. Se non hai familiarità con git, scarica e decomprimi questo zip ovunque sul tuo computer.
- Apri lo schizzo SerialThermometer nel tuo IDE Arduino.
- Collega la tua scheda Arduino modificata al computer tramite cavo USB (modo standard)
- Carica lo schizzo usando il tuo IDE Arduino
- Apri monitor seriale tramite Strumenti | Monitor seriale
- Dovresti vedere un output diagnostico contenente diverse misurazioni fisiche seguite da letture di temperatura: ogni presa del sensore su una singola riga. Se il conteggio dei sensori differisce quando vengono accesi separatamente e quando vengono accesi tutti insieme), la diagnostica continua fino alla risoluzione. Ma niente paura, anche la diagnostica fornisce misurazioni della temperatura!
Vedere l'immagine annotata per maggiori dettagli sull'output diagnostico.
Passaggio 8: conclusione
Ho la netta sensazione che i guasti della rete dei miei sensori siano stati causati dall'elevata capacità del mio cablaggio lungo: circa 10 m di cavo LIYY 314 (3 × 0, 14 mm²) per ciascun sensore. I miei esperimenti hanno mostrato che la comunicazione si interrompe se c'è una capacità intorno o superiore a 0,01 μF tra il bus a 1 filo e la terra, penso perché il resistore di pull-up 4k7 non è in grado di portare il bus a + 5 V abbastanza velocemente da rispettare i limiti del protocollo.
Nella mia configurazione succede quando più di 3 sensori sono collegati insieme. Quindi, il controller esegue un ciclo diagnostico, misurando la temperatura sensore per sensore (anche ciò che è bello…)
Ma anche il quinto sensore (28:ff:f2:41:51:17:04:31) sembra piuttosto malato (forse saldatura sbagliata), quindi posso indagare ulteriormente!
Consigliato:
Sensore di temperatura della rete domestica: 7 passaggi
Sensore di temperatura della rete domestica: cosa è necessario sapere per realizzare questo progetto: è necessario conoscere: - alcune abilità elettroniche (saldatura) - Linux - Arduino IDE (è necessario aggiornare schede aggiuntive nell'IDE: http:// arduino.esp8266.com/stable/package_esp8266…) - aggiornamento
Interfaccia Arduino con sensore a ultrasuoni e sensore di temperatura senza contatto: 8 passaggi
Interfacciamento Arduino con sensore ad ultrasuoni e sensore di temperatura senza contatto: oggi, Makers, Developers preferisce Arduino per lo sviluppo rapido della prototipazione dei progetti. Arduino è una piattaforma elettronica open source basata su hardware e software di facile utilizzo. Arduino ha un'ottima community di utenti. In questo progetto
Una rete WiFi Arduino (sensori e attuatori) - il sensore di colore: 4 passaggi
Una Rete WiFi Arduino (Sensori e Attuatori) - il Sensore di Colore: Quante volte nelle tue applicazioni hai qualche sensore o qualche attuatore lontano da te? Quanto potrebbe essere comodo utilizzare un solo dispositivo master vicino al tuo computer per gestire diversi dispositivi slave collegati tramite una rete wi-fi? In questo proge
Inverter collegato alla rete fai-da-te (non alimenta la rete) Alternativa UPS: 7 passaggi (con immagini)
Alternativa UPS con inverter collegato alla rete fai-da-te (non alimenta la rete): questo è un post di follow-up dal mio altro Instructable sulla creazione di un inverter collegato alla rete che non alimenta la rete, poiché ora è sempre possibile farlo in alcune aree come un progetto fai-da-te e alcuni luoghi non consentono di alimentare lì g
SENSORE SUHU DENGAN LCD DAN LED (Realizzazione del sensore di temperatura con LCD e LED): 6 passaggi (con immagini)
SENSOR SUHU DENGAN LCD DAN LED (Making Temperature Sensor With LCD and LED): hai, dico Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di si dica akan bebagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD e LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda