Taula de continguts:

Controlador de xarxa del sensor de temperatura tolerant a fallades: 8 passos
Controlador de xarxa del sensor de temperatura tolerant a fallades: 8 passos

Vídeo: Controlador de xarxa del sensor de temperatura tolerant a fallades: 8 passos

Vídeo: Controlador de xarxa del sensor de temperatura tolerant a fallades: 8 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Desembre
Anonim
Controlador de xarxa del sensor de temperatura tolerant a fallades
Controlador de xarxa del sensor de temperatura tolerant a fallades

Aquesta instrucció us mostra com convertir una placa Arduino Uno en un controlador d’un sol ús per a un conjunt de sensors de temperatura DS18B20 capaços d’aïllar automàticament els sensors defectuosos.

El controlador pot gestionar fins a 8 sensors amb Arduino Uno. (I molt més amb Arduino Mega o amb una lleugera modificació del programari).

Pas 1: història darrere …

Fa un parell d’anys vaig instal·lar una xarxa de sensors de temperatura DS18B20 a l’hivernacle del meu pare per al meu controlador de calefacció basat en pi. Malauradament, la fiabilitat del controlador era deficient principalment a causa de les freqüents interrupcions del sensor. Vaig provar diverses configuracions: alimentació de paràsits, alimentació directa, connexió de la xarxa a pi, així com connexió a una placa personalitzada basada en Atmega (que tenia com a objectiu principal accionar motors de vàlvules).

El que és pitjor, la fiabilitat de la xarxa de sensors va caure principalment durant les nits d’hivern, mentre que a l’estiu gairebé no hi havia problemes. Què diables passa aquí?

Per investigar quin sensor causa el problema, va sorgir la necessitat d’engegar-los / apagar-los un per un o d’habilitar qualsevol combinació d’ells.

Pas 2: Com funciona

DS18B20 (el sensor de temperatura) utilitza un protocol propietari d'un fil que permet a diversos sensors compartir un enllaç de dades comú (aquell fil). Aquest enllaç de dades comú està connectat a un dels pins GPIO d'Arduino i a + 5 V mitjançant una resistència d'explotació; res estrany, molts instructius cobreixen aquesta configuració.

El truc és que els cables d’alimentació de cada sensor estan connectats als seus propis pins GPIO (dedicats), de manera que es poden activar i desactivar per separat. Per exemple, si un sensor té un cable Vcc connectat al pin # 3 i GND al pin # 2, configurar el pin # 3 a HIGH proporciona energia per al sensor (sense sorpresa) mentre que el pin # 2 a LOW proporciona terra (una petita sorpresa per jo). Si configureu els dos pins al mode d’entrada, s’aïllarà (gairebé) completament el sensor i el seu cablejat; independentment de la fallada (per exemple, una drecera) que es produeixi al seu interior, no interferirà amb els altres.

(Val a dir que connectar el cable de dades a una altra cosa connectada d'alguna manera a Arduino provocarà interferències, però és gairebé impossible en la meva configuració).

Tingueu en compte que el DS18B20 consumeix fins a 1, 5 mA, mentre que un pin Arduino pot generar / enfonsar-se fins a 40 mA, de manera que és perfectament segur alimentar els sensors directament amb pins GPIO.

Pas 3: Material i eines

Material

  • 1 placa Arduino UNO
  • 3 capçaleres de pin femení: 1 × 4, 1 × 6 i 1 × 6 (o més: les tallo d'una capçalera 1 × 40)
  • una cola
  • un tros de filferro nu (almenys 10 cm)
  • una cinta d’aïllament
  • consumibles de soldadura (filferro, flux …)

Eines

  • equips de soldadura (planxa, suports, …)
  • petites alicates de tall

Pas 4: arreglar les coses junts

Arreglar les coses junts
Arreglar les coses junts

Enganxeu les capçaleres dels pins femenins a les capçaleres de la placa Arduino:

  1. Capçalera 1 × 4 al costat de la capçalera de pin "analògic", de costat a costat amb els pins A0 – A4
  2. Capçalera 1 × 6 al costat de la primera capçalera de pin digital, de costat a costat amb els pins 2-7
  3. Capçalera 1 × 6 al costat de la segona capçalera de pin digital, de costat a costat amb els pins 8-13

Fixeu-vos que les meves capçaleres són una mica més llargues … no suposa cap inconvenient ni cap avantatge.

Pas 5: connectar les coses juntes

Wire Things Together
Wire Things Together
Wire Things Together
Wire Things Together

Cablatge de la línia de bus d’un cable:

  1. Connecteu tots els cables de les capçaleres encolades al costat "digital" (adjacent als passadors 2-13) soldant un tros de fil nu
  2. Soldeu l’extrem d’aquest cable al cable de pin SCL (connectat internament a A5)
  3. Connecteu tots els cables de la capçalera encolada al costat "analògic" (pins A0 – A3) soldant un tros de fil nu
  4. Soldeu l'extrem d'aquest cable a cables A4 i A5 (he utilitzat A5 i A6 perquè tinc una placa que té A6 i A7)
  5. Soldeu una resistència de 4k7 entre l’altre extrem d’aquest cable i un cable de pin de +5 V

Notes:

  • Els pins A0 – A5, tot i que estan marcats com a “analògics”, també es poden utilitzar com a pins digitals GPIO.
  • El pin SCL del costat "digital" està connectat internament a A5 pel costat "analògic"; connectat a les capçaleres, forma la línia de bus d’un cable
  • A4 (utilitzat com a entrada analògica) mesura el voltatge del bus amb finalitats diagnòstiques. Aquesta és la raó per la qual està connectat directament al bus.
  • He utilitzat A6 en lloc d'A4 perquè tinc una placa que té A6 i A7; originalment volia utilitzar A7 com a mestre de bus de 1 fil, però aquests dos pins no es poden configurar per ser GPIO digitals.
  • Per evitar una connexió incorrecta dels connectors del sensor, podeu ometre / retallar el contacte no utilitzat (no connectat a cap cable) de cada connector mascle i inserir-lo al forat corresponent de la capçalera del pin encolat.

Pas 6: Connexió dels sensors

Connexió dels sensors
Connexió dels sensors

Acabeu de crear un conjunt de vuit sòcols 2 × 2. Podeu soldar i muntar connectors Dupont 2 × 2 per connectar els cables del sensor i connectar-los a aquests endolls. El programari configura els pins perquè els pins parells siguin pins GND i els pins imparells siguin pins Vcc. Per a cada sensor, el pin Vcc és només el pin GND + 1. Un dels altres dos pins del sòcol 2 × 2 (un d'aquests dos de la capçalera enganxada i soldada) és per al cable de dades del sensor. No importa el que utilitzeu.

Pas 7: programari del controlador

Programari de controlador
Programari de controlador

L'esbós del Termòmetre Serial executa el controlador. El podeu trobar a github. Obriu i pengeu amb Arduino IDE.

Pas a pas:

  1. Obriu el vostre IDE Arduino i instal·leu la biblioteca DallasTemperature i totes les seves dependències mitjançant Sketch | Inclou la biblioteca | Gestiona les biblioteques.
  2. Clonar el dipòsit git. Si no esteu familiaritzat amb git, descarregueu i descomprimiu aquest zip a qualsevol lloc del vostre ordinador.
  3. Obriu l’esbós de SerialThermometer al vostre IDE Arduino.
  4. Connecteu la placa Arduino modificada a l'ordinador mitjançant un cable USB (forma estàndard)
  5. Pengeu l’esbós amb el vostre IDE Arduino
  6. Obriu el monitor sèrie mitjançant Eines | Monitor de sèrie
  7. Hauríeu de veure la sortida de diagnòstic que conté diverses mesures físiques seguides de lectures de temperatura: cada sòcol del sensor en una sola línia. Si el recompte del sensor difereix quan s’activa per separat i quan s’encén tots junts), els bucles de diagnòstic fins que es resolguin. Però no us preocupeu, també el diagnòstic proporciona mesures de temperatura.

Consulteu la imatge comentada per obtenir més informació sobre la sortida de diagnòstic.

Pas 8: Conclusió

Tinc la sensació que les falles de la meva xarxa de sensors van ser causades per l’alta capacitat del meu llarg cablejat, al voltant de 10 m de cable LIYY 314 (3 × 0, 14 mm²) per a cada sensor. Els meus experiments van demostrar que la comunicació es trenca si hi ha una capacitat al voltant o superior a 0,01 μF entre el bus d’un cable i la terra, crec que la resistència de tracció 4k7 no és capaç d’arrossegar el bus a + 5 V prou ràpidament per complir els límits del protocol.

A la meva configuració, passa quan es connecten més de 3 sensors. A continuació, el controlador passa el cicle de diagnòstic i mesura la temperatura sensor per sensor (el que és fresc també …)

Però també el cinquè sensor (28: ff: f2: 41: 51: 17: 04: 31) sembla força malalt (potser una soldadura incorrecta), així que puc investigar més.

Recomanat: