Tartalomjegyzék:
- 1. lépés: Történet mögött…
- 2. lépés: Hogyan működik?
- 3. lépés: Anyag és eszközök
- 4. lépés: Javítsa meg a dolgokat együtt
- 5. lépés: A dolgok összekötése
- 6. lépés: Az érzékelők csatlakoztatása
- 7. lépés: Vezérlő szoftver
- 8. lépés: Következtetés
Videó: Hibatűrő hőmérséklet-érzékelő hálózati vezérlő: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez az útmutató azt mutatja be, hogyan lehet az Arduino Uno kártyát egycélú vezérlővé alakítani egy DS18B20 hőmérséklet-érzékelő készlethez, amely képes a hibás érzékelők automatikus leválasztására.
A vezérlő akár 8 érzékelőt is kezelhet az Arduino Uno segítségével. (És még sok más az Arduino Mega -val vagy enyhe szoftvermódosítással.)
1. lépés: Történet mögött…
Pár éve létrehoztam egy DS18B20 hőmérséklet-érzékelő hálózatot apám üvegházában a pi-alapú fűtésszabályozómhoz. Sajnos a vezérlő megbízhatósága gyenge volt, főleg a gyakori érzékelő kimaradások miatt. Több beállítást is kipróbáltam - parazita tápellátás, közvetlen áramellátás, a hálózat pi -hez való csatlakoztatása, valamint az Atmega -alapú egyedi kártyához (amelynek elsődleges célja a szelepmotorok meghajtása volt).
Ami még rosszabb, az érzékelőhálózat megbízhatósága főleg a téli éjszakák során csökkent, miközben nyáron szinte semmi probléma nem volt! Mi a fene folyik itt?
Annak vizsgálatához, hogy melyik érzékelő okozza a problémát, felmerült az igény, hogy egyesével be- és kikapcsolják, vagy engedélyezzék ezek kombinációját.
2. lépés: Hogyan működik?
A DS18B20 (hőmérséklet-érzékelő) szabadalmaztatott 1 vezetékes protokollt használ, amely lehetővé teszi több érzékelő számára, hogy közös adatkapcsolatot (egy vezetéket) osszanak meg. Ez a közös adatkapcsolat az Arduino egyik GPIO-csatlakozójához és + 5 V-hoz van csatlakoztatva egy felhúzó ellenálláson keresztül-semmi szokatlan, sok utasítást tartalmaz ez a beállítás.
A trükk az, hogy az egyes érzékelők tápvezetékei saját (dedikált) GPIO tűkhöz vannak csatlakoztatva, így külön -külön be- és kikapcsolhatók. Például, ha egy érzékelő Vcc vezetékét a 3. tűhöz, a GND csatlakozót pedig a 2. tűhöz köti, a #3 tű HIGH értékre állítása biztosítja az érzékelő áramellátását (nem meglepő), míg a #2 láb LOW beállítása földet biztosít (egy kis meglepetés nekem). Ha mindkét érintkezőt bemeneti üzemmódba állítja, (majdnem) teljesen elszigeteli az érzékelőt és annak vezetékét - függetlenül attól, hogy milyen hiba (például parancsikon) történik benne, nem zavarja a többieket.
(Igazán mondom, hogy az adatkábel csatlakoztatása valami máshoz, amely valahogy az Arduino -hoz van csatlakoztatva, valóban interferenciát okoz, de ez szinte lehetetlen az én beállításomban).
Vegye figyelembe, hogy a DS18B20 legfeljebb 1, 5 mA -t fogyaszt, míg egy Arduino -tű 40 mA -ig képes forrni / süllyedni, így teljesen biztonságos az érzékelők közvetlen GPIO -érintkezőkről történő táplálása.
3. lépés: Anyag és eszközök
Anyag
- 1 Arduino UNO tábla
- 3 db női csapfej: 1 × 4, 1 × 6 és 1 × 6 (vagy hosszabb - egy 1 × 40 fejlécből vágtam ki őket)
- egy ragasztó
- egy darab csupasz káderes huzal (legalább 10 cm)
- szigetelő szalagot
- forrasztó fogyóeszközök (huzal, fluxus …)
Eszközök
- forrasztóberendezés (vasaló, tartók, stb.)
- kis vágófogó
4. lépés: Javítsa meg a dolgokat együtt
Ragassza a női tűfejléceket az Arduino táblafejlécekhez:
- 1 × 4-es fejléc az "analóg" érintkezőfej mellett, oldalról oldalra A0 – A4-es csapokkal
- 1 × 6-os fejléc az első digitális tűfejléc mellett, oldalról-oldalra, 2–7
- 1 × 6 fejléc a második digitális tüskés fejléc mellett, oldalról oldalra, 8–13
Figyelje meg, hogy a fejléceim kicsit hosszabbak … nincsenek hátrányai és előnyei.
5. lépés: A dolgok összekötése
Az 1 vezetékes buszvezeték bekötése:
- Csatlakoztassa a ragasztott fejrészek összes vezetékét a "digitális" oldalhoz (a 2–13. Tűk mellé) úgy, hogy egy csupasz huzaldarabot forraszt rájuk.
- Forrasztja ennek a vezetéknek a végét az SCL csapvezetékhez (belsőleg csatlakoztatva az A5 -höz)
- Csatlakoztassa a ragasztott fejrész összes vezetékét az "analóg" oldalon (A0 - A3 érintkezők), forrasztva rájuk egy csupasz huzaldarabot
- Forrasztja a vezeték végét A4 és A5 vezetékekhez (A5 -öt és A6 -ot használtam, mert van egy lapom, amelyen A6 és A7 van)
- Forrasztjon egy 4k7 -es ellenállást a vezeték másik vége és a +5 V -os érintkezők között
Megjegyzések:
- Az A0 – A5 érintkezők, bár „analóg” jelöléssel vannak ellátva, használhatók GPIO digitális csapként is.
- A "digitális" oldalon lévő SCL csap belsőleg az A5 -hez van csatlakoztatva az "analóg" oldalon; csatlakozik a fejekhez, ez képezi az 1 vezetékes buszvonalat
- Az A4 (analóg bemenetként használják) a busz feszültségét méri diagnosztikai célokra. Ez az oka annak, hogy közvetlenül csatlakozik a buszhoz.
- A4 helyett A6 -ot használtam, mert van egy lapom, amin A6 & A7; eredetileg az A7-et akartam használni 1-vezetékes busz masterként, de ezt a két érintkezőt nem lehet úgy konfigurálni, hogy digitális GPIO-k legyenek.
- Az érzékelőcsatlakozók helytelen csatlakoztatásának elkerülése érdekében hagyja ki / vágja ki a nem használt érintkezőt (nincs csatlakoztatva semmilyen vezetékhez) minden dugaszoló csatlakozóból, és illessze be a ragasztott csapfej megfelelő lyukába.
6. lépés: Az érzékelők csatlakoztatása
Most létrehozott egy nyolc 2 × 2 foglalatból álló tömböt. Forraszthat és összeszerelhet 2 × 2 Dupont csatlakozókat az érzékelő kábelekhez, és csatlakoztathatja ezeket az aljzatokhoz. A szoftver úgy konfigurálja a csapokat, hogy a páros tüskék GND és a páratlanok Vcc csapok legyenek. Minden érzékelő esetében a Vcc csap csak GND pin + 1. A 2 × 2 foglalat másik két csapjának egyike (a kettő közül az egyik a ragasztott és forrasztott fejrészben) az érzékelő adatvezetékéhez való. Nem mindegy, hogy melyiket használja.
7. lépés: Vezérlő szoftver
A SerialThermometer vázlat futtatja a vezérlőt. A githubon megtalálod. Nyissa meg és töltse fel az Arduino IDE segítségével.
Lépésről lépésre:
- Nyissa meg Arduino IDE -jét, és telepítse a DallasTemperature könyvtárat és minden függőséget a Sketch | Könyvtár | Könyvtárak kezelése.
- Clone git adattár. Ha nem ismeri a git -et, töltse le és csomagolja ki ezt a ZIP -fájlt bárhol a számítógépén.
- Nyissa meg a SerialThermometer vázlatát az Arduino IDE -ben.
- Csatlakoztassa a módosított Arduino kártyát a számítógéphez USB -kábellel (szabványos módon)
- Töltse fel a vázlatot az Arduino IDE használatával
- Nyissa meg a Soros monitort az Eszközök | Soros monitor
- Látnia kell a diagnosztikai kimenetet, amely több fizikai mérést, majd hőmérséklet -leolvasást tartalmaz - minden érzékelő aljzat egyetlen vonalon. Ha az érzékelők száma külön -külön és minden együttes bekapcsoláskor eltér), akkor a diagnosztikai ciklusok megoldódnak. De ne aggódjon, a diagnosztika is biztosítja a hőmérséklet mérését!
A diagnosztikai kimenetről részletesebben lásd a megjegyzésekkel ellátott képet.
8. lépés: Következtetés
Erős érzésem van, hogy az érzékelői hálózat hibáit a hosszú huzalozás nagy kapacitása okozta - körülbelül 10 m LIYY 314 (3 × 0, 14 mm²) kábel minden érzékelőnél. Kísérleteim azt mutatták, hogy a kommunikáció megszakad, ha az 1 vezetékes busz és a föld között 0,01 μF körüli vagy annál nagyobb kapacitás van, azt hiszem, mert a 4k7 felhúzó ellenállás nem képes elég gyorsan + 5 V-ra húzni a buszt, hogy megfeleljen a protokoll korlátainak.
Az én beállításomnál ez akkor fordul elő, ha több mint 3 érzékelő van csatlakoztatva. Ezután a vezérlő ciklusokat végez a diagnosztikai ciklusban, mérve a hőmérsékletet érzékelőnként (ami szintén hűvös …)
De az ötödik érzékelő is (28: ff: f2: 41: 51: 17: 04: 31) elég rosszul néz ki (lehet, hogy rossz a forrasztás), így tovább tudok vizsgálni!
Ajánlott:
Raspberry Pi RF Távirányítású hálózati aljzatok (hálózati csatlakozók): 6 lépés
Raspberry Pi RF Távirányítású hálózati aljzatok (hálózati csatlakozók): Irányítson olcsó 433 MHz-es hálózati aljzatokat (fali aljzatokat) egy Raspberry Pi segítségével. A Pi megtanulhatja az aljzatok távirányítójának kimeneti vezérlőkódjait, és programvezérléssel aktiválhatja azokat a ház bármely távirányítóján
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: 5 lépés
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: Sziasztok srácok, a legtöbb projektben ESP8266 -ot használunk, és a legtöbb projektben ESP8266 -ot használunk webszerverként, így az adatok hozzáférhetők bármilyen eszköz wifi -n keresztül az ESP8266 által üzemeltetett webszerver elérésével, de az egyetlen probléma az, hogy működő útválasztóra van szükségünk
ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással: 7 lépés (képekkel)
ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással: Még mindig úton van egy "közelgő projekt" befejezéséhez, "ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással" egy utasítás, amely bemutatja, hogyan adhatok hozzá NTP hőmérséklet -szondát, piezo b
YABC - Még egy Blynk vezérlő - IoT felhő hőmérséklet- és páratartalom -szabályozó, ESP8266: 4 lépés
YABC - Még egy Blynk vezérlő - IoT felhőhőmérséklet- és páratartalom -szabályozó, ESP8266: Sziasztok, nemrég kezdtem el otthon gombát termeszteni, osztriga gombát, de ebből a vezérlőből már 3 -szor van itthon a fermentoros hőmérséklet -szabályozáshoz az otthoni sörfőzéshez, feleségem most is ezt a Kombucha -dolgot csinálja, és hőfokszabályozóként
IoT hálózati vezérlő. 9. rész: IoT, otthoni automatizálás: 10 lépés (képekkel)
IoT hálózati vezérlő. 9. rész: IoT, otthoni automatizálás: Jogi nyilatkozat OLVASD EL EZT AZ ELSŐT választ