Introduction: Solar Farm Manager

A beadandó során csapatunk célja egy okos napelem létrehozás volt. Az alap ötlet az, hogy a napelem képes megmondani egy fényérzékelő segítségével hogy éppen hol van a nap. Miután megtudtuk, hogy hol van a nap, egy külső adatbázis segítségével a program képes kiszámolni hogy hány fokot kell 10 percenként folyamatosan fordulni, hogy naplementéig folyamatosan kövessük a napot. Ezzel a napelemmel növelni tudjuk egy sima, fix napelem hatásfokát, kevés ráfordítással.

Step 1: Eszközök, Alkatrészek

Raspberry Pi 3 B+

Link: https://www.raspberrypi.org/products/raspberry-pi...

A Raspberry Pi egy bankkártya méretű, egyetlen áramköri lapra/kártyára integrált BCM2835[2] alapú számítógép, amelyet az Egyesült Királyságban fejlesztettek oktatási célokra. A gép különböző Linux-disztribúciókkalműködtethető, illetve elérhető egy RISC OS verzió is.[3] Az eredeti két változat (A és B) kiadása óta már több továbbfejlesztése is kiadásra került. A hivatalosan ajánlott operációs rendszer a laphoz a Raspbian, ami a Debian Linuxkifejezetten Raspberry Pi-re optimalizált változata. A Sony cégnek a welsi Pencoedban működő üzeme gyártja. Legfrissebb modellje a 3. generációs Raspberry Pi 3, de időközben kiadtak még kisebb méretű Zero változatokat is.

Step 2: Eszközök, Alkatrészek

Adafruit TSL2561 Digital Luminosity/Lux/Light Sensor Breakout

Link: https://www.adafruit.com/product/439

A TSL2561 fényerősség-érzékelő egy fejlett digitális fényérzékelő, amely ideális a könnyű helyzetek széles körében. Az alacsony költségű CdS-cellákhoz képest ez az érzékelő pontosabb, lehetővé téve a pontos lux-számításokat, és beállítható a különböző gain/timing tartományokhoz, hogy a fényt 0,1 - 40 000 + Lux között tudják kimutatni.

Step 3: Eszközök, Alkatrészek

Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685

Link: https://www.adafruit.com/product/815

A PCA9685 egy I²C-busz által vezérelt, 16 csatornás LED-vezérlő, amely a Red / Green / Blue / Amber (RGBA) színes háttérvilágítási alkalmazásokhoz optimalizált. Minden LED kimenet saját 12 bites felbontású (4096 lépcsős) egyedi frekvenciaváltó vezérlővel rendelkezik, amely programozható frekvencián működik, tipikus 24 Hz-től 1526 Hz-ig, egy 0% -tól 100% -ig állítható működési ciklussal. Egy adott fényerő értékre állítható LED. Minden kimenet azonos PWM frekvenciára van állítva.

Step 4: Eszközök, Alkatrészek

TZT Micro Servo SG90

Link: https://www.aliexpress.com/item/TZT-Smart-Electronics-1Pcs-Rc-Mini-Micro-9g-1-6KG-Servo-SG90-for-RC-250-450/32841541380.html?spm=a2g0s.9042311.0.0.27424c4dmRvGJz

Step 5: Eszközök, Alkatrészek

ESP8266/D1 WiFi-Serial modul

Link: https://shop.tavir.hu/product_info.php/kapcsolat-bluetooth-wifi-esp8266d1-wifi-serial-modul-alappanel-mini-esp-p-502

Az ESP8266 modulra épülő D1 mini egyszerű megoldást kínál WiFi kapcsolatok létesítésére. A PC oldal felé nem igényel semmiféle plusz kiegészítést, az ESP8266 chip soros kommunikációját a beépített CH340 soros-USB illesztőchip valósítja meg. A könnyű kezelhetőséget az egyszerű AT parancsok biztosítják. Tipp: A modul 2.54 mm (standard) raszteres beforrasztható tüske- illetve hüvelysorokkal rendelkezik, így 170, 400 vagy 830 lyukas breadborddal nagyon könnyen külső eszközök illeszthetőek hozzá.A modul az ESP-12E WiFi illesztővel szerelt, míg nyomógomb és járulékos LED segítségével egyszerű minták azonnal tesztelhetőek. Az áramkör 10-bites ADC-t is tartalmaz!

Step 6: Áramköri Ábra

Az áramkörben még egy 6V-os elem is van, ami a szervomotor miatt kell.

Az ábrán a D1 wifi modul nem szerepel, mert

Az ábra A Fritzing segítségével készült.

Step 7: Alapkód 1. Rész

Az alapkód azért felelős, hogy a motor a megfelelő pozícióba kerüljön. A programban nem fokokkal számoltunk, mivel nem láttuk értelmét, ezért a folytatásban pulzusokat fogunk írni a motor pozíciójának leírására. A motor leírásában le van írva, hogy a 0 fokhoz a 160 puzus tartozik, míg a 180 fokhoz a 550. Ebből kiszámoltuk, hogy pontosan 14 lépéshez mennyit keljen neki lépni, hogy 0 foktól 180 fokig elérjen. A for ciklusban először a motort 0 fokba mozgatjuk. Ezek után mérünk egyet majd lementjük az adott pulzust és a pulzushoz tartozó fényértéket egy szótárban. Ezen felül egy külön tömbben is mentjük az adott fényértékeket, a legnagyobb fényérték megállapításához. Miután lement a 14 lépés a fényérték tömb és a szótár alapján megtudjuk állapítani, hogy pontosan melyik is az a pont, ahol éppen a nap van. A forgat függvény segítségével, pedig be is forgatjuk az adott pontba.

Step 8: Alapkód 2. Rész

A követés függvény azért felelős, hogy miután megállapítottuk, hogy merre van a nap, azon adatokból és egy külső fájl adataiból kiszámolja, mennyit kell fordulni a szervomotornak míg a nap lemegy és közben követi. Ez a függvény úgy oldja meg, hogy megnézi éppen mennyi idő van, majd a függvényből megnézi hogy aznap mikor fog lemenni a nap, ezeknek veszi a különbségét. Ezek után megnézzük hol áll a motor éppen és kivonjuk belőle a végállapotot(160). Ezekből az adatokból kiszámítható, hogy mennyit kell fordulni a motornak 10 percenként, hogy végig kövesse a napot míg az le nem megy. A függvényben van egy if elágazás, ami azt figyeli hogy nincs e végállásban a motor, és hogy nem-e rossz adatot kaptunk, ezzel is védve a motort.

Step 9: Extra Funkció 1.

Extra funkcióként képes a program az internetről, egy külső adatbázisból időjárás előrejelzést letölteni, és ezen adatokból figyelmeztetni a napelem tulajdonosát. Amennyibe, a következő napokban esős, felhős idő várható, egy emailt küld a program, hogy feltudjunk készülni rá, hogy a napelem teljesítménye szignifikánsan visszaeshet.Ezen kívül a napelem óránként egy emailt küld, amiben a napelemről és az akkumulátor állapotáról kapunk vissza adatokat.

Step 10: Extra Funkciók 2.

Az eszközök említettünk egy D1 mini board nevü modult. Ez azért felelős, hogy a napelemet távolról tudjuk kezelni. Ennek segítségével a házból bárhonnét el tudjuk érni a modulok.

Step 11: Tesztelés

Utolsó lépésként a teljes, összeállított rendszert kellett tesztelnünk. A teszt során rájöttünk, hogy 4 másodperc a tökéletes késleltetés ahhoz, hogy a fényérzékelő a valós adatokat mentse le a táblázatba. Ezen felül külön teszteltük az email funkciót is, de azt kézileg. Az is tökéletesen működött.

A vizsga során, hogy be tudjuk mutatni az összes funkciót a kódot átírtuk. Lecsökkentettük a 10 percet 3 másodpercre, így látszódni fog, hogy követi a napot(természetesen így előbb célba ér a napelem).

A kód elérhető githubon keresztül is.:https://github.com/csiszar197/Solar-Farm-Manager