Arduino: DIY – Monitoring temperature peći (1) Više puta smo pisali o komunikaciji dva Arduina i o tome kako sa jednog možemo pratiti podatke koje šalje drugi. U ovom „uradi sam” projektu imamo jedan takav sistem. Jedan uređaj će čitati podatke o temperaturi sa peći centralnog grejanja i slaće ih preko nRF24L01+ modula (SK 3/2017) radio-talasima ka drugom koji će biti na određenoj udaljenosti. Ovaj drugi uređaj će ispisivati temperaturu na ekranu i RGB LE diodom dodatno pratiti temperaturne promene. Oba uređaja će raditi na struju, ali će nastaviti da rade i na baterije u slučaju njenog nestanka, što je i najbitnije. Na taj način se mogu pratiti temperaturne promene peći i blagovremeno reagovati. Jeste, najpametnije rešenje je ispravljač i akumulator u slučaju nestanka struje, ali ovde je reč o „mejkerskom” pristupu problemu.Predajnik Ceo projekat pravimo iz komponenti koje su se vremenom nagomilale uz po nešto što smo dokupili. Predajnik će koristiti Pro Mini 328p na 3,3 volte (SK 12/2017). O njemu i nRF24L1+ modulu je već bilo reči u rubrici SK LABS, te stoga nećemo prolaziti ponovo kroz način njihovog rada i specifikacije. Pro Mini će podatke skupljati uz pomoć termistora (SK 9/2017) u obliku sonde. Ono o čemu nismo pisali su baterije 18650, strujna kola za njihovo punjenje i zaštitu prilikom punjenja i pražnjenja, kao i step-up i step-down moduli, ali o njima kasnije u tekstu. Ceo predajnik je spakovan u dve spojene OG dozne koje podsećaju na module Međunarodne Svemirske Stanice (ISS), gde u jednom delu imamo naponski deo i bateriju, a u drugom je Pro Mini i bežični modul. S obzirom na dvadesetogodišnjicu ISS-a, naš naponski modul ćemo nazvati Zarya, dok ćemo mikrokontrolerski modul nazvati Destiny.Zarya U naponski modul smo spakovali jednu litijum-jonsku bateriju 18650 od 3000 miliamperčasova u namenskom kućištu. S obzirom na sveukupnu veličinu, baterija je postavljena dijagonalno. Ovaj tip baterija ima nominalnu voltažu od 3,7 volti i čest je gost u power bankovima, laptopovima, pa čak i u električnim vozilima (Tesla Model S ih ima preko 7100). Baterija se može oštetiti, bilo prilikom prevelikog punjenja (over-charge), bilo preteranog pražnjenja (over-discharge), kao i u slučaju kratkog spoja. U tu svrhu smo upotrebili modul za punjenje sa TP4056 čipom. Ovakvih modula ima dosta, a mi smo upotrebili jedan koji ima mikro USB port za punjenje i tri puta po dva pada za lemljenje žica. Na prednja dva pada (+ i -) se može dovesti regulisani napon od 4,5 do šest volti (maksimalno jedan amper) ako radimo sa žicama. Sa druge strane imamo padove B+ i B- na koje povezujemo našu bateriju i OUT+ i OUT-, gde imamo izlaz ka potrošačima. Ovaj modul ima svu neophodnu zaštitu koju smo pominjali. Na sebi ima dve LED, gde će crvena sijati dok se baterija puni, a plava kada je ona puna. Napomenućemo još i SMD otpornik sa oznakom R3 (122 – 1,2 kilooma), čijom zamenom se može menjati jačina struje. Ovom strujnom kolu je potrebno više sati da napuni našu bateriju, ali baterija je tu za bekap i ni za šta drugo.Kao strujni adapter smo upotrebili napajanje u obliku modula, prilično malih dimenzija koje je nekako stalo u jedan ugao našeg Zarya modula. Ovo napajanje ima šest volti i 0,7 ampera na izlazu. Merenjima smo utvrdili da na OUT padovima imamo oko 4,2 volti, što je napon kojim se Li-Ion baterija puni. Pritom, ukoliko nestane struje, trošiće se naša baterija koja će vremenom opasti i ispod tri volta, a nama treba konstantan napon od pet volti. To smo postigli dodavanjem na OUT padove step-up MT3608 modula i preko potenciometra na njemu podesili da bez obzira na to koji napon do njega dođe, on uvek na svojim OUT padovima ima 5 volti. Inače, MT3608 modul napone od dva do 24 volta povećava do 28 volti, uz efikasnost od preko 93 posto, uz maksimalnu struju od dva ampera. Od OUT padova našeg step-up modula smo odveli dve žice u Destiny modul. S obzirom na to da pravimo „sezonski” uređaj, postavili smo jedan DPDT prekidač na + žicu ka bateriji kako bismo onemogućili predajniku da radi i kada ga odvojimo od struje. Cela tematika oko baterija, njihovog punjenja, kao i manipulaciji sa naponom uz pomoć modula zahteva posebnu priču u vidu španskih serija, ali doći će i ona na red.Destiny U komandni i predajni deo našeg predajnika smo doveli pet volti. S obzirom na razna testiranja došli smo do zaključka da je apsolutno nemoguće napraviti bilo šta uz pomoć dupont žica. Naprosto, slab kontakt je značio gubitak paketa ili prestanak rada uopšte. Zarad stabilnosti, kompletnu elektroniku smo direktno lemili na perforiranu PCB, uz vodove od žica koje smo isto tako lemili. Srce našeg predajnika je „hard-wired” povezano i na taj način smo eventualne „mušice” sveli na minimum. Pritom su Pro Mini i adapter nRF24l01 modula na PCB povezani preko ženskih hedera i u slučaju potrebe se mogu izvaditi iz ploče. Ukoliko se ide na varijantu bez ovog adaptera, dodatak kondenzatora na nRF24l01 modul je imperativ, a o tome je bilo reči kada smo ga predstavili. Naponski vod iz Zarye se na PCB povezuje preko JST konektora, a isto važi i za kabl sonde termistora, što je i praktično i pregledno. Od komponenti, tu je i otpornik od deset kilooma za potrebe termistora. Cela elektronika na našoj PCB oko termistora je vezana na pet volti, što je uzrokovalo manjim prepravkama u skeču jer naš mikrokontroler zapravo radi na 3,3 volti i, ono što je najvažnije, srce mu kuca na osam megaherca, pa samim tim su i analogna očitavanja podređena toj voltaži.Povezivanje ide prema fritzing šemi. Pet volti povezujemo na RAW pin Arduina, jednu od linija termistora i VCC pin nRF24l01 adaptera. GND ide na odgovarajuće pinove Arduina i adaptera, kao i na otpornik od deset kilooma. Arduino temperaturne podatke prikuplja preko A0 analognog pina. NRF24l01 adapter smo sa Arduinom povezali sledećim redom: „MISO” na „D12”, „MOSI” na „D11”, „SCK” na „D13”, dok su „CE” i „CS” povezani na „D7” i „D8”. Sve ovo je izlemljeno i sa što manje labavih spojeva.Skeč predajnika smo kao i do sada postavili online da ne bi nepotrebno zauzimao mesto i možete ga preuzeti sa adrese goo.gl/Qu8iAw. Za potrebe našeg predajnika koristimo SPI i RF24 biblioteke, gde ovu drugu možete preuzeti odavde sa adrese github.com/nRF24/RF24. Strukturu našeg paketa koji ćemo slati čine redni broj paketa, temperaturna vrednost i eventualni propratni tekst. Mi možemo dodati još koji senzor i poslati više podataka, ali svi oni moraju biti unutar ovog paketa. U okviru setup funkcije imamo par parametara koje možemo podešavati. Prvi je izbor kanala (setChannel()) koji smo stavili na 115, a poželjno je izabrati neki preko 108 da bismo izbegli smetnje sa lokalnom Wi-Fi mrežom. Predajna snaga (setPALevel()) ide na maksimum jer smo prilikom testiranja utvrdili ograničenja ovih radio-modula pri njihovoj komunikaciji kroz par debelih zidova i ploča. Protok podataka smo ograničili na 250 Kbit/s radi povećavanja maksimalnog dometa uz manji data rate. U okviru loop funkcije smo podatke dobijene od termistora obradili i poslali u etar.Sonda termistora je u ovom slučaju šelnom vezana na izlaznu cev iz peći, dok smo predajnik pričvrstili na zid. Sistemu nismo dodali nijedan drugi senzor zarad veće autonomije baterije. U nekoj drugoj varijanti se moglo ići na slanje Arduina na „spavanje” i na taj način povećati autonomija. Takođe, dodatak još jedne baterije bi omogućio povezivanje još nekog senzora i još veću autonomiju. Mi očitavanja vršimo svake sekunde, što je vreme koje se može povećati. Sve ove opcije ostavljamo vama za neke vaše eventualne razrade, a mi nismo hteli da previše komplikujemo, kako sam projekat, tako ni skeč.U narednom broju ide prijemnik koji će prikazivati podatke na OLED ekranu. Biće reči i o autonomiji baterija, kao i o realnom dometu ovih radio modula. Deklarisanih sto metara se može postići na čistoj i pravoj udaljenosti i na dva metra od zemlje pri lepom vremenu. Šta ćemo sa zidovima, pločama, armaturama i kablovima u zidu? Koliki je tu realan domet odašiljanja? Stay tuned...Dejan PETROVIĆ | | |