Obsah:

Senzor teploty odolný vůči poruchám Síťový ovladač: 8 kroků
Senzor teploty odolný vůči poruchám Síťový ovladač: 8 kroků

Video: Senzor teploty odolný vůči poruchám Síťový ovladač: 8 kroků

Video: Senzor teploty odolný vůči poruchám Síťový ovladač: 8 kroků
Video: Jak se chránit před rotaviry, úplavicí, zánětem středního ucha a nezkazit si dovolenou 2024, Listopad
Anonim
Síťový ovladač teplotně odolný teplotní senzor
Síťový ovladač teplotně odolný teplotní senzor

Tento Instructable vám ukáže, jak převést desku Arduino Uno na jednoúčelový ovladač pro sadu teplotních senzorů DS18B20 schopných automatizované izolace vadných senzorů.

Ovladač může spravovat až 8 senzorů pomocí Arduino Uno. (A mnohem více s Arduino Mega nebo s mírnou softwarovou úpravou.)

Krok 1: Příběh za…

Před pár lety jsem ve skleníku svého otce zřídil síť teplotních senzorů DS18B20 pro svůj regulátor vytápění na bázi pí. Spolehlivost ovladače byla bohužel špatná hlavně kvůli častým výpadkům senzorů. Zkoušel jsem několik nastavení - parazitní výkon, přímé napájení, připojení sítě k pí a také připojení k vlastní desce založené na Atmega (jejímž primárním účelem bylo pohánět ventilové motory).

Co horšího, spolehlivost senzorové sítě klesla hlavně během zimních nocí, zatímco v létě nebyly téměř žádné problémy! Co se tu sakra děje?

Aby bylo možné prozkoumat, který senzor způsobuje problém, vyvstala potřeba je zapnout/vypnout jednotlivě nebo povolit jejich libovolnou kombinaci.

Krok 2: Jak to funguje

DS18B20 (snímač teploty) využívá patentovaný 1vodičový protokol, který umožňuje více senzorům sdílet společné datové spojení (ten jeden vodič). Toto společné datové spojení je připojeno k jednomu z GPIO pinů Arduina a k + 5 V přes pull-up odpor-nic neobvyklého, mnoho instrukcí pokrývá toto nastavení.

Jde o to, že napájecí vodiče každého senzoru jsou připojeny k vlastním (vyhrazeným) pinům GPIO, takže je lze samostatně zapínat a vypínat. Pokud má senzor například vodič Vcc připojený ke kolíku č. 3 a GND ke kolíku č. 2, nastavovací kolík č. 3 na VYSOKÝ zajišťuje napájení čidla (žádné překvapení), zatímco nastavení kolíku č. 2 na NÍZKÉ zajišťuje uzemnění (malé překvapení pro mě). Nastavení obou kolíků na vstupní režim (téměř) zcela izoluje snímač a jeho zapojení - bez ohledu na to, jaké selhání (například zkratka) se v něm stane, nebude rušit ostatní.

(Je spravedlivé říci, že připojení datového kabelu k něčemu jinému připojenému nějakým způsobem k Arduinu skutečně způsobí rušení, ale v mém nastavení je to téměř nemožné).

Všimněte si, že DS18B20 spotřebovává až 1, 5 mA, zatímco jeden pin Arduino může zdroj / potopit až 40 mA, takže je naprosto bezpečné napájet senzory přímo pomocí GPIO pinů.

Krok 3: Materiál a nástroje

Materiál

  • 1 deska Arduino UNO
  • 3 zásuvkové kolíky: 1 × 4, 1 × 6 a 1 × 6 (nebo delší - vystřihl jsem je z jednoho záhlaví 1 × 40)
  • lepidlo
  • kus holého měděného drátu (nejméně 10 cm)
  • izolační páska
  • spotřební materiál pro pájení (drát, tavidlo …)

Nástroje

  • pájecí zařízení (žehlička, držáky, …)
  • malé řezací kleště

Krok 4: Opravte věci společně

Opravte věci společně
Opravte věci společně

Přilepte hlavičky pinů k hlavičkám desky Arduino:

  1. Záhlaví 1 × 4 vedle „analogového“kolíkového záhlaví, strana na stranu s kolíky A0 – A4
  2. Záhlaví 1 × 6 vedle prvního digitálního záhlaví kolíku, strana na stranu s kolíky 2–7
  3. Záhlaví 1 × 6 vedle druhého digitálního záhlaví kolíku, strana na stranu s kolíky 8–13

Všimněte si, že moje záhlaví jsou trochu delší … myslím, že to nemá žádné nevýhody a žádné výhody.

Krok 5: Spojte věci dohromady

Spojte věci dohromady
Spojte věci dohromady
Spojte věci dohromady
Spojte věci dohromady

Zapojení 1vodičového sběrnicového vedení:

  1. Připojte všechny vývody lepených záhlaví na „digitální“straně (sousedící s vývody 2–13) tak, že k nim připájíte kousek holého drátu
  2. Konec tohoto drátu připájejte k pinovému kabelu SCL (interně připojeno k A5)
  3. Připojte všechny vodiče lepeného konektoru na „analogovou“stranu (piny A0 – A3) tak, že k nim připájíte kus holého drátu
  4. Pájejte konec tohoto drátu na vodiče A4 a A5 (použil jsem A5 a A6, protože mám desku, která má A6 a A7)
  5. Mezi druhý konec tohoto vodiče a +5 V pinový vodič připájejte odpor 4k7

Poznámky:

  • Piny A0 – A5, přestože jsou označeny jako „analogové“, lze použít také jako digitální piny GPIO.
  • Pin SCL na „digitální“straně je interně připojen k A5 na „analogové“straně; připojeno k hlavičkám, tvoří to 1vodičové sběrnicové vedení
  • A4 (používá se jako analogový vstup) měří napětí sběrnice pro diagnostické účely. To je důvod, proč je přímo spojen s autobusem.
  • Místo A4 jsem použil A6, protože mám desku, která má A6 & A7; původně jsem chtěl použít A7 jako 1-vodičový master sběrnice, ale tyto dva piny nelze konfigurovat jako digitální GPIO.
  • Abyste zabránili špatnému připojení konektorů senzorů, můžete vynechat / vystřihnout nepoužitý kontakt (nepřipojený k žádnému vodiči) z každého konektoru samec a zasunout jej do odpovídajícího otvoru v lepeném konektoru pinů.

Krok 6: Připojení senzorů

Připojení senzorů
Připojení senzorů

Právě jste vytvořili pole osmi soketů 2 × 2. Můžete připájet a sestavit 2 × 2 konektory Dupont na kabely senzorů a připojit je k těmto zásuvkám. Software konfiguruje piny tak, že sudé piny jsou GND piny a liché piny jsou Vcc piny. Pro každý senzor je pin Vcc pouze GND pin + 1. Jeden z dalších dvou kolíků zásuvky 2 × 2 (jeden z těchto dvou v lepené a pájené hlavičce) je pro datový vodič senzoru. Nezáleží na tom, který používáte.

Krok 7: Software ovladače

Software ovladače
Software ovladače

Skica SerialThermometer spouští ovladač. Najdete ho na githubu. Otevřete a nahrajte pomocí Arduino IDE.

Krok za krokem:

  1. Otevřete své Arduino IDE a nainstalujte si knihovnu DallasTemperature a všechny její závislosti pomocí Sketch | Zahrnout knihovnu | Správa knihoven.
  2. Klonovat úložiště git. Pokud neznáte git, stáhněte si a rozbalte tento zip kdekoli na vašem počítači.
  3. Otevřete skicu SerialThermometer ve svém Arduino IDE.
  4. Připojte upravenou desku Arduino k počítači pomocí kabelu USB (standardní způsob)
  5. Nahrajte skicu pomocí svého Arduino IDE
  6. Otevřete Serial Monitor pomocí Nástroje | Sériový monitor
  7. Měli byste vidět diagnostický výstup obsahující několik fyzických měření a následně odečty teploty - každá zásuvka senzoru na jednom řádku. Pokud se počet senzorů liší při samostatném zapnutí a při zapnutí všech společně), diagnostické smyčky se vyřeší. Ale žádný strach, také diagnostika poskytuje měření teploty!

Další podrobnosti o diagnostickém výstupu najdete na komentovaném obrázku.

Krok 8: Závěr

Mám silný pocit, že moje selhání sítě senzorů bylo způsobeno vysokou kapacitou mého dlouhého vedení - kolem 10 m kabelu LIYY 314 (3 × 0, 14 mm²) pro každý senzor. Moje experimenty ukázaly, že komunikace se přeruší, pokud je mezi 1vodičovou sběrnicí a zemí kapacita přibližně 0,01 μF nebo vyšší, domnívám se, protože stahovací odpor 4k7 není schopen vytáhnout sběrnici dostatečně rychle na + 5 V, aby vyhovoval limitům protokolu.

V mém nastavení se to stane, když jsou k sobě připojeny více než 3 senzory. Poté se regulátor zacyklí v diagnostickém cyklu a měří teplotu senzor po senzoru (co je také chladné …)

Ale také 5. snímač (28: ff: f2: 41: 51: 17: 04: 31) vypadá docela špatně (možná špatné pájení), takže mohu zkoumat dál!

Doporučuje: