Univerza v Ljubljani
Fakulteta za elektrotehniko
BLAŽ KVAS
NAPRAVA ZA MONITORING KAVNIH APARATOV
Magistrsko delo
Magistrski študijski program druge stopnje Elektrotehnika
Mentor: izr. prof. dr. Marko Jankovec
Ljubljana, 2022
Univerza v Ljubljani Fakulteta za elektrotehniko
Blaž Kvas
Naprava za monitoring kavnih aparatov
Magistrsko delo
Mentor: izr. prof. dr. Marko Jankovec
Zahvala
Tukaj bi se rad zahvalil mentorju doc. dr. Marku Jankovcu za pomoč pri pisanju magistrske naloge.
Rad bi se zahvalil tudi vsem v podjetju, ki mi je omogočilo delo na tem projektu in mi priskrbelo vso potrebno za dokončanje izdelka. Še posebej pa bi se rad zahvalil vsem svojim sodelavcem za pomoč in svetovanje, ko sam nisem znal nadaljevati.
Zahvalil bi se seveda tudi moji družini in punci Heleni za vzpodbudne besede pri pisanju naloge.
Vsebina
1 Uvod 13
2 Zahteve za napravo 15
2.1 Okolje ... 15
2.2 Zaznavanje ... 16
3 Načrtovanje naprave 17 3.1 Arhitektura ... 17
3.2 Internet stvari ... 17
3.3 Obstoječe IoT rešitve ... 18
3.4 Wi-Fi modul ... 19
3.5 GSM modul ... 20
3.6 Pomožno in glavno napajanje ... 21
3.7 Vhodi naprave ... 22
3.7.1 Tok čez ventil ... 22
3.7.2 Signal na turbini ... 23
3.7.3 Magnetno polje okoli magnetnega ventila ... 24
3.8 Mikrokrmilnik in pomnilnik ... 25
4 Razvoj elektronike 27 4.1 Napajanje ... 27
4.1.1 Pomožno napajanje ... 27
4.1.2 Balansiranje superkondenzatorjev ... 28
4.1.3 Polnjenje kondenzatorjev ... 29
4.1.4 Regulacija pomožnega napajanja ... 31
6 Vsebina
4.1.6 Napajanje GSM modula ... 33
4.2 Mikrokrmilnik ... 33
4.3 Vhodi in izhodi senzorjev ... 37
4.4 Zunanji bliskovni pomnilnik ... 38
4.5 GSM modul ... 39
4.6 Senzorji ... 40
5 Izvedba naprave 43 5.1 Prvi prototip glavnega dela naprave ... 43
5.2 Popravki in drugi prototip... 46
5.3 Izvedba senzorja ... 49
5.4 Vgrajena programska oprema ... 50
6 EMC meritve 53
7 Zaključek 57
Literatura 58
Seznam uporabljenih simbolov
IoT Internet of Things Internet stvari
GSM Global System for Mobile
communications
Globalni sistem za mobilne komunikacije
Wi-Fi Wireless fidelity Brezžično omrežje
LTE Long term evolution Evolucija na daljši rok
LoRa Long range low power network Omrežje z dolgim dosegom in nizko porabo
GPRS General packet radio service Mobilno omrežje
AT Attention commands Ukazi uporabljeni pri GSM
modulu
SPI Serial packet interface Serijsko vodilo
I2C Inter-Integrated Circuit Vodilo med integriranimi vezji
UART Universal asynchronous
receiver-transmitter Univerzalni asinhroni sprejemnik-oddajnik ADC Analog to Digital Converter Pretvornik iz analognega v
digitalno obliko
QSPI Quad SPI Četvorno SPI vodilo
DAC Digital to Analog Converter Pretvornik iz digitalnega v analogno obliko PWM Pulse-width Modulation Pulzno širinska modulacija
NB-IoT Narrowband IoT Ozkoširovni IoT
SMS Short Message Service Sistem kratkih sporočil
OTA Over the Air Posodabljanje na daljavo
UPS Uninteruptable power supply Napajanje brez prekinitve
8 Seznam uporabljenih simbolov
DC Direct current Enosmerni tok
APN Access Point Name Ime dostopne točke
EMC Electromagnetic compatibility Elektromagnetna združljivost PTC Positive temperature coefficient Pozitivni temperaturni koeficient
RTC Real time clock Realno-časna ura
MCU Mircocontroller Mikrokrmilnik
PCB Printer circuit board Tiskano vezje
ESR Equivalent series resistance Ekvivalentna serijska upornost ESD Electrostatic discharge Elektrostatična razelektritev SIM Subscriber identity module Kartica za dostop mobilnega
omrežja SMD Surface mounted device Tehnologija površinske
namestitve THT Through-Hole technology Tehnilogija nameščanja v
izvrtine LISN Line impedance stabilization
network Vmesnik za merjenje prevodnih motenj
Povzetek
Ta magistrska naloga opisuje IoT napravo, ki nadzoruje kavni aparat v restavraciji ali podobni gostinski ustanovi. Načrtovana je tako, da se neinvazivno namesti v kavni aparat in s tem ne krši garancijskih pogojev. Nadzor je izveden z merjenjem magnetnega polja okrog magnetnih ventilov, da ugotovimo kdaj je kavni aparat aktiven, podatke pa nato preko GSM modula pošiljamo na strežnik, kjer se obdelajo in predstavijo uporabniku ali naročniku. Možnost imamo dodati tudi senzor temperature, da lahko preverimo, če je voda primerno segreta in senzor nedovoljenega posega, da uporabnik ne more brez dovoljenja odstraniti naprave. V primeru, da uporabnik izklopi napajanje napravo, se vklopi pomožno napajanje, kar omogoča neprekinjeno delovanje naprave. V tem času GSM modul ne deluje, vendar naprava še vseeno spremlja dogajanje in podatke shranjuje na bliskovni pomnilnik.
Ključne besede: GSM modul, kavni aparat, pomožno napajanje
Abstract
This masters describes an IoT device that monitors a coffee machine at a restaurant or similar catering business. It is designed to be installed inside the coffee machine noninvasively to not void the warranty. Monitoring is done by sensing the magnetic field of the solenoid valves to sense when it is active. The data is then sent to the server via GSM module to process them further and display them to the user. It also features an optional temperature sensor to see if the water was properly heated and a tamper sensor to ensure that the user can not interfere with the operation of the device. In case the user disconnects the device from the power a backup made from supercapacitors kicks in and allows the device to stay powered. During this time the GSM module does not function and the device only gathers data and saves it to flash memory.
Key words: GSM module, coffee machine, backup power supply
1 Uvod
Ena izmed najbolj popularnih in zaužitih pijač na svetu je kava. Predstavlja velik delež brezalkoholnih pijač, ki jih popijemo, poleg tega pa je najpogosteje uporabljena droga. Vsebuje kofein, ki vpliva na naše možgane in telo, kar nam da potreben dodatni zagon, ko ga potrebujemo. Zelo pomembna pijača je tudi, ker je velikokrat vezana na samo kulturo ljudi in države. Vse to ustvari veliko povpraševanja in ponudbe, je kar drugi najbolj trgovan izdelek na svetu, takoj za nafto.
Zaradi tako velikega povpraševanja se je pojavilo veliko kavarn in tudi dobaviteljev kave. V zameno za nakup kave izključno pri njih, dobavitelji kave pogosto ponudijo svojim kupcem bonuse, kot je izposoja kavnega aparata. Kupci po prejemu kavnega aparata vseeno raje kupujejo kavo pri drugih, cenejših dobaviteljih, kar velikokrat povzroči probleme. Trenja so lahko tudi med lastniki lokalov in natakarji, saj lastniki velikokrat obtožijo natakarje, da si kuhajo kave, ki jih ne prikažejo na računu ali pa, da aparata ne očistijo dovolj. Do sedaj je bilo vse to zelo težko spremljati, zato je moralo biti ali visoko zaupanje med zaposlenimi in lastniki ali pa konstanten nadzor. Oboje je zelo težko doseči.
Vse to vodi do manj zadovoljstva, zamer in kar je za lastnika in dobavitelja najpomembnejše, izgube dobička. Ti problemi so pripeljali do rešitve, to je sistem, ki bi s pomočjo IoT sistema nadzoroval kavni aparat in sporočal podatke o delovanju lastniku in dobavitelju. Takih sistemov je na trgu že nekaj, vendar jih ima veliko problem v tem, da se v delovanje kavnega aparata ne smejo vpletati, ker aparati niso njihovi ali pa so pod garancijo. V nadaljevanju je predstavljen potek razvoja in končen rezultat te rešitve.
2 Zahteve za napravo
Ko začnemo razvijati projekt je pomembno, da si že na začetku postavimo okvirne cilje in želje kako bo končni izdelek deloval in izgledal. Pazimo tudi, da se ne omejujemo preveč, saj nam to lahko otežuje razvoj in tudi zviša končne stroške. Po sestanku z naročnikom smo skupaj zastavili glavne zahteve, ki so bile:
- možnost priklopa do štirih kanalov za nadzorovanje izpustov kave, - priklop senzorja temperature za bojler,
- priklop senzorja za nedovoljen poseg v napravo, - IoT povezljivost in
- pomožno napajanje
Ker se bo naprava nameščala na kavne aparate, ki so še pod garancijo, jo je bilo potrebno načrtovati tako, da bo imela čim manjši vpliv na kavni aparat.
2.1 Okolje
Naprava bo namenjena za namestitev v kavni aparat. Temu primerno je potrebno napravo zaščititi ali načrtovati za višjo temperaturo ambienta (85 °C), saj je lahko nameščena blizu bojlerja. Naprava bo nameščena v notranjost kavnega aparata, kjer pri normalnem delovanju ne bi smelo priti do kontakta z vodo. Vseeno pa moramo misliti tudi na to, zaradi možnih okvar ali pa krivde uporabnika. Naprava naj bo torej vsaj delno zaščitena proti vdoru vode. Ohišje mora biti standardno, oziroma dobavljivo na prostem trgu in mora imeti odpornost proti vžigu vsaj UL94-V0.
Ohišje kavnega aparata zaradi kovinske konstrukcije deluje kot faradejeva kletka in lahko močno omejuje delovanje storitev, kot so GSM, Wi-Fi itd. Potrebno je bilo preveriti ali je notranja antena dovolj močna za normalno delovanje ali pa je potrebna zunanja antena, ki je nameščena izven naprave.
Naročnik je imel pomisleke tudi glede uporabnikov kavnega aparata, ki bi lahko napravo namerno izključevali in tako skrivali koliko kav je bilo skuhano. Želel je, da
16 2 Zahteve za napravo
bi naprava določen čas lahko delovala in poročala dogodke tudi brez zunanjega napajanja ali pa vsaj javila, kdaj se odklop zgodi.
2.2 Zaznavanje
Najbolj pomemben aspekt te naprave je, da zaznava kuhanje kave. V prejšnji verziji je bilo to narejeno s priključki, s katerimi so lahko prestrezali signal, vendar na njega niso vplivali. Želja za naslednjo verzijo pa je bila, da se temu izognemo zaradi visokih cen teh priključkov. Dodatna želja je bila tudi, da se lahko napravo pritrdi na čim več različnih kavnih aparatov, da se poveča trg in enostavnost namestitve.
3 Načrtovanje naprave
Ko so zahteve postavljene, je potrebno napravo tudi načrtati. Začel sem z raziskavo o tem, kako bi vse skupaj približno izgledalo. Nato sem postavil arhitekturo in ko je bilo to odobreno, sem začel z iskanjem komponent in razmišljanjem o tem, kako bo naprava delovala. Ugotoviti sem moral tudi, kako se bodo kave merile in potem načrtati dotičen senzor.
3.1 Arhitektura
Arhitektura projekta je predstavljena na sliki 3.1. Ta arhitektura je bila postavljena na začetku projekta in predstavlja idejo, kako naj bi ta naprava izgledala.
Glavni elementi so vhodi za zaznavanje izpustov, GSM modul, mikrokrmilnik in pomožno napajanje.
Slika 3.1: Arhitektura naprave
3.2 Internet stvari
Internet stvari (Internet of things – IoT) opisuje sistem v katerega so povezane naprave z dostopom do internet in ne potrebujejo človeške pomoči. Preko tega sistema
18 3 Načrtovanje naprave
lahko naprave sporočajo razne podatke ali pa se na njih odzovejo v primeru, da jih dobijo od drugje. Vsaka naprava ima določeno svojo identifikacijsko številko, kar nam omogoča, da lahko naprave razločimo med sabo in jih povežemo z realnimi objekti.
Take naprave so po navadi majhne, nezahtevne, poceni in z nizko porabo električne energije. Največ takih naprav opazimo kot avtomatiko v stanovanjski hiši, kjer lahko luči, termostate, kavne aparate in varnostne sisteme vse povežemo preko interneta in do njih dostopamo od kjerkoli. Lahko pa pustimo napravam, da se obnašajo avtonomno in nam olajšajo življenje preko avtomatike.
Področje internetnih stvari se vsak dan veča in mu ni videti konca. Vsak dan pridejo na dan nove ideje, kako to tehnologijo uporabiti. Naprave s takšno tehnologijo lahko vidimo v vsakem sektorju, kot so pametni domovi za potrošniške, avtomatizacija tovarn in upravljanje energije v komercialnem ter bio-senzorji in pametna orožja v vojaškem sektorju. Za tak zagon se lahko zahvalimo lahki dostopnosti interneta ter konstantnemu zmanjševanju elektronskih komponent. V ta namen so bili že razviti novi standardi komunikacije samo za internet stvari, kot tudi namenski čipi. Eden od trenutno najbolj znanih je integrirano vezje ESP8266 ali ESP32 od proizvajalca Espressif, katerega je amaterska skupnost pognala tudi v profesionalne vode.
Zadnje čase pa so poraja tudi vprašanje zasebnosti, ki ga s seboj prinese internet stvari. Za zelo veliko naprav, ki so trenutno v prodaji, se je izkazalo, da vohunijo za porabniki za namene sledenja uporabnika in posledično ciljnega oglaševanja.
Vprašanje se pojavi tudi, ali je varnost na posamezni napravi dobro izvedena, saj nam v nasprotnem primeru lahko prinese veliko škode, na primer vdor v hišo, ker smo imeli slabo zavarovano pametno ključavnico.
3.3 Obstoječe IoT rešitve
Večina naprav, ki deluje v svetu internetnih stvari, deluje na frekvencah, ki so odprte (ISM frekvenčni pas), torej Wi-Fi, Bluetooth, LoRa, Zigbee itd. Ta frekvenčni pas nam omogoča, da z lahkoto ustvarimo napravo, ki deluje brezžično in brez dragega nakupa frekvenčnega pasu, kar bi bilo nepraktično že zaradi samega števila naprav.
Obstaja pa tudi drugi del IoT naprav, ki delujejo na že zakupljenih frekvenčnih pasovih, kot so GSM, LTE in novi 5G. V tem primeru moramo od ponudnika, ki vzdržuje omrežje zakupiti neko količino podatkov, vendar nam v zameno zagotavlja večjo pokritost, kot preko prej omenjenih omrežij.
Torej prva odločitev, ki jo moramo narediti, ko načrtujemo tako napravo je, da se odločimo, katero od teh IoT rešitev bomo uporabili.
3.4 Wi-Fi modul 19
3.4 Wi-Fi modul
Wi-Fi moduli predstavljajo eno izmed najbolj prepoznavnih in dostopnih IoT naprav. Predstavljajo poceni in hitro rešitev s kratkim dosegom in omejenostjo.
Večinski delež IoT naprav je nameščenih v domovih, kjer že imamo postavljeno Wi-Fi omrežje, kar nam zelo olajša dostop do interneta, hkrati pa je za uporabnika brezplačen. Hkrati je za takim pristopom tudi zelo velika amaterska skupnost, ki ustvarja projekte po principu odprte kode in nam lahko zelo pomaga pri razvoju projekta.
Seveda je največja slabost tega pristopa doseg signala. Če imamo IoT napravo postavljeno v hiši, nam lahko že par sten zniža signal na neuporabno raven. Velikokrat to prinese težave za uporabnike, katerim potem zmanjkuje signala ob neugodnih trenutkih. Odvisni smo tudi od uporabnikove naročnine na internet. Za večino naprav to ni problem, saj IoT v večini porabi zelo malo podatkov, lahko pa se pojavijo primeri kjer je tudi to pomembno, kot so video kamere, avdio naprave itd.
Najbolj znana modula, ki sta bila prva vpeljana s strani amaterske skupnosti, sta ESP8266 in ESP32 od proizvajalca Espressif. Ta zelo močna modula sta postala popularna zaradi zelo nizke cene glede na količino periferije in zmogljivosti. ESP8266, ki je bila njihova prva verzija modula, ima enojedrni procesor, ki deluje s frekvenco 80 MHz, hkrati pa vsebuje še spodnjo periferijo:
- SPI, - I2C, - I2S, - UART, - 10-bit ADC,
- Podpora za 16 MiB zunanjega QSPI bliskovnega pomnilnika.
Dve leti kasneje so ravno zaradi tega oznanili prihod naslednika, ki se je imenoval ESP32. Ta veliko bolj zmogljivi procesor ima poleg Wi-Fi vmesnika tudi Bluetooth in še en pomožen procesor. Glavni procesor je tokrat tekel s frekvenco 160 ali 240 MHz, hkrati pa so dodali veliko perifernih enot. Glavne izmed teh so:
- 12-bit ADC, - 2x 8-bit DAC,
- 10x vhodov za senzorjev na dotik, - CAN bus,
- PWM izhode,
- Kriptografija in enkripcija.
20 3 Načrtovanje naprave
3.5 GSM modul
Po drugi strani imamo GSM/GPRS/LTE rešitve, ki pa so za implementacijo bolj zapletene in drage. Že sam modul stane velikokrat več kot Wi-Fi modul, razvoj pa še poveča stroške. Uporabnik ali ponudnik IoT rešitve mora poleg tega še omrežnemu ponudniku plačevati za uporabo omrežja. Veliko sicer pridobimo z večjo neodvisnostjo od uporabnikovega omrežja. V zameno za določen mesečni strošek imamo zagotovljeno neko mero pokritosti in vzdrževanje. Razvoj takega izdelka je težji, saj zaenkrat obstajajo samo univerzalni AT ukazi, ki pa niso ravno prijazni uporabnikom in so za večje projekte zelo okorni. Za nekatere module obstajajo knjižnice, vendar ker lahko proizvajalci dodajo svoje AT ukaze, a velikokrat to ni dovolj.
Kljub tem pomanjkljivostim sem sam za namene obveščanja dobavitelja o uporabi avtomata izbral GSM modul, saj se ne moremo vedno zanašati na dostopnost Wi-Fi omrežja. Odpirajo nam možnost bolj zanesljive komunikacije z daljšo razdaljo kot Wi-Fi modul in večjo pokritost. Hkrati je v razvoju tudi komunikacija NB-IoT, ki jo pri nas tudi že preizkušajo. Ta standard prinaša mobilna omrežja IoT napravam, tako da zagotavlja nizkocenovno povezavo v zameno za hitrost. Pri IoT napravah ne potrebujemo visokih hitrosti in nam je zato velikokrat odveč plačevati visoke cene za storitev, ki je ne bomo potrebovali. Ponudniki to počasi dojemajo in uvajajo NB-IoT omrežja po svetu (vključno z nekaj testnimi postajami v Sloveniji). Frekvenca signala sega od 700 MHz do 2500 MHz, kar nam omogoča prilagajanje sprejema, glede na kvaliteto signala.
Proizvajalec modulov nam je priporočal 2G ali 4G modul saj sumijo da 3G omrežje ne bo več dolgo podprto zaradi premajhne uporabe.. Zaradi zahteve, da ima naprava pomožno napajanje je bilo potrebno gledati tudi na porabo, saj so brezžični moduli znani po veliki porabi, ko oddajajo ali sprejemajo podatke.
Modul mora sporočati podatke o tem, koliko kav je bilo skuhanih in kdaj, hkrati pa obveščati o nepričakovanih dogodkih. Zaželen je bil tudi SMS sistem, s katerim lahko delavec, ki namešča napravo to tudi nastavi. V prihodnosti pa bi lahko dodali tudi možnost posodabljanja naprave preko interneta (“over the air update – OTA update).
3.6 Pomožno in glavno napajanje 21
3.6 Pomožno in glavno napajanje
Veliko naprav, ki jih uporabljamo v bolj pomembnih sistemih v industriji, potrebuje neko mero zaščite proti izpadu elektrike. Ta potreba se velikokrat pojavi, ker je izpad nekega sistema kritičen ali pa mora sam sistem slediti varnemu postopku ugašanja.
Dober primer tega je računalnik ali strežnik, kjer lahko pri izgubi elektrike izgubimo podatke, ki so lahko kritičnega pomena. Da se temu izognemo lahko dodamo tako imenovan UPS (Uninterruptable power supply). Namen UPS-ja je, da računalniku priskrbi toliko energije, da lahko uporabnik ali sistem shrani podatke in se nato varno ugasne.
Pomožno napajanje se uporabi v primeru, da uporabnik izklopi adapter iz napajanja pomotoma ali namenoma. Veliko uporabnikov bi se lahko tako hotelo izogniti nadzorovanju in si povečati dobiček. S pomožnim napajanjem lahko uporabnika od tega odvrnemo, saj nam omogoča, da naprava še nekaj časa deluje in sporoča delovanje dobavitelju. Dobavitelj lahko tako dobi sporočilo, da nekaj ni v redu in opozori uporabnika, da napravo vklopi nazaj.
Največkrat uporabljena naprava za shranjevanje velike količine energije je akumulator. Obstaja več vrst akumulatorjev kot so svinčeni, litij ionski, nikelj kadmij itn. Akumulatorji lahko poskrbijo za pomožno energijo dalj časa, saj njihova energija prihaja iz kemičnih reakcij. Glede na gostoto energije so najcenejša možnost in tudi največkrat uporabljena.
Nekje med navadnimi kondenzatorji in baterijami leži superkondenzator ali ultrakondenzator. Tako se imenuje zaradi njegove velike kapacitivnosti. Prinaša nam dobre lastnosti iz obeh svetov, vendar v nobeni ni odličen. Polnjenje in praznjenje je zelo hitro, vendar ima slabšo kapaciteto v primerjavi z baterijo. A njegova glavna prednost pred baterijo je, da za skladiščenje in delo z njim ne potrebuje posebnih navodil.
Poleg pomožnega sem načrtoval še glavno napajanje. To je moralo biti zmožno napajati procesor, senzorje in GSM modul, hkrati pa ob vklopu naprave tudi napolniti pomožno napajanje. Ker nismo hoteli težav na končnem testiranju zaradi napajanja, sem se odločil za navaden adapter iz 230 V omrežne na enosmerno napetost, ki jo lahko kasneje še enkrat pretvorimo v nižjo napetost po izbiri s stikalnim pretvornikom ali linearnim regulatorjem. Adapter je tako že certificiran in pripravljen za uporabo kar nam pospeši razvoj in olajša doseganje standardov električne varnosti naprave.
22 3 Načrtovanje naprave
3.7 Vhodi naprave
Glavni namen te naprave je zaznavanje, kaj se dogaja s kavnim aparatom.
Največji del tega je zaznavanje, kdaj so ventili aktivni. Tukaj bi lahko ubral veliko različnih pristopov, vendar mi je ideje omejevalo, da v kavni aparat nisem smel posegati, saj bi s tem kršil garancijo. Lahko bi tudi posegal v signal magnetnega ventila, za kar bi moral narediti priključke, ki pašejo med moški in ženski del, kar pa bi bilo najbrž drago in bi predstavljalo nedovoljen poseg v aparat. Potrebno je bilo preučiti ostale ideje.
3.7.1 Tok čez ventil
Prva ideja je bila, da bi izmeril tok tuljavice ventila s Hallovim senzorjem in s tem določili, kdaj je ventil odprt. Začel sem z meritvijo skupnega toka skozi ventile in črpalko z osciloskopom (meritve so prikazane na sliki 3.2). Tok je izmeničen z amplitudo 2,3 A. Meritev je bila opravljena z Agilent Hallovo tokovno sondo.
Slika 3.2: Tok skozi ventil in pumpo
Tok je dovolj velik, da bi ga lahko zaznavali s Hallovim senzorjem ali tokovnim transformatorjem vendar, ker je črpalka skupna za celoten kavni aparat nam to onemogoča zaznavanje posameznih kanalov.
Posamezne kanale bi lahko meril na ventilih, saj ti nadzorujejo vsak kanal posebej. S tokovno sondo sem pomeril tok skozi ventil med delovanjem. Rezultati so vidni na sliki 3.3. Tukaj ima tok amplitudo 120 mA.
3.7 Vhodi naprave 23
Slika 3.3: Tok skozi ventil
Po meritvah sem prišel do ugotovitve, da bi bilo glede na nizko amplitudi toka 120 mA zelo težko zaznavati tok preko magnetnega polja. Izkaže se tudi, da so senzorji in tokovni transformatorji predragi.
3.7.2 Signal na turbini
Ena od možnosti je bila tudi zaznavanje pretoka z uporabo že vgrajene turbine, ki meri pretok vode. Turbina je sestavljena iz rotorja in magnetnega senzorja. Za vsak obrat rotorja dobimo vsaj en pulz (število pulzov je odvisno od turbine). Glede na to, da vemo koliko tekočine potrebujemo za en obrat rotorja, lahko kasneje preračunamo točno koliko vode je steklo skozi turbino. Na sliki 3.4 so rezultati meritve na izhodu turbine. Signal alternira med 0 V in 5 V ter ima širino pulza, ki je obratno sorazmeren s hitrostjo turbine.
Slika 3.4: Signal na turbini
Če bi obstajala možnost priklopa, s katero ne bi poškodoval naprave, bi lahko izračunal tudi koliko vode je steklo skozi vse ventile v kavnem aparatu. To bi dodalo vrednost tej napravi. Ker pa se količina vode poveča z vsakim dodatnim dejavnim ventilom, bi lahko s samo enim senzorjem nadzoroval vse ventile, ne bi pa morali ločevati, kateri med njimi so aktivni.
24 3 Načrtovanje naprave
3.7.3 Magnetno polje okoli magnetnega ventila
Ventili za delovanje uporabljajo elektromagnet, ki pod prisotnostjo električnega toka odprejo ventil. Na spodnji sliki 3.5 je predstavljena poenostavljena slika ventila, ki ga sestavlja navitje, jedro iz feromagnetnega materiala in vzmet. Ko skozi navitje spustimo električni tok, se ustvari magnetno polje, ki potegne feromagnetno jedro v sredino navitja. Na to jedro je pritrjeno tesnilo, ki se umakne, potem ko se jedro potegne v sredico navitja in ventil se odpre. Vzmet poskrbi, da se jedro vrne v prvotno stanje, potem ko električni tok izključimo.
Slika 3.5: Zgradba elektromagnetnega ventila z prikazom magnetnega polja
Kot je nakazano na sliki 3.5 je prisotno magnetno polje, ki se v realnih pogojih stresa v okolico. Če bi to stresano polje lahko zaznal, bi vedeli kdaj je ventil aktiven (odprt). Da bi to lahko ugotovil, sem uporabili Hallov senzor 2SS52M, ki pod prisotnostjo magnetnega polja (vsaj 2,5 mT) proži izhod.
Slika 3.6: Vezava senzorja in orientacija magnetnega polja
3.8 Mikrokrmilnik in pomnilnik 25
Ker skozi navitje teče izmenični tok, je bil pričakovan tudi tak signal iz senzorja Na sliki 3.7 je prikazana meritev magnetnega polja v okolici ventila.
Slika 3.7: Izhod Hallovega senzorja
Širina pulzov iz senzorja se zelo spreminja glede na postavitev, vendar je za našo uporabo dovolj, da generira pulzni signal. Širina pulza v tem primeru ne pomeni nič, saj predstavlja le slabo vzorčen izmenični sinusni signal. Postavitev senzorja pri tej meritvi je bila kot na sliki 3.8.
Slika 3.8: Postavitev senzorja
3.8 Mikrokrmilnik in pomnilnik
Ker GSM modul ne more delovati sam, ga je potrebno krmiliti. Prav tako je potreben tudi nadzor nad vhodi naprave. Za to nalogo je najbolj primeren mikrokrmilnik. Mikrokrmilnik v sebi izvaja program, ki zna zaznati pravilne signale senzorja, jih obdelati in pravilno poslati GSM modulu in ta naprej strežniku.
Kot sem že prej omenil, mora naprava zanesljivo delovati tudi v primeru izgube omrežja. Ker ne vemo, koliko časa lahko izguba traja, je bil dodan zunanji pomnilnik, na katerega lahko shranimo podatke o delovanju naprave.
26 3 Načrtovanje naprave
Hkrati je na pomnilnik shranjena tudi konfiguracija naprave. Pod konfiguracijo se shrani informacije o:
- API
o API ključ
o Identifikacijska številka naprave - GPRS
o GPRS APN
o GPRS uporabniško ime o GPRS geslo
- Prejemniki
- Splošne informacije o Število ventilov o Čas čiščenja o Čas izpusta - Informacije ventilov
o Maksimalen čas izpusta o Inkrement
4.1 Napajanje 27
4 Razvoj elektronike
Razvoj sem pričel iz specifikacij, ki sem jih opisal v prejšnjem poglavju. Ko je bila arhitektura zasnovana in detajli, kako bomo uresničili naročnikove želje dopolnjeni, sem lahko razvoj nadaljeval z risanjem in izdelavo prototipnih izdelkov.
Ko so bili prvi izdelki narejeni, sem jih testiral. Nekaj prototipnih verzij smo testirali tudi na terenu, kar nam je prineslo nova znanja in ugotovitve, kaj moramo popraviti.
Ko so se popravki izvedli smo razvoj zaključili še s pripravami na EMC testiranja.
4.1 Napajanje
Napajanje vezja je eden izmed bolj pomembnih delov vezja, vendar velikokrat spregledanih. Poraba vezja namreč velikokrat ni konstantna, ampak se vedno spreminja. Pri našem vezju so te spremembe in zahteve velike.
Kot že prej omenjeno, je glavno napajanje izvedeno preko adapterja proizvajalca Sunny in je standarden kos. Zmožen je priskrbeti 12 V in 0,5 A. Adapter je prav tako že certificiran in nam lahko prihrani veliko težav pri EMC testiranjih.
4.1.1 Pomožno napajanje
Pri razvoju pomožnega napajanja sem najprej razmišljal o uporabi baterije, vendar sem misel hitro zaradi možnih težav opustil. V podjetju takrat nismo imeli drugih projektov z baterijami in bi to lahko pomenilo tudi probleme s skladiščenjem in obnavljanjem baterij. Problemi pa se lahko pojavijo tudi pri transportu.
Odločil sem se za superkondenzatorje, katere smo takrat že uporabljali na drugem projektu in so se izkazali za dobro idejo za pomožno napajanje.
Začel sem z iskanjem komponent pri različnih proizvajalcih in distributerjih.
Predstavili so nam različne možnosti, kot so enostavni enojni kondenzatorji ali pa dvojni, ki so specializirani za uporabo pri 5 V. Enojni kondenzatorji so taki, kot smo
28 4 Razvoj elektronike
dvojni kondenzatorji na prvi pogled ne slišijo uporabno, vendar moramo kasneje misliti na balansiranje.
Na koncu smo se zaradi cenovnih razlogov in zato, ker bomo polagali tiskana vezja na domačih polagalkah, odločili za kondenzatorje Nesscap ESHSR-0025C0- 002R7. Ti kondenzatorji imajo nazivno kapacitivnost 25 F in napetost 2,7 V.
Absolutna maksimalna napetost pri tem kondenzatorju je 2,85 V, ki pa je pod nobenim pogojem ne smemo preseči. Glede na podatkovni list kondenzatorja je to maksimalna napetost, ki jo lahko priključimo za maksimalno 1 s in to pod pogojem, da se dogodek ne ponovi. Izbran kondenzator ima prav tako podaljšano življenjsko dobo in je zaščiten proti višjim temperaturam in vlagi.
4.1.2 Balansiranje superkondenzatorjev
Ker lahko superkondenzatorjem niha kapacitivnost od –10 do +20 %, se lahko napetost skozi dva serijsko vezana kondenzatorja neenakomerno razporedi za isti faktor.
Slika 4.1: Serijsko vezana kondenzatorja
Z enačbo (4.1) lahko izračunamo napetosti na spodnjem kondenzatorju. Da dobimo najslabši možni primer predvidevamo, da ima kondenzator C1 nazivno kapacitivnost plus 20 %, kondenzator C2 pa nazivno kapacitivnost minus 10 %. S temi podatki in vhodno napetostjo Uvh = 5 V dobimo padec napetosti skozi kondenzator Uc2
= 2,85 V. To je v veliki večini superkondenzatorjev prevelika napetost in tvegamo, da bomo kondenzator poškodovali.
𝑈𝑖𝑧ℎ = 𝑈𝑣ℎ∗𝐶1
𝐶1+𝐶2 (4.1)
Da bi se zaščitili proti tem dogodkom lahko uporabimo zaščite, ki omejujejo napetost na obeh kondenzatorjih ali pa jih celo aktivno balansirajo. Drugi in cenovno
4.1 Napajanje 29
bolj ugoden način je, da skupaj polagamo kondenzatorje, ki imajo podobne tolerance kapacitivnosti. Ravno to nam proizvajalci dvojnih kondenzatorjev omogočajo. Seveda se lahko tega lotimo tudi sami in proizvajalca enojnih prosimo nam kondenzatorje dostavi v skupinah s podobno toleranco, vendar moramo biti potem pozorni pri polaganju.
Tudi sam sem se za boljšo stabilnost naprave in v izogib napakam odločil, da dodam zaščito za vsak kondenzator. Zaščito sem izvedel z dvema prebojnima diodama MMBZ5222BLT1G proizvajalca ON Semiconductors. V primeru, da pride na kondenzator napetost višja od 2,5 V, se bo dioda odprla in znižala napetost.
Slika 4.2: Zaščita superkondenzatorjev
4.1.3 Polnjenje kondenzatorjev
Za razliko od navadnih kondenzatorjev imajo superkondenzatorji veliko večjo kapacitivnost. Ta kapacitivnost je tako velika, da moramo biti pozorni, kako kondenzator ob vklopu polnimo.
Če bi na njega samo priklopili napajanje, bi se kondenzator na začetku obnašal kot kratek stik (z izjemo notranje upornosti) in najverjetneje maksimalno obremenil napajalni čip ali pa ga uničil. Da se to ne bi zgodilo moramo na začetku električni tok omejiti. Raziskoval sem več načinov kako to storiti. Eden izmed očitnih je, uporaba namenskega polnilnega čipa, ki skrbi tudi za balansiranje. Glede na to, da smo bili zelo omejeni glede cene, pa to ni prišlo v poštev.
Prva stvar, ki sem jo preizkusil je močnostni upor z majhno upornostjo. To je najcenejši in najlažji način, kako omejiti tok v kondenzator, vendar ima svoje slabosti.
30 4 Razvoj elektronike
napetosti začetni tok v kondenzator 0,1 A. Po enačbi (4.2) lahko izračunamo časovno konstanto vezja, ki znaša t = 125 s. Skupna kapacitivnost v tem primeru znaša 12,5 F.
𝛵 = 𝑅𝐶 (4.2)
Po eni časovni konstanti se kondenzator napolni na 63,2 % s tem, da hitrost polnjenja upada. Teoretično nikoli ne dosežemo 100 %, vendar lahko za mejo napolnjenosti postavimo 3T, kar znese 95 %. Pri takem pogoju bomo potrebovali 375 s ali več kot 6 min.
Glede na to, da se kondenzatorji morajo napolniti samo prvič, ko se naprava zažene in je potem konstantno vklopljena, nam to načeloma ne predstavlja problema.
Vseeno sem poskušal hitrost izboljšati. Glavni problem, ki nam ga predstavlja polnjenje s preduporom je, da bolj ko se približujemo končni vrednosti, vse bolj počasnejše je polnjenje. Da bi se temu izognil, sem moral uporabiti polnjenje s konstantnim tokom. Viri konstantnega toka so lahko različni, vendar sem se tukaj fokusiral na čim bolj enostavno in ugodno izvedbo. Na podjetju smo že imeli nekaj izkušenj z viri konstantnega toka v ohišju diode (SOD-123-2), kot je NSI45020AT1G od proizvajalca ON Semiconductors, ki lahko priskrbi 20 mA z največjo močjo 460 mW. S konstantnim polnilnim tokom 20 mA bi po enačbi (4.3) potrebovali okrog 52 min, da bi dosegli 100 %.
𝑡 =𝐶𝑉
𝐼 (4.3)
To je veliko več kot enostaven predupor. Da bi dosegli hitrejše polnjenje, sem moral najti vir z večjim izhodnim tokom. Tukaj pa naletimo na problem. Ko imamo večji tok skozi vir, bo večji tudi padec napetosti, prav tako pa tudi cena za to integrirano vezje. Čeprav že prej omenjeni NSI45020AT1G podpira vzporedno konfiguracijo kot na sliki 4.3, na koncu cena ne odtehta prednosti.
4.1 Napajanje 31
Slika 4.3: Vzporedna konfiguracija tokovnih virov
Preizkusil pa sem še drugi alternativni vir konstantnega toka. Uporabil sem varovalko na osnovi PTC termistorja. Ideja je bila, da se ob prvem priklopu naprave na napajanje varovalka, zaradi toka skozi njo segreje in sproži. Ko je varovalka sprožena, ji zraste upornost in s tem omeji tok. Tako se varovalka drži v tem načinu, dokler tokovna poraba ne pade, kar pa se zgodi šele, ko je kondenzator napolnjen.
Varovalki je bil prav tako dodan predupor z vrednostjo 10 Ω, da se omeji začetni tok, preden se varovalka dovolj segreje. Za ta način se na koncu nisem odločil, ker nisem poznal dolgotrajnih posledic take uporabe.
4.1.4 Regulacija pomožnega napajanja
Ko kondenzator praznimo, napetost na njem pada. Hitro pridemo do točke, kjer je napetost prenizka, da bi jo lahko uporabili za naše vezje. To se v naši napravi zgodi pri 1,8 V, kar je najnižja napetost, ki še lahko poganja mikrokrmilnik. Če se hočemo temu problemu izogniti, je potrebno napetost dvigniti na uporabno raven. V našem primeru je to 1,8 V, saj potrebujejo delovati samo mikrokrmilnik in senzorji.
Dvig napetosti lahko dosežemo s stikalnim pretvornikom navzgor, ki ga povežemo na izhod kondenzatorjev kot je vidno na sliki 4.4.
Slika 4.4: Stikalni pretovnik navzgor
Tukaj je kot stikalni regulator uporabljen MCP1640T-I/CHY proizvajalca Microchip. Izbran je bil zaradi zmožnosti delovanja do 350 mV vhodne napetosti, kar čim bolje izkoristi energijo v kondenzatorju. V vezavo je vključen tudi Q5 bipolarni tranzistor, s katerim lahko pretvornik po želji vklopimo ali izklopimo.
32 4 Razvoj elektronike
Za generacijo nižje napajalne napetosti 3.3V sem uporabil linearni napetostni regulator AP2139AK-3.3TRG1 proizvajalca Diodes Incorporated. Vezavo lahko vidimo na sliki 4.5.
Slika 4.5: Napetostni regulator
Napetostni regulator ima fiksno nastavljeno napetost na 3,3 V. Večino časa je v delovanju ta del vezja, saj je izhodna napetost glavnega napajanja 5 V, kar pa je preveč za mikrokrmilnik in ostale senzorje. Zmožen je zagotoviti 250 mA, kar je več kot je predvidena poraba.
4.1.5 Glavno napajanje
Ker imamo za pretvorbo iz omrežne napetosti uporabljen 12 V adapter, je potrebno napetost dodatno znižati. Znižati jo je potrebno na maksimalno napetost, s katero lahko varno napolnimo kondenzatorje. Ta znaša 5 V. Za nižanje napetosti je uporabljen stikalni regulator TS30013-M000 proizvajalca Semtech v konfiguraciji stikalnega pretvornika navzdol.
Slika 4.6: Glavno napajanje
4.2 Mikrokrmilnik 33
Zaradi velike tokovne porabe vezja med delovanjem (še posebej med delovanjem GSM modula), je bilo potrebno izbrati regulator z veliko tokovno zmogljivostjo, v našem primeru 3 A.
4.1.6 Napajanje GSM modula
Zadnje in najbolj osnovno napajanje je napajanje za GSM modul. Modul potrebuje vhodno napetost 3,8 V, kar se ne sklada z nobeno drugo napetostjo v vezju in zato potrebuje svoj linearni regulator.
Slika 4.7: Napajanje GSM modula
Naprava je bila v med postopkom razvoja načrtovana tako, da sta bila lahko uporabljena dva različna GSM modula. Zaradi tega smo morali računati na najslabši možen scenarij in tudi ostalo vezje temu prilagoditi. Zato smo morali izbrati regulator s tokovno zmogljivostjo 1,35 A. Veliko časa modul porabi veliko manj toka, v primerih kjer pa modul oddaja, pa ustvarja velike tokovne špice. Prav tako cenovna razlika med tem in regulatorjem, ki ima manjšo tokovno zmogljivost, ni tako velika.
4.2 Mikrokrmilnik
Mikrokrmilnik predstavlja možgane naprave, ker kontrolira in nadzoruje delovanje. Zahteve za procesor, ki bi bil primeren za nas so nizke, saj bo večino signalov vezanih na enostavne I/O vhode. V tabeli 4.1 je seznam teh signalov:
Ime signala Tip signala Periferna enota
HALL_EN Vhod GPIO
OSC_IN Oscilator RCC
OSC_OUT Oscilator RCC
RTC_SYNC Sinhronizacijski signal RCC
EXT_RESET Vhod NRST
34 4 Razvoj elektronike
CH4_IN Vhod EXTI/GPIO
CH3_IN Vhod EXTI/GPIO
CH2_IN Vhod EXTI/GPIO
CH2_IN Vhod EXTI/GPIO
5VBU_ADC Analogni vhod ADC
12V_ADC Analogni vhod ADC
MCU_TX UART TX UART
MCU_RX UART_RX UART
MCU_STATUS_N Vhod GPIO
MCU_RST Izhod GPIO
MCU_PWRDOWN Izhod GPIO
MCU_PWRKEY Izhod GPIO
1-WIRE 1-WIRE komunikacija UART
TAMPER Vhod GPIO
CH1_IND Izhod GPIO
CH2_IND Izhod GPIO
CH3_IND Izhod GPIO
CH4_IND Izhod GPIO
SPI_CLK SPI ura SPI
SPI_MISO SPI gospodarjev izhod SPI
SPI_MOSI SPI gospodarjev vhod SPI
DBG_TX UART TX UART
DBG_RX UART RX UART
CS_FLASH Izbira SPI sužnja GPIO
BOOST_EN Izhod GPIO
PWR_GOOD Vhod GPIO
Tabela 4.1: Seznam vhodov in izhodov mikrokrmilnika
4.2 Mikrokrmilnik 35
Iz tabele vidimo, da je večino signalov vezanih na GPIO enoto, ostanejo pa nam UART, SPI, ADC in RCC. Vse so dosti standardne periferne enote, ki jih najdemo v večini mikrokrmilnikov.
Edini malo večji omejitveni faktor je bil glede podpore v Arduinu okolju. Do te odločitve je prišlo, ker je bila prejšnja verzija programa zaradi hitrejše implementacije spisana v Arduino okolju. To hitrejšo implementacijo je omogočala že napisana knjižnica za naš GSM modul, ki je bila kar obsežna in bi potrebovala kar nekaj razvojnega časa, da se jo prepiše v drugo razvojno okolje.
Eden izmed podprtih procesorjev, ki je vseboval vse potrebne periferne enote je bil STM32F030C8T6 proizvajalca ST Microelectronics. Uporabil sem ga v prvi verziji tiskanine, a sem v postopku pisanja kode ugotovil, da ne bo imel dovolj bliskovnega pomnilnika za shranjevanje programa. Naslednja verzija je zato uporabljala procesor istega proizvajalca in iste družine STM32F091RCT6. Ta mikrokrmilnik ima na voljo 256 kBytov bliskovnega pomnilnika in teče s hitrostjo 48 MHz.
Končna vezava mikrokrmilnika je predstavljena na sliki 4.8. Mikrokrmilniku ni dodanega nič posebnega, razen kristala za RTC uro in nekaj blokirnih kondenzatorjev, ki pa na sliki niso prikazani. Za uro uporablja interni oscilator, saj večja natančnost ni potrebna.
Slika 4.8: Vezava mikrokrmilnika
Signali iz GSM modula imajo nizko izhodno napetost 1,8 V in je mikrokrmilnik ne more zaznati kot logično enko. Za ta namen je bilo potrebno implementirati pretvornike napetosti. Narejeni so iz bipolarnih tranzistorjev in nekaj uporov. Pri uporabi je potrebno paziti le na to, da pretvorniki signal negirajo. Prav tako je napetost
36 4 Razvoj elektronike
mikrokrmilnika (3,3 V) previsoka za GSM modul in potrebuje pretvornik. Glede na to, da ima modul interne dvižne upore lahko uporabimo isti princip. Vezava je prikazana na sliki 4.9.
Slika 4.9: Vezava pretvornikov napetosti
4.3 Vhodi in izhodi senzorjev 37
4.3 Vhodi in izhodi senzorjev
Senzorje je potrebno priklopiti na napravo in signale speljati na mikrokrmilnik.
Za višjo zanesljivost naprave je priporočljivo zaščititi vhode pred elektrostatičnim in ostalim prenapetostnim motnjam, ki se lahko pojavijo na senzorskem kablu.
To najlažje storimo z zaščitnimi diodami in filtri. Na vhodih za senzorje sem zato dodal Schotky in TVS diode. TVS diode imajo prednost, da prenesejo veliko energijo elektrostatične razelektritve, medtem ko lahko Schotky diode, ki so pakirane po dve skupaj, ščitijo pred napetostjo rahlo pod ali nad napajalno. Serijsko pa so vezani tudi feriti in upor, ki še dodatno ščitita in omejujeta tranzientne pojave, za dodatno filtriranje pa skrbi tudi paralelni upor. Na sliki 4.10 vidimo prikazano zaščito enega kanala.
Slika 4.10: Vezava vhodnih kanalov
Morda se zdi zaščita pretirana, vendar je lažje v postopku certifikacije naprave komponente odstranjevati, kot pa dodajati in na novo risati tiskano vezje.
Podobna vezava je narejena tudi na vhodih za preverjanje nepooblaščenega vstopa in temperaturo (slika 4.11).
38 4 Razvoj elektronike
Slika 4.11: Vezava kanala za zaznavo nepooblaščenega dostopa in temperature
Da bi privarčevali porabo energije v stanju, kjer se uporablja energija iz pomožnega napajanja, je bil dodan še en MOSFET tranzistor (oznaka M3), ki ugaša napajanje senzorjem, ko niso potrebni. Vezan je na maso vseh senzorjev in krmiljen s strani mikroprocesorja (slika 4.10).
4.4 Zunanji bliskovni pomnilnik
Kot sem omenil že v prvem delu magistrskega dela, smo se odločili dodati zunanji bliskovni pomnilnik. Izbrano integrirano vezje ki vsebuje bliskovni pomnilnik je S25FL064L proizvajalca Cypress Semiconductor. Vsebuje 64 Mbit prostora in podpira QSPI komunikacijo za večje hitrosti prenosa. Na naši napravi take hitrosti nismo potrebovali in smo uporabili navaden SPI vmesnik s hitrostjo 5 MHz. Shema je prikazana na sliki 4.12
Slika 4.12: Shema zunanjega pomnilnika
4.5 GSM modul 39
4.5 GSM modul
Zadnji del sheme predstavlja GSM modul, katerega je bilo tudi najtežje načrtovati. Zaradi začetnih zahtev nismo mogli izbrati le enega modula, vendar sem moral načrtovati za čim več možnosti. Na koncu sem se zaradi različnih velikosti modulov in podnožij odločil za dva, ki bi nam pokrila večino možnosti. To sta BG96 in M95 proizvajalca Quectel. Na srečo nisem potrebovali veliko izhodov, ki jih oba modula ponujata in sem lahko ustvaril podnožje, na katerega lahko položimo oba modula. Ostali so le nekateri signali, kot so signal za prižig, ponovni zagon in izklop, katere pa sem moral prevezati preko uporov, ki se jih bo položilo glede na izbrano konfiguracijo. Prav tako je modul BG96 potreboval pretvornik napetosti za UART komunikacijo, saj je deloval na interni napetosti napetosti 1,8 V.
Izhod za anteno shematsko ni bil zahteven, razen PI filtra, ki ga nismo specificirali, zaradi pomanjkanja primerne opreme. Antena se priključi na U.FL priključek, linija od modula pa do priključka pa je morala biti skrbno načrtovana. Za le najboljši signal je morala linija vzdrževati karakteristično impedanco 50 Ω, kar je za mojo debelino PCB-ja (1,6 mm) pomenilo, da mora biti širina linije 1 mm. Prav tako je bilo potrebno omejiti širjenje visoko frekvenčnega signala po ostali površini PCB-ja tako, da sem priključek skupaj s signalom prestavil na rob tiskanine.
Posebno pozornost je bilo potrebno nameniti napajanju, ki sem ga izvedel glede na referenčni podatkovni list proizvajalca, saj modul proizvaja velike tokovne špice med prenosom podatkov. Skupna priporočena kapacitivnost za pravilno delovanje modula presega 200 µF in je razdeljena na več delov. Začnemo z velikimi elektrolitskimi kondenzatorji z velikim ESR in nadaljujemo proti manjšim keramičnim kondenzatorjem z majhnim ESR. Ta način vezave nam najboljše zmanjša motnje in zagotavlja stabilno napajanje (slika 4.13).
Slika 4.13: Blokiranje napajanja GSM modula
40 4 Razvoj elektronike
Zaščito modula in elektronike pa sem moral izvesti tudi pri priključku za SIM kartico. Tam je ESD zaščita še najbolj potrebna, saj zlahka pridemo v kontakt, medtem ko menjamo SIM kartico. Tukaj sem dodal na komunikacijske signale ESD diode z nizko kapacitivnostjo, saj bi z visoko lahko uničili signal. Celotno vezje je vidno na sliki 4.14.
Slika 4.14: Povezava SIM kartice
4.6 Senzorji
Načrtovanje senzorjev je bil del razvoja, ki je predstavljal največjo neznanko glede zanesljivega delovanja v praksi. Zaradi pomanjkanja kavnih aparatov na katerih bi lahko senzorje testirali, sem se morali zanesti na naročnika in na njegovo dobro poznavanje aparatov. Aparati so namreč od proizvajalca do proizvajalca različni in je nemogoče oceniti, kako bo izbrani senzor deloval v vseh primerih. Tako sem se držal dobre inženirske prakse načrtovanja za najslabši možni primer, ki sem si ga zamislil.
Glede na meritve, ki sem jih opisal v prejšnjem poglavju, sem nato načrtal senzor, ki bo zmožen te meritve opraviti. Pri testiranju sem uporabil več različnih Hallovih senzorjev, vendar se je za najboljšega izkazal Si7202 proizvajalca Silicon Labs, ki je imel izredno nizko vrednost proženja. Senzor namreč zazna polje reda velikosti 1 mT.
Izbral sem nekaj različnih tipov tega senzorja glede na to, kako bo senzor prožen in kakšen izhod bo imel. Na koncu se je za najboljšo izbiro izkazal senzor s simetričnim izhodom in delovanjem na principu zapaha. Zapah deluje tako, da ko magnetno polje doseže vrednost Bop, izhod senzorja proži visoko nato pa moramo, da
4.6 Senzorji 41
izhod proži nizko, vrednost zmanjšati na Brp. Senzor tako deluje v načinu histereze.
Delovanje je prikazano in lažje razumljeno na sliki 4.15.
Slika 4.15: Histereza Hallovega senzorja
Shema senzorja ne vsebuje nič posebnega, saj potrebuje le napajanje in blokirni kondenzator. V posodobljeni verziji sem dodal tudi dvižni upor na izhod senzorja v primeru, da bi hoteli kasneje uporabiti senzor s izhodom v konfiguraciji odprtega ponora.
Slika 4.16: Shema senzorja
5 Izvedba naprave
Po narejeni shematiki sem načrtal tiskano vezje naprave v programu Altium Designer. To orodje nam omogoča načrtovanje tako shematike, kot tudi tiskanega vezja in nam to skupaj povezuje. Z njim kasneje tudi pripravimo vse potrebne dokumente in datoteke za izdelavo tiskanin.
5.1 Prvi prototip glavnega dela naprave
Tiskano vezje gre velikokrat v razvoju skozi več iteracij izboljšav in ta projekt ni bil izjema. V prvi fazi smo izdelali le par tiskanih vezij, ki smo jih lahko uporabili za testiranje in programiranje.
Ko je bil načrt v Altium orodju pripravljen, sem tiskana vezja naročil pri kitajskem proizvajalcu PCBWay. Proizvajalec je bil izbran zaradi večletnih dobrih izkušenj, odlične cene in kakovosti. Hkrati je PCBWay postal tudi privzeti izvajalec za prototipna vezja, saj je bil preverjen s strani podjetja in nam prihrani delo z raziskovanjem zanesljivosti in kvalitete izdelave.
Slika 5.1: Prvi prototip tiskanega vezja
44 5 Izvedba naprave
Naročeni PCB je imel specifikacije kot so prikazane v tabeli
Specifikacija Vrednost
Debelina 1,6 mm
Število plasti 2
Material FR4
Barva Zelena
Dolžina 115 mm
Širina 89 mm
Minimalna razdalja med bakrenimi deli 8 mils / 0,2 mm Tabela 5.1: Specifikacije tiskanega vezja
Poleg tiskanin sem moral za izdelavo končnega izdelka naročiti tudi komponete za polaganje, kar sem za prvi prototip naredil sam. Komponente sem naročil preko najbolj znanih distributerjev (Mouser, Farnell…), nekaj pa tudi od distributerjev kot so Rutronik in Codico za GSM modul in superkondenzatorje, saj so bili na prostem trgu dražji, hkrati pa smo od njih že imeli pripravljeno ponudbo za končne proizvodnje kose.
Ko smo dobili vse potrebne komponente in materiale smo prototipe sestavili v naši prototipni delavnici, ki vsebuje tudi polagalko. Najprej so v delavnici položili SMD komponente, nato pa še THT. Problemov pri polaganju in spajkanju ni bilo kar je pomenilo, da lahko nadaljujemo s testiranjem in programiranjem.
Pri prvem prototipu sem mehanični del izdelka pripravil sam. Začel sem z izrezom lukenj za priključke, nadaljeval pa s pripravo kablov in senzorjev. Ko sem ta del zaključil, sem lahko nadaljeval z obujanjem tiskanine. Preveril sem napajalne napetosti, pomožno napajanje, stanje in odzivnost GSM modula in če se mikrokrmilnik zbudi in javi status programatorju. Na srečo je vse delovalo že pri prvem prototipu.
Med nadaljnjim testiranjem sem vseeno zaznal nekaj stvari, ki bi jih lahko izboljšal.
Prva zaznana pomanjkljivost je bila polnjenje super-kondenzatorjev za pomožno napajanje. Tukaj sem opazil, da se kondenzatorji polnili več časa, kot bi želeli in to tudi odpravil, kot sem opisal v prejšnjem poglavju.
Prav tako sem moral izbrati anteno, s katero bo GSM modul komuniciral.
Vgrajene antene na tiskanem vezju nisem mogel uporabiti, ker bo naprava zaprta v kavnem aparatu, ki se obnaša kot Faradayeva kletka in bi skozi prodrlo zelo malo signala. Posledično sem se odločil za zunanjo anteno, katero bi pritrdil preko kabla in na koncu nalepil na ohišje kavnega aparata. Prav tako zunanje antene omogočajo
5.1 Prvi prototip glavnega dela naprave 45
veliko boljši izkoristek oddajne moči GSM modula. Glede na posvet z dobaviteljem in proizvajalcem anten sem se odločil za anteno 2J5024P-100LL100-C44N proizvajalca 2J-Antennas.
Programiranje mikrokrmilnika je potekalo tako, da sem vzel program, ki je bil že pripravljen za prvo verzijo tega izdelka in ga modificiral tako, da je lahko deloval na novem. Za tem sem začel z dodajanjem novih funkcij, kot je podpora novega modula in nov način pošiljanja podatkov na strežnik. Dodal sem tudi podporo za pomožno napajanje in detekcijo nizke vhodne napetosti. Sledilo je obsežno testiranje, najprej na delovni mizi, nato pa tudi na kavnem aparatu.
Kmalu smo ugotovili, da to ni dovolj, saj bo končna naprava lahko delovala v veliko različnih kavnih aparatih, ki pa ne delujejo isto. Tako je padla odločitev, da nekaj vzorcev spravimo na trg in dobimo čim več povratnih informacij. Seveda se je pojavilo nekaj napak v programu in zaznavi senzorjev, ampak sem jih lahko sproti reševal. Ko je bilo konec testenega obdobja, smo dobili naprave nazaj v razvoj. Takrat smo hitro videli, kaj bo naš novi največji problem. Delovanje naprave v parnem in vročem okolju je povzročilo korozijo in nalaganje snovi okrog priključkov. Izrez ohišja za priključke je bil na prvih prototipih izveden ročno in je dopuščal velike razmake med priključki in ohišjem, hkrati pa tudi sam dizajn ni bil vodotesen in ni bil možen s temi priključki (slika 5.2).
Slika 5.2: Priključkina tiskanini v0.1
Problem pa ni bil samo v teh priključkih, čeprav se je le tukaj pojavil kamen in korozija. Vsi ostali priključki so imeli odprtine, ki so dopuščale dostop vode in pare.
Hkrati, tudi izbira SMA priključka ni bila najboljša, saj je bil prispajkan na tiskano vezje in je onemogočal enostavno zapiranje naprave.
Poleg težav, ki smo jih odkrili si je naročnik zaželel tudi nekaj dodatnih izboljšav. Najbolj ga je motilo to, da je priključek za SIM kartico odmaknjen od roba in je do njega težko dostopati ter da so se žičke iz priključka velikokrat iztaknile, kar
46 5 Izvedba naprave
je le še ojačalo argument za menjavo le teh. Iz uporabniškega stališča si je zaželel tudi neko identifikacijo v kakšnem stanju je naprava, oziroma kaj počne. Glede na to, da je naprava črna škatlica, je lahko zelo težko odkriti napako, preden se poveže na omrežje in nam to javi. Težavo naredi še bolj problematično če je ena od napak to, da se naprava noče povezati na omrežje.
5.2 Popravki in drugi prototip
Slika 5.3: Drugi prototip
Ko je bil prvi prototip naprave preizkušen in izkušnje iz trga znane, sem se lotil izboljšav prve verzije.
Kjer je bil na začetku dodan le upor za polnjenje pomožnega napajanja in energija v kondenzatorjih ni bila dobro izkoriščena, sem za naslednjo verzijo dodal še vezje pretvornika navzgor.. Vse bolj jasno je postajalo, da to napajanje ne bo uporabljeno v končni verziji in sem zato vezje načrtoval tako, da se lahko tiskano vezje položi tudi brez tega vezja. Za to sem uporabil 0 Ω upor, ki ga lahko položimo ali pa ne in s tem zaobidemo del vezja. Razlog za neuporabo pomožnega napajanja je bil v ceni, ki pa ni upravičila dodane vrednosti.
Po želji naročnika, da bi imel vizualno povratno informacijo, kaj naprava počne in v kakšnem stanju je, sem dodal še štiri LED diode, katere se lahko krmili z mikrokrmilnikom. Vse diode sem speljal na isti konec skupaj z dvema diodama, ki jih direktno krmili GSM modul in poiskal primerno svetlobno vodilo. Na srečo sem na trgu našel vodilo, ki je bil za našo uporabo idealen in ni bilo potrebe po naročilu namensko izdelanega kosa. Uporabil sem vodilo 1272.1026 proizvajalca Mentor.
Vodilo je sestavljeno iz 6 ločenih vodov, ki so skupaj pritrjeni z majhnim kosom
5.2 Popravki in drugi prototip 47
plastike. Dodane ima tudi nogice katere vstavimo v za to narejene luknje v tiskanem vezju in ga tako stabiliziramo. Izgled lahko vidimo na sliki 5.4.
Slika 5.4: Svetlobno vodilo
Za tem sem se lotil iskanja boljših priključkov za senzorje. Ker smo v podjetju že prej imeli kontakt z podjetjem Weipu za drug projekt in se mi je zdelo, da bo njihov priključek primeren za našo rabo, sem jih zopet kontaktiral in zmenil za vzorce.
Priključek, za katerega sem se menil, je SP11 in je 4-polni krožni priključek z vijačnim pritrjevanjem. Za senzorski del sem uporabil priključek, ki se ga prispajka na kabel, za samo napravo pa model, ki se ga montira na prednjo ploščo. Velika prednost priključka je tudi IP68 klasifikacija, kar pomeni manj možnosti za vdor vode in korozijo kontaktov.
Slika 5.5: Novi senzorski konektor (SP1110 in SP1112)
Zdaj, ko je priključek montiran pa sem ga moral povezati še na PCB. Za ta kabel sem uporabil priključekCA3004P13L0 proizvajalca Cvilux, kjer je en del položen na tiskano vezje, drugi (ženski del) pa je stisnjen na kabel. Drugi konec kabla je nato prispajkan na priključek, ki je pritrjen na prednji plošči. Končni izgled lahko vidimo na sliki 5.6. Tukaj lahko vidimo tudi adapter za montažo SMA priključka na ohišje
48 5 Izvedba naprave
028 RF-100 proizvajalca GRADCONN. Za ta adapter sem se odločil, zaradi prej omenjene težave pri sestavljanju in vdora vode.
Slika 5.6: Sestav notranjosti
Ker takih kabelskih sestavov ne dobimo na trgu sem se odločili, da jih bomo proizvedli sami, v naši proizvodnji. Postopek sestave ni zahteven, zahteva pa svoj čas.
Prvi korak je spajkanje žic na Weipu priključek, drugi pa stiskanje Cvilux priključka na drugi konec kabla.
Med programiranjem prvega prototipa, sem med pisanjem programa opazil, da mi zmanjkuje prostora na bliskovni pomnilniku, ko sem hotel dodati malo bolj napredne funkcije. Ker smo imeli v načrtu dodati še veliko funkcij (ena izmed njih je posodabljanje programske opreme na daljavo), sem se odločil zamenjati mikroprocesor. Tukaj me je začela izbira Arduino okolja za programiranje zelo ovirati.
Če bi izbrali okolje, ki ga podpira proizvajalec, bi lahko preprosto zamenjali procesor za enega iz iste družine, le z večjim bliskovni pomnilnikom, tako pa sem moral izbrati drug procesor, ki ga Arduino knjižnice podpirajo. Zaradi tega sem se veliko časa pri drugem prototipu ukvarjal s premikom kode na novi procesor.
Glede na to, da je druga verzija shematike vsebovala kar nekaj sprememb, jih je bilo deležno tudi tiskano vezje. Nekaj komponent sem drugače orientiral zaradi novih dodatkov, druge, kot so priključek za sim kartico, pa na željo naročnika premaknil na rob tiskanega vezja za lažji dostop. Tudi drugi prototip med polaganjem ni naletel na probleme.
5.3 Izvedba senzorja 49
Slika 5.7: Drugi prototip tiskanega vezja
Kot je morda razvidno iz slike 5.7, sem dodal tudi filter za vhodno napajanje, kar je posledica meritev v našem EMC laboratoriju, ki pa jih bom opisal v enem izmed naslednjih poglavij.
5.3 Izvedba senzorja
Senzor je poleg tiskanine potreboval tudi ohišje, kabel, pritrditveni sistem in priključek. Za ohišje smo vedeli, da na trgu ne bomo našli točno tega, kar potrebujemo, zato smo se načrtovanja lotili sami. Naš strojni oddelek je dobil nalogo, da načrta ohišje, katerega bomo lahko enostavno brizgali, bo poceni in bo imel površino za lepljenje. Sam sem v vmesnem času načrtal tiskano vezje, ki je zgledalo kot na sliki 5.8.
Slika 5.8: Tiskanina senzorja
Za kabel sem izbral tri-žilni kabel proizvajalca AlphaWire, saj je bil ta najlažje dostopen. Ker smo izdelek načrtovali tako, da ga bomo izdelovali v domačem podjetju, sem tiskanino načrtoval tako, da se bo lahko kabel zlahka prispajkal. Da pa nas ne
50 5 Izvedba naprave
ovira majhnost tiskanine pri sestavi v proizvodnji, sem več senzorjev povezal v panel in jih razdelil tako, da jih lahko spajkamo po devet skupaj (slika 5.9).
Slika 5.9: Panel senzorjev
Postopek izdelave je sledeč. Ko prispajkamo kabel na vse senzorje v vrsti, lahko panel odlomimo in si tako omogočimo dostop do naslednje vrste senzorjev. Posamezne senzorje potem ločimo drug od drugega in jih vstavimo v plastično ohišje. Ko je tiskano vezje vstavljeno, vse skupaj zalijemo z epoksi vlivno maso in tako neprodušno zapremo senzor. Zadnji korak je spajkanje priključka na drugi konec kabla, kjer pa se sestava senzorja tudi zaključi.
Slika 5.10: Senzorski sestav
5.4 Vgrajena programska oprema
Vgrajeni program je bil, kot sem že v prejšnjih poglavjih omenil, prenesen iz prejšnjega projekta. Moja naloge je bila program le dopolniti z novimi funkcijami. V nadaljevanju bom na kratko predstavil arhitekturo programa in njegove funkcije.
Vse funkcije so povezane preko main.c datoteke in tam se podatki tudi obdelujejo. Vsi ostali dogodki kot so prekinitve so tam le zato, da zabeležijo dogodek saj poskušamo prekinitve ohraniti čim krajše. Program ne deluje na operacijskem sistemu, vendar ima v main funkciji le nekaj »idle« klicev, ki se izvajajo po vrsti, nič
5.4 Vgrajena programska oprema 51
pa ni v ospredju, kar bi jih kontroliralo. Program je bil spisan v Arduino okolju in zato lahko uporablja tudi njegove funkcije. To mi je v razvoju izdelka hkrati lahko razvoj zelo olajšalo ali pa v delih zelo otežilo. Na spodnji sliki (5.11) lahko vidimo potek glavnih funkcij.
Slika 5.11: Arhitektura programa
Če spremljamo potek diagrama vidimo, da se na naprava zažene in program opravi inicializacijo. V postopek inicializacije so vključeni vzpostavitev vhodno- izhodnih signalov, prekinitev, serijske komunikacije in malo bolj kompleksni sistemi kot so datotečni sistem, shramba in GSM modula. Sam postopek inicializacije je pri tej napravi zelo dolg, še posebej zaradi GSM modula. Modul se mora ob zagonu naprej konfigurirati, nato pa mora najti omrežje in se na njega povezati. Celoten postopek lahko traja tudi več kot minuto in je zelo odvisen od omrežja na katerega se želimo povezati. Ko se modul poveže, vzpostavi kontakt še s strežnikom, na katerega se pošiljajo vsi podatki. Če je modul uspešno povezan še s strežnikom, se postopek inicializacije zaključi. S tem se lahko začne glavna zanka programa, kjer naprava ostane v režimu delovanja.
52 5 Izvedba naprave
Zanka se začne s shrambo, kjer se vsi podatki, ki so bili do sedaj zabeleženi prenesejo na zunanji bliskovni pomnilnik, nadaljuje pa z obdelavo prekinitev. Tukaj program pogleda po pomnilniku, če so se zgodili kakšni dogodki in primerno ukrepa.
Zaenkrat je ta funkcija namenjena le zaznavi postopka čiščenja. Čiščenje je postopek, v katerem dalj časa spuščamo vodo skozi ventil in s tem očistimo cevi. Med postopkom čiščenja se dogodki brišejo, saj bi nam v drugem primeru sistem lahko javil kuhanje kave.
V primeru, da nam GSM modul hoče kaj sporočiti in na te podatke nismo pripravljeni, je za prejšnjo funkcijo tudi funkcija, kjer te podatke obdelamo. Podatki, ki jih je modul poslal, so trenutno shranjeni le v periferni enoti. Tam jih funkcija prebere in se odloči ali ustrezajo kakšnem razumljenem ukazu. Če ustrezajo, se proži ustrezna funkcija, v drugem primeru pa se podatke zavrže.
Ena izmed najbolj pomembnih funkcij, ki se izvajajo v zanki je Idle funkcija, ki podatke o dogodkih pošilja na strežnik. Funkcija najprej prebere pomnilnik, če so v vrsti kakšni dogodki za prenos, nato pa jih tudi po vrsti prenese. Za prenos uporabi http ukaze, podatke pa zapakira v JSON format. Vredno je opomniti, da prenese tudi podatke o dogodkih, ki so se zgodili ob odsotnosti omrežja. Ko se podatki prenesejo, se dogodek iz vrste pobriše.
Najbolj pogosti podatki, katere sem prej omenil in na katere nismo pripravljeni, so podatki o prejetem SMS sporočilu. Da nam ni potrebno konstantno preverjati ali imamo v GSM modulu kakšen prejet SMS, je modul nastavljen tako, da avtomatsko sporoči, ko sporočilo prejme. SMS sporočila so uporabljena za nastavitev naprave na terenu, kjer je potrebno vnesti APN nastavitve omrežja, nastaviti število kanalov, dodati prejemnike opozoril in končno, napravo tudi vklopiti.
Da pa uporabnik ne bi naprave izklopil, brez da bi to ponudnik vedel, je na koncu še funkcija, ki na vsake pet minut pokliče strežnik in se javi, da naprava še vedno deluje. S tem se glavna zanka programa zaključi in program se vrne na začetek, kjer se celotni postopek ponovi.
Na diagramu lahko vidimo tudi dve funkciji, ki nista povezani v glavno zanko.
Ena izmed njih je zunanja prekinitev, ki se kliče v primeru, da se na vhodu senzorjev signal spremeni (proži se na prednjo ali zadnjo fronto). Drugo funkcijo kliče funkcija delay(). Delay funkcija je uporabljena večkrat v programu in namesto, da ta čas porabimo za štetje števil, lahko čas uporabimo za nekaj uporabnega. Tako se torej v funkciji delay(), kliče funkcija yield(), kjer lahko sami napišemo kratke funkcije, ki se potrebujejo redno izvajati v prostem času. Tukaj signal iz senzorjev procesor obdela in se odloči ali gre za veljaven signal ali le šum.