Sadržaj:
- Korak 1: Priča iza …
- Korak 2: Kako to funkcionira
- Korak 3: Materijal i alati
- Korak 4: Zajedno popravite stvari
- Korak 5: Povežite stvari zajedno
- Korak 6: Spajanje senzora
- Korak 7: Softver kontrolera
- Korak 8: Zaključak
Video: Mrežni regulator osjetnika temperature tolerantan na greške: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ovaj Instructable vam pokazuje kako pretvoriti Arduino Uno ploču u jednonamjenski kontroler za skup temperaturnih senzora DS18B20 koji mogu automatizirati izolaciju neispravnih senzora.
Kontroler može upravljati do 8 senzora pomoću Arduino Uno. (I još mnogo toga s Arduino Mega -om ili uz malu softversku izmjenu.)
Korak 1: Priča iza …
Prije nekoliko godina postavio sam mrežu senzora temperature DS18B20 u stakleniku moga oca za moj regulator grijanja na bazi pi. Nažalost, pouzdanost kontrolera je bila loša uglavnom zbog čestih prekida u radu senzora. Pokušao sam s više postavki - napajanje parazita, izravno napajanje, povezivanje mreže na pi, kao i povezivanje s prilagođenom pločom zasnovanom na Atmegi (čija je primarna svrha bila pogon motora ventila).
Što je još gore, pouzdanost senzorske mreže pala je uglavnom tijekom zimskih noći, dok ljeti gotovo da nije bilo problema! Šta se dovraga dešava ovdje?
Da bi se istražilo koji senzor uzrokuje problem, pojavila se potreba za uključivanjem/isključivanjem jednog po jednog ili omogućavanjem bilo koje njihove kombinacije.
Korak 2: Kako to funkcionira
DS18B20 (temperaturni senzor) koristi vlasnički 1-žični protokol koji omogućava više senzora da dijele zajedničku podatkovnu vezu (tu jednu žicu). Ova uobičajena veza za prijenos podataka povezana je s jednim od Arduino GPIO pinova i na + 5 V preko pull-up otpornika-ništa neuobičajeno, mnoge upute pokrivaju ovu postavku.
Trik je u tome što su kablovi za napajanje svakog senzora spojeni na vlastite (namjenske) GPIO pinove, tako da se mogu zasebno uključivati i isključivati. Na primjer, ako senzor ima Vcc vodič spojen na pin #3 i GND na pin #2, postavljanje pina #3 na HIGH daje napajanje senzoru (ne čudi) dok postavljanje pina #2 na LOW daje uzemljenje (malo iznenađenje za ja). Postavljanje oba pina na način unosa (gotovo) će potpuno izolirati senzor i njegovo ožičenje - bez obzira na to koji se kvar (npr. Prečica) dogodi unutar njega, neće ometati ostale.
(Treba reći da će povezivanje žice za prijenos podataka na nešto drugo povezano nekako na Arduino doista uzrokovati smetnje, ali to je gotovo nemoguće u mojim postavkama).
Imajte na umu da DS18B20 troši do 1,5 mA, dok jedan Arduino pin može izvor / potonuti do 40 mA, pa je savršeno sigurno napajati senzore izravno putem GPIO pinova.
Korak 3: Materijal i alati
Materijal
- 1 Arduino UNO ploča
- 3 ženska pin zaglavlja: 1 × 4, 1 × 6 i 1 × 6 (ili duže - izrežem ih iz jednog zaglavlja 1 × 40)
- ljepilo
- komad gole bakrene žice (najmanje 10 cm)
- izolacijsku traku
- potrošni materijal za lemljenje (žica, fluks …)
Alati
- oprema za lemljenje (pegla, držači, …)
- mala kliješta za rezanje
Korak 4: Zajedno popravite stvari
Zalijepite zaglavlja ženskih pinova na zaglavlja Arduino ploče:
- 1 × 4 zaglavlje pored "analognog" zaglavlja pina, bočno sa pinovima A0 – A4
- 1 × 6 zaglavlja pored prvog digitalnog pin zaglavlja, bočno sa pinovima 2–7
- 1 × 6 zaglavlja pored drugog digitalnog zaglavlja pinova, bočno sa strane sa pinovima 8–13
Primijetite da su moja zaglavlja malo duža … pretpostavljam da nema nedostataka i prednosti.
Korak 5: Povežite stvari zajedno
Ožičenje 1-žične sabirničke linije:
- Spojite sve vodiče zalijepljenih zaglavlja na "digitalnoj" strani (uz pinove 2–13) lemljenjem komada gole žice na njih
- Lemite kraj ove žice na SCL pin pin (interno spojen na A5)
- Spojite sve vodiče zalijepljenog zaglavlja na "analognoj" strani (pinovi A0 -A3) lemljenjem komada gole žice na njih
- Lemite kraj ove žice na vodiče A4 i A5 (koristio sam A5 i A6 jer imam ploču koja ima A6 i A7)
- Lemite otpornik 4k7 između drugog kraja ove žice i +5 V kontakta
Napomene:
- Igle A0 -A5, iako su označene kao "analogne", mogu se koristiti i kao GPIO digitalne pinove.
- SCL pin na "digitalnoj" strani je interno povezan sa A5 na "analognoj" strani; spojen na zaglavlja, ovo čini 1-žičnu sabirničku liniju
- A4 (koristi se kao analogni ulaz) mjeri napon sabirnice u dijagnostičke svrhe. To je razlog zašto je direktno povezan s autobusom.
- Koristio sam A6 umjesto A4 jer imam ploču koja ima A6 & A7; izvorno sam želio koristiti A7 kao 1-žični sabirnički master, ali ova dva pina ne mogu se konfigurirati kao digitalni GPIO.
- Da biste spriječili pogrešno spajanje konektora senzora, možete izostaviti / izrezati nekorišteni kontakt (nije spojen ni na jednu žicu) iz svakog muškog priključka i umetnuti ga u odgovarajući otvor u zalijepljenom zaglavlju pinova.
Korak 6: Spajanje senzora
Upravo ste stvorili niz od osam utičnica 2 × 2. Možete lemiti i sastaviti 2 × 2 Dupont konektore na senzorske kabele i spojiti ih na ove utičnice. Softver konfigurira pinove tako da su parni pinovi GND pinovi, a neparni pinovi Vcc pinovi. Za svaki senzor, Vcc pin je samo GND pin + 1. Jedan od druga dva pina utičnice 2 × 2 (jedan od ta dva u zalijepljenom i lemljenom zaglavlju) služi za podatkovnu žicu senzora. Nije važno koju koristite.
Korak 7: Softver kontrolera
Skica serijskog termometra pokreće kontroler. Možete ga pronaći na githubu. Otvorite i otpremite pomoću Arduino IDE -a.
Korak po korak:
- Otvorite svoj Arduino IDE i instalirajte biblioteku DallasTemperature i sve njene ovisnosti putem Sketch | -a Uključi biblioteku | Upravljanje bibliotekama.
- Klonirajte git spremište. Ako niste upoznati s gitom, preuzmite i raspakirajte ovaj zip bilo gdje na računaru.
- Otvorite skicu serijskog termometra u svom Arduino IDE -u.
- Povežite svoju izmijenjenu Arduino ploču s računarom putem USB kabela (standardni način)
- Prenesite skicu koristeći svoj Arduino IDE
- Otvorite serijski monitor putem alata | Serijski monitor
- Trebali biste vidjeti dijagnostički izlaz koji sadrži nekoliko fizičkih mjerenja nakon čega slijede očitanja temperature - svaka utičnica senzora na jednoj liniji. Ako se broj senzora razlikuje kada se zasebno uključi i kada se svi zajedno uključe), dijagnostičke petlje se rješavaju. Ali bez brige, dijagnostika također omogućuje mjerenje temperature!
Za više detalja o dijagnostičkim rezultatima pogledajte označenu sliku.
Korak 8: Zaključak
Imam snažan osjećaj da su kvarovi na mreži senzora uzrokovani velikim kapacitetom mog dugog ožičenja - oko 10 m kabela LIYY 314 (3 × 0, 14 mm²) za svaki senzor. Moji su eksperimenti pokazali da se komunikacija prekida ako postoji kapacitet oko ili veći od 0,01 μF između 1-žilne sabirnice i mase, mislim da 4k7 pull-up otpornik ne može povući sabirnicu na + 5 V dovoljno brzo da se pridržava ograničenja protokola.
U mojim postavkama to se događa kada je više od 3 senzora spojeno zajedno. Zatim se kontroler petlja u dijagnostičkom ciklusu, mjereći temperaturu senzor po senzor (što je i kul …)
Ali i 5. senzor (28: ff: f2: 41: 51: 17: 04: 31) izgleda prilično loše (možda pogrešno lemljenje), pa mogu dalje istražiti!
Preporučuje se:
Povezivanje LM35 osjetnika temperature s Arduinom: 4 koraka
Povezivanje temperaturnog senzora LM35 s Arduinom: Termometri su korisni aparati koji se dugo koriste za mjerenje temperature. U ovom projektu napravili smo digitalni termometar zasnovan na Arduinu za prikaz trenutne temperature okoline i promjena temperature na LCD -u. Može biti depl
Ventilator za automatsko hlađenje pomoću servo i DHT11 osjetnika temperature i vlažnosti s Arduinom: 8 koraka
Ventilator za automatsko hlađenje pomoću Servo i DHT11 osjetnika temperature i vlažnosti s Arduinom: U ovom ćemo vodiču naučiti kako pokrenuti & okrenite ventilator kada se temperatura podigne iznad određene razine
Paralelni krug pomoću greške u krugu: 13 koraka (sa slikama)
Paralelno kolo pomoću programskih grešaka: Greške u krugovima su jednostavan i zabavan način da djecu upoznate sa električnom energijom i strujnim krugovima i povežete ih sa nastavnim programom zasnovanim na STEM-u. Ova simpatična buba uključuje odličnu motoriku i kreativne vještine izrade, radeći s električnom energijom i krugovima za
Otkrivanje greške i alarm toplotne pumpe ESP8266, Openhab, Telegram, MQTT na baterije: 5 koraka
Detekcija greške i alarm toplotne pumpe ESP8266, Openhab, Telegram, MQTT na baterije: Moja toplotna pumpa za grijanje kuće i vode povremeno dobije grešku. Ova greška se ne može lako primijetiti jer nema crvenog svjetla ili nečega, samo mali 'P' na malom LCD ekranu. Stoga sam napravio ovaj detektor kako bi otkrio grešku i
Automatizirajte ventilator pomoću MESH osjetnika temperature: 4 koraka (sa slikama)
Automatizirajte ventilator pomoću MESH temperaturnog senzora: Jeste li umorni od uključivanja ventilatora " Uključi " i " Isključeno "? Što ako je vaš ventilator automatiziran i prilagodljiv na temelju vaših omiljenih postavki temperature? Izgradili smo automatizirani ventilator pomoću MESH Temperature & Vlažnost, Wemo i