Logování 4 termočlánků typu K pomocí arduina
Úvodní stránka › Fórum › Vaše projekty › Arduino › Logování 4 termočlánků typu K pomocí arduina
Označeno štítky: logování, termočlánek
- Toto téma obsahuje celkem 10 odpovědí. Do diskuze (4 diskutující) se naposledy zapojil uživatel migo a poslední změna proběhla před 8 roky a 1 měsícem.
-
AutorPříspěvky
-
2.3.2016 v 22:00 #6226SimakaiÚčastník
Zdravím vás,
s Arduinem nemám žádné praktické zkušenosti, jen trochu teorie. Programovat umím, s mikroelektronikou je to horší, ale „mechanicky“ to snad nějak zvládnu :-). Najdou-li se zde nadšenci, kteří by mě nakopli správným směrem, byl bych moc rád.
Cíl projektu:
Měřicí a logovací jednotka pro 4 termočlánky typu K pomocí Arduina
– měření teploty spalin v akumulačních kamnech
– 4 nezávislé sondy typu termočlánek typu K pro měření teplot až 1000°C
– LCD display pro zobrazení aktuálních teplot ze 4 termočlánků (LCD 2×16 znaků bude stačit)
– SD nebo MicroSD modul pro zápis aktuálních hodnot v cyklu
– cyklus zapisování 10s
– v zápisu buď reálný timestamp nebo inkrementální počitadlo od začátku měření
– zahájení logování stiskem tlačítka, (indikace diodou)
– ukončení logování stiskem tlačítka jiného (logovací dioda zhasne)
– logování do ASCII formátu txt souboru
– pro každé spuštění logování vytvoření nového souboru (neexistuje-li žádný, tak 1.txt, pokud existuje, tak 2.txt 3.txt n+1.txt….
– napájení zařízení buď z elektrické sítě, nebo z baterií
– délka jednoho logovacího cyklu max 8 hodin
– po ukončení logování si SD kartu dám do počítače, načtu TXT do excelu a udělám 4 grafy průběhu teplotPotřebné komponenty:
– zatím jsem si vyhledal, že by se mohlo hodit http://arduino-shop.cz/arduino/927-arduino-termoclanek-driver-1421253544.html
– nicméně potřeboval bych zapojit termočlánek třebas tento: http://www.e-pristroje.cz/teplotni-cidla.html a tam T519Co je nutno určit:
– vhodnou arduino desku plus případné rozširující shieldy, které dokáží popřipojovat požadované (4 drivery od termočlánků, lcd display, diodku indikující logování, microsd zapisovačku, 2 tlačítka pro start a stop logování)
– zda je možné vyměnit termočlánek z odkazu jedna za jakýkoliv jiný termočlánek, například z odkazu dvaŽádost na komunitu
Výše jsem popsal cíl a smysl projektu, který bych rád vyřešil pomocí arduina, protože intuitivně cítím, že to půjde. Potřeboval bych jen postrčit style: jo, to půjde, budeš potřebovat nejméně takovýto typ desky, plus tyto další prvky, tady a tady najdeš jak je řešené tamto, případně tohle řeš takto…Zkusíme to? 🙂
Díky,
Simakai alias Martin3.3.2016 v 17:13 #6229posjirkaÚčastník4 ten driver pro termočlánky využívá SPI rozhraní.
Otázka zní jak přpeínat termočlánky.
Kdyby s epoužilo 4x tento driver, tak je to vcelku finanční zátěž ale elekgantní přepínání měření.
Při přepínání pomocí relé, nebo cmos obvodů je to finanční méně náročné ale rozhodně to bude přesnější. Doba na zotavení po přepnutí, atd…
Na tom samé SPI portu bude i čteška SD karet.
Nevím ale tuší, že na spi rozhraní je možno navěsit max. 4 zařízení. Je třeba se podívat na možnosti zda exituje „virtuální SPI“.
Lepší by bylo I2C rozhraní pro termočlánky.
LCD 2×16 je v pohodě.
počty pinů:
LCD 6 pinů
SD 4 piny
termočlánky 4 piny (přepínání)
tlačítka 2 piny
LED diody 2 piny (šlo by součit s tlačítky).
RTC modul (I2c) 2 piny – neví jestli bude potřeba
Celkem mi to vychází na 18-20 pinů.Pamě´t na tento program by mohla stačit 23kb.
Takže podle I/O a paměti by ti mohlo stačit Arduino UNO.
Když si nejsi jistý kup Arduino MEGA, tam je všeho dost.
Na Ebay stojí cca 350 kč, u nás 500-1000 kč,
http://aukro.cz/funduino-mega-2560-r3-kabel-avr-arduino-i6015916346.html
k tomu rovnou koupit universální PCB:
http://aukro.cz/prototyp-shield-dps-arduino-mega2560-plosny-spoj-i6020062810.html
Na něj dáš jak LCD tak tlačítka, led a nejspíš i Drivery.
256kb paměti bude aboslutně dostačující a nelimitující.
Kompatk ti už předurčuje i mechanické řešneí , můžeš to napájet čím chceš 7-12V (7-9V doporučeno) nebo přes USB. Přes něj to inaprogrmauješ amůžeš postupně oživovat.Jinak termočlánek typu „k“ je vlastně označení charakteristiky anemyslím si, že by se měnil podle výrobců.
3.3.2016 v 21:05 #6231SimakaiÚčastníkAhoj
objednal jsem si funduino mega plus hromadu komponent a už se těším, až to budu dávat dohromady. Některé komponenty mi půjdou bůhví odkud, protože jsem objednával z http://www.dx.com což je nějaký zahraniční obchod.
Nastudoval jsem si příslušnou problematiku, tak snad mě nic nezaskočí.
Pokud bych chtěl projekt do budoucna rozšířit, určitě by se mi hodilo vyřešit bezdrátový přenos z čidel, protože občas by se hodilo měřit povrchovou teplotu na kamnech a uvnitř kamen, které mohou být rozlezlé přes několik místností (i do patra) a pak je problematické použít od teplotních čidel kabely až k duinu. Nevíte o nějakém řešeném případu, že by k jednomu duinu bylo připojeno bezdrátově několik čidel? Samotné čidlo by sestávalo ze senzoru, driveru, vysílače a baterie. A tedy na duinu by byl buď 1 přijímač nebo několik přijímačů (nevím, jak se toto řeší).
5.3.2016 v 17:19 #6262posjirkaÚčastníkasi bych šel cestou mít 4 drátové připojení přímo v měřícím přístroji + 1 kanál si vyčlenit na bezdrátové čidlo s možností jej přiřadit ke kanálu č.1 (např.).
Když máš LCD 2×16 zn tak by to mohlo mít přibližně tyto stavy:0123456789012345
1:1000C 2:1000C
3:1000C 4:1000CV:1000C 2:1000C
3:1000C 4:1000CV:ERROR 2:ERROR
3:ERROR 4:ERRORObávám se, že při použití 4 bezdrátových čidel budeš mít rozdílené výsledky (napětí baterie) nebo vůbec žádné (jedno čidlo zaruší druhé).
Máš na výber bud bluetooth (seriová linka), NRF24l01 (SPI na 2,4Ghz), 433MHz (pouze vysílač/přijímač seriové linky)- WIFI ti nabízet nebudu, protože předpokládám, že né vždy budeš mít k dispozici WIFI sí´t, a k ní hesla.
433MHz není na přesné logované měření, občas se ti zaruší a tím paralela více čidel není ideální. Na meteostanici nevadí, když minutu nedostane správnou teplotu, tady by ti to asi vadilo.
Bluetooth je super, seriová linka jen ten dosah dost hapruje. 1 zařízení není problém, ale víc jsem nikdy nezkoušel.
nrF24L01 je bluetooth v jiném kabáťě s vlastní modulací.Asi bych ti doporučil 433MHz. To není tak složité, dá se ověřit správnost dat a vše je levné a dostupné. Dosah je závislý na napájení vysílače.
17.3.2016 v 10:12 #6369SimakaiÚčastníkAhoj všem,
zatím na projektu pracuju a hotový ještě není. Tento příspěvek píšu jednak proto, abych vykázal nějakou aktivitu, jednak proto, aby posjirka věděl, že tohle vlákno nepošlo : a jednak proto, že zrovna mám čas hodit sem pár postřehů.
1) Peklo s diodou: Koupil jsem si několik diod, k nim dle rad na internetu dopočítal rezistory, zapojil do kontaktního nepájivého pole a nic. Zkoušel jsem s rezistorem, bez, tak či onak, otočit atd a nesvítila. Jen se mi podařilo pár diod rozsvítit na jejich poslední cestu do křemíkového nebe (red dwarf spoiler 😉 při jejich odvaření. Řešení se nakonec ukázalo samo – já pakoš jsem zapojoval kaskádu rezistor + dioda do jedné řady v breadboardu a tedy jsem všechny nožičky napojoval do jednoho uzlu obvodu :-D. Po elementárním uvědomění jak vlastně pozapojovat obvod na breadboardu to již fičí.
2) Peklo s SD kartou 1: občas to kartu detekovalo, občas ne. V celém cyklu dělám totiž několik testů, zda je SD karta dostupná, abych buď diodou signalizoval že je či není, nebo před samotným zápisem dat. Nakonec jsem vygooglil, že SD knihovna má v sobě elementární chybu a musel jsem upravit SDClass::begin proceduru a přidat tam něco jako if(root.isOpen()) root.close(). Pak to začlo fungovat dobře a test přítomnosti SD karty je možno volat opakovaně.
3) Peklo s SD kartou 2: při zahájení měření se prohledá SD karta, zda tam existuje soubor typu mer00001.csv a pokud ne, tak ho založí, pokud jo, tak se zjistí nejvyšší číslo v souborech a vytvoří se nový soubor s číslem o jedna vyšším, tedy například při existenci mer000001.csv se vytvoří mer000002.csv. Nu a občas to správně našlo všechny soubory a propočítalo z jejich názvů jméno nového souboru a někdy to nenašlo nic a tedy mi to otevřelo základní mer000001.csv. Po několika probrečených večerech jsem přišel na to, že v proceduře pro procházení souborů musím za root = SD.open(„/“); přidat příkaz root.rewindDirectory(); a pak prohledávat soubory, neboť SD knihovna si bez rewindu pamatovala konec řady prohledávaných souborů a tedy nic neobjevila. Rewindem se to vyřešilo.
4) Peklo s časem: po startu logování se mi na LCD display ukazuje čas ve formátu hh:ii:ss a i se to zapisuje na SD kartu. K mému údivu při testu mi to po cca 5 hodinách a 47 minutách začlo čas počítat opět od začátku. Čas odvozuju od millis a ty se mi logovaly správně (stále narůstaly). Po deseti hrstích vytrhaných vlasů jsem zjistil, že v proceduře pro formát času z hodnoty millis (kterou jsem převzal z internetu), musím nahradit řádek days = inttime / (24 * 3600); jiným zápisem a sice days = inttime / 86400; a pak to funguje dobře. To mě, věru, překvapilo nejvíc. Nakonec jsem zjistil, že tam vlastně dny ani nepotřebuju a rovnou tam hledám hodiny pomocí řáku hours = inttime / 3600; a to funguje bezpečně dobře. Krásně mi to loguje i 31:25:13 atd, tedy vím, že od startu logování uběhlo 31 hodin.
Jiné 1): LCD display se mi podařilo připojit napoprvé, resp. velmi rychle, dokonce jsem tam zapojil i potenciometr na nastavení kontrastu a taktéž to funguje dobře.
Jiné 2): Malý senzor s na teplotu se mi taktéž podařilo zprovoznit rychle, za využití knihoven OneWire.h a DallasTemperature.h
Co mě čeká: stále mi nedorazily termočlánky a k nim objednané převodníkové moduly, takže se těším, co mě překvapí. Už teď vím, že budu muset vyřešit více zařízení na SPI sběrnici, ale teoreticky to zmáknuté mám, SD čtečku už na SPI vlastně taky mám a funguje, takže jsem skoro v závěru.
Snad mé postřehy uvedené výše pomůžou i dalším při řešení problémů s arduinem.
Martin
17.3.2016 v 14:44 #6371posjirkaÚčastníkděkuji ti za sdílení informací a zkušeností. To je důvod, proč jsou tyto fóra oblíbená a využitelná i pro laiky. Máš problém, vyřešil si jej a dáváš nám řešení do placu. Držím palce a kdybys něco potřeboval ozvi se …
28.3.2016 v 21:50 #6477SimakaiÚčastníkProjekt mám víceméně hotový. Nepodařilo se mi rozběhnout MicroSD modul na klasickém SPI rozhraní spolu s termočlánky (MAX6675), tak jsem na to musel od lesa. Stáhl jsem si SDfat knihovnu a použil tam SoftwareSPI definici pro objekt SD a drátově jsem zapojil MicroSD modul na jiné piny než mám termočlánky. Pak zbývalo jen poladit správné příkazy pro SDfat a fičí to. Po hardwarových SPI pinech 50, 51, 52 mi jedou termočlánky a po softwarových SPI pinech 10, 11, 12 mi jede SD karta.
13.4.2016 v 17:17 #6569SimakaiÚčastníkAhoj všem,
narazil jsem na problém s napájením. Natočil jsem krátké video, kde je to ukázané
Jde o to, že když zahýbu s napájecím kabelem, tak se megaduino resetne, vypne, protože mu vypadne „šťáva“. Koncovka adaptéru se v „zástrčce“ trochu hýbe.
Jak se to dá řešit?
Problém je, že deska je součástí krabice, ke které je připojených několik termočlánků, a loguje z nich teploty. Krabice by právě měla být napájená z adaptéru. Ale pokud do ní někdo drbne, což se „v provozu“ může stát, tak se megaduino resetne a je to v čudu.
13.4.2016 v 18:43 #6570posjirkaÚčastníkmáš 5 variant:
1, použij jiný připojovací bod napíjení. Na Arduinu máš vstup Vin a to je to samé jako napájecí konektor.
2, jdi cestou vlastního zdroje : stabilizátor 7805 + pořádné kondenzátory na vstupu.
Pak to přivedeš na +5V a je hotov.
3, Použij napájení přes USB. Prost2 nabije4ku na mobil p5es redukci na velke USB.
4, Bateriové napájení
5, na vstup připájej superkondenzátor o kapacitě třeba 1 až 10F. Ten je malý a je schopný ti překlenout tuto kolizní dobu. Pozor na velikost napětí ! Nejspíš budeš muset dát 2 do serie.29.6.2016 v 16:38 #7458vladikÚčastníkpotřeboval bych vyřešit podobný problém, sledovat 4 teploty termočlánek K + otáčky a zaznamenávat. Hledám někoho kdo mi to vyrobí. napište mi hejna@ausys.cz. Díky.
15.11.2016 v 13:00 #9216migoÚčastníkAhoj, ak sa mozem spytat, podarilo sa projekt uspesne dokoncit? Mas aj nejake postrehy z grafov priebehu horenia, resp. nejake zavery ohladom regulacie horenia? Mam nainstalovany termoclanok priamo v spalovacej komore KV a meram nim teplotu horenia a chcel by som skusit regulovat privod vzduchu a optimalizovat/zautomatizovat priebeh horenia.
Dakujem za info,
Milan
-
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.