Infravörös fénysorompó az Arduinóval az árammérő leolvasására

A Ferraris elektromágneses fogyasztásmérőket még mindig sok háztartás használja a fogyasztás mérésére. Nincs közvetlen interfészük az elektronikus adatgyűjtéshez. Másrészt azonban az energiafogyasztás pontos és percenkénti rögzítése segít energiatakarékosságban, mivel a készenléti fogyasztás és a terhelési csúcsok jobban elemezhetők. Az adatok megszerzésének egyik lehetősége a számláló lemez optoelektronikus vizsgálata. A jelgyűjtést egy Arduino Nano végzi.
Ferraris számláló
A Ferraris mérő motor elvén működik. A több tekercsen átáramló áramlás beállítja a számlálótárcsa forgását, amely viszont mechanikus számlálót hajt. A korong fordulatszáma arányos az elvégzett elektromos munkával, amelyet általában kilowattórában (kWh) mérnek és számláznak. Például a mérőm azt mondja, hogy 75 U/kWh, ami azt jelenti, hogy a számlálótárcsa 75 fordulata 1 kWh fogyasztást jelent.
A számlálókorongon piros jel van. Ennek a jelölésnek a megtekintési ablakon való áthaladása detektálható és elektronikusan feldolgozható egy reflex fénysorompó segítségével.
Arduino fotoelektromos kapcsoló
A tényleges fénysorompó egy infravörös fénykibocsátó diódából áll SFH 409 (vagy: SFH 4346) és egy infravörös fototranzisztort SFH 309 FA (1. ábra). Arduino Nano vezérli. Elvileg természetesen az Arduino más modelljei is megfelelőek, a Nano elsősorban kis méretei miatt használatos. Az 1. ábrán látható csatlakozási jelölések közvetlenül az Arduino tábla címkézésére utalnak.
A mikrovezérlő használata számos előnyt kínál az analóg trigger áramkörökkel vagy akár különálló tranzisztorokkal ellátott fénysorompó "hagyományos" felépítésével szemben. A két infravörös komponens mellett csak két másik passzív komponensre van szükség: 120 Ω-os ellenállást használnak a fénykibocsátó diódán keresztüli áram korlátozására, és a 2,2 kΩ-os ellenállás feszültséggé alakítja a fototranzisztoron keresztül áramló áramot. Közvetlenül az analóg bemenethez megy A7 az Arduino.
A fénykibocsátó dióda anódja nincs közvetlenül csatlakoztatva az üzemi feszültséghez V5V, hanem a digitális kimenettel D2 csatlakoztatva. A zavaró környezeti sugárzás hatékony elnyomása érhető el így. A mérési program nagyon gyorsan átkapcsol D2 a fénykibocsátó dióda be- és kikapcsolása, és mindegyiket méri A7 ebből fakadó feszültség. Az ezt követő különbségképzés kiküszöböli az érzékelőt elütő környezeti fényt, az eredmény csak a fénykibocsátó dióda által generált fényt tartalmazza. Ezt a mérési elvet mikrovezérlő nélkül csak nagy erőfeszítésekkel lehetne megvalósítani.
A két másik komponens LED zöld és az 560 Ω ellenállás nem szükséges a fénysorompó tényleges működéséhez. Csak vizuális visszajelzésre szolgálnak a készülék helyes működésével kapcsolatban. Hiába fogja keresni az áramkör kiegyensúlyozó ellenállásait vagy potenciométereit. A kiváltó szint beállítását a fénysorompó különböző környezetekhez való igazításához szoftverrel végzik.
Az Arduino Nano ára 8 dollár között mozog egy "kínai klón" és 50 euró között. Ár-összehasonlítás tehát érdemes vásárláskor! Nem kell nanót venni, ha elegendő hely van, mindenképpen használhat másik modellt.
Építkezés
Az Arduino Nano alkatrészeket univerzális kenyérlapra forrasztják. Mérete úgy lett megválasztva, hogy "normál" műanyag házba "szívjon" minden további rögzítőelem nélkül (2. ábra). Az Arduino úgy van elhelyezve, hogy mini-USB csatlakozása később kívülről is elérhető legyen, ha a ház zárt.
Az infravörös fénykibocsátó diódát és a fototranzisztort a kártya alsó oldaláról szerelték fel (balra a 2. ábra), hogy az infravörös fény az alsó házhéjba fúrt két lyukon keresztül eljusson a külső oldalra. Az alkatrészek teteje később pontosan a mérőház felületén fekszik, közvetlenül a számlálótárcsa felett (4. ábra). Az állandó jelölővel ellátott és a ház oldalaira kinyújtott jelölés megkönnyíti a mérőn való elhelyezést (3. ábra). A reflex fénysorompó működése érdekében a fénykibocsátó diódának és a fototranzisztornak a lehető legközelebb kell ülnie egymáshoz, de anélkül, hogy a dióda közvetlen fénye képes lenne eltalálni a tranzisztort.
A zöld fénykibocsátó dióda felülről rendesen van felszerelve, hogy később a mérőtől elfelé néző oldalon látható legyen (2. ábra jobb alsó sarokban). Hossza úgy van megválasztva, hogy egybeessen a ház tetejével.
szoftver
Az Arduino ideális a fénysorompó és a valós idejű adatgyűjtés vezérléséhez, de korlátai vannak az adatok hosszú távú tárolására és megjelenítésére. Ezért a szoftver két részből áll. Az egyik rész az Arduino-n fut, és gondoskodik az adatgyűjtésről. A második rész bármely (lehetőleg Linux) számítógépre telepíthető, amely állandó tömeges tárolóval rendelkezik (pl. Merevlemez vagy SD memóriakártya), valamint USB és hálózati interfésszel rendelkezik. Jó választás egy Raspberry Pi. Mivel az alagsoromban már van RasPi a gázfogyasztás mérésére, ezért azonnal felhasználtam. Az Arduino és a vezérlő számítógép USB kábelen keresztül csatlakozik. Ez biztosítja egyrészt az Arduino tápellátását, másrészt a két szoftverrész közötti kommunikáció egyszerű soros protokoll segítségével történik.
A teljes szoftver a Githubon található az adattárban emeir (eelőadás nekemter vele énnfrared fénysorompó) áll rendelkezésre. A példányt a következő címen küldjük el:
a helyi munkakönyvtárban.
Az arduino_sketch/ReflectorLightBarrier.ino fájl az Arduino vázlatot tartalmazza. Össze kell állítani az Arduino IDE segítségével, és be kell tölteni az Arduino programmemóriájába.
Indítása után az Arduino szoftver be van kapcsolva Adatmód kiváltása. Ez jobban megfelel az első funkció tesztnek Nyers adat mód, amelyben a szoftver folyamatosan kiadja a soros interfész fototranzisztorán mért feszültségkülönbséget. A különböző módokat úgy kapcsolják át, hogy parancsokat küldenek a vezérlő számítógépről az Arduino-nak. Használhatja az Arduino IDE soros monitorját vagy egy hasonló terminálprogramot minicom használat.
A jel elküldése C. az Arduinóhoz parancsmódba vált. Most reagál a különböző vezérlő parancsokra:
ban,-ben Nyers adat mód az Arduino folyamatosan adja ki a mért értékeket a soros interfészen. Ez az a különbségérték, amelyet a szoftver a fent leírtak szerint számol, levonva a feszültségeket, amikor az IR fénykibocsátó dióda be- és kikapcsol. Így tesztelheti, hogy minden zökkenőmentesen ment-e a hardver beállításakor: Ha egy darab papírt a reflex fénysorompó elé tart, a távolságának változása jelentős különbségeket okozhat a mért értékekben.
A mért értékszerzés szempontjából releváns programrész:
Összeszerelés és beállítás
A fénysorompót két mérőszalaggal rögzítik a mérőházhoz (lásd a cikk elején található képet). Az infravörös fénykibocsátó diódának és a fototranzisztornak pontosan a számlálótárcsa fölött kell lennie. A házon lévő jelölés segíti a pontos pozícionálást (3. ábra).
Amikor a villamosenergia-fogyasztásmérő működik, a mérési adatokat először a rendszerbe rögzítik Nyers adat mód. Itt hasznos egy olyan terminálprogram, mint például minicom, amely képes a soros interfészen keresztül futó adatokat szöveges fájlba írni. A fájl importálása után egy táblázatkezelő programba (például LibreOffice Calc) az 5. ábrához hasonló grafikát állíthat elő, amely segít meghatározni a kiváltási küszöböket: A mérési adatok időrendi sorrendjében (kék) a számlálási jelölés két passzusa egyértelműen azonosítható, mert piros színük a visszavert fény jelentős csökkenéséhez vezet . Ennek eredményeként meghatározzuk a két trigger küszöböt 85-nél (alacsony, piros az 5. ábrán) és 90-nél (magas, sárga).
Az S 85 90 parancs beírja az trigger küszöbértékeit az Arduino EEPROM-jába. Túléli az áramellátás lekapcsolását és a program újraindítását.
Mostantól Ön az Arduino szoftvert használja Adatmód kiváltása. Itt a soros interfész kimenete csak trigger esemény esetén fordul elő: Amikor a alacsony Trigger szint, a program 0 karaktert ad és amikor a magas 1-es szintet állít. Ezenkívül a zöld fénykibocsátó diódát ennek megfelelően kapcsolják be, ami rendkívül hasznos a funkció vizuális ellenőrzéséhez: A kiváltó állapot csak "0" és a fénykibocsátó dióda ki van kapcsolva, ha a piros számláló jel a fénysorompó előtt van, különben világít:
A mérőóra leolvasásának és fogyasztásának rögzítése
Az emeir.py Python szkript a vezérlő számítógépen fut, és az Arduino által szolgáltatott adatokat az USB soros interfészen keresztül fogadja. ban,-ben Adatmód kiváltása ezek csak nullák és egyek, amelyek átkapcsolása jelzi a számláló jel áthaladását. Mivel a számláló fordulatszámának és az energiafogyasztásnak az aránya ismert, közvetlenül levezethető az elfogyasztott energia mennyisége:
Amikor a ravaszt kiváltja, a program egy körmérkőzéses adatbázisba írja az új mérőóra értékét és az utolsó kiváltó trigger_step = 1/75 (fordulat/kWh) óta felhasznált energiát. Ez az elv hasonló a gázmérők leolvasása a HMC5883 magnetométerrel és a Raspberry Pi-vel leírt eljáráshoz.
A program létrehozza az emeir.rrd adatbázist is, amely ugyanabban a könyvtárban található, mint a Python szkript. Ehhez egyszer el kell indítania a -c opcióval:
Egy újonnan létrehozott adatbázis logikailag a számláló 0-val kezdődik. A mechanikus számlálóval való szinkronizáláshoz vegye figyelembe a mechanikus számláló leolvasását (például 132290.0), és írja be a lehető leghamarabb az adatbázisba:
Ezután indítsa újra az emeir.py fájlt. Kiolvassa az elmentett számláló értéket az adatbázisból, és folytatja a számlálást. A folyamatos működéshez az emeir.py-t háttérszolgáltatásként kell telepíteni, hogy túlélje a kijelentkezést, és a rendszer újrainduljon. A blogszolgáltatás a háttérben megmutatja ennek lehetőségeit.
Vonzó grafika állítható elő a körmérkőzéses adatbázisból az rrdtool segítségével. A következő parancsok generálják a 6. ábrán látható grafikát a mérőóra leolvasására és fogyasztására az elmúlt három napban:
Az olyan vékony webszerver, mint a lighttpd "lighty", néhány HTML-oldal és Perl-szkript lehetővé teszi a fogyasztási grafikák kényelmét az intraneten. Az elvet a gázfogyasztás és a hőmérséklet mérésének rögzítésére vonatkozó cikkek írják le.
Következtetés
A kicsi, saját gyártású készülék több mint egy éve problémamentesen működik, és már érdekes eredményeket szolgáltatott. Például a nyaralás és a jelenléti idők közötti különbség jelentős. Ezért nagyon körültekintőnek kell lennie, amikor eldönti, kinek adja meg valós időben a fogyasztási adatait! A fogyasztási csúcsok mellett, amelyekért elsősorban az elektromos működtetésű konyhai tűzhely és a melegvíz készítés a felelős, észrevehető a kissé hullámos alapterhelés. Ennek oka a hűtőszekrény vagy a fagyasztó működése, amelyek időszakosan be- és kikapcsolnak. Ha ezt levonja, akkor 60 W körüli alapfogyasztás marad, amelyet különféle elektronikus eszközök, például DSL routerek, órás rádiók és természetesen a fogyasztás mérésére használt Arduino és Raspberry Pi (!) Működése okoz. Ezután egy további korlátozáshoz szükség van egy hordozható energiaköltség-mérő használatára, amely az egyes eszközök tápvezetékeire van hurkolva. Van valami ilyesmi az ambiciózus barkácsolók számára, mint az ELV kit.