Infračervená svetelná závora s Arduinom na odčítanie elektromeru

infračervená

Elektromagnetické elektromery Ferraris sa v mnohých domácnostiach stále používajú na meranie spotreby. Nemajú priame rozhranie s elektronickým zberom údajov. Na druhej strane však presné a minútové zaznamenávanie spotreby energie pomáha šetriť energiu, pretože je možné lepšie analyzovať spotrebu v pohotovostnom režime a špičky záťaže. Jednou z možností, ako tieto dáta rovnako získať, je optoelektronické skenovanie počítacieho disku. Získavanie signálu vykonáva Arduino Nano.

Počítadlo Ferraris

Merač Ferraris pracuje na princípe motora. Prúdový tok cez niekoľko cievok nastavuje otáčanie počítacieho kotúča, ktorý zase poháňa mechanické počítadlo. Počet otáčok disku je úmerný vykonanej elektrickej práci, ktorá sa zvyčajne meria a účtuje v kilowatthodinách (kWh). Napríklad môj meter ukazuje 75 U/kWh, čo znamená, že 75 otáčok počítacieho disku znamená spotrebu 1 kWh.

Na počítacom disku je červená značka. Prechod tohto značenia cez priezor je možné detegovať a elektronicky spracovať pomocou reflexnej svetelnej závory.

Fotobunka Arduino

Skutočná svetelná bariéra sa skladá z diódy vyžarujúcej infračervené svetlo 409 SFH (alternatívne: SFH 4346) a infračervený fototranzistor SFH 309 FA (Obr. 1). Ovláda sa pomocou Arduino Nano. V zásade sú samozrejme vhodné aj iné modely Arduina, Nano sa používa hlavne kvôli jeho malým rozmerom. Označenia pripojenia na obrázku 1 sa priamo týkajú označenia dosky Arduino.

Použitie mikrokontroléra ponúka veľa výhod oproti „konvenčnej“ štruktúre svetelnej bariéry s analógovými spúšťacími obvodmi alebo dokonca diskrétnymi tranzistormi. Okrem dvoch infračervených zložiek sú potrebné iba dve ďalšie pasívne súčasti: Na obmedzenie prúdu cez svetelnú diódu sa používa odpor 120 Ω a odpor 2,2 kΩ prevádza prúd pretekajúci fototranzistorom na napätie. Prechádza priamo na analógový vstup A7 Arduina.

Anóda diódy vyžarujúcej svetlo nie je priamo spojená s prevádzkovým napätím V5V, ale s digitálnym výstupom D2 pripojený. To umožňuje efektívne potlačenie rušivého okolitého žiarenia. Merací program sa prepína veľmi rýchlo D2 zapína a vypína svetlo emitujúcu diódu a každú meria A7 výsledné napätie. Následná tvorba rozdielov eliminuje okolité svetlo dopadajúce na snímač, výsledok obsahuje iba svetlo generované svetelnou diódou. Tento princíp merania bolo možné bez mikrokontroléra implementovať iba s veľkým úsilím.

Dva ďalšie komponenty, zelená LED a odpor 560 Ω, nie sú potrebné pre skutočnú funkciu svetelnej závory. Používajú sa iba na vizuálnu spätnú väzbu o správnej funkcii zariadenia. Vyvažovacie odpory alebo potenciometre v obvode budete hľadať márne. Úroveň spúšťania pre prispôsobenie svetelnej bariéry rôznym prostrediam sa nastavuje pomocou softvéru.

Cena Arduino Nano sa pohybuje medzi 8 USD za „čínsky klon“ a 50 EUR. Porovnanie cien sa preto pri nakupovaní oplatí! Nemusíte si brať nano, ak máte dostatok miesta, môžete určite použiť iný model.

konštrukcia

Komponenty vrátane Arduino Nano sú spájkované na univerzálnej nepájivej doske. Jeho veľkosť bola zvolená tak, aby sa „nasala“ do štandardného plastového krytu bez akýchkoľvek ďalších upevňovacích prvkov (obr. 2). Arduino je umiestnené tak, aby jeho pripojenie mini-USB bolo neskôr prístupné zvonku, aj keď je kryt zatvorený.

Dióda vyžarujúca infračervené svetlo a fototranzistor sú pripevnené zo spodnej strany dosky (obr. 2 vľavo), aby infračervené svetlo mohlo dosiahnuť von cez dva otvory vyvŕtané v spodnom plášti krytu. Horná časť komponentov bude neskôr ležať presne na povrchu krytu meradla priamo nad počítacím diskom (obr. 4). Značenie, ktoré sa nanáša permanentným značkovačom a rozširuje sa po stranách krytu, uľahčuje umiestnenie na glukometri (obr. 3). Aby reflexná svetelná bariéra fungovala, musia byť dióda emitujúca svetlo a fototranzistor čo najbližšie k sebe, ale bez priameho svetla z diódy dosahujúceho tranzistor.

Zelená dióda vyžarujúca svetlo je namontovaná normálne zhora, aby bola neskôr viditeľná na strane odvrátenej od meracieho prístroja (obr. 2 vpravo dole). Jeho dĺžka sa volí tak, aby bola v jednej rovine s hornou časťou krytu.

softvér

Arduino je ideálne vhodné na riadenie svetelnej bariéry a zber údajov v reálnom čase, má však svoje limity, pokiaľ ide o dlhodobé ukladanie a vizualizáciu údajov. Z tohto dôvodu sa softvér skladá z dvoch častí. Jedna časť beží na Arduine a stará sa o zber dát. Druhú časť je možné nainštalovať na akýkoľvek počítač (najlepšie Linux), ktorý má trvalé veľkokapacitné úložisko (napr. Pevný disk alebo pamäťovú kartu SD), ako aj USB a sieťové rozhranie. Dobrou voľbou je Raspberry Pi. Pretože v mojej pivnici už je RasPi na meranie spotreby plynu, okamžite som ho použil. Arduino a riadiaci počítač sú spojené pomocou USB kábla. To na jednej strane zaisťuje napájanie Arduina a na druhej strane komunikácia medzi dvoma softvérovými časťami prebieha pomocou jednoduchého sériového protokolu.

Kompletný softvér je na Github v úložisku emeir (elektorský jater s infrark dispozícii. Kópia sa posiela prostredníctvom

v miestnom pracovnom adresári.

Súbor arduino_sketch/ReflectorLightBarrier.ino obsahuje skicu Arduino. Musí byť zostavený pomocou Arduino IDE a načítaný do programovej pamäte Arduina.

Po spustení je softvér Arduino v Režim spúšťacích údajov. The je vhodnejšie pre prvý test funkcie Režim nespracovaných údajov, v ktorom softvér nepretržite vydáva rozdielové napätie namerané na fototranzistore na sériovom rozhraní. Rôzne režimy sa prepínajú odosielaním príkazov z riadiaceho počítača do Arduina. Môžete použiť sériový monitor Arduino IDE alebo terminálový program ako minicom použitie.

Posielam znamenie C. do Arduina spôsobí, že prejde do príkazového režimu. Teraz reaguje na rôzne ovládacie príkazy:

v Režim nespracovaných údajov Arduino neustále vysiela namerané hodnoty na sériové rozhranie. Toto je hodnota rozdielu, ktorú softvér počíta, ako je opísané vyššie, odčítaním napätí, keď je zapnutá a vypnutá infračervená dióda vyžarujúca svetlo. Takto môžete vyskúšať, či všetko prebehlo bez problémov pri nastavovaní hardvéru: Ak držíte kúsok papiera pred reflexnou svetelnou bariérou, zmena jeho vzdialenosti by mala spôsobiť výrazné rozdiely v nameraných hodnotách.

Sekcia programu relevantná pre získanie nameranej hodnoty je:

Montáž a nastavenie

Svetelná bariéra je pripevnená k krytu merača pomocou dvoch pásikov obojstrannej lepiacej pásky (pozri obrázok na začiatku článku). Infračervená dióda vyžarujúca svetlo a fototranzistor musia sedieť presne nad počítadlom. Značka na kryte pomáha pri presnom umiestnení (obr. 3).

Keď je elektromer v prevádzke, namerané údaje sa spočiatku zaznamenávajú do Režim nespracovaných údajov. Tu je užitočný napríklad terminálový program minicom, ktoré môžu zapisovať údaje bežiace cez sériové rozhranie do textového súboru. Po importe tohto súboru do tabuľkového procesora (napr LibreOffice Calc) môžete vygenerovať grafiku podobnú obr. 5, ktorá pomáha určiť prahové hodnoty spúšťania: V chronologickom slede nameraných údajov (modrá) je možné jasne identifikovať dva priechody počítacieho značenia, pretože ich červená farba vedie k výraznému zníženiu odrazeného svetla . To má za následok definíciu dvoch spúšťacích prahových hodnôt na 85 (nízka, červená na obr. 5) a 90 (vysoká, žltá).

Príkaz S 85 90 zapíše hodnoty pre prahové hodnoty spúšťania do EEPROM Arduina. Prežijete odpojenie napájania a reštart programu.

Odteraz pracujete so softvérom Arduino v systéme Windows Režim spúšťacích údajov. Tu sa výstup na sériovom rozhraní vyskytuje iba v prípade spúšťacej udalosti: Keď nízka Úroveň spustenia, program dá znaku 0 a keď vysoká Úrovne 1 zľava. Okrem toho sa zodpovedajúcim spôsobom prepne zelená svetelná dióda, čo je mimoriadne užitočné pre vizuálnu kontrolu funkcie: Stav spúšťania je iba „0“ a svetelná dióda je vypnutá, ak je červená značka počítania pred svetelnou bariérou, inak svieti:

Zaznamenávanie stavu počítadla a spotreby

Skript Python emeir.py beží na riadiacom počítači, ktorý prijíma údaje dodávané Arduinom cez sériové rozhranie USB. v Režim spúšťacích údajov sú to iba nuly a jednotky, ktorých prepínanie signalizuje prechod počítacej značky. Pretože je známy pomer počtu otáčok počítadla k spotrebe energie, je možné priamo odvodiť množstvo spotrebovanej energie:

Keď je spustený spúšťač, program zapíše nový údaj merača a energiu použitú od posledného spustenia trigger_step = 1/75 (otáčky na kWh) do kruhovej databázy. Tento princíp je podobný postupu popísanému v časti Odčítanie plynomerov magnetometrom HMC5883 a Raspberry Pi.

Program tiež vytvorí databázu emeir.rrd, ktorá je v rovnakom adresári ako skript Python. Ak to chcete urobiť, musíte to raz spustiť voľbou -c:

Novo vytvorená databáza prirodzene začína čítaním počítadla 0. Aby ste ju synchronizovali s mechanickým počítadlom, poznačte si načítanie mechanického počítadla (napríklad 132290.0) a čo najskôr ho zapíšte do databázy:

Potom reštartujte súbor emeir.py. Načíta uloženú hodnotu počítadla z databázy a pokračuje v počítaní. Pre nepretržitú prevádzku by mal byť súbor emeir.py nainštalovaný ako služba na pozadí, aby prežil odhlásenie a reštart systému. Služba blogu zobrazuje možnosti tohto pozadia na pozadí.

Z databázy Round Robin je možné generovať príťažlivú grafiku pomocou programu rrdtool. Nasledujúce príkazy generujú grafiku zobrazenú na obrázku 6 pre odpočet a spotrebu počítadla za posledné tri dni:

Tenký webový server, ako je lighttpd «svetlý», spolu s niekoľkými stránkami HTML a skriptmi Perl, vďaka čomu je grafika spotreby pohodlne dostupná na intranete. Princíp je popísaný v článkoch o zaznamenávaní spotreby plynu a merania teploty.

Záver

Malé, svojpomocne vyrobené zariadenie funguje bez problémov už viac ako rok a už prinieslo zaujímavé zistenia. Napríklad rozdiel medzi časmi dovolenky a dochádzky je značný. Preto by ste mali byť veľmi opatrní pri rozhodovaní, komu sprístupniť údaje o svojej spotrebe v reálnom čase! Okrem špičiek spotreby, za ktoré je zodpovedný hlavne elektricky ovládaný kuchynský sporák a príprava teplej vody, je badateľné mierne zvlnené základné zaťaženie. Je to spôsobené funkciou chladničky alebo mrazničky, ktoré sa pravidelne zapínajú a vypínajú. Ak to odrátate, zostane vám základná spotreba okolo 60 W, ktorá je spôsobená prevádzkou rôznych elektronických zariadení, ako sú smerovače DSL, rádiobudíky a samozrejme Arduino a Raspberry Pi (!), Ktoré sa používajú na meranie spotreby. Ďalšie obmedzenie potom vyžaduje použitie prenosného merača nákladov na energiu, ktorý je zapojený do elektrického vedenia jednotlivých zariadení. Pre ambicióznych kutilov existuje niečo také ako súprava od spoločnosti ELV.